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.web11.9291.1666714964074588474 for ; Tue, 25 Oct 2022 09:22:45 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=IpjpfN9T; spf=pass (domain: intel.com, ip: 134.134.136.65, 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=1666714964; x=1698250964; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=YVm5nfCxhiP1mZ1gZCSkL3B2QH+U2ZDkaZ9dlZynNmQ=; b=IpjpfN9TZxmfVZaAFEJ+Vzg6ulx/gjJsJXfAss0DfJ72dJsWSSAaTJoj LF4E0mncrFvRI+39HAGnv04QMKt1fqEwXIPQ516BPQ06LL5EnW2EDryBP VxMbWmoqUsPbCunptTZsnFN8HhPbtQCN1emxyAvfb2sqKIu8PUtJQ3U5O AukCOFqc8+/8hjcE/TeLBCz0+NclRYgGpCawZLuaz5+S6BlfxKY9vwCOr Mqq314huAuB04kTZccbhsLd6pW+kKRZfvTmuBJvv7dAM7BAIw60dej4qs iIXwJ/opr8bVws8r0WipBFWLm/QW9tCU+WhZ2UB/ZDF1EJhZtEDcZ0Ne8 g==; X-IronPort-AV: E=McAfee;i="6500,9779,10511"; a="309412640" X-IronPort-AV: E=Sophos;i="5.95,212,1661842800"; d="scan'208";a="309412640" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Oct 2022 09:22:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10511"; a="960877220" X-IronPort-AV: E=Sophos;i="5.95,212,1661842800"; d="scan'208";a="960877220" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga005.fm.intel.com with ESMTP; 25 Oct 2022 09:22:43 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 25 Oct 2022 09:22:42 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 25 Oct 2022 09:22:42 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 25 Oct 2022 09:22:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HH5qolBlScik/+hbxnaLK0fTg0SVKYuRWJBgrFooEwv2IGfTOVRpxkTl9KHn1p7lYKwJdmsypMVEnWXB/32YuGG/clgqOoW1cwdpXmlJZdsGEW+YboiOfzhhB7gYm8UDJUyN2ai3jvDNxKZVvT/VRzuI3vKJGrOacUpUX8pbVIydPKYr/LTJSO4I6m19ycvoP3gvzOJzK477GlBp/UhEeZa5uFYJXIZn7tJfdguwY3genKNV3BuLfbCciH9IqomTeM0TuEmSUmu7VLdFgNe9lAWCaxPH3xdQLtMbp3ERHhGsvYmskAyxPYPQ77keHHEU+M/btEvrSjWgp7ZiP5CFoQ== 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=YVm5nfCxhiP1mZ1gZCSkL3B2QH+U2ZDkaZ9dlZynNmQ=; b=DkTeYxcZ+amiIpYbIBdZ0kAZVQyNgrl7o8b5VVv7y52Mt7zosGASggEuEXINN135Ar2ujEGKC9QimkHRk1q9svUi5NedJDIaIgAHv9d4g3HjbMSxfcWRHzFPS+gas1CQGQdvBQ9nrajbk9p68xC934bY8v9QOBBBjJKWE1JMhHEH2qaa8fymgMsk48pcQVlaGxnbAsGC+WtLOlTYOswWN4q3pdPxxsg8VwnucWSx2Nk9F3YfJYiB74He7+Ut1IbUW++c8Egau7GHk2ybPpuq+uqGw28Or1BJG8URd8WFS0pxvCVT8rj2cBC+JSnZJndqlo7/lNyQ0KwHdVOItnq1jQ== 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 PH0PR11MB4949.namprd11.prod.outlook.com (2603:10b6:510:31::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.23; Tue, 25 Oct 2022 16:22:39 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::8bdc:54fe:ecf3:fa93]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::8bdc:54fe:ecf3:fa93%5]) with mapi id 15.20.5746.028; Tue, 25 Oct 2022 16:22:34 +0000 From: "Michael D Kinney" To: Pedro Falcato , "devel@edk2.groups.io" CC: Vitaly Cheptsov , =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "Gao, Liming" , "Liu, Zhiguang" , "Yao, Jiewen" Subject: Re: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bounds reads in SafeString Thread-Topic: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bounds reads in SafeString Thread-Index: AQHY5/oO3TatiKjwb0KzhddcPFbq3K4fS+fw Date: Tue, 25 Oct 2022 16:22:33 +0000 Message-ID: References: <20221024224324.26540-1-pedro.falcato@gmail.com> In-Reply-To: <20221024224324.26540-1-pedro.falcato@gmail.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 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_|PH0PR11MB4949:EE_ x-ms-office365-filtering-correlation-id: 25e72c37-24cb-4ae0-5c96-08dab6a51f74 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: J9Gp/DhgG6SH5sCncARMVYSN7qnvBP0ju2kMmllN0vXzMLJwY/VIS3EnBY0dW9rifgt8jm7qvbWq4IR4qQ5iyQcfPrtmsRwBqYcvyB78JVhMUh23YWsSEPP+sEAldOdpFBbDSavFhKaqEt2tUXglUGn4oFeSkf/nWqW8eRQgGw1bFfL//CClssau5LECH8HML0kjatgeaILaxBKnAIDa4SgYxErof7Mjbx1Y449NUoHjEDQHv0y0ApqQZJe9JR+Kfk/FAbVya+jjguhMn9aUwAca/bzrZalezDwEC/OspaGbCNzFAMwFgunF40Q/RyN96arbZqhqbwRPx/HQ1POVncoGEQRNz9ZUemtcSp9CdGInXv9uHESYwTv4sN0nos/dB8Z/g0hSGUGp21gJbaUxJR1a4SDtOj8DpFb2etuxOPBMMW7tAmjXZVmso3vBFHqBeYlMA5YXYSINq9kfodJ6uQSs9FAP1eBdn42VVnD3SjNDuWeYHQamYCMytNensViyH18qUxo0+vpbsreFCBHyO1JywKCecvcoxCRe2R3+K2CLJjl+kq2FR/wGHfeApxawSX65TABqd01iEtJ0Yd2Kht4CE0nooJI+yjJbk7et7kdvb9hwHaGW4oPEVqUOPbUrPlG71cOXbcGc2N/ZnkodhYTf4+DQOLxzp/M9ypbvBnEybQl5hbL1vj+CYgg2z94EH9TNURCcOEYe8x6DmJfzyItFORtgFvi1BT+bvWQ2ErZPEfJXem4yID/1AsmJlxEu8ayqmfeJY1lChFmodcV8cQ== 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:(13230022)(39860400002)(376002)(366004)(396003)(136003)(346002)(451199015)(71200400001)(122000001)(38070700005)(478600001)(38100700002)(110136005)(54906003)(19627235002)(316002)(107886003)(76116006)(52536014)(8676002)(4326008)(64756008)(66446008)(66946007)(66476007)(7696005)(6506007)(66556008)(26005)(53546011)(41300700001)(5660300002)(8936002)(9686003)(83380400001)(82960400001)(2906002)(186003)(33656002)(55016003)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MnNPaU5halIzR3RVcXlmckY3eXJPaGFoMVJmYkQ3Y0pFbm54ZGZCOUVQNmJl?= =?utf-8?B?NCsrVEVVaEJyZFE2UEh1YW9RdmlXS1BoM0JBTWtyVTZDallUeXg4a0hwVmVC?= =?utf-8?B?eUJrd3V1NWh2QUtwdGFXdDFpRmdZdWlSaTZDRjlXZFozUUtwQ2huUlRIUUdL?= =?utf-8?B?QkIra0d2T0Jua1JVNEdiTlhRT2YzbFI1OXEzSTF6WGhBdEV1RmZWZGlIT3Q4?= =?utf-8?B?alh2a0dLdUo5U3B4Z2xQZDBTMG92ckJObzl4RHlxbDRQTnVBZW01ZFNrb09G?= =?utf-8?B?VjJHRXNRZnVnQVdyUTR1OThZSUtpZ0R3S2xlcERWWm1mSE10NzlJdXJ4b2VE?= =?utf-8?B?anVqYXY0a2s3aXYwK0tjcFI3R3E4aGlTc0RlNU1iaHpzazNkalE3a05LTUdU?= =?utf-8?B?aUY5aE9RWWcyZWgxbmMwYTh0TnVWOXRUdnJ1M1lQNUJUc0o0THRtajdsMzlw?= =?utf-8?B?cW50ejM4ejdvSTkwNUY2bmJPbnRLS3dzazBqTmp3NHEySDlTeStZY2dkbm9C?= =?utf-8?B?VnFYMUJMUkJPZ1dSaXYvdTU3eXdmbjlWRkZQeTIxamhFY21MZWdZbWh3WFJP?= =?utf-8?B?a0ZuT1hOU3dJRHRvRXZYVFVYbmRTSHBpcUlFbDNUOUpQSThFd0t6Tmh0SjFy?= =?utf-8?B?djh0R1krRlRYOUNYWXN2a2pxcW40UVFvdlJGWjgxR00rUHpYcUIyZUFmenB6?= =?utf-8?B?Z1NNYVBDKzFGcm4rOHhQY1JDeVR3WlNWbFFmSW5VeUlUQXV0RkRFMkRWMmJX?= =?utf-8?B?NEZiWjFYQ3c1cnJHUFBpMkMwTitYNUF4SzdPYjVNUTJqVTN2RkFFcDJpRWZV?= =?utf-8?B?NGY5N3RHdS8veTZGdThMN3pMSytycHNjTlZzM1J4eFkxNXFCNjcra2VDQzRN?= =?utf-8?B?dnQwUkxZaUJnZTU0OW1Yc1FFT0VQK3Q5eFU3UUtZaWc0b0ZCMDVnZ1A5eXd1?= =?utf-8?B?TG9tYVY4Vk9CbDlRTjRGZlIwL2F1SmxsVnFBdDZyRkNGbTVwclA0T1VoQXR4?= =?utf-8?B?OG94YWpUMWpLZkdIaFREdnh1cG9rczdlUmxueEZzQmh0NURzSHhrcWl3cW92?= =?utf-8?B?NkExRG1kWlRnbmhlREY4TFcxaUZEM3dMaWtVd3JCeFFOQVp2RXRwdHFZNDcv?= =?utf-8?B?RG96WUNrZnpSVWFzTWJOTk1ud1RuM2xKQ3phSUZGMUV0eUhoenB2bGhhTVlI?= =?utf-8?B?dmpGSkNWMGxNOTJCZTh1R2VPS1hKWVZhVERQcGxtaG9mSFAvS28zZkJNU2Fv?= =?utf-8?B?Y0swK0ZIOHU2bGo3VGdRQWZ2QXkrMFpRTS9uMG5GZTFvWG1pWDZZdlFhL3RK?= =?utf-8?B?cmRkMWx1QXNhZXJQcUZrbU1EdXowOUIzUEszNXlSMmRRTmhUeFNPZVZyMG45?= =?utf-8?B?WFZEcjlzTFJwSE50NG9kN3RqVXF0TXBJM2lZbXdrRGdHamxnQ2t1YXowc3Vi?= =?utf-8?B?aVE4Z1M2QnA3OWEzQjdWZndmM3pZU0MxSFlHRUpnT1IxWVZOdjRqV01RNlE5?= =?utf-8?B?MytWN3FqQmdoaUUvSG14bHJIT0JPSHRTQ1BoTGIzUGdzaElvR2JyN1hPUFV2?= =?utf-8?B?enJ4K3B2VXd3RHphUFZEaHJURjl1UkJab3I0SFpQSGZjWFBUMWdUbnMxa1M0?= =?utf-8?B?aTlibWNIeTRYd25vVHNLaERTbkNmSFdhVWRZRCtCZi9Fbnp5Q2JGQ3ArdkUw?= =?utf-8?B?MkpyNlpJbXZ0NG12TThOQ25TeEU2SzlyRGFBak5mUWtlYktWdWZRS2VzZzRX?= =?utf-8?B?YXNCQ29McEsrTG4zNC9JaWFickJkL1YybnRXdkk5SFBHdU56alBURWkxRFpp?= =?utf-8?B?UjcxMG9MWmtVU3loY3dPT2pGQVE4MzVXRU80bDhxWTU4Rk5UUWF5YkYxZ0RT?= =?utf-8?B?T20xWGxXeUgyWjd1Wjh2S0hOTDlvMXByL0NXRXFUalNsLzEwRlNBZDRrZ3NJ?= =?utf-8?B?T1E4R0xTTzdtTzk4MHozMUtITlV5dEd0VnRJOSt6ZVR5Nm1neEUwUGV1Nngv?= =?utf-8?B?K1hOSTVPZVhKMmZweTU0VjdINVNtSXJkTnBNaGczUXo2dHNrMTJVOUs4TlE3?= =?utf-8?B?TjZCQTlLU08yaXdQR3hNdXJ1REtUTTVsUitMQmtjVkZvYi9ZUFhLTUt6UUdo?= =?utf-8?B?eHAwanN4bUh2cDhUcFM4NjQ1TitpQk5HeXN5Q3JTdVoyU2tUSEJxbnZRTzdM?= =?utf-8?B?UUE9PQ==?= 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: 25e72c37-24cb-4ae0-5c96-08dab6a51f74 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2022 16:22:33.9456 (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: GUDnAt7xBYznSI4Kf5W4TMBPWSkXcNQmN9MoBNZl7MvbZWgYjKQLw28zwVIfzvTR9fee0fIMxc9QPObKpuHhJ8i0QMUQWlNYo6cRw7W84NI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4949 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 QWRkaW5nIEppZXdlbiBZYW8uDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT4NCj4gU2Vu dDogTW9uZGF5LCBPY3RvYmVyIDI0LCAyMDIyIDM6NDMgUE0NCj4gVG86IGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+IENjOiBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT47IFZp dGFseSBDaGVwdHNvdiA8dml0OTY5NkBwcm90b25tYWlsLmNvbT47IE1hcnZpbiBIw6R1c2VyIDxt aGFldXNlckBwb3N0ZW8uZGU+Ow0KPiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1 LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gU3ViamVjdDogW1BBVENIIHYy IDEvMV0gTWRlUGtnL0Jhc2VMaWI6IEZpeCBvdXQtb2YtYm91bmRzIHJlYWRzIGluIFNhZmVTdHJp bmcNCj4gDQo+IE9wZW5Db3JlIGZvbGtzIGVzdGFibGlzaGVkIGFuIEFTQU4tZXF1aXBwZWQgcHJv amVjdCB0byBmdXp6IEV4dDREeGUsDQo+IHdoaWNoIHdhcyBhYmxlIHRvIGNhdGNoIHRoZXNlICht b3N0bHkgaGFybWxlc3MpIGlzc3Vlcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFBlZHJvIEZhbGNh dG8gPHBlZHJvLmZhbGNhdG9AZ21haWwuY29tPg0KPiBDYzogVml0YWx5IENoZXB0c292IDx2aXQ5 Njk2QHByb3Rvbm1haWwuY29tPg0KPiBDYzogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rl by5kZT4NCj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiBDYzogWmhp Z3VhbmcgTGl1IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiAtLS0NCj4gIE1kZVBrZy9MaWJy YXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jIHwgMjQgKysrKysrKysrKysrKysrKysrKystLS0tDQo+ ICAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4gDQo+ IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1NhZmVTdHJpbmcuYyBiL01kZVBr Zy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jDQo+IGluZGV4IGYzMzhhMzJhM2E0MS4uNzdh MjU4NWFkNTZkIDEwMDY0NA0KPiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1NhZmVTdHJp bmcuYw0KPiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1NhZmVTdHJpbmcuYw0KPiBAQCAt ODYzLDYgKzg2Myw5IEBAIFN0ckhleFRvVWludG5TICgNCj4gICAgT1VUICAgICAgIFVJTlROICAg KkRhdGENCj4gICAgKQ0KPiAgew0KPiArICBCT09MRUFOICBGb3VuZExlYWRpbmdaZXJvOw0KPiAr DQo+ICsgIEZvdW5kTGVhZGluZ1plcm8gPSBGQUxTRTsNCj4gICAgQVNTRVJUICgoKFVJTlROKVN0 cmluZyAmIEJJVDApID09IDApOw0KPiANCj4gICAgLy8NCj4gQEAgLTg5MywxMSArODk2LDEyIEBA IFN0ckhleFRvVWludG5TICgNCj4gICAgLy8gSWdub3JlIGxlYWRpbmcgWmVyb3MgYWZ0ZXIgdGhl IHNwYWNlcw0KPiAgICAvLw0KPiAgICB3aGlsZSAoKlN0cmluZyA9PSBMJzAnKSB7DQo+ICsgICAg Rm91bmRMZWFkaW5nWmVybyA9IFRSVUU7DQo+ICAgICAgU3RyaW5nKys7DQo+ICAgIH0NCj4gDQo+ ICAgIGlmIChDaGFyVG9VcHBlciAoKlN0cmluZykgPT0gTCdYJykgew0KPiAtICAgIGlmICgqKFN0 cmluZyAtIDEpICE9IEwnMCcpIHsNCj4gKyAgICBpZiAoIUZvdW5kTGVhZGluZ1plcm8pIHsNCj4g ICAgICAgICpEYXRhID0gMDsNCj4gICAgICAgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsNCj4gICAg ICB9DQo+IEBAIC05OTIsNiArOTk2LDkgQEAgU3RySGV4VG9VaW50NjRTICgNCj4gICAgT1VUICAg ICAgIFVJTlQ2NCAgKkRhdGENCj4gICAgKQ0KPiAgew0KPiArICBCT09MRUFOICBGb3VuZExlYWRp bmdaZXJvOw0KPiArDQo+ICsgIEZvdW5kTGVhZGluZ1plcm8gPSBGQUxTRTsNCj4gICAgQVNTRVJU ICgoKFVJTlROKVN0cmluZyAmIEJJVDApID09IDApOw0KPiANCj4gICAgLy8NCj4gQEAgLTEwMjIs MTEgKzEwMjksMTIgQEAgU3RySGV4VG9VaW50NjRTICgNCj4gICAgLy8gSWdub3JlIGxlYWRpbmcg WmVyb3MgYWZ0ZXIgdGhlIHNwYWNlcw0KPiAgICAvLw0KPiAgICB3aGlsZSAoKlN0cmluZyA9PSBM JzAnKSB7DQo+ICsgICAgRm91bmRMZWFkaW5nWmVybyA9IFRSVUU7DQo+ICAgICAgU3RyaW5nKys7 DQo+ICAgIH0NCj4gDQo+ICAgIGlmIChDaGFyVG9VcHBlciAoKlN0cmluZykgPT0gTCdYJykgew0K PiAtICAgIGlmICgqKFN0cmluZyAtIDEpICE9IEwnMCcpIHsNCj4gKyAgICBpZiAoIUZvdW5kTGVh ZGluZ1plcm8pIHsNCj4gICAgICAgICpEYXRhID0gMDsNCj4gICAgICAgIHJldHVybiBSRVRVUk5f U1VDQ0VTUzsNCj4gICAgICB9DQo+IEBAIC0yMzkzLDYgKzI0MDEsOSBAQCBBc2NpaVN0ckhleFRv VWludG5TICgNCj4gICAgT1VUICAgICAgIFVJTlROICAqRGF0YQ0KPiAgICApDQo+ICB7DQo+ICsg IEJPT0xFQU4gIEZvdW5kTGVhZGluZ1plcm87DQo+ICsNCj4gKyAgRm91bmRMZWFkaW5nWmVybyA9 IEZBTFNFOw0KPiAgICAvLw0KPiAgICAvLyAxLiBOZWl0aGVyIFN0cmluZyBub3IgRGF0YSBzaGFs bCBiZSBhIG51bGwgcG9pbnRlci4NCj4gICAgLy8NCj4gQEAgLTI0MjEsMTEgKzI0MzIsMTIgQEAg QXNjaWlTdHJIZXhUb1VpbnRuUyAoDQo+ICAgIC8vIElnbm9yZSBsZWFkaW5nIFplcm9zIGFmdGVy IHRoZSBzcGFjZXMNCj4gICAgLy8NCj4gICAgd2hpbGUgKCpTdHJpbmcgPT0gJzAnKSB7DQo+ICsg ICAgRm91bmRMZWFkaW5nWmVybyA9IFRSVUU7DQo+ICAgICAgU3RyaW5nKys7DQo+ICAgIH0NCj4g DQo+ICAgIGlmIChBc2NpaUNoYXJUb1VwcGVyICgqU3RyaW5nKSA9PSAnWCcpIHsNCj4gLSAgICBp ZiAoKihTdHJpbmcgLSAxKSAhPSAnMCcpIHsNCj4gKyAgICBpZiAoIUZvdW5kTGVhZGluZ1plcm8p IHsNCj4gICAgICAgICpEYXRhID0gMDsNCj4gICAgICAgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsN Cj4gICAgICB9DQo+IEBAIC0yNTE3LDYgKzI1MjksOSBAQCBBc2NpaVN0ckhleFRvVWludDY0UyAo DQo+ICAgIE9VVCAgICAgICBVSU5UNjQgICpEYXRhDQo+ICAgICkNCj4gIHsNCj4gKyAgQk9PTEVB TiAgRm91bmRMZWFkaW5nWmVybzsNCj4gKw0KPiArICBGb3VuZExlYWRpbmdaZXJvID0gRkFMU0U7 DQo+ICAgIC8vDQo+ICAgIC8vIDEuIE5laXRoZXIgU3RyaW5nIG5vciBEYXRhIHNoYWxsIGJlIGEg bnVsbCBwb2ludGVyLg0KPiAgICAvLw0KPiBAQCAtMjU0NSwxMSArMjU2MCwxMiBAQCBBc2NpaVN0 ckhleFRvVWludDY0UyAoDQo+ICAgIC8vIElnbm9yZSBsZWFkaW5nIFplcm9zIGFmdGVyIHRoZSBz cGFjZXMNCj4gICAgLy8NCj4gICAgd2hpbGUgKCpTdHJpbmcgPT0gJzAnKSB7DQo+ICsgICAgRm91 bmRMZWFkaW5nWmVybyA9IFRSVUU7DQo+ICAgICAgU3RyaW5nKys7DQo+ICAgIH0NCj4gDQo+ICAg IGlmIChBc2NpaUNoYXJUb1VwcGVyICgqU3RyaW5nKSA9PSAnWCcpIHsNCj4gLSAgICBpZiAoKihT dHJpbmcgLSAxKSAhPSAnMCcpIHsNCj4gKyAgICBpZiAoIUZvdW5kTGVhZGluZ1plcm8pIHsNCj4g ICAgICAgICpEYXRhID0gMDsNCj4gICAgICAgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsNCj4gICAg ICB9DQo+IC0tDQo+IDIuMzguMQ0KDQo=