From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.5135.1607684286663498843 for ; Fri, 11 Dec 2020 02:58:06 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=bitH5pbE; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: ray.ni@intel.com) IronPort-SDR: vIYH+cO8cyjmiJaKU8r3m2cFJksPJZNkC+e9fLdaN9lfoOOORd5luzRADSQPdGL4ayKXZY3SX5 SJ6alkpYUhEQ== X-IronPort-AV: E=McAfee;i="6000,8403,9831"; a="174527254" X-IronPort-AV: E=Sophos;i="5.78,411,1599548400"; d="scan'208";a="174527254" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Dec 2020 02:58:05 -0800 IronPort-SDR: EjKKQbhI++BtISd1/XK1AdM80npEw3OdVjLMcBybTDs5jjJ/mouBn8seZP8S/W7E5b7Y5yV+1i vUN35ISHzA9A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,411,1599548400"; d="scan'208";a="409157093" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga001.jf.intel.com with ESMTP; 11 Dec 2020 02:58:04 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 11 Dec 2020 02:58:03 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 11 Dec 2020 02:58:03 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.172) 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.1713.5; Fri, 11 Dec 2020 02:57:48 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GOzWzJxCWEA36a2JhJ5XsNHRZYw/M98FzOIZ5nP/qB+5h0+jyz6KkYPdjjVJDCnPVZgS1TtSfvPrWCvDtmg4pbjbIBBdexJK3hYN7YB2p33CfcM7RIZoO8umT+fQUyP6KIqtXc+ndUUwMiweBkGxgCpVuSFDkswZPvvEueDxiSajefp0tOGD/UNdsuCgf9SNPQa/SezhBcxr7GzEmlEC+upAmrU4R2cl9czkSTer1jcGhZrBUM/uH4C9lMQ7sM4ZCfpcjtrxzga8PtLQibam9qTFjFl5aE50h6YvAzixtc9NWT7N/Be75JFEU6ae/e1mXT+T0+x2SZCY+7GSdaNdlg== 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-SenderADCheck; bh=Lr2RVHwePbQuU/4/+GhgwmAdSoFTxcnD4vNm6leO8mE=; b=ThekZslgN3EO69dfZt0QhXaV/vpC3EKIIrqJ5mcOWyzfmi4DFCa0Ma0B+6aypVAAk6arGpM4EM4ceE/cYijZzejR+VXS0jBdVf/GTWnZbsv1FBpJJ6gL6ZLN1AdswTetbcLDg2JARhEr/YRL3arUcl6CmBmYRB4zO1lA3OI87zJixoDyWZTFoxAYG48EYpjIxjmJbFwbYm8mDvVF7VFaQwOGA33YgSKgPQ3DqwojMqO46a5fnrIKe3el4eDB0EciPbCUNqBHcHngRNnqPKDhtqPxuGt2+PaOubc2GuRm4hiDtBzlDp6SBYj/Saw2vG7G2GU2uHIk1msYa0oXbbLOIw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Lr2RVHwePbQuU/4/+GhgwmAdSoFTxcnD4vNm6leO8mE=; b=bitH5pbEGIDnT2S+kex6SoFX2KehxpZI5TbELgIW/20z0/Ovd8asVxIIaMQm5GJS6ZZm9lWFybHc0R/7Ts9WrlW6JCx/544d48k9oT00+T+6rkOXzjpr//FQrBy+kWt8E71tyC3Pk16Rvl+zKONXpgFfYm2cgUnhK0kp1Z4xFhQ= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by CO1PR11MB4996.namprd11.prod.outlook.com (2603:10b6:303:90::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.14; Fri, 11 Dec 2020 10:57:45 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::d18:1234:c1d6:5936]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::d18:1234:c1d6:5936%7]) with mapi id 15.20.3654.017; Fri, 11 Dec 2020 10:57:45 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "cenjiahui@huawei.com" , "lersek@redhat.com" CC: "Justen, Jordan L" , "ard.biesheuvel@arm.com" , "leif@nuviainc.com" , "xieyingtai@huawei.com" , "miaoyubo@huawei.com" , "xuxiaoyang2@huawei.com" Subject: Re: [edk2-devel] [PATCH v2 0/4] Add extra pci roots support for Arm Thread-Topic: [edk2-devel] [PATCH v2 0/4] Add extra pci roots support for Arm Thread-Index: AQHWtqBENrKJKnnpqUa1Fju7q5zz4KnDAeGAgCOj1gCAC0S0IA== Date: Fri, 11 Dec 2020 10:57:45 +0000 Message-ID: References: <20201109130511.5946-1-cenjiahui@huawei.com> <5d2daf54-a57b-c4bd-a757-cf6b710cd4e5@huawei.com> In-Reply-To: <5d2daf54-a57b-c4bd-a757-cf6b710cd4e5@huawei.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.216] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4f362a7f-d89d-4326-8bda-08d89dc3976e x-ms-traffictypediagnostic: CO1PR11MB4996: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: g6u9Ib6I70d0Yss/A+2drqYobBsGo6IKt8JjkPEFPyuYrMG596ICUVgchYp53r7GN9WriKqhHdgMlbCNzGCFbB0zm58zuvR2TDTrBORqe4kFPXgcxvAHtpChL3oM1LLJhka7hf8JWJom/Z8GSsK6I5W+RLlunEMr+WIC9Ohwah+YVvIxOVyl1Zv5iItc0jJMIRpVjZz4edf8MiWT5ae09wgI7O1RvIjWJE3UaHvNY5WJ2/Bz3z4lzI7v+jryCagFskzw3uYcrWmJCOVwKISk9Zq4Cjg5KJ9DrpeJZp0OSL3oFmtJWgNDaijvIDA4Hs8Q x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(376002)(366004)(346002)(52536014)(186003)(508600001)(4326008)(5660300002)(71200400001)(76116006)(53546011)(83380400001)(110136005)(7696005)(86362001)(8676002)(26005)(66476007)(9686003)(2906002)(33656002)(64756008)(6506007)(66556008)(55016002)(66446008)(66946007)(54906003)(8936002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NG1YeHQxcjd5akhGeXhMc0xVV1JuTm5hczBHQ2hlOVo5VWFBRWU0d3FCbDI3?= =?utf-8?B?bnpRL0R3dGllbkRrbC9NazR2NnhNZk5yWGhpKzZLN3g2YlV3dG53S1pFSEkv?= =?utf-8?B?YmdaMjFGeFF0aW9mSkh5RTBJU1cyU3FKR0hjMG9QMDR3Uk8xNXNSWjJlU1RS?= =?utf-8?B?ejZRUVpYbmRiam1sSFpHS3JXNGhPdnA3OFJvMEhjeFZYNG9xU1hXZUhtcDlS?= =?utf-8?B?UjB6YldwaW8zUHJwQVRYVE85WmdmUlVrK2k1QXZHbmJTTk5ERmtPdklCcVpO?= =?utf-8?B?dWNCNnZyQWIvTldHZjB1akhKWjkveGhqWjRjdWVjN3JKYmhqMWQrSmVOV2gz?= =?utf-8?B?SVhjUTg2R2F5aUdNd2g4Y3NoTmxnTGo4R2RhMnFTSExaZTBHL3JieE5PcmJx?= =?utf-8?B?TkdES1U5R1RTdlJ0cisrYTVYM2U2cUI4SDR3cUtRYVFrM3JiZU1sOU5aUGRW?= =?utf-8?B?Mmg2bEE5V0VmblBDM3N4VVJ1NytkZGdUR09wRVdpVUhLT2pwU2xxTTdIMGgz?= =?utf-8?B?WlhPSmd6RUY3VHRhM1V4dGRFSU5UVVc5YWFBb3RvSVZQSmdhcnpwL2hNamhG?= =?utf-8?B?Mld0QnFxL0Q0NHBTaE1yZnFrbHlRTTQ1WXVra25udEY4MEVHRUdUY2dRWjRY?= =?utf-8?B?NjhUNHJ1aXpBb0JaVmc1WUU1M3JFUURQc1owN2sxcENCZWlGMTJWbllyRHh6?= =?utf-8?B?QWd0em1hUnZnQnlaOUViZHZMK0dFR2Vjc1I3UnFSZDZEaStZTGVuZVZhdElC?= =?utf-8?B?MjNaUkExM01XckNlMGwwWStydUU3dnJFOXhzVUJ0SWY0UTNOc29sREdheVFm?= =?utf-8?B?c20zU3Uvek40ZFlOZzBpNlVZRlI5U0hVdzlRMERlTGtHZnNycUdjazZoS3ZH?= =?utf-8?B?akNHaWlTV3NIVDcwRFlabStUdUtINFZIZzM4dCtzc0FBa0h3dVJ6clpEcENT?= =?utf-8?B?ZkxvWVR6TTA3ZEFGbm5PcmhqSitvdVBHL0d3ZHBCOVFrQzAzRXVrUnV0cWNS?= =?utf-8?B?dWZqSmZrTjFFclBUS2JLa3Q2VVRDc0RKdmk0b3F5M29lYmRzaUkyWnkwZ2pr?= =?utf-8?B?cUJ5Ykw3bWpYNXQ1OU05ZzV6M2hWU3hwLyt6aFBMUzRHM09CTW9vcVppMnVC?= =?utf-8?B?N3hKQ3ZTN09ITzlOcEtCaExyL2x1ZEYwbm4rWTJxdmpFaUx0M3E0eXVUbk92?= =?utf-8?B?Wnc5c21DSUF4OCtHeXYzVjJjcm9GdFR4QjhFM0lHTzF2L2JyNWhuYnJlL1FS?= =?utf-8?B?UG1KNDgvSjQ0UnkrWDB5N0ZQb2FJZGZ0Q2E0VEdqdjhCa2h6OVFva25ZdFNK?= =?utf-8?Q?ZQWCIdpHtek/w/qOdCRoIyTQ6YJtFkMKn0?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f362a7f-d89d-4326-8bda-08d89dc3976e X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2020 10:57:45.6060 (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: p/QL3tDrJli/ORHHuroeFD9FNjAkBnstX8teQWCeF9IBYMQoQodRKBzDw2Sw5CXzG3RhQLTEGL1Du0yG1e2geA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4996 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgSmlhaHVpIENlbiB2aWEg Z3JvdXBzLmlvDQo+IFNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgNCwgMjAyMCAyOjQ5IFBNDQo+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgbGVyc2VrQHJlZGhhdC5jb20NCj4gQ2M6IEp1c3Rlbiwg Sm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBhcmQuYmllc2hldXZlbEBhcm0u Y29tOyBsZWlmQG51dmlhaW5jLmNvbTsgeGlleWluZ3RhaUBodWF3ZWkuY29tOw0KPiBtaWFveXVi b0BodWF3ZWkuY29tOyB4dXhpYW95YW5nMkBodWF3ZWkuY29tDQo+IFN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW1BBVENIIHYyIDAvNF0gQWRkIGV4dHJhIHBjaSByb290cyBzdXBwb3J0IGZvciBB cm0NCj4gDQo+IEhpIExhc3psbywNCj4gDQo+IER1cmluZyB0aGUgbW9kaWZpY2F0aW9uIG9mIHRo aXMgcGF0Y2ggc2VyaWVzLCBJIGdvdCBhIGNvbmZ1c2luZyBwcm9ibGVtDQo+IHRoYXQgdGhlIEVE SzIncyBBbGlnbm1lbnQgc2VlbXMgbm90IGZpdCB3aXRoIExpbnV4IG9uIEFSTS4NCj4gDQo+IEVE SzIsIGluIENhbGN1bGF0ZVJlc291cmNlQXBlcnR1cmUsIGFsaWducyB0aGUgb2Zmc2V0IG9mIGNo aWxkIG5vZGVzDQo+IGluIGRlc2NlbmRpbmcgb3JkZXIgYW5kIHVzZXMgdGhlICpCcmlkZ2UncyBh bGlnbm1lbnQqIHRvIGFsaWduIHRoZQ0KPiB0b3RhbCBsZW5ndGggb2YgQnJpZGdlLg0KPiANCj4g SG93ZXZlciwgTGludXgsIGluIHBidXNfc2l6ZV9tZW0sIHdvdWxkIGFsaWduIHRoZSBzaXplIG9m IGNoaWxkIG5vZGVzDQo+IGFuZCB1c2UgKnRoZSBoYWxmIG9mIG1heCBhbGlnbm1lbnQgb2YgY2hp bGQgbm9kZXMqIHRvIGFsaWduIHRoZSB0b3RhbA0KPiBsZW5ndGggb2YgQnJpZGdlLg0KPiANCj4g ZWcuIEEgUm9vdCBCcmlkZ2Ugd2l0aCBCdXMgW2QyXQ0KPiAgICAgLSstWzAwMDA6ZDJdLS0tMDEu MC1bZDNdLS0tLTAxLjANCj4gICAgIHdoZXJlIFtkMjowMS4wMF0gaXMgYSBwY2llLXBjaS1icmlk Z2Ugd2l0aCBCQVIwIChtZW0sIDY0LWJpdCwgbm9uLXByZWYpIFtzaXplPTI1Nl0NCj4gICAgICAg ICAgIFtkMzowMS4wMF0gaXMgYSBQQ0kgRGV2aWNlIHdpdGggQkFSMCAobWVtLCA2NC1iaXQsIHBy ZWYpIFtzaXplPTEyOEtdDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJBUjQgKG1lbSwgNjQtYml0LCBwcmVmKSBbc2l6ZT02NE1dDQo+IA0KPiAgICAgSW4gRURL MiwgdGhlIFJlc291cmNlIE1hcCB3b3VsZCBiZToNCj4gICAgICAgICBQY2lCdXM6IFJlc291cmNl IE1hcCBmb3IgUm9vdCBCcmlkZ2UgUGNpUm9vdCgweEQyKQ0KPiAgICAgICAgIFR5cGUgPSAgTWVt NjQ7IEJhc2UgPSAweDgwMDQwMDAwMDA7ICAgICBMZW5ndGggPSAweDQyMDAwMDA7ICAgICBBbGln bm1lbnQgPSAweDNGRkZGRkYNCj4gICAgICAgICAgICBCYXNlID0gMHg4MDA0MDAwMDAwOyBMZW5n dGggPSAweDQxMDAwMDA7ICAgICBBbGlnbm1lbnQgPSAweDNGRkZGRkY7ICBPd25lciA9IFBQQiBb RDJ8MDF8MDA6KipdOyBUeXBlID0gUE1lbTY0DQo+ICAgICAgICAgICAgQmFzZSA9IDB4ODAwODEw MDAwMDsgTGVuZ3RoID0gMHgxMDA7IEFsaWdubWVudCA9IDB4RkZGOyAgICAgIE93bmVyID0gUFBC IFtEMnwwMXwwMDoxMF0NCj4gDQo+ICAgICAgICAgUGNpQnVzOiBSZXNvdXJjZSBNYXAgZm9yIEJy aWRnZSBbRDJ8MDF8MDBdDQo+ICAgICAgICAgVHlwZSA9IFBNZW02NDsgQmFzZSA9IDB4ODAwNDAw MDAwMDsgICAgIExlbmd0aCA9IDB4NDEwMDAwMDsgICAgIEFsaWdubWVudCA9IDB4M0ZGRkZGRg0K PiAgICAgICAgICAgIEJhc2UgPSAweDgwMDQwMDAwMDA7IExlbmd0aCA9IDB4NDAwMDAwMDsgICAg IEFsaWdubWVudCA9IDB4M0ZGRkZGRjsgIE93bmVyID0gUENJIFtEM3wwMXwwMDoyMF0NCj4gICAg ICAgICAgICBCYXNlID0gMHg4MDA4MDAwMDAwOyBMZW5ndGggPSAweDIwMDAwOyAgICAgICBBbGln bm1lbnQgPSAweDFGRkZGOyAgICBPd25lciA9IFBDSSBbRDN8MDF8MDA6MTBdDQo+ICAgICAgICAg VHlwZSA9ICBNZW02NDsgQmFzZSA9IDB4ODAwODEwMDAwMDsgICAgIExlbmd0aCA9IDB4MTAwOyBB bGlnbm1lbnQgPSAweEZGRg0KPiANCj4gICAgIEl0IHNob3dzIHRoYXQgd2l0aCBFREsyJ3MgYWxp Z25tZW50IFtkMjowMS4wMF0gb25seSByZXF1aXJlcw0KPiAgICAgYSBQTWVtNjQgcmVzb3VyY2Ug cmFuZ2Ugb2YgMHg0MTAwMDAwLg0KPiANCj4gICAgIEhvd2V2ZXIgaW4gTGludXgsIFtkMjowMS4w MF0ncyBCQVIxNCAoUHJlZmV0Y2hhYmxlIE1lbW9yeQ0KPiAgICAgUmVzb3VyY2UgYmVoaW5kIHRo ZSBCcmlkZ2UpIHJlcXVpcmVzIGEgUE1lbTY0IHJlc291cmNlIHJhbmdlDQo+ICAgICBvZiAweDA2 MDAwMDAwLCB3aGljaCBjb21lcyBmcm9tICgweDQwMDAwMDAgKyAweDIwMDAwKSB3aXRoDQo+ICAg ICBhbGlnbm1lbnQ9MHgxRkZGRkZGIHRoZSBoYWxmIG9mIHRoZSBtYXggYWxpZ25tZW50IDB4M0ZG RkZGRi4NCg0KSG93IGlzIDB4M0ZGRkZGRiBjYWxjdWxhdGVkPw0KMHgzRkZGRkZGID0gMHg4MDAw MDAwIC8gMiAtIDEsIGFuZCAweDgwMDAwMDAgaXMgdGhlIG1pbmltdW0gdmFsdWUgdGhhdCdzDQpw b3dlciBvZiAyIGFuZCBiaWdnZXIgdGhhbiAweDYwMDAwMDAuIElzIG15IHVuZGVyc3RhbmRpbmcg Y29ycmVjdD8NCg0KSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB0aGlzIGNhbGN1bGF0aW9uIG1ldGhv ZCBpcyBjaG9zZW4uDQpJdCBzZWVtcyBhIGtlcm5lbCBidWcgdG8gbWUuDQpJIHRob3VnaHQgTGlu dXggZG9lc24ndCBoYW5kbGUgdGhlIHBjaSByZXNvdXJjZSBhc3NpZ25tZW50IGJ1dCBqdXN0IHVz ZSB3aGF0IHdhcw0KYXNzaWduZWQgYnkgZmlybXdhcmUuDQoNCj4gDQo+IEZ1cnRoZXJtb3JlLCBM aW51eCBLZXJuZWwgd2lsbCB0cmVhdCBwY2llLXJvb3QtcG9ydCBhcyBhIGhvdHBsdWdhYmxlDQo+ IGJyaWRnZSBhbmQgdHJ5IHRvIHJlcXVpcmUgbW9yZSByZXNvdXJjZS4gQnV0IEVESzIgc2VlbXMg bm90IHN1cHBvcnQNCj4gaG90cGx1ZyBwYWRkaW5nIGZvciBBUk0/DQoNCkhvdHBsdWcgcGFkZGlu ZyBpcyBzdXBwb3J0ZWQgdGhyb3VnaCBIb3RQbHVnSW5pdCBwcm90b2NvbCBpbiBlZGsyLg0KDQo=