From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.60]) by mx.groups.io with SMTP id smtpd.web10.6499.1676064049870472653 for ; Fri, 10 Feb 2023 13:20:50 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=Dghvox3w; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.237.60, mailfrom: jbrasen@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ale7s4Hwse86+/qqIl09UEj0gzNRd+2Skn4dtZHa1McCVK3eyD8baJ5/806/+p16hcPjXTx5g35ZAfTWn4TvLc86xac31ehJRb9Q5hzslgpgGSAmfvBbzJdcnCRTZ0tZRSCdXP2gDUEd3tjEWg8lLeO/TS/TjDrB1pwfNlm8EKsoF11vpD+d8OhXbso9wytE67Qi/RE+cu6hMYCZId1quZDMeawIEygVc1Rclq9ovD0G7H8I8X0Tc41qIBT9Q3xHQ3/Sf7W2f9zB03sdMVmI2MY3gNGdAFNkFLKHADaAnbWVpfjD5rwf9V9voUN+CAnSFlMmNjLyHtirwT9wXkxuYQ== 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=FTV7A0iaZy/V8QnBmwmsx8+30WJR7SEwpejB2AlZQ6U=; b=NucfWoOq8eIbh5AkpXkm7uIEVes4c/3MwMVZgGlEpjx+MZmSMDOoqXP41U0S36ACCbKceKTUE2DetIH/byKJjaepealZKVYQsAnDAStwJhI8/hJZ5T09wldJTji9iZzl9OWXso1qCB1nmo5myWWp/pOw9zQvSYg07NvC6e5ezg+Z+y7uK81wRaPyQ+C4EcnHSUdRW+qulegQj2J5NE6oODkqAN48LLygpqWgOrE+PO5e77XpukXM8YgXHAJYOA9PpXA7ofnzgXQWZuP1x8a7A3Tr7G1sO9CmH+JPq1GdoTuAQq4zhqNvoO6/b3KsEwHfCxSRJpIfgsup/flie76chQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FTV7A0iaZy/V8QnBmwmsx8+30WJR7SEwpejB2AlZQ6U=; b=Dghvox3waHDK8tS0BMt/Waxx4I4H0phH7dSVgMiVurRFucfgBMOBbo8MrZJwN2m5JmTe6vhAIU+ZVGuqmYXEHO1kCc4tOXB3CaXyom5NHIOEW5bci5FDZXFXsZWacZlNZ79n3R6K8E2hMX20I2zOPgbb5eGN9Hm/zistQ0NGH4BGkeFnFPIe/aPWyDR9VlcBQ/gpaX/EIZMix9EXOCN06MLRX+JhCS92UDngVwAH8PYxdJRCtaTA+E7cR0EN+fREkCjal4Ud5dQUu+vZ6bOU7dGR1XEGanwcDc3Oec65g8IKKlUw6kv4mN9xltFDF3eVIqtC98s/M4lCyvBUmK/6Qw== Received: from DS7PR12MB5789.namprd12.prod.outlook.com (2603:10b6:8:74::21) by BN9PR12MB5384.namprd12.prod.outlook.com (2603:10b6:408:105::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Fri, 10 Feb 2023 21:20:44 +0000 Received: from DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::3d2e:1f83:5259:9893]) by DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::3d2e:1f83:5259:9893%3]) with mapi id 15.20.6086.019; Fri, 10 Feb 2023 21:20:44 +0000 From: "Jeff Brasen" To: "Kinney, Michael D" , "devel@edk2.groups.io" , "Demeter, Miki" 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: AQHZDl/QhXMlNj8y/0e/PqccY8bHO666lZ4QgAzxmnCAAF9ygIAA2VowgAA0RYCAAA7XQIAACicA////+HA= Date: Fri, 10 Feb 2023 21:20:44 +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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DS7PR12MB5789:EE_|BN9PR12MB5384:EE_ x-ms-office365-filtering-correlation-id: 04499e4b-72db-4b58-bcdd-08db0bacab62 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3UpOZKAfP0O5Y2L7ymbfxoK8ghbFcnrIgwthF4JeuYGGjqcmXSkaulTQcn3YJEXqEOLPizzUcmm/mH1LTZqKzfz3l7rriJmemQuLEtRnkkNPbD9L5fCUdOaPAAWJqNzQLJzimpTJA1V3aH6B2uuVZi62M+mftkObHWHvWYTYEyETCyXrSEOWMRAMYqqhZMRYk7ioqJyHl0T07B5YEVZvFNW+/HjTpOFNo0dwVf9+rM+6wgkQxbbs0vLOjDyShXqUsJpvmp4m0xAkmJOku2Q0JcS7BWZO9+h4ycFxU945Xffiu7XdEH73HrToauqi85S6uZM3I1Ol7Kyr/x4CfSxPD6xKctRlZkgb/tu68Ih9+vfjSYReXWPcm1HXzTsFJD7RNJliewT+Wwjxh74wyZNVce0rdqnb88WWm2qsTgFn2+HR6PhR/bZz5CTxwwk7dAUiprIBzccNw0n6oLVD0+QHnNutgmwI6c9Fwagcfx4IOs2aR7o53d4Op+N6rFhbhVCIAv8vaFpM/x15Y+neJjOkNDkLUBvNQvJDZgVdgucWRh91vTJi62O6c24emnyb/CIphWAX8oobuw+4eZXmYuIPLwxWm664+/7qt9oziYbVB5pYfbqTUBESLhZ4QsL1IwCkcu5ZfwKYBzX/WqnunaUXH/39Vnps8qreARB1ZxIWfvvz0UfNtbwSXY+CAJ6WY8IbtmRDLkjYb8dNuiRoM9euVIEOeuID9mfxjHjSrTAM0I8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5789.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(136003)(366004)(346002)(376002)(396003)(39860400002)(451199018)(8936002)(2906002)(66899018)(33656002)(186003)(83380400001)(66446008)(478600001)(316002)(66556008)(8676002)(64756008)(76116006)(7696005)(966005)(66946007)(66476007)(26005)(6506007)(9686003)(53546011)(52536014)(110136005)(55016003)(71200400001)(41300700001)(38070700005)(5660300002)(38100700002)(86362001)(122000001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VUhqbjhtNHF5NGt1bVZ0OGxXcXJzNXRJNXlIV0RQSlVpekpZV0tieXA4eUc1?= =?utf-8?B?cUxibE1yTkwzSzNFTU1kMC9YMDR5cll2YzFQZ2dMcE9Da1RZU2tZdml5MmJt?= =?utf-8?B?Sm1xYm41OFNVaWNrWUg0NlA0eEtpQ1hiOTlJQnRrWHVHY0Y4NDViWlUrL1Vu?= =?utf-8?B?TDBRNFpZNXFjTWFoVDhrOEs3R3c3bm9qd3ZSdnRUaWpld0I1bzZRdC8vejlR?= =?utf-8?B?dG9UbE1RZk4xeTlvS1FXb3dsTWpGR2QwVFN5Qmo5WVZvdmc1TmlHK3BMMjRj?= =?utf-8?B?V0JNZFNGdGpCcVBaR3ZNS3dseU1IWkRzdllRY293a0VBMEw4VUU1N0pVMTc3?= =?utf-8?B?aDFCakpGczRFVFg1QXI0aDk4K1NpS05mbWV0SXR4bTlHU1ltVlRoVnJGMXJT?= =?utf-8?B?blFwV2dyR2NmMjdyY0NBMVZLSDFybms0WFdkR25GTlZLL3VzQkE4aG1vV043?= =?utf-8?B?QVE1SVgwdlRKbTVsUm1RTjJQUkMwQ2ZocXdDdSthb1B2NmVZS0EyVUhJUXY5?= =?utf-8?B?YWVqRklRNGkvTldiNkVYWlVxREd1VFVYZzdtM3NLL1BQVzRkUDNCVWJxRnBi?= =?utf-8?B?ZGs5Y0lzZ0l2ZFQ2YWhhSjAzbjFuLzNQY1BEOXR1cmtxTmwyaHhtQzB5eDUv?= =?utf-8?B?cjBxQmpjckE3RWVhd21oQWJSZnJmY0JSdGVCTWVBNU9HQ1ZzY1AyaXlTbkpW?= =?utf-8?B?OUlPT1RKZ2g4NUlmL0U1V0E2dnRiaFpzVVZRSzB0ektFZzl0UGRhTlQrYklU?= =?utf-8?B?RkFlU2FVWGloK0ExQ3k4ZzJIZXBCcHNDNWlRV1NmRVdRd1ZKbFZia1dzbFor?= =?utf-8?B?cTlmL0VDWHN5QzlwNXZpRk81TDBVSXIvdmZ4NENlNktVMm1XVldFZUp4aWFV?= =?utf-8?B?ZWE5WTZaS3A0WlgrM3RsWHo0RmV4Sm9VNktEWVVJZkh6Tk5kMndkc0hPVUFo?= =?utf-8?B?TWhHNWl6ZllCeGZvNFJhSWcwNWRNMmRWYTlQWmdKY1lUR1NvTk1TdnlxdEgv?= =?utf-8?B?VnZheFFIaFNUUkNFMDl0QmtwVjhERkJWSmd2Z2dnaCt4TXlRTC9ncTFjZjNs?= =?utf-8?B?eDRPMnVHaHJlVHVLMGpnQzc2VGllenF4bkNkOG5JZzl4WTl0Uk1qMkdldjVi?= =?utf-8?B?Y01DdDVPSWd5emQ3Yk02OUVRSGU1WGhOdklxOEx6Y20zVWNEbWRrdVFDanhP?= =?utf-8?B?L2hxY2Z4dHI3MG5KZ1NKS1VReHc5RStKVmsxUmNTMVFxekM2N0JaNS9kenVV?= =?utf-8?B?aHhnZDNveVZXbFR6SXJxcXlkNW9PS0t3R3BGZ0V2UUlSYTZkTjVrM1RCMnY5?= =?utf-8?B?OU1VTEIwd3lCNzJNTlp4MkVRd2hTVFV6aGxMSWhaN2lOL1ZHQVJhZVEzTFN0?= =?utf-8?B?bk05MGlZTm1TZER5eHpoWVFIT29xQUtQMTdzaWUvT3ppZ0kybVNOeDhsM0Rw?= =?utf-8?B?L1EyTlU1SWtPeVNXTjhheVlybFhTMVRTVjVySEN6UkIvRjd0ajJvaTlPTHda?= =?utf-8?B?ZURyZHYzdUNwQUNEYWxZMzR6aEtTdUhGRHdOeEZoVTlzWGIyZ01LYWh1U0JM?= =?utf-8?B?dWlVd1RGOGkrVHJyWUVpQkU2NHlEVytCbHppQlp4T2tZTFV5UWFDUFBLelZC?= =?utf-8?B?cjZjN3FwcGFPMnJHaVlHMzBrQzRWSzB6d2FxaW9vWi91Nno3UGkxc2x6RTRU?= =?utf-8?B?WlAzUXQ2ZnRoT2pYZStXUzhFaUdWK3c1L1pIQlZKTzhaOGd1NHlkY2tRSzln?= =?utf-8?B?YzFOcFlKYVRCWTdNc1dIUi8xZlIyeFJpMFAxWjdOZ0xyZHdFY1Zsa0UzVlhX?= =?utf-8?B?bFlZbWdqbjFld2ZFbUFBYSt0N1R0UWVLby9NdVRYWTB5RlpMUFNlMExWOVB4?= =?utf-8?B?SEsvNElUY2k1eW0weStjV0tTcTFIY2c0VGVrTk9Yc3RidEdicVlwU3czSjM3?= =?utf-8?B?L2VJRE9PMXA0Z1JJWW9NSGtrb2ZCN1VCSnIyQURjeHByWGNiOWh2aWRBdGQv?= =?utf-8?B?M1E1RVd3Zk8xOHdDMDNsdDA5cjBkNUhKNWp0N2M4emVzVGgrZVZBTzdhOXV6?= =?utf-8?B?UlZ4TDhtMkk2Ny9kTk1FSjhObVdtaklVYjhDZTJzQVVldUk3THlIWjlsRnFp?= =?utf-8?Q?I8+QTS0EZ2+5v/bXfJGWsvxzr?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5789.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04499e4b-72db-4b58-bcdd-08db0bacab62 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2023 21:20:44.0400 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /0dyIdEQKI5CDBHBswZpQzKErodjI2GC1oHO7GHvP6Lx831vgujfqvmTP+3fzNZGLOf6RyVTO+Yv7xGJaCs4sg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5384 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhpcyBpcyB1bmNsZWFyIGluIG15IG9waW5pb24uIFRoZSBzcGVjIGRvZXMgaGF2ZQ0KVGhpcyBu dW1iZXIgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBuYW1lc3BhY2Ugb2YgdGhlIEltYWdlVHlw ZUlkIEdVSUQgYW5kIEltYWdlSW5kZXguIEFuZA0KRm9yIGltcGxlbWVudGF0aW9ucyB0aGF0IHdp bGwgbmV2ZXIgaGF2ZSBtb3JlIHRoYW4gb25lIGluc3RhbmNlIGEgemVybyBjYW4gYmUgdXNlZC4N Cg0KQnV0IGl0IGFsc28gc3RhdGVzIHRoZSBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwgYW5kIHN0YXRl cyB0aGF0IHplcm8gY2FuIGJlIHVzZWQgd2hlbiBpZiBpdCBpcyBub3QgYWJsZSB0byBkZXRlcm1p bmUgYSB1bmlxdWUgaGFyZHdhcmUgaW5zdGFuY2UgbnVtYmVyIG9yIGEgaGFyZHdhcmUgaW5zdGFu Y2UgbnVtYmVyIGlzIG5vdCBuZWVkZWQuDQoNCkkgY291bGQgc2VlIHJlYXNvbmFibGUgYXJndW1l bnRzIG9uIGJvdGggc2lkZXMuDQoNCi1KZWZmDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KPiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDEwLCAyMDIzIDI6MTcgUE0NCj4gVG86IGRldmVs QGVkazIuZ3JvdXBzLmlvOyBKZWZmIEJyYXNlbiA8amJyYXNlbkBudmlkaWEuY29tPjsgRGVtZXRl ciwNCj4gTWlraSA8bWlraS5kZW1ldGVyQGludGVsLmNvbT4NCj4gQ2M6IEtpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRl dmVsXSBbUEFUQ0ggdjJdIE1kZU1vZHVsZVBrZy9Fc3J0Rm1wRHhlOiBTdXBwb3J0DQo+IG11bHRp cGxlIGRldmljZXMgd2l0aCAwIEhhcmR3YXJlSW5zdGFuY2UNCj4gDQo+IEV4dGVybmFsIGVtYWls OiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+IA0KPiANCj4gQmFz ZWQgb24gVUVGSSBTcGVjLCB3b3VsZCB5b3UgY29uc2lkZXIgdGhvc2Ugb3B0aW9uIHJvbXMgdG8g YmUgbm9uLQ0KPiBjb25mb3JtYW50Pw0KPiANCj4gTWlrZQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIEplZmYNCj4gPiBCcmFzZW4gdmlhIGdyb3Vwcy5pbw0K PiA+IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkgMTAsIDIwMjMgMTI6NDMgUE0NCj4gPiBUbzogS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgRGVtZXRlciwgTWlraSA8bWlraS5kZW1ldGVyQGludGVsLmNvbT4NCj4g PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL0VzcnRG bXBEeGU6DQo+IFN1cHBvcnQNCj4gPiBtdWx0aXBsZSBkZXZpY2VzIHdpdGggMCBIYXJkd2FyZUlu c3RhbmNlDQo+ID4NCj4gPiBJdCB3YXMgbm90IGFzIHdlIHdlcmUgc2VlaW5nIGRldmljZXMgZXhw b3NlIEZNUCB2aWEgYW4gb3B0aW9uIHJvbQ0KPiA+IGRyaXZlciB3aXRoIFZlcnNpb24gPT0gMyBh bmQgSGFyZHdhcmVJbnN0YW5jZSA9IDAuIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBvZg0KPiB0aGVz ZSBkZXZpY2UgaXQgd291bGQgaGl0IHRoZSBlcnJvciBpbiB0aGUgRXNydENvZGUuIFRoZSBwYXRj aCBpbmNsdWRlZCBkb2VzDQo+IHJlc29sdmUgdGhlIGlzc3VlcyB3ZSB3ZXJlIHNlZWluZy4NCj4g Pg0KPiA+IC1KZWZmDQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4gPiA+IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkgMTAsIDIwMjMgMTI6NDggUE0NCj4gPiA+ IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgSmVmZiBCcmFzZW4gPGpicmFzZW5AbnZpZGlhLmNv bT47IERlbWV0ZXIsDQo+ID4gPiBNaWtpIDxtaWtpLmRlbWV0ZXJAaW50ZWwuY29tPg0KPiA+ID4g Q2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBNZGVNb2R1bGVQa2cvRXNydEZt cER4ZToNCj4gPiA+IFN1cHBvcnQgbXVsdGlwbGUgZGV2aWNlcyB3aXRoIDAgSGFyZHdhcmVJbnN0 YW5jZQ0KPiA+ID4NCj4gPiA+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxp bmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4gPg0KPiA+ID4NCj4gPiA+IERpZCB5b3VyIG9yaWdpbmFs IGFwcHJvYWNoIHdvcmsgZm9yIGFsbCB5b3VyIHVzZSBjYXNlcz8NCj4gPiA+DQo+ID4gPiBNaWtl DQo+ID4gPg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9t OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBP Zg0KPiA+ID4gPiBKZWZmIEJyYXNlbiB2aWEgZ3JvdXBzLmlvDQo+ID4gPiA+IFNlbnQ6IEZyaWRh eSwgRmVicnVhcnkgMTAsIDIwMjMgODo0NSBBTQ0KPiA+ID4gPiBUbzogS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiA+ID4gZGV2ZWxAZWRrMi5ncm91 cHMuaW87IERlbWV0ZXIsIE1pa2kgPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+DQo+ID4gPiA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBNZGVNb2R1bGVQa2cvRXNydEZtcER4 ZToNCj4gPiA+IFN1cHBvcnQNCj4gPiA+ID4gbXVsdGlwbGUgZGV2aWNlcyB3aXRoIDAgSGFyZHdh cmVJbnN0YW5jZQ0KPiA+ID4gPg0KPiA+ID4gPiBUaGF0IHdhcyBteSBvcmlnaW5hbCBhcHByb2Fj aCB3aGVuIEkgc2F3IHRoaXMgYnV0IEkgd2FzIHNlZWluZw0KPiA+ID4gPiB0aGlzIG9jY3VyIG9u IGEgZGV2aWNlIHdpdGggRm1wVmVyc2lvbiA9PSAzLiBUaGUgVUVGSSBzcGVjIGlzbid0DQo+ID4g PiA+IGNvbXBsZXRlbHkNCj4gPiA+IGNsZWFyIGJ1dCBjb3VsZCBiZSByZWFkIHRoYXQgMCBpcyBs ZWdhbCBpZiB0aGlzIHBhcnQgaXNuJ3QgYmVpbmcgdXNlZC4NCj4gPiA+ID4NCj4gPiA+ID4NCj4g PiA+DQo+IGh0dHBzOi8vdWVmaS5vcmcvc3BlY3MvVUVGSS8yLjEwLzIzX0Zpcm13YXJlX1VwZGF0 ZV9hbmRfUmVwb3J0aW5nLmh0DQo+ID4gPiBtDQo+ID4gPiBsDQo+ID4gPiA+ICNlZmktZmlybXdh cmUtbWFuYWdlbWVudC1wcm90b2NvbC1nZXRpbWFnZWluZm8NCj4gPiA+ID4NCj4gPiA+ID4gSXQg ZG9lcyBzdGF0ZSB0aGF0IHRoaXMgaXMgT3B0aW9uYWwsIGFuZCBoYXMgYSBzdGF0ZW1lbnQgIkEg emVybw0KPiA+ID4gPiBtZWFucyB0aGUgRk1QIHByb3ZpZGVyIGlzIG5vdCBhYmxlIHRvIGRldGVy bWluZSBhIHVuaXF1ZSBoYXJkd2FyZQ0KPiA+ID4gPiBpbnN0YW5jZQ0KPiA+ID4gbnVtYmVyIG9y IGEgaGFyZHdhcmUgaW5zdGFuY2UgbnVtYmVyIGlzIG5vdCBuZWVkZWQuIg0KPiA+ID4gPg0KPiA+ ID4gPiBBbHNvLCBvdXIgRVNSVCBpbXBsZW1lbnRhdGlvbiBqdXN0IG1lcmdlcyBhbGwgaW5zdGFu Y2VzIHRvIG9uZQ0KPiA+ID4gPiBhbnl3YXlzIHNvIGl0IGRvZXNuJ3QgY3VycmVudGx5IGNvbnN1 bWUgdGhlIGhhcmR3YXJlIGluc3RhbmNlDQo+ID4gPiA+IGV4Y2VwdCBmb3IgdGhpcw0KPiA+ID4g Y2hlY2suDQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5rcywNCj4gPiA+ID4gSmVmZg0KPiA+ID4gPg0K PiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IFNl bnQ6IFRodXJzZGF5LCBGZWJydWFyeSA5LCAyMDIzIDg6NDMgUE0NCj4gPiA+ID4gPiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IEplZmYgQnJhc2VuIDxqYnJhc2VuQG52aWRpYS5jb20+Ow0KPiA+ ID4gPiA+IERlbWV0ZXIsIE1pa2kgPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+DQo+ID4gPiA+ID4g Q2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIIHYyXSBNZGVNb2R1bGVQa2cvRXNydEZtcER4ZTogU3Vw cG9ydA0KPiA+ID4gPiA+IG11bHRpcGxlIGRldmljZXMgd2l0aCAwIEhhcmR3YXJlSW5zdGFuY2UN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5n IGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhp IEplZmYsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGFuayB5b3UgZm9yIHRoZSByZW1pbmRlci4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgYW0gd29uZGVyaW5nIGlmIHRoZSBjaGVjayBzaG91bGQg YmUgZm9yIEZtcFZlcnNpb24gPCAzIGFuZCBub3QNCj4gPiA+ID4gPiBGbXBIYXJkd2FyZUluc3Rh bmNlICE9IDAuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJdCBpcyBwb3NzaWJsZSBmb3IgYW4gRm1w SW5mb0J1ZmZlciB0byBoYXZlIGFuIEZtcFZlcnNpb24gPj0gMw0KPiA+ID4gPiA+IGFuZCBhIEhh cmR3YXJlSW5zdGFuY2Ugb2YgMC4gIElmIG1vcmUgdGhhbiBvbmUgb2YgdGhlc2UgaXQNCj4gPiA+ ID4gPiBmb3VuZCwgdGhlbiB0aGF0IHdvdWxkIGJlIGFuIEVGSV9VTlNVUFBPUlRFRCBjb25kaXRp b24uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJZiBGbXBWZXJzaW9uID49IDMsIHRoZW4gdGhlIEhh cmR3YXJlSW5zdGFuY2UgbXVzdCBiZSBmaWxsZWQgaW4NCj4gPiA+ID4gPiB3aXRoIGEgdW5pcXVl IHZhbHVlLiAgMCBjYW4gYmUgdXNlZCBpZiB0aGVyZSBpcyBhdCBtb3N0IDENCj4gPiA+ID4gPiBp bnN0YW5jZSwgc28gdGhlIGR1cGxpY2F0ZSBjaGVjayB3b3VsZCBuZXZlciBiZSB0cmlnZ2VyZWQu ICBJZg0KPiA+ID4gPiA+IEZtcFZlcnNpb24gPj0gMyBhbmQgdGhlcmUgY2FuIGJlIG1vcmUgdGhl biBvbmUgaW5zdGFuY2UsIHRoZW4NCj4gPiA+ID4gPiB0aGUgSGFyZHdhcmVJbnN0YW5jZSBtdXN0 IGJlIGEgbm9uLXplcm8gdW5pcXVlIHZhbHVlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmtz LA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gTWlrZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiA+ID4gPiA+IEpl ZmYgQnJhc2VuIHZpYSBncm91cHMuaW8NCj4gPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBGZWJy dWFyeSA5LCAyMDIzIDI6MDMgUE0NCj4gPiA+ID4gPiA+IFRvOiBEZW1ldGVyLCBNaWtpIDxtaWtp LmRlbWV0ZXJAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gRlc6IFtQQVRDSCB2Ml0NCj4gTWRl TW9kdWxlUGtnL0VzcnRGbXBEeGU6DQo+ID4gPiA+ID4gU3VwcG9ydA0KPiA+ID4gPiA+ID4gbXVs dGlwbGUgZGV2aWNlcyB3aXRoIDAgSGFyZHdhcmVJbnN0YW5jZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+IEhlcmUgaXMgYSBwYXRjaCB0aGF0IGhhcyBiZWVuIHBlbmRpbmcgZm9yIGEgYml0DQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiA+ID4gSmVmZg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4g PiBGcm9tOiBKZWZmIEJyYXNlbg0KPiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFy eSAxLCAyMDIzIDk6MjEgQU0NCj4gPiA+ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+ID4gPiA+ID4gQ2M6IGppYW4uai53YW5nQGludGVsLmNvbTsgZ2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuOw0KPiA+ID4gPiA+ID4gZ3VvbWluLmppYW5nQGludGVsLmNvbQ0KPiA+ID4gPiA+ID4g U3ViamVjdDogUkU6IFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL0VzcnRGbXBEeGU6IFN1cHBvcnQN Cj4gPiA+ID4gPiA+IG11bHRpcGxlIGRldmljZXMgd2l0aCAwIEhhcmR3YXJlSW5zdGFuY2UNCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBbnkgdXBkYXRlcyBvbiB0aGlzIHdvdWxkIGJlIGdyZWF0 IHRvIGdldCB0aGlzIGluIGZvciB0aGUgbmV4dA0KPiA+ID4gPiA+ID4gc3RhYmxlIHJlbGVhc2UN Cj4gPiA+ID4gPiBpZiBwb3NzaWJsZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+IEZyb206IEplZmYgQnJhc2VuIDxq YnJhc2VuQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIg MTIsIDIwMjIgMTI6MjcgUE0NCj4gPiA+ID4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+ID4gPiA+ID4gPiA+IENjOiBqaWFuLmoud2FuZ0BpbnRlbC5jb207IGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbjsNCj4gPiA+ID4gPiA+ID4gZ3VvbWluLmppYW5nQGludGVsLmNvbTsgSmVmZiBC cmFzZW4gPGpicmFzZW5AbnZpZGlhLmNvbT4NCj4gPiA+ID4gPiA+ID4gU3ViamVjdDogW1BBVENI IHYyXSBNZGVNb2R1bGVQa2cvRXNydEZtcER4ZTogU3VwcG9ydA0KPiA+ID4gPiA+ID4gPiBtdWx0 aXBsZSBkZXZpY2VzIHdpdGggMCBIYXJkd2FyZUluc3RhbmNlDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IFNraXAgZXJyb3IgY2hlY2sgaWYgSGFyZHdhcmVJbnN0YW5jZSBpcyAwIGFzIHRo aXMgZWl0aGVyDQo+ID4gPiA+ID4gPiA+IG1lYW5zIHRoYXQgRm1wVmVyc2lvbiA8IDMgYW5kIG5v dCBzdXBwb3J0ZWQgb3IsICJBIHplcm8NCj4gPiA+ID4gPiA+ID4gbWVhbnMgdGhlIEZNUCBwcm92 aWRlciBpcyBub3QgYWJsZSB0byBkZXRlcm1pbmUgYSB1bmlxdWUNCj4gPiA+ID4gPiA+ID4gaGFy ZHdhcmUgaW5zdGFuY2UgbnVtYmVyIG9yIGEgaGFyZHdhcmUgaW5zdGFuY2UgbnVtYmVyIGlzDQo+ ID4gPiA+ID4gPiA+IG5vdCBuZWVkZWQuIiBwZXIgVUVGSQ0KPiA+ID4gc3BlY2lmaWNhdGlvbi4N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQXMgdGhlIEZtcEluc3RhbmNlcyBhcmUgbWVy Z2VkIGFuZCBIYXJkd2FyZUluc3RhbmNlIGlzIG5vdA0KPiA+ID4gPiA+ID4gPiB1c2VkIHJlbW92 ZSBlcnJvciBjaGVjayBpbiB0aGlzIGNhc2UuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEplZmYgQnJhc2VuIDxqYnJhc2VuQG52aWRp YS5jb20+DQo+ID4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gPiAgTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9Fc3J0Rm1wRHhlL0VzcnRGbXAuYyB8IDIyDQo+ID4gPiArKysrKysrKysrKystLQ0K PiA+ID4gPiA+IC0tLS0NCj4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ICAxIGZpbGUg Y2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRXNydEZt cER4ZS9Fc3J0Rm1wLmMNCj4gPiA+ID4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Vz cnRGbXBEeGUvRXNydEZtcC5jDQo+ID4gPiA+ID4gPiA+IGluZGV4IDRmNDdjNTVjY2UuLjViYzYy NzQ2MWQgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwv RXNydEZtcER4ZS9Fc3J0Rm1wLmMNCj4gPiA+ID4gPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9Fc3J0Rm1wRHhlL0VzcnRGbXAuYw0KPiA+ID4gPiA+ID4gPiBAQCAtMTUzLDE2ICsx NTMsMjAgQEAgQ3JlYXRlRXNydEVudHJ5ICgNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g ICAgLy8NCj4gPiA+ID4gPiA+ID4gICAgLy8gQ2hlY2sgdG8gc2VlIG9mIEZtcEltYWdlSW5mb0J1 ZiBHVUlEL0hhcmR3YXJlSW5zdGFuY2UNCj4gPiA+ID4gPiA+ID4gaXMgdW5pcXVlDQo+ID4gPiA+ ID4gPiA+ICsgIC8vIFNraXAgaWYgSGFyZHdhcmVJbnN0YW5jZSBpcyAwIGFzIHRoaXMgaXMgdGhl IGNhc2UgaWYNCj4gPiA+ID4gPiA+ID4gKyBGbXBWZXJzaW9uIDwNCj4gPiA+ID4gPiA+ID4gKyAz ICAvLyBvciB0aGUgZGV2aWNlIGNhbiBub3QgY3JlYXRlIGEgdW5pcXVlIElEIHBlciBVRUZJDQo+ ID4gPiA+ID4gPiA+ICsgc3BlY2lmaWNhdGlvbg0KPiA+ID4gPiA+ID4gPiAgICAvLw0KPiA+ID4g PiA+ID4gPiAtICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCAqTnVtYmVyT2ZEZXNjcmlwdG9yczsg SW5kZXgrKykgew0KPiA+ID4gPiA+ID4gPiAtICAgIGlmIChDb21wYXJlR3VpZCAoJkhhcmR3YXJl SW5zdGFuY2VzW0luZGV4XS5JbWFnZVR5cGVHdWlkLA0KPiA+ID4gPiA+ID4gPiAmRm1wSW1hZ2VJ bmZvQnVmLT5JbWFnZVR5cGVJZCkpIHsNCj4gPiA+ID4gPiA+ID4gLSAgICAgIGlmIChIYXJkd2Fy ZUluc3RhbmNlc1tJbmRleF0uSGFyZHdhcmVJbnN0YW5jZSA9PQ0KPiA+ID4gPiA+ID4gPiBGbXBI YXJkd2FyZUluc3RhbmNlKSB7DQo+ID4gPiA+ID4gPiA+IC0gICAgICAgIERFQlVHICgoREVCVUdf RVJST1IsICJFc3J0Rm1wRHhlOiBEdXBsaWNhdGUgZmlybXdhcmUNCj4gPiA+IGltYWdlDQo+ID4g PiA+ID4gPiA+IGRlc2NyaXB0b3Igd2l0aCBHVUlEICVnIEhhcmR3YXJlSW5zdGFuY2U6MHgleFxu IiwNCj4gPiA+ID4gPiAmRm1wSW1hZ2VJbmZvQnVmLQ0KPiA+ID4gPiA+ID4gPiA+SW1hZ2VUeXBl SWQsIEZtcEhhcmR3YXJlSW5zdGFuY2UpKTsNCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgQVNTRVJU ICgNCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAhQ29tcGFyZUd1aWQNCj4gKCZIYXJkd2FyZUlu c3RhbmNlc1tJbmRleF0uSW1hZ2VUeXBlR3VpZCwNCj4gPiA+ID4gPiA+ID4gJkZtcEltYWdlSW5m b0J1Zi0+SW1hZ2VUeXBlSWQpIHx8DQo+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgSGFyZHdhcmVJ bnN0YW5jZXNbSW5kZXhdLkhhcmR3YXJlSW5zdGFuY2UgIT0NCj4gPiA+ID4gPiA+ID4gRm1wSGFy ZHdhcmVJbnN0YW5jZQ0KPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICk7DQo+ID4gPiA+ID4gPiA+ IC0gICAgICAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQo+ID4gPiA+ID4gPiA+ICsgIGlmIChG bXBIYXJkd2FyZUluc3RhbmNlICE9IDApIHsNCj4gPiA+ID4gPiA+ID4gKyAgICBmb3IgKEluZGV4 ID0gMDsgSW5kZXggPCAqTnVtYmVyT2ZEZXNjcmlwdG9yczsgSW5kZXgrKykgew0KPiA+ID4gPiA+ ID4gPiArICAgICAgaWYgKENvbXBhcmVHdWlkDQo+ID4gPiA+ID4gPiA+ICsgKCZIYXJkd2FyZUlu c3RhbmNlc1tJbmRleF0uSW1hZ2VUeXBlR3VpZCwNCj4gPiA+ID4gPiA+ID4gJkZtcEltYWdlSW5m b0J1Zi0+SW1hZ2VUeXBlSWQpKSB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGlmIChIYXJkd2Fy ZUluc3RhbmNlc1tJbmRleF0uSGFyZHdhcmVJbnN0YW5jZSA9PQ0KPiA+ID4gPiA+ID4gPiBGbXBI YXJkd2FyZUluc3RhbmNlKSB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgREVCVUcgKChERUJV R19FUlJPUiwgIkVzcnRGbXBEeGU6IER1cGxpY2F0ZQ0KPiA+ID4gPiA+ID4gPiArIGZpcm13YXJl IGltYWdlDQo+ID4gPiA+ID4gPiA+IGRlc2NyaXB0b3Igd2l0aCBHVUlEICVnIEhhcmR3YXJlSW5z dGFuY2U6MHgleFxuIiwNCj4gPiA+ID4gPiAmRm1wSW1hZ2VJbmZvQnVmLQ0KPiA+ID4gPiA+ID4g PiA+SW1hZ2VUeXBlSWQsIEZtcEhhcmR3YXJlSW5zdGFuY2UpKTsNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICBBU1NFUlQgKA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgIUNvbXBhcmVHdWlk DQo+ID4gPiA+ID4gPiA+ICsgKCZIYXJkd2FyZUluc3RhbmNlc1tJbmRleF0uSW1hZ2VUeXBlR3Vp ZCwNCj4gPiA+ID4gPiA+ID4gJkZtcEltYWdlSW5mb0J1Zi0+SW1hZ2VUeXBlSWQpIHx8DQo+ID4g PiA+ID4gPiA+ICsgICAgICAgICAgICBIYXJkd2FyZUluc3RhbmNlc1tJbmRleF0uSGFyZHdhcmVJ bnN0YW5jZSAhPQ0KPiA+ID4gPiA+ID4gPiBGbXBIYXJkd2FyZUluc3RhbmNlDQo+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgICApOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgIHJldHVybiBFRklf VU5TVVBQT1JURUQ7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIH0NCj4gPiA+ID4gPiA+ID4gICAg ICAgIH0NCj4gPiA+ID4gPiA+ID4gICAgICB9DQo+ID4gPiA+ID4gPiA+ICAgIH0NCj4gPiA+ID4g PiA+ID4gLS0NCj4gPiA+ID4gPiA+ID4gMi4yNS4xDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KDQo=