From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web10.2746.1610592477834818125 for ; Wed, 13 Jan 2021 18:47:58 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=k2fBaoef; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: zarcd.zhong@intel.com) IronPort-SDR: SuF3pSptHnJt3P3JB+7Lfk6mFRZgj6nG5dE3NGfcTCNSBCUsko8tv7LH1KYUAZnm/WQyKAKU3A TsQ6Vo+5afGw== X-IronPort-AV: E=McAfee;i="6000,8403,9863"; a="239841094" X-IronPort-AV: E=Sophos;i="5.79,346,1602572400"; d="scan'208,217,223";a="239841094" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2021 18:47:54 -0800 IronPort-SDR: OkRIlkBFOVsCvZCCirs9R6GY9H4SLGgcgumG9g4CEegtCaXWZI3PEIwvMy2ZP1AR7xuGVzhgf/ k7huHpjA1BCA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,346,1602572400"; d="scan'208,217,223";a="349022200" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga003.jf.intel.com with ESMTP; 13 Jan 2021 18:47:53 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.1713.5; Wed, 13 Jan 2021 18:47:53 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 13 Jan 2021 18:47:52 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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.1713.5 via Frontend Transport; Wed, 13 Jan 2021 18:47:52 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 13 Jan 2021 18:47:52 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MtHExC1aSV6Jj5yj3m4PQJDIePVJ+9l+LOma4y+Ns2/VKkLYoSRsrN47wXUgAjNC2SrLRK5on6jDZSFxc+TIJUHRw6uuDho8Nop+Fro2KWMvQv6jMop/IZWb/eA60COm0t9hExEj8ros/T7ddJcWkzartYV24Lm4rZDFJEjrKEtxMLWvwxKRGhsmsUD9ihFy3tyUIaN/Y99kADbvGNi328itmcPae9Eek44/f/Q5V7qaoIRW9N7TLTQ5tYovgoiTTm1pdpdVsCjjQ8Tw30BJhurh3aRk+R6NOAo29iAbze2cOb/zKLqir7Jd1s5aVCaQgxWqR3bhG/eirjVmms+img== 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=GfDoj8shxhsEHzJ6gSlmQ3uvuDvaKiyP7RGZJNYBfes=; b=jnqtuys9Ppimo+mt/723srLuzaH1JNmJ/6Mq4weVrjehm5meJFS3V5yspxvMMhxAXS3ZljIV75HK98Nc6TXkaXMRb5gLhPKECQIO9IS5UJolbYDuTKbFGIScbgd3nWKuXB4q08tnKwAGAZatgvCS5pWwCAdlQAnRwGaSoGxwOeGPm/ixFmggQ/Y58O3lb2cNIr/dP22t3YuzPaIjeiSsoQUhJlBU0viW0tpVOf47KRanE8Y42qEKsuxemDYSn0PDan/2SuNMvbZHOmPd3huMc0SbSnV6JTOyJTdAygmRs0IHKUHeh7YE22ExErZGd50Z5ggKR8xf2ZjS+af5hWPFjw== 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=GfDoj8shxhsEHzJ6gSlmQ3uvuDvaKiyP7RGZJNYBfes=; b=k2fBaoefrGnCg87FEYtTkfuf/Bflhf++SkDaWGGcS58kDeYzPMaw/ZHzfiWUfaIJGBm8SYz0AZga2XAKWPP9Dj3wDAp5KOlpEyXb7QcpmGYUrJROgLsVNoAjlJFCKIMLMPgJiFMYY9pqhgad9vo2UR5PGjFBkxWQmuHdll6OUjM= Received: from MWHPR11MB1309.namprd11.prod.outlook.com (2603:10b6:300:20::20) by CO1PR11MB4961.namprd11.prod.outlook.com (2603:10b6:303:93::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.9; Thu, 14 Jan 2021 02:47:52 +0000 Received: from MWHPR11MB1309.namprd11.prod.outlook.com ([fe80::a084:4090:7dee:dfb9]) by MWHPR11MB1309.namprd11.prod.outlook.com ([fe80::a084:4090:7dee:dfb9%10]) with mapi id 15.20.3742.012; Thu, 14 Jan 2021 02:47:52 +0000 From: "Zhong, Zarcd" To: "Ni, Ray" , "devel@edk2.groups.io" CC: "Wu, Hao A" , "Kinney, Michael D" Subject: Re: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in high 32bit of MEM64. Thread-Topic: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in high 32bit of MEM64. Thread-Index: AdbifqrbMhe/1KwPTxui//AvwMCRQAG+ZBhAACnK61A= Date: Thu, 14 Jan 2021 02:47:52 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 71d48958-30e5-4ab2-9e18-08d8b836c98c x-ms-traffictypediagnostic: CO1PR11MB4961: 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: B5EnWw5o/Vt6LjeEDN5HG0ozz+qBb00qq5/3KigW9RuHSHILvsQWzSRGv6qeeqcG9N/A5iJWZHqRk6cXbHmkRhDN5VKwmZeG95SyEm1RMKJCq6kwOygvO32MKl3akldS6+FQrRDYODsjAiQEgfJgcrn3Od0GRxcvl+HuzhlCeOScbSgxNjhaT1McfOA138yF1eg9jhx8ZPG1uU6YSJTP/HKbDoheOCPkCtWNF1/ViL6kAki2qGQo+V2leziS+2LTHe7TtzbYMJuYPyrwyXy5vUwJX5yqj16uRdbj9M79KA1LtXiQJ7Ow6vZbCYyWUV59dDyK0Ogwl/0Ez/UzYsMhPs/I6E7s1yyKtU0OfBygRmTxxQRLWkeyWdgsFqjE5hqw+fkNsUBtBwwzL7YSlSLzwtzFPRukcHNTuobVH4s5I82/WBs66iMMPeqgeN4djKE2vaNRTyjcrEgfbKraUwYtuA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1309.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(396003)(346002)(366004)(39860400002)(376002)(5660300002)(478600001)(316002)(110136005)(7696005)(52536014)(33656002)(107886003)(66446008)(71200400001)(54906003)(9326002)(99936003)(66476007)(66946007)(53546011)(66556008)(8936002)(55016002)(6506007)(83380400001)(76116006)(9686003)(86362001)(26005)(186003)(66616009)(166002)(4326008)(966005)(8676002)(2906002)(64756008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?+hrNHhmRlXpU+va3A8eSbHA3R+fGXOZob3X4yZwwNsC9G+sfkybLbh/cZxKk?= =?us-ascii?Q?SdyS6cLc+v1oOl0mA8ppQJSvBnjNLN41VDFMO6qmfHU1hblzGzRdvVNglpNy?= =?us-ascii?Q?KUSX5cPOz+gCUnoUpCvvqfZD6bM4M5FK5N5+gs1Ef1GBaZvVrZIv4ph0CjYa?= =?us-ascii?Q?xurCjxfbnyuX6exCO37I7Z3rSxNrqLXRQvnIhMTa0u3DirFHRJkWo8gJcNDj?= =?us-ascii?Q?FKwx4S+zafxEBzDEaryVgkxLru3l1uBkEk4+ptI+b5uoqgfm2XAq2HBSf22D?= =?us-ascii?Q?TlrSbilQlxOASZLNqKekliLLR7psqfy7uot6evZMC7AvxBZVifsTFE5FKU+S?= =?us-ascii?Q?lA4km2dTheeqICw9mKG9HY7B6NHGNzdhkOvglxlQvx0UlCx4oK+f+dnqIfW9?= =?us-ascii?Q?OjLWLXvPhJRYLGD1MxnuLtGXhfCUhJqXqkjWLmlni+kPRwrQ9lLQMvcABRXP?= =?us-ascii?Q?Vwt9auWdLJWFCC+ylbDCmfFO2V9Zp/gprh1n/oywHAjb9+XtDSsoz/emrHC5?= =?us-ascii?Q?CePOQJSZGs+X06cPdCSohc7Bp9HvA3QIXuSYA1Ii+La65NGGp0Ak9pg8cjLq?= =?us-ascii?Q?Twtbxgd0+u2V2Ul6Q0PxgME04xR0UFNvpDbUVZk32np6bfs2VwWwndekIsOW?= =?us-ascii?Q?FQEnIcAk1DdljYR+q4GXwDadjnTbmALgkS16kbE3E/rEdBHL972FqQ/Soay+?= =?us-ascii?Q?w8kv1OQKBvMoHhJ4h6Ltlq0Iwc4ejTLJUfAjMlr5XHwPWglV9+dYL7MHPNbl?= =?us-ascii?Q?EGb0f336HhBGPFyg+44AjOfdmSEZk0gaXYJhy2GGuTeeoWuuWLjCUOx9MhV0?= =?us-ascii?Q?Q/RT5g+pe4jfV4D+SIjqxauzTN7G/Kb5fImaeMPJDbHGdeUDKL5+YNwJKyp8?= =?us-ascii?Q?+3Ys0IQBSodaiVnJ74+TVogInJUgDGKyXBjjSuG+XuRBPjVrVVPQBvJDcIXY?= =?us-ascii?Q?FZ05HpXUM5n/zQJdtrKNPNexscKlVfb8Fc3S2nbBWUQ=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1309.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71d48958-30e5-4ab2-9e18-08d8b836c98c X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jan 2021 02:47:52.1086 (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: c/VgZN6Exo465nlzrqSOQKp5QHgwizaWFRdMZyqimjf85YL2kEZVYFpKS7xTHvJJmnR5qSdGV8fOqjzhhgUcvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4961 Return-Path: zarcd.zhong@intel.com X-OriginatorOrg: intel.com X-Groupsio-MsgNum: 70323 Content-Language: en-US Content-Type: multipart/mixed; boundary="_004_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_" --_004_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_ Content-Type: multipart/alternative; boundary="_000_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_" --_000_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ray, Attached patch is updated with below add. Thanks for your remind. PciIoDevice->VfPciBar[BarIndex].BarType =3D PciBarTypeUnknown; From: Ni, Ray Sent: Wednesday, January 13, 2021 3:01 PM To: Zhong, Zarcd ; devel@edk2.groups.io Cc: Wu, Hao A ; Kinney, Michael D Subject: RE: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail= in high 32bit of MEM64. Zarcd, I can understand that this patch is needed for some buggy pci devices whose VF bar behaves strangely. Incompatible PCI protocol can only deal with norm= al PCI bar. And this patch is just to enhance the error handling logic. Can you please use below code for error handling? + PciIoDevice->VfPciBar[BarIndex].BarType =3D PciBarTypeUnknown I understand that your change is aligned to existing error handling in the = beginning of PciIovParseVfBar(). But that logic runs before PciIoDevice->VfPciBar[BarIndex].BarType is assig= ned. The key is to reset the BarType to PciBarTypeUnknown so that the resource s= ummary code doesn't count this bar. Thanks, Ray From: Zhong, Zarcd > Sent: Monday, January 4, 2021 5:48 PM To: devel@edk2.groups.io Cc: Ni, Ray >; Wu, Hao A > Subject: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in = high 32bit of MEM64. >>From 7518212a85269e486d06dcea927a3d34e23372c2 Mon Sep 17 00:00:00 2001 From: Zarcd Zhong > Date: Mon, 4 Jan 2021 17:32:54 +0800 Subject: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in = high 32bit of MEM64. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3149 Clear length and alignment for low 32bit of MEM64 BAR if sizing fail in= high 32bit. Cc: Ray Ni > Cc: Hao A Wu > --_000_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Ray,

 

Attached patch is updated with below add. Thanks for= your remind.

 

PciIoDevice->VfPciBar[BarIndex].BarType =3D PciBa= rTypeUnknown;

 

 

From: Ni, Ray <ray.ni@intel.com>
Sent: Wednesday, January 13, 2021 3:01 PM
To: Zhong, Zarcd <zarcd.zhong@intel.com>; devel@edk2.groups.io=
Cc: Wu, Hao A <hao.a.wu@intel.com>; Kinney, Michael D <mich= ael.d.kinney@intel.com>
Subject: RE: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizi= ng fail in high 32bit of MEM64.

 

Zarcd,

I can understand that this patch is needed for some = buggy pci devices whose
VF bar behaves strangely. Incompatible PCI protocol can only deal with norm= al
PCI bar. And this patch is just to enhance the error handling logic.

 

Can you please use below code for error handling?

+        PciIoDev= ice->VfPciBar[BarIndex].BarType     =3D PciBarTypeUn= known

 

I understand that your change is aligned to existing= error handling in the beginning
of PciIovParseVfBar().

But that logic runs before PciIoDevice->VfPciBar[= BarIndex].BarType is assigned.

The key is to reset the BarType to PciBarTypeUnknown= so that the resource summary
code doesn’t count this bar.

 

Thanks,

Ray

 

From: Zhong, Zarcd <zarcd.zhong@intel.com>
Sent: Monday, January 4, 2021 5:48 PM
To: devel@edk2.groups.io=
Cc: Ni, Ray <ray.ni@intel.com= >; Wu, Hao A <hao.a.wu@inte= l.com>
Subject: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing f= ail in high 32bit of MEM64.

 

From 7518212a85269e486d06dcea927a3d34e23372c2 Mon Se= p 17 00:00:00 2001

From: Zarcd Zhong <zarcd.zhong@intel.com>

Date: Mon, 4 Jan 2021 17:32:54 +0800

Subject: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Han= dle BAR sizing fail in high 32bit of MEM64.

 

    REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3149

 

    Clear length and alignment for lo= w 32bit of MEM64 BAR if sizing fail in high 32bit.

 

    Cc: Ray Ni <ray.ni@intel.com>

    Cc: Hao A Wu <hao.a.wu@intel.com>

--_000_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_-- --_004_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_ Content-Type: application/octet-stream; name="0001-MdeModulePkg-Bus-Pci-PciBusDxe-Handle-BAR-sizing-fai.patch" Content-Description: 0001-MdeModulePkg-Bus-Pci-PciBusDxe-Handle-BAR-sizing-fai.patch Content-Disposition: attachment; filename="0001-MdeModulePkg-Bus-Pci-PciBusDxe-Handle-BAR-sizing-fai.patch"; size=1554; creation-date="Thu, 14 Jan 2021 02:46:00 GMT"; modification-date="Thu, 14 Jan 2021 02:46:00 GMT" Content-Transfer-Encoding: base64 RnJvbSA2YjhjOGRmYjhhNGEzZDgzNThlOTA2NTI3MmQyY2IyNGVmZGM5YzU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaYXJjZCBaaG9uZyA8emFyY2QuemhvbmdAaW50ZWwuY29tPgpE YXRlOiBNb24sIDQgSmFuIDIwMjEgMTc6MzI6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIXSBNZGVN b2R1bGVQa2cvQnVzL1BjaS9QY2lCdXNEeGU6IEhhbmRsZSBCQVIgc2l6aW5nIGZhaWwgaW4KIGhp Z2ggMzJiaXQgb2YgTUVNNjQuCgogICAgUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5v cmcvc2hvd19idWcuY2dpP2lkPTMxNDkKCiAgICBDbGVhciBsZW5ndGggYW5kIGFsaWdtZW50IGZv ciBsb3cgMzJiaXQgb2YgTUVNNjQgQkFSIGlmIHNpemluZyBmYWlsIGluIGhpZ2ggMzJiaXQuCgog ICAgQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4KICAgIENjOiBIYW8gQSBXdSA8aGFvLmEu d3VAaW50ZWwuY29tPgotLS0KIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1BjaUJ1c0R4ZS9QY2lFbnVt ZXJhdG9yU3VwcG9ydC5jIHwgMTEgKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGNpQnVzRHhlL1Bj aUVudW1lcmF0b3JTdXBwb3J0LmMgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QY2lCdXNEeGUvUGNp RW51bWVyYXRvclN1cHBvcnQuYwppbmRleCAxYjY0OTI0YjdiLi5iZjg0NjUzZWJmIDEwMDY0NAot LS0gYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QY2lCdXNEeGUvUGNpRW51bWVyYXRvclN1cHBvcnQu YworKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QY2lCdXNEeGUvUGNpRW51bWVyYXRvclN1cHBv cnQuYwpAQCAtMTY4Niw2ICsxNjg2LDE3IEBAIFBjaUlvdlBhcnNlVmZCYXIgKAogICAgICAgICAg ICAgICAgICk7DQogDQogICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICAgICAg Ly8NCisgICAgICAgIC8vIFJlc2V0IGxlbmd0aC9hbGlnbm1lbnQgZm9yIGxvdyAzMmJpdCBpbiBN RU02NCBCQVIgaWYgc2l6aW5nIGZhaWwgaW4gaGlnaCAzMmJpdC4NCisgICAgICAgIC8vDQorICAg ICAgICBQY2lJb0RldmljZS0+VmZQY2lCYXJbQmFySW5kZXhdLkJhc2VBZGRyZXNzID0gMDsNCisg ICAgICAgIFBjaUlvRGV2aWNlLT5WZlBjaUJhcltCYXJJbmRleF0uTGVuZ3RoICAgICAgPSAwOw0K KyAgICAgICAgUGNpSW9EZXZpY2UtPlZmUGNpQmFyW0JhckluZGV4XS5BbGlnbm1lbnQgICA9IDA7 DQorICAgICAgICAvLw0KKyAgICAgICAgLy8gRGVjcmVtZW50IHRoZSBvZmZzZXQgdG8gbG93ZXIg MzJiaXQgb2YgTUVNNjQgQkFSLg0KKyAgICAgICAgLy8NCisgICAgICAgIFBjaUlvRGV2aWNlLT5W ZlBjaUJhcltCYXJJbmRleF0uT2Zmc2V0ID0gKFVJTlQxNikgKE9mZnNldCAtIDQpOw0KKyAgICAg ICAgUGNpSW9EZXZpY2UtPlZmUGNpQmFyW0JhckluZGV4XS5CYXJUeXBlID0gUGNpQmFyVHlwZVVu a25vd247DQogICAgICAgICByZXR1cm4gT2Zmc2V0ICsgNDsNCiAgICAgICB9DQogDQotLSAKMi4x Ni4yLndpbmRvd3MuMQoK --_004_MWHPR11MB13095530BF74D46FB72D9353FBA80MWHPR11MB1309namp_--