From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web10.4107.1676058458440370084 for ; Fri, 10 Feb 2023 11:47:38 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=I7SiruR6; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676058458; x=1707594458; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=5MNNvfYw/IC5qbma0vXuX3qGN01sFUpIfqWqp8eUnsc=; b=I7SiruR6ilZqrHOUab3EU+NoHUixvSWeQyZsL/BcJ/IDkDx7gK3ZzDJw rW1nzUtMite58aF8sLKmWJ0We4n6Gqb2E/QTD727t2STRhi8NSD2+oiRp R8h8UAt2r/AG4eTRKVHoszc+sp9ojH7j3+6mfUuRpEShGKKzxIu0FW5Sk HbsoxwORfF6kuPZYsmissZp1gYaplHJUIHJePdQLHscrUoS3nUxphveVj rAIHZqycvSEbdUYBx91UxJRVJfy0gwwA6wlnORRoLQZfcQW4M5DciOJgI FRdTpLtBuUy5uAJ+W+hh1yKVAxEM8bUzOKoSIBtl0VEAMOlAfZHmq/20X Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="318530118" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="318530118" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 11:47:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="668157950" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="668157950" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 10 Feb 2023 11:47:37 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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.2507.16; Fri, 10 Feb 2023 11:47:37 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Fri, 10 Feb 2023 11:47:37 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.2507.16 via Frontend Transport; Fri, 10 Feb 2023 11:47:37 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.42) 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.2507.16; Fri, 10 Feb 2023 11:47:36 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kw9634Ysb9Vj1k+7Z4Nz1c9SMykweLaRkslxCuqWmINP5o0oQYuubqog0MJtAfboWDI7d3n6a8hX6oKBmB0G2tFdCTRK0m5DnK0u2sr/PAaem/YyPC85R7eu7igqNb0KOUjRoSEte57i7UA7aifyVsGtrSpYLSvRWqZzrJOS4hANoMchg4TS92iPyB9G52Cdhf6yxATWzjkimJNuJvPX8IuX/JDP5ZcdKOErVEHBNfol/R+8CNuYpcKXtfy3dPF8fJC50dsm0kCv99T1pv71oriXlRK5alQXID62Fe60d+x8oHZDl3+/5L7dlRWb5P1L9GxvAecNwL7Pcj04ip7ziA== 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=5MNNvfYw/IC5qbma0vXuX3qGN01sFUpIfqWqp8eUnsc=; b=kIKgEC88s4NmFpUvTSWsUmCqW00gUULTDUs8r87tNoXpbFtfQHQr2KWe8MJjfAq6d3eCY3uk4NbvCuZh9F/A4P3lXgO+Ew51CownRU0E6vw9t1MDsNtZ6QKACBbpQKWoLJKZDu+eB+n9rENdOG4kre+yawC+FUSRWxyWAy1RGtBUsvE5jADONV2MzpHa9PVm4aWocBxeES/9vrmljyKy0XgUl+IdMyA2B4gbBrVnqIV9lpvlQYG7Jv6zqIsgCUg9ZfYXqSiGI4G3a6iKyLKx9lew4+Y4l0pU6nJ7JOzNXsEzeBlEjEQphQNskWkom7qbcL9VbURBtpRiMZp4Ix3+VQ== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by DS0PR11MB7460.namprd11.prod.outlook.com (2603:10b6:8:142::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21; Fri, 10 Feb 2023 19:47:34 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68%6]) with mapi id 15.20.6086.021; Fri, 10 Feb 2023 19:47:33 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "jbrasen@nvidia.com" , "Demeter, Miki" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg/EsrtFmpDxe: Support multiple devices with 0 HardwareInstance Thread-Topic: [edk2-devel] [PATCH v2] MdeModulePkg/EsrtFmpDxe: Support multiple devices with 0 HardwareInstance Thread-Index: AQHZPNI9XDWuAdgB7UmVem2cryIULq7Hhj7wgADeEgCAADLksA== Date: Fri, 10 Feb 2023 19:47:33 +0000 Message-ID: References: <3c3226e6c05a868f3f88d300181a157998c2786e.1670873141.git.jbrasen@nvidia.com> In-Reply-To: Accept-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: CO1PR11MB4929:EE_|DS0PR11MB7460:EE_ x-ms-office365-filtering-correlation-id: 4a9ca248-d543-4239-ba93-08db0b9fa758 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: G4rOuxcgxybxk0CikqL4lgZBPOq56HtdVhIMTgtSgVZPlaAuu7qroulqK3nzwXtrEuMO92J9nys3uPWlsFYpHNBoj1sihPo5pupgWzDah3x7H9BCqkaJkDsLAVGU4xhz1jTO0A3jBCSjQH8m35Z7ShDjtvivU+27iT3OMptv0ZeejGuoBYqufQ9D2WWE98kIMP2OcRpnRUOWk7eOargPj0GxXXU67bdSqqnVJtrWpuHC1F/W9PJCwHE5quWrzMSDz3GRsUmOqMDmdB55XnqbgSLW8xqxZmKHOYO+dpEjXXcEexpdqO55M10hmhImCHJG9azeQeKmPHQXS/b7hRG8Yh4KvQHnM7mlNWbS4ifrEfVQHjDYMNcazCA97deQh9SBzd7X854avHukjWBpHnSVvyPpoc08Jkuk4M8Lxsb3mal8pYRdN5lup0yowkNdkXwu43ruGiYViSYPjGfxY8YnFUirsmEEMpp/vHUJrjW3GpYUXy1Sh7RyvMbCt5LJvih+BmmuiKvQ8FUn3GgFa3qlWOVoZQmAc4jIngPiuZmOQT2rmVO4LzH8aWEbFR0ucEK6QHGFON/3u8buDI36IHx8kkzQ+PqbX5A6KtiyPxlQtcmL/HFtmMtPFCoE0F9n0om8aluCweKecNM7R2WAsg4OG3EZZeF1nFLURLZ6FxPnMxmDrX/hhiz/RVw7Wliprxz/kUHY0fvx2w9s8iDIIvX5J/5F+yPRlJBCiv3ShlgA7RllwxBXsaLq/y0p38rLCgWeF2U9ZhGwXRYeYDHpDsbiPg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(346002)(39860400002)(136003)(366004)(376002)(451199018)(5660300002)(66899018)(52536014)(8936002)(71200400001)(55016003)(8676002)(2906002)(41300700001)(7696005)(316002)(4326008)(66446008)(66476007)(64756008)(66556008)(66946007)(76116006)(110136005)(6636002)(53546011)(107886003)(33656002)(478600001)(86362001)(6506007)(966005)(26005)(38070700005)(82960400001)(38100700002)(83380400001)(186003)(9686003)(122000001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N1gxb0lRZUxQVXg4VzZEc3d5OHlBT0VIWG5GeDhMSG4zWmVRTUltbnVKd1RR?= =?utf-8?B?enNkRGZXY081UHRLUy9OVHZGTjUwdmV4MUFFamlmK2NhOTQxVlVpRjM3Y29Z?= =?utf-8?B?ckNiRDVRWHp5YkdUN1J0ZkN4M0x6SGVHakxaU0tVaFdYVHRrM3pCbFcwdGVa?= =?utf-8?B?VFBPeGpPNng3MlhVelQxcVZpM05RdVhGeDJlWWt3T3VTd3lDTnNRSkl2L1Fy?= =?utf-8?B?ajI2djErZjhaVDNIeWl5TGZQblE3bnR2NzlsQUVxek0vV2RTcHl6UmsyM3kv?= =?utf-8?B?RnNia01BOUJGSURWYWREOXlmVm5SSkpBcmFVWVR3Q1A0MGNYeFphSWlhSVh6?= =?utf-8?B?c1lqOCtmWUN5Q3ZhakNVbW5IKytoMkdaQ3hRaGpzTThMbHd4SWtZenkvY2w5?= =?utf-8?B?ZTJ2SmtOWndYeDFTdll1VVo2dFRidjVrVVBFOExlMHdQUEwyWndkdHBWaGhC?= =?utf-8?B?cDBjMVpoMU1uUVg0MDV4cFA4Tk1uQmRNQXdwZE8vajJVR2Vuem0yekVWTlpi?= =?utf-8?B?b09iZGgvdnR4WDRFdTV5UmtMdEdjelNkWHpnNCtHVTNIUnpsMk9EbWRZMCtX?= =?utf-8?B?NG5IUW02cGJuOXM3NWlGc1NpQW82Ly92S2JPazlNcWZ5c3pEbFVYN0M0bDdr?= =?utf-8?B?Z0ZhSm0vMnVmdWhobnZGbUxmVmpPcG5HN1h6a0NqbUliUVYwcS8xWDdmZTZy?= =?utf-8?B?RSs2VDNvWVV5bURFM2w0S3Z0dW8yRThTQms5Q0dTUEZLdUxuSEt0MGppUjBn?= =?utf-8?B?cjUwRGNMNFptUHB6azVHaFN4YU1OVUlKZlR4QktSRkVXWWtlcS9ocjA3T09R?= =?utf-8?B?amdLWVUwVVVERlVBenpWRjV6NzU4Y1NUdTluMExNc2tRdFZaMHpEZEFzMzlC?= =?utf-8?B?b3hvblpIM0FCSVZlcExGR1lBQ21WTVlvdHlLR3owcncxSDN3LzlyUytMVG9W?= =?utf-8?B?alM3c0F2alNjMHIrTnZLSWRLbGZ2bjlONUdPMUt5MkZaZHozalBZWGFrZEVR?= =?utf-8?B?K1ZsZS9WQXlzM3VxVjdNOW1PYzRJbjNTZ1ZQaG44YXpkUnQ4ZWVYK3BXUkFB?= =?utf-8?B?a3hqWWZSZlJ5akNaYlVIZWhSYmpDd3JWNEtwb1lVVlBLRjlhMGhZc2JYV1lH?= =?utf-8?B?VU8xSzhCNm9WM1dOSWtYWkx1NVN5RmV0dlBzRWZhbHRqZW5MMDNjRjVRM1hs?= =?utf-8?B?dWNHWUVzN1Q3ZGtqZURjV3dhNjNQWXlRNXZwekhWM2Z6Ujh0TFpJYVFqVkpo?= =?utf-8?B?YU5vRGhZTXR5RWQ5N0o2UDR2MVUrUCt0UWZOM25QYWRXdmU4dTRHcWdKU2R2?= =?utf-8?B?WktlZVNxMnhlOExseHpiMGVaWWdscVF3RDVPM3ZselpVd3pjd0ljMGlkdXp0?= =?utf-8?B?Y0RRUGg2QTJQb2QwbGtrdTFJdWZPQW1ZMDlaZldlcFlFaGVjQTdmOTJNVFBE?= =?utf-8?B?QmZTSFFnL2pzbjJNTDQvbjJPYzlKM2pSbURneGg1U1B4VjJ0TklTb05nL3Qz?= =?utf-8?B?aE94Y0xia2VUNG1qSjc4VTFWaHg5ZVRTM1F1VTdQVE5laEhxaUM4VW1CWDJF?= =?utf-8?B?aXAwSjl5ZnhzQmJuK1dsejhLNWp2Um9LK2t3TWpWSzdNdTQzdWg2NklkbHlK?= =?utf-8?B?UUJwT0dVSWRGRFJRQ2twYnNTR0VvdXErZmZQcVZuYy9ueS9yNjhrNFduWGlF?= =?utf-8?B?aE1odDBYMkpCdmpjK3UzNzBHVXlRdzF5Z2JHVmdNK2xQWmlERkI5VWg3NjVR?= =?utf-8?B?UThDSE5XSjlndC9mV0NqRlRBSXBEOW5UdVdnRFY1ZkZPTUY2MXhRSVBKS3J5?= =?utf-8?B?WGVGb1ZIcVpFUXY1ZHpCZ0U3a0JYdmFQcytQUG12bm54L3lRY2hwMnVkN3Ji?= =?utf-8?B?b2JvbU1RWEp4ajJEbDhBa2FlYlJiV1IvRkgzMnRac0Fuc29DNnp5UWxUUWpY?= =?utf-8?B?eW1uYzEyTXVkdGFZZ3hqVm5sZE9lNGR5MWRtWVdlS0JuekcxeEJ6MHRxR2hK?= =?utf-8?B?aXg4V3FwN3NYMmlqblpmNWhTNGZBdGVzK3l4WStyVHZZS3ViSjhYRHNHZ1l2?= =?utf-8?B?bWMxcGhUY0JrYmNGOU1PVkwzL280WFVZeTFITFdhNGpJRHkwRDZVWFNCMHVI?= =?utf-8?B?UkZOYkRDc012UmRRbFhGUzNUZGt3NWIvdHZsZGRES205d1M1NFNRSmRkdlpr?= =?utf-8?B?Y0E9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a9ca248-d543-4239-ba93-08db0b9fa758 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2023 19:47:33.8216 (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: QimssVBmbrtwoPizNhhgDvgwoFtLigJdHWxi+TmyWbU68cpda1F6qRe29p02gwzEkKUaiR2cgoWjUr8esce44bZyjtAXloyVnKaG1FcsIrU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7460 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RGlkIHlvdXIgb3JpZ2luYWwgYXBwcm9hY2ggd29yayBmb3IgYWxsIHlvdXIgdXNlIGNhc2VzPw0K DQpNaWtlDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRr Mi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgSmVmZiBCcmFz ZW4gdmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDEwLCAyMDIzIDg6NDUg QU0NCj4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBEZW1ldGVyLCBNaWtpIDxtaWtpLmRlbWV0ZXJAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtn L0VzcnRGbXBEeGU6IFN1cHBvcnQgbXVsdGlwbGUgZGV2aWNlcyB3aXRoIDAgSGFyZHdhcmVJbnN0 YW5jZQ0KPiANCj4gVGhhdCB3YXMgbXkgb3JpZ2luYWwgYXBwcm9hY2ggd2hlbiBJIHNhdyB0aGlz IGJ1dCBJIHdhcyBzZWVpbmcgdGhpcyBvY2N1ciBvbiBhIGRldmljZSB3aXRoIEZtcFZlcnNpb24g PT0gMy4gVGhlIFVFRkkgc3BlYyBpc24ndA0KPiBjb21wbGV0ZWx5IGNsZWFyIGJ1dCBjb3VsZCBi ZSByZWFkIHRoYXQgMCBpcyBsZWdhbCBpZiB0aGlzIHBhcnQgaXNuJ3QgYmVpbmcgdXNlZC4NCj4g DQo+IGh0dHBzOi8vdWVmaS5vcmcvc3BlY3MvVUVGSS8yLjEwLzIzX0Zpcm13YXJlX1VwZGF0ZV9h bmRfUmVwb3J0aW5nLmh0bWwjZWZpLWZpcm13YXJlLW1hbmFnZW1lbnQtcHJvdG9jb2wtZ2V0aW1h Z2VpbmZvDQo+IA0KPiBJdCBkb2VzIHN0YXRlIHRoYXQgdGhpcyBpcyBPcHRpb25hbCwgYW5kIGhh cyBhIHN0YXRlbWVudCAiQSB6ZXJvIG1lYW5zIHRoZSBGTVAgcHJvdmlkZXIgaXMgbm90IGFibGUg dG8gZGV0ZXJtaW5lIGEgdW5pcXVlDQo+IGhhcmR3YXJlIGluc3RhbmNlIG51bWJlciBvciBhIGhh cmR3YXJlIGluc3RhbmNlIG51bWJlciBpcyBub3QgbmVlZGVkLiINCj4gDQo+IEFsc28sIG91ciBF U1JUIGltcGxlbWVudGF0aW9uIGp1c3QgbWVyZ2VzIGFsbCBpbnN0YW5jZXMgdG8gb25lIGFueXdh eXMgc28gaXQgZG9lc24ndCBjdXJyZW50bHkgY29uc3VtZSB0aGUgaGFyZHdhcmUgaW5zdGFuY2UN Cj4gZXhjZXB0IGZvciB0aGlzIGNoZWNrLg0KPiANCj4gVGhhbmtzLA0KPiBKZWZmDQo+IA0KPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFy eSA5LCAyMDIzIDg6NDMgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEplZmYgQnJh c2VuIDxqYnJhc2VuQG52aWRpYS5jb20+OyBEZW1ldGVyLA0KPiA+IE1pa2kgPG1pa2kuZGVtZXRl ckBpbnRlbC5jb20+DQo+ID4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BBVENIIHYyXSBNZGVNb2R1bGVQa2cvRXNy dEZtcER4ZTogU3VwcG9ydCBtdWx0aXBsZQ0KPiA+IGRldmljZXMgd2l0aCAwIEhhcmR3YXJlSW5z dGFuY2UNCj4gPg0KPiA+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtz IG9yIGF0dGFjaG1lbnRzDQo+ID4NCj4gPg0KPiA+IEhpIEplZmYsDQo+ID4NCj4gPiBUaGFuayB5 b3UgZm9yIHRoZSByZW1pbmRlci4NCj4gPg0KPiA+IEkgYW0gd29uZGVyaW5nIGlmIHRoZSBjaGVj ayBzaG91bGQgYmUgZm9yIEZtcFZlcnNpb24gPCAzIGFuZCBub3QNCj4gPiBGbXBIYXJkd2FyZUlu c3RhbmNlICE9IDAuDQo+ID4NCj4gPiBJdCBpcyBwb3NzaWJsZSBmb3IgYW4gRm1wSW5mb0J1ZmZl ciB0byBoYXZlIGFuIEZtcFZlcnNpb24gPj0gMyBhbmQgYQ0KPiA+IEhhcmR3YXJlSW5zdGFuY2Ug b2YgMC4gIElmIG1vcmUgdGhhbiBvbmUgb2YgdGhlc2UgaXQgZm91bmQsIHRoZW4gdGhhdCB3b3Vs ZA0KPiA+IGJlIGFuIEVGSV9VTlNVUFBPUlRFRCBjb25kaXRpb24uDQo+ID4NCj4gPiBJZiBGbXBW ZXJzaW9uID49IDMsIHRoZW4gdGhlIEhhcmR3YXJlSW5zdGFuY2UgbXVzdCBiZSBmaWxsZWQgaW4g d2l0aCBhDQo+ID4gdW5pcXVlIHZhbHVlLiAgMCBjYW4gYmUgdXNlZCBpZiB0aGVyZSBpcyBhdCBt b3N0IDEgaW5zdGFuY2UsIHNvIHRoZSBkdXBsaWNhdGUNCj4gPiBjaGVjayB3b3VsZCBuZXZlciBi ZSB0cmlnZ2VyZWQuICBJZiBGbXBWZXJzaW9uID49IDMgYW5kIHRoZXJlIGNhbiBiZSBtb3JlDQo+ ID4gdGhlbiBvbmUgaW5zdGFuY2UsIHRoZW4gdGhlIEhhcmR3YXJlSW5zdGFuY2UgbXVzdCBiZSBh IG5vbi16ZXJvIHVuaXF1ZQ0KPiA+IHZhbHVlLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4g TWlrZQ0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTog ZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2Yg SmVmZg0KPiA+ID4gQnJhc2VuIHZpYSBncm91cHMuaW8NCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBG ZWJydWFyeSA5LCAyMDIzIDI6MDMgUE0NCj4gPiA+IFRvOiBEZW1ldGVyLCBNaWtpIDxtaWtpLmRl bWV0ZXJAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBT dWJqZWN0OiBbZWRrMi1kZXZlbF0gRlc6IFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL0VzcnRGbXBE eGU6DQo+ID4gU3VwcG9ydA0KPiA+ID4gbXVsdGlwbGUgZGV2aWNlcyB3aXRoIDAgSGFyZHdhcmVJ bnN0YW5jZQ0KPiA+ID4NCj4gPiA+IEhlcmUgaXMgYSBwYXRjaCB0aGF0IGhhcyBiZWVuIHBlbmRp bmcgZm9yIGEgYml0DQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gSmVmZg0KPiA+ID4NCj4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBKZWZmIEJyYXNlbg0K PiA+ID4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAxLCAyMDIzIDk6MjEgQU0NCj4gPiA+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IGppYW4uai53YW5nQGludGVsLmNvbTsg Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuOw0KPiA+ID4gZ3VvbWluLmppYW5nQGludGVsLmNvbQ0K PiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL0VzcnRGbXBEeGU6IFN1 cHBvcnQgbXVsdGlwbGUNCj4gPiA+IGRldmljZXMgd2l0aCAwIEhhcmR3YXJlSW5zdGFuY2UNCj4g PiA+DQo+ID4gPiBBbnkgdXBkYXRlcyBvbiB0aGlzIHdvdWxkIGJlIGdyZWF0IHRvIGdldCB0aGlz IGluIGZvciB0aGUgbmV4dCBzdGFibGUgcmVsZWFzZQ0KPiA+IGlmIHBvc3NpYmxlLg0KPiA+ID4N Cj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogSmVmZiBC cmFzZW4gPGpicmFzZW5AbnZpZGlhLmNvbT4NCj4gPiA+ID4gU2VudDogTW9uZGF5LCBEZWNlbWJl ciAxMiwgMjAyMiAxMjoyNyBQTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g PiA+ID4gQ2M6IGppYW4uai53YW5nQGludGVsLmNvbTsgZ2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu Ow0KPiA+ID4gPiBndW9taW4uamlhbmdAaW50ZWwuY29tOyBKZWZmIEJyYXNlbiA8amJyYXNlbkBu dmlkaWEuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggdjJdIE1kZU1vZHVsZVBrZy9Fc3J0 Rm1wRHhlOiBTdXBwb3J0IG11bHRpcGxlDQo+ID4gPiA+IGRldmljZXMgd2l0aCAwIEhhcmR3YXJl SW5zdGFuY2UNCj4gPiA+ID4NCj4gPiA+ID4gU2tpcCBlcnJvciBjaGVjayBpZiBIYXJkd2FyZUlu c3RhbmNlIGlzIDAgYXMgdGhpcyBlaXRoZXIgbWVhbnMgdGhhdA0KPiA+ID4gPiBGbXBWZXJzaW9u IDwgMyBhbmQgbm90IHN1cHBvcnRlZCBvciwgIkEgemVybyBtZWFucyB0aGUgRk1QIHByb3ZpZGVy DQo+ID4gPiA+IGlzIG5vdCBhYmxlIHRvIGRldGVybWluZSBhIHVuaXF1ZSBoYXJkd2FyZSBpbnN0 YW5jZSBudW1iZXIgb3IgYQ0KPiA+ID4gPiBoYXJkd2FyZSBpbnN0YW5jZSBudW1iZXIgaXMgbm90 IG5lZWRlZC4iIHBlciBVRUZJIHNwZWNpZmljYXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+IEFzIHRo ZSBGbXBJbnN0YW5jZXMgYXJlIG1lcmdlZCBhbmQgSGFyZHdhcmVJbnN0YW5jZSBpcyBub3QgdXNl ZA0KPiA+ID4gPiByZW1vdmUgZXJyb3IgY2hlY2sgaW4gdGhpcyBjYXNlLg0KPiA+ID4gPg0KPiA+ ID4gPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKZWZmIEJyYXNlbiA8amJyYXNlbkBudmlkaWEu Y29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRXNydEZt cER4ZS9Fc3J0Rm1wLmMgfCAyMiArKysrKysrKysrKystLQ0KPiA+IC0tLS0NCj4gPiA+ID4gLS0t DQo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwv RXNydEZtcER4ZS9Fc3J0Rm1wLmMNCj4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Vz cnRGbXBEeGUvRXNydEZtcC5jDQo+ID4gPiA+IGluZGV4IDRmNDdjNTVjY2UuLjViYzYyNzQ2MWQg MTAwNjQ0DQo+ID4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRXNydEZtcER4ZS9F c3J0Rm1wLmMNCj4gPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9Fc3J0Rm1wRHhl L0VzcnRGbXAuYw0KPiA+ID4gPiBAQCAtMTUzLDE2ICsxNTMsMjAgQEAgQ3JlYXRlRXNydEVudHJ5 ICgNCj4gPiA+ID4NCj4gPiA+ID4gICAgLy8NCj4gPiA+ID4gICAgLy8gQ2hlY2sgdG8gc2VlIG9m IEZtcEltYWdlSW5mb0J1ZiBHVUlEL0hhcmR3YXJlSW5zdGFuY2UgaXMNCj4gPiA+ID4gdW5pcXVl DQo+ID4gPiA+ICsgIC8vIFNraXAgaWYgSGFyZHdhcmVJbnN0YW5jZSBpcyAwIGFzIHRoaXMgaXMg dGhlIGNhc2UgaWYNCj4gPiA+ID4gKyBGbXBWZXJzaW9uIDwNCj4gPiA+ID4gKyAzICAvLyBvciB0 aGUgZGV2aWNlIGNhbiBub3QgY3JlYXRlIGEgdW5pcXVlIElEIHBlciBVRUZJDQo+ID4gPiA+ICsg c3BlY2lmaWNhdGlvbg0KPiA+ID4gPiAgICAvLw0KPiA+ID4gPiAtICBmb3IgKEluZGV4ID0gMDsg SW5kZXggPCAqTnVtYmVyT2ZEZXNjcmlwdG9yczsgSW5kZXgrKykgew0KPiA+ID4gPiAtICAgIGlm IChDb21wYXJlR3VpZCAoJkhhcmR3YXJlSW5zdGFuY2VzW0luZGV4XS5JbWFnZVR5cGVHdWlkLA0K PiA+ID4gPiAmRm1wSW1hZ2VJbmZvQnVmLT5JbWFnZVR5cGVJZCkpIHsNCj4gPiA+ID4gLSAgICAg IGlmIChIYXJkd2FyZUluc3RhbmNlc1tJbmRleF0uSGFyZHdhcmVJbnN0YW5jZSA9PQ0KPiA+ID4g PiBGbXBIYXJkd2FyZUluc3RhbmNlKSB7DQo+ID4gPiA+IC0gICAgICAgIERFQlVHICgoREVCVUdf RVJST1IsICJFc3J0Rm1wRHhlOiBEdXBsaWNhdGUgZmlybXdhcmUgaW1hZ2UNCj4gPiA+ID4gZGVz Y3JpcHRvciB3aXRoIEdVSUQgJWcgSGFyZHdhcmVJbnN0YW5jZToweCV4XG4iLA0KPiA+ICZGbXBJ bWFnZUluZm9CdWYtDQo+ID4gPiA+ID5JbWFnZVR5cGVJZCwgRm1wSGFyZHdhcmVJbnN0YW5jZSkp Ow0KPiA+ID4gPiAtICAgICAgICBBU1NFUlQgKA0KPiA+ID4gPiAtICAgICAgICAgICFDb21wYXJl R3VpZCAoJkhhcmR3YXJlSW5zdGFuY2VzW0luZGV4XS5JbWFnZVR5cGVHdWlkLA0KPiA+ID4gPiAm Rm1wSW1hZ2VJbmZvQnVmLT5JbWFnZVR5cGVJZCkgfHwNCj4gPiA+ID4gLSAgICAgICAgICBIYXJk d2FyZUluc3RhbmNlc1tJbmRleF0uSGFyZHdhcmVJbnN0YW5jZSAhPQ0KPiA+ID4gPiBGbXBIYXJk d2FyZUluc3RhbmNlDQo+ID4gPiA+IC0gICAgICAgICAgKTsNCj4gPiA+ID4gLSAgICAgICAgcmV0 dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gPiA+ID4gKyAgaWYgKEZtcEhhcmR3YXJlSW5zdGFuY2Ug IT0gMCkgew0KPiA+ID4gPiArICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8ICpOdW1iZXJPZkRl c2NyaXB0b3JzOyBJbmRleCsrKSB7DQo+ID4gPiA+ICsgICAgICBpZiAoQ29tcGFyZUd1aWQgKCZI YXJkd2FyZUluc3RhbmNlc1tJbmRleF0uSW1hZ2VUeXBlR3VpZCwNCj4gPiA+ID4gJkZtcEltYWdl SW5mb0J1Zi0+SW1hZ2VUeXBlSWQpKSB7DQo+ID4gPiA+ICsgICAgICAgIGlmIChIYXJkd2FyZUlu c3RhbmNlc1tJbmRleF0uSGFyZHdhcmVJbnN0YW5jZSA9PQ0KPiA+ID4gPiBGbXBIYXJkd2FyZUlu c3RhbmNlKSB7DQo+ID4gPiA+ICsgICAgICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIkVzcnRG bXBEeGU6IER1cGxpY2F0ZSBmaXJtd2FyZQ0KPiA+ID4gPiArIGltYWdlDQo+ID4gPiA+IGRlc2Ny aXB0b3Igd2l0aCBHVUlEICVnIEhhcmR3YXJlSW5zdGFuY2U6MHgleFxuIiwNCj4gPiAmRm1wSW1h Z2VJbmZvQnVmLQ0KPiA+ID4gPiA+SW1hZ2VUeXBlSWQsIEZtcEhhcmR3YXJlSW5zdGFuY2UpKTsN Cj4gPiA+ID4gKyAgICAgICAgICBBU1NFUlQgKA0KPiA+ID4gPiArICAgICAgICAgICAgIUNvbXBh cmVHdWlkICgmSGFyZHdhcmVJbnN0YW5jZXNbSW5kZXhdLkltYWdlVHlwZUd1aWQsDQo+ID4gPiA+ ICZGbXBJbWFnZUluZm9CdWYtPkltYWdlVHlwZUlkKSB8fA0KPiA+ID4gPiArICAgICAgICAgICAg SGFyZHdhcmVJbnN0YW5jZXNbSW5kZXhdLkhhcmR3YXJlSW5zdGFuY2UgIT0NCj4gPiA+ID4gRm1w SGFyZHdhcmVJbnN0YW5jZQ0KPiA+ID4gPiArICAgICAgICAgICAgKTsNCj4gPiA+ID4gKyAgICAg ICAgICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KPiA+ID4gPiArICAgICAgICB9DQo+ID4gPiA+ ICAgICAgICB9DQo+ID4gPiA+ICAgICAgfQ0KPiA+ID4gPiAgICB9DQo+ID4gPiA+IC0tDQo+ID4g PiA+IDIuMjUuMQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+IA0KPiANCj4g DQo+IA0KPiANCg0K