From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 940839419F2 for ; Thu, 14 Dec 2023 15:34:51 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=TS+iXrOkWMeHNtcX6CFUO5rmE/5uPyAkDVvkieMYVTU=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1702568090; v=1; b=W8WxLDevIZOg/6Gv8rFKnIWGgV2n2tbmQ5pjTqGwvwOctqRPn9TZlrDAgGBQTUPXmMlC2wm9 IlM+Lqdzwuw0/8OSqK5g7zdZG0BI1Ry4yY08Z489FiISwb7KItw5BsqhwBN6WdiYHDz4gCoA4Fm JLsIkmWjMGjvURVnxC9esfpc= X-Received: by 127.0.0.2 with SMTP id sYZJYY7687511xQFqsZVRtxr; Thu, 14 Dec 2023 07:34:50 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.25450.1702568089486987302 for ; Thu, 14 Dec 2023 07:34:49 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10924"; a="398970474" X-IronPort-AV: E=Sophos;i="6.04,275,1695711600"; d="scan'208";a="398970474" X-Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2023 07:34:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10924"; a="724094929" X-IronPort-AV: E=Sophos;i="6.04,275,1695711600"; d="scan'208";a="724094929" X-Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 14 Dec 2023 07:34:48 -0800 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 14 Dec 2023 07:34:48 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 14 Dec 2023 07:34:47 -0800 X-Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 14 Dec 2023 07:34:47 -0800 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) 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.2507.35; Thu, 14 Dec 2023 07:34:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ipUOHaCbYgtdjPhjsIhiQbJOUNbzqcUzFCJZk9NVLn7pMHxpUFD15k4KU5pCRK9x73wjZUYIHsU/7qTNLhJt+luALamLH+UmB7Wd6ZBeW6/8DrTOBlCLH8TnYF7vLd243SG4ekmLJJcmkmt6F1vvy6hTPmKAb4vEb3zK54ryNCwErmLRCF8D8HbrftqCzKx2r6pS32qgRWxUUfVNjTJDvs8J+GRN70U50Hrr4Ckc1hNcbtJBmmIO1mVsTN91mqXHJ1+7pjfjWI4K9mutVBVYDUAwquyw2HleicwHAwcK2p7TEuMcZVMs5wmCSslGcTDat3NdOWEVG8sFtUwLLiLVcQ== 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=t3RYtZ1tFEucXULg6KTb0znQm91avtVDcJ1RMfCS+bw=; b=LdWknA0c+miGwWbTiSToltsScLfSSMeTTQI3YNQMeDBQtbiQTAGj4YXXsJDLqO53TuOfnwIaYXOTqUtYlv8/JFuc5a1MezL6RvvIxpSTo3ZtN5fmQKjFyc5ysRcHSdAHbhEryvtMVXWa18uud1kybV1nFEBpK/5vMlTZHvszOz9z4eVdRXVtX/C9FBY+U+vD0ue5p6atzTVeG5WLaQPUa259c2gywpIk1oXJ4XTgOZQ/HKouUrjk/FuSltjiBgxpWk/8CAwZZaxno7bWktRD4TdPhEg3hzt7sagVVhtaEH0fgpb8Ee37yNaaC6btXWP0budlD7zShxd1RH+w65m0ug== 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 X-Received: from MN0PR11MB6158.namprd11.prod.outlook.com (2603:10b6:208:3ca::18) by PH7PR11MB6882.namprd11.prod.outlook.com (2603:10b6:510:201::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.38; Thu, 14 Dec 2023 15:34:42 +0000 X-Received: from MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::864d:d91a:4674:e0f7]) by MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::864d:d91a:4674:e0f7%7]) with mapi id 15.20.7091.028; Thu, 14 Dec 2023 15:34:42 +0000 From: "Wu, Jiaxin" To: "devel@edk2.groups.io" , "lersek@redhat.com" CC: "Dong, Eric" , "Ni, Ray" , "Zeng, Star" , Gerd Hoffmann , "Kumar, Rahul R" Subject: Re: [edk2-devel] [PATCH v3 3/6] UefiCpuPkg: Implements SmmCpuSyncLib library instance Thread-Topic: [edk2-devel] [PATCH v3 3/6] UefiCpuPkg: Implements SmmCpuSyncLib library instance Thread-Index: AQHaLdF0QsFHJxUIn0ap8zpRovEEUbCoIymQgACpswCAAAiScA== Date: Thu, 14 Dec 2023 15:34:42 +0000 Message-ID: References: <20231206100122.8028-1-jiaxin.wu@intel.com> <20231206100122.8028-4-jiaxin.wu@intel.com> <3b31f213-f102-acd4-4af6-d2b77fbde9a9@redhat.com> <4a2911fb-aa15-efb0-f2e4-1c5bac8aab8d@redhat.com> In-Reply-To: <4a2911fb-aa15-efb0-f2e4-1c5bac8aab8d@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN0PR11MB6158:EE_|PH7PR11MB6882:EE_ x-ms-office365-filtering-correlation-id: 8af14747-08f7-4e29-556e-08dbfcba3155 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: j9hl9Y8o3x0jGzS4gOxqHllQjdOOHyPRFHQOLbO0VaT/V7nmURR9ZjtSYnFKX9+xDlWFiIDA9Vx1mE9gIs985MTpS0wEJZuTY3cPhVWSkZJvSVVK81+N1HJQamUITio17obq8GmfLhVWomBZCMGlbcHI3Rt1kzvG96Rrhpvsq3AuMsfaBw4JHel3y33bWQxSk5t4N6cNbvOhcpDMmLGzqWXkfSDUol9Ke1XbyNMnsS8ns+RjOnrcIE9GDB4WWQPa8s8xvEAODLzOBzoD6a0Ps/lRJRiyPmh4PolYiNHJ5+Uj7ctUpRbSwyTFws6aii6Uw1wZpSxSruWaRSu40GhYTb+Z3M+Dta9Zf72M1LhO3oBr+ZWLtRwwRE4Xo/JbituUk6qLgqKuSFJMlwW6yftwE355ZXgWROOlVxlkW5mLsWqngKCNGv1O/R0EHOaTNSzc3thZ6vjOuhfaPUfL25HIp9LwJmITtrYyDMATJXDi4/oMgeeGav/g5YPWTeamnkazAOB94n5LfWwf990yII8b+fCcaSMNF2Cs6fd+7ARKIrfDRfRwoOG4vn3AC6SFUREVUMKwb9zHK2UPaXkdwSQIuwsDSaW3bu8FizqqggC/MEmlWjhm8lftzgTkapVBLagz x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S3JVRE15QVZZeWx3YU4wNzJuQzZ6a0prWlowMTNDOWdhUjFlVnZvZDVJREgw?= =?utf-8?B?VE9mRmtGQk9jVUZ1N0x1Rjl3U3RMRFBQeGdkK0JtZEVoWFgxclVFUDdPVDNr?= =?utf-8?B?N2xkUGN3RzBHT1BEa2VGbThtb0s3eUJndHFHQ0ZHd2VFQjNwbHNoMEdkNHNa?= =?utf-8?B?YnhLTkVXNWJGRFlFRTluWDc5M3RUSnJnTTFmYkNmQ2ZRamowYjhwcytPNjRQ?= =?utf-8?B?RlhOcGd5aEZOZWxseWdoNWhTTXdHVWpDaTcxVElsK2VmN1pUdThodGU5anZk?= =?utf-8?B?QWwrU0JNNTRyb1FrT0RRZFhmM25EK0srR2VsSjk1S0tWdS81eVFIaGcrcmZ2?= =?utf-8?B?c1ZIWUJVTEFqL09Ga09pK1NFY2xLYkpaeUljZVJ2dVZDZ3I3ZTA2bjV4TE9n?= =?utf-8?B?eS9lRzlweGpOUmdtcTJMRFRiS3ZKaFczNUpCanNQdDM4WHZKYThWUDRrQTgy?= =?utf-8?B?TnhSbWZoYmJnK3E1KzZHSFJaZkE3c2NDUDlBaWNjT1RGcnlTZFNWdTRvVkdp?= =?utf-8?B?ZmhiUWhNOHRLMXFPZU1XVEZLWGVsN2p6djVBUVFtOGw3N0lxckNTOWJrR29N?= =?utf-8?B?V2x0K3FSQ0xGbVpydXV0UDZDN3VVbHArOUdoVVNBbzVhWDJlQWZ5YStXMzE3?= =?utf-8?B?MkoycC9rSXlJeUl2akxaVTR0aVlja0xkaWlZbVJnd3hpMEFOTUdyOGUzcm9H?= =?utf-8?B?N2ZvTU9aK1VrT2N2V3p2RWl6SDZDdmduWDdsN0IzSUZVSHVheHU4U1pjVk1k?= =?utf-8?B?cUtuK2ZzaE1mYmhha05SM0ZiU1RmWkEyeUVsL2xyR0Z4RnBURnlqamFkV1l3?= =?utf-8?B?MlVlTmRzRzJaWW1DcXdWa1RnbENlaDArVzdKSW40Q3AyYzVJQ1M1ZDNRTTE3?= =?utf-8?B?TnVmNmpwVlppZnkya0x0dCsza0ZOam9KVFpqWFFPdlNxczVCcDZBNExxMHJ1?= =?utf-8?B?NmtYNEV0WjlPUFo3VVFIbitibk12UDFpRFJzUFRMVEdVNzVmZ2VtaUhURlY2?= =?utf-8?B?U1ZwQVBvNWEyYXpxOUcySnI4UUh6U3h0TjVBajg5N2oyYlBXMExQWllkS1NE?= =?utf-8?B?bzVkUnBoOVNiWVdrSlkwL3ZMdEZGT0tuMFkrV3JtTEU0NkRTenNWY0lKZVJW?= =?utf-8?B?TGZWOWdMcnJuQzk2dzNVSmVTM2p3UWpkUE5JUTQ3UDhsWmdYUFloa2N2Yzh2?= =?utf-8?B?bVFraGo4L0dxVWFORTJxMTU3UTJFN3FYaXRnVlNrdFlNSGt4S2cwL2U0cXRK?= =?utf-8?B?ZnNaR1QzcjJZejJ5WUI0YnN0M0pCNysrOEZmVnNqVUxPWUUvRDZ5S25MZWNR?= =?utf-8?B?ZWlPeDJCaVoxRWxFcXRGeS93c3ZPNW53NHVkSFhjSVBmckV1OXhPdXdDa1F1?= =?utf-8?B?bEl5WGpJTUFhN01MU3NuaC95cmhaMTJVWUtXYVZUbjA5bG5iYUJqaVZmMnZO?= =?utf-8?B?dGd4VGJqWDloRmZiUGN3Y1BNOEZXc2J2WmNOSnhtNEw2eWxYaUZJUzZtZmt2?= =?utf-8?B?SStrODNJazJPTmxYVVdrK096WDNtdm9aM28vbk9NeEsrNFZweWt3Zmp3ZWQw?= =?utf-8?B?ZzBqejlKckZMQnNkM29za0huZk1FZXlmc3V2dThRNmlDUGowei93eDRNNW1z?= =?utf-8?B?MzFjMURTYUZ4OXRvZ2VRaGN1S3pHQ0kwdGNnUyt0MHdubzJQZW03VWRncU9q?= =?utf-8?B?OElNaVRhKzRNZDBVNEp1UlUrVDNWU2xpMFVIT1IwUTYvaERDRXo0Y1FYVWdO?= =?utf-8?B?WEZZeWdXT2NxcURVREpOdlZWNStLMjJGYnp5NVFzU3hHZ2ZvNVZYUEJkNSs5?= =?utf-8?B?ODloUS9CNVBBbG00L08vakdTU1owSzFMcmtEeXFGUzF6K05KVkpRNzFSSTBp?= =?utf-8?B?R3JwZXdiL1RSdTE3U1pPb3F4cklZZyswYVQzYlVYd2Z3REdkcFlxOGtSZVA4?= =?utf-8?B?MC81NEY1R3VUdFhDM0xKSWpLSy91RmZlOGlXZFlIenB0Tk1CeUNnMFQ0Nk5n?= =?utf-8?B?TVhwSm43OW1RbXczOFlqdGJIOUpZQzN5WHBLaDRiMG1wOXRYUURTYmtBTjh6?= =?utf-8?B?dUc5M25mcXNIdHBydnhTbGZ3UXd3RXQ3TVRPdjVOMlB5OTExMTBzWlc5YU5O?= =?utf-8?Q?AUDt0vqNK7ZpKpc+tMG49uNrr?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN0PR11MB6158.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8af14747-08f7-4e29-556e-08dbfcba3155 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2023 15:34:42.4647 (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: SBEdxiz4XCRSv7DYOBsq3EQ9ZXF3TkXIS3W2qVlj+sjz4LVkTMLvmO+1ca4p/oGYyIpHX6mwglcU7ZHUyfTL0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6882 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jiaxin.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: GISTE4Iz5ZTUl0oVglbTevTzx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=W8WxLDev; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io PiA+IFRoZSBjb2RlIHdpbGwgYmUgY2hhbmdlZCB0bzoNCj4gPg0KPiA+ICAgaWYgKChJTlQzMilJ bnRlcm5hbFdhaXRGb3JTZW1hcGhvcmUgKENvbnRleHQtPkNwdUNvdW50KSA8IDApIHsNCj4gPiAg ICAgcmV0dXJuIFJFVFVSTl9BQk9SVEVEOw0KPiA+ICAgfQ0KPiANCj4gSSBmaW5kIHRoaXMgcXVp dGUgdWdseS4gSW4gdGhlICJzZW1hcGhvcmUgcG9zdCIgb3BlcmF0aW9uLCB3ZSBhbHJlYWR5DQo+ IGhhdmUgY29kZSB0aGF0IHByZXZlbnRzIGluY3JlbWVudGluZyBpZiB0aGUgc2VtYXBob3JlIGlz ICJsb2NrZWQiLiBDYW4NCj4gd2UgcGVyaGFwcyBjcmVhdGUgYSAic2VtYXBob3JlIHBlbmQiIG9w ZXJhdGlvbiB0aGF0IGRvZXMgdGhlIHNhbWU/DQo+IA0KPiBIb3cgYWJvdXQgdGhpczoNCj4gDQo+ IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1U3luY0xpYi9TbW1DcHVTeW5j TGliLmMNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1U3luY0xpYi9TbW1DcHVTeW5jTGli LmMNCj4gaW5kZXggM2MyODM1ZjhkZWY2Li41ZDdmYzU4ZWYyM2YgMTAwNjQ0DQo+IC0tLSBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVTeW5jTGliL1NtbUNwdVN5bmNMaWIuYw0KPiArKysgYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1U3luY0xpYi9TbW1DcHVTeW5jTGliLmMNCj4gQEAgLTkx LDM1ICs5MSwzOCBAQCBVSU5UMzINCj4gIEludGVybmFsV2FpdEZvclNlbWFwaG9yZSAoDQo+ICAg IElOIE9VVCAgdm9sYXRpbGUgVUlOVDMyICAqU2VtDQo+ICAgICkNCj4gIHsNCj4gICAgVUlOVDMy ICBWYWx1ZTsNCj4gDQo+ICAgIGZvciAoIDsgOykgew0KPiAgICAgIFZhbHVlID0gKlNlbTsNCj4g KyAgICBpZiAoVmFsdWUgPT0gTUFYX1VJTlQzMikgew0KPiArICAgICAgcmV0dXJuIFZhbHVlOw0K PiArICAgIH0NCj4gICAgICBpZiAoKFZhbHVlICE9IDApICYmDQo+ICAgICAgICAgIChJbnRlcmxv Y2tlZENvbXBhcmVFeGNoYW5nZTMyICgNCj4gICAgICAgICAgICAgKFVJTlQzMiAqKVNlbSwNCj4g ICAgICAgICAgICAgVmFsdWUsDQo+ICAgICAgICAgICAgIFZhbHVlIC0gMQ0KPiAgICAgICAgICAg ICApID09IFZhbHVlKSkNCj4gICAgICB7DQo+ICAgICAgICBicmVhazsNCj4gICAgICB9DQo+IA0K PiAgICAgIENwdVBhdXNlICgpOw0KPiAgICB9DQo+IA0KPiAgICByZXR1cm4gVmFsdWUgLSAxOw0K PiAgfQ0KPiANCj4gTm90ZSwgSSdtIGp1c3QgYnJhaW5zdG9ybWluZyBoZXJlLCBJJ3ZlIG5vdCB0 aG91Z2h0IGl0IHRocm91Z2guIEp1c3QgdG8NCj4gaWxsdXN0cmF0ZSB0aGUgZGlyZWN0aW9uIEkn bSB0aGlua2luZyBvZi4NCj4gDQo+IFRoaXMgY2hhbmdlIHNob3VsZCBiZSBtb3N0bHkgT0suIElu dGVybmFsV2FpdEZvclNlbWFwaG9yZSgpIHJldHVybnMgdGhlDQo+IGRlY3JlbWVudGVkIHZhbHVl LiBTbywgZm9yIEludGVybmFsV2FpdEZvclNlbWFwaG9yZSgpIHRvIHJldHVybg0KPiBNQVhfVUlO VDMyICp3aXRob3V0KiB0aGlzIHVwZGF0ZSwgdGhlIGZ1bmN0aW9uIHdvdWxkIGhhdmUgdG8gZGVj cmVtZW50DQo+IHRoZSBzZW1hcGhvcmUgd2hlbiB0aGUgc2VtYXBob3JlIGlzIHplcm8uIEJ1dCBp biB0aGF0IGNhc2UsIHRoZSBmdW5jdGlvbg0KPiAqYmxvY2tzKi4gVGh1cywgYSByZXR1cm4gdmFs dWUgb2YgTUFYX1VJTlQzMiBpcyBub3QgcG9zc2libGUgd2l0aG91dA0KPiB0aGlzIGV4dGVuc2lv bjsgZXJnbywgaWYgTUFYX1VJTlQzMiBpcyByZXR1cm5lZCAod2l0aCB0aGlzIGV4dGVuc2lvbiks DQoNClllcywgdGhhdCdzIGZvciB0aGUgc2VtYXBob3JlIHN5bmMgdXNhZ2UsIHdlIGhhdmUgdG8g YmxvY2sgdGhlIHNlbSBpZiBpdCdzIHplcm8sIGRlY3JlYXNlIGl0IHdoZW4gcmV0dXJuLiBUaGF0 J3Mgd2h5IEkgc2FpZCAtIGl0J3MgbmF0dXJhbGx5IG1ha2Ugc3VyZSB0aGUgUnVuIGlzIHJlc2V0 IGFmdGVyIGFsbCByZWFkeSB0byBleGl0LiAgVGhlbiBpdCBjYW4gYWNoaWV2ZSB0aGUgYmVsb3cg ZmxvdzoNCiAgICBCU1A6IFJlbGVhc2VPbmVBcCAgLS0+ICBBUDogV2FpdEZvckJzcA0KICAgIEJT UDogV2FpdEZvckFQcyAgICA8LS0gIEFQOiBSZWxlYXNlQnNwDQoNCg0KRm9yIGxvY2tlZCBjYXNl LCBJIGp1c3QgY29weSB0aGUgZXhpc3RpbmcgbG9naWMgZnJvbSBTTU0gY3B1IGRyaXZlciAoYXMg SSBkb2N1bWVudCBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6IFRoZSBpbnN0YW5jZSByZWZlcnMgdGhl IGV4aXN0aW5nIFNNTSBDUFUgZHJpdmVyIChQaVNtbUNwdUR4ZVNtbSkgc3luYyBpbXBsZW1lbnRh dGlvbiBhbmQgYmVoYXZpb3IpOg0KZXhpc3RpbmcgUmVsZWFzZVNlbWFwaG9yZSgpIHByZXZlbnRz IGluY3JlYXNlIHRoZSBzZW1hcGhvcmUsIGJ1dCBpdCBzdGlsbCByZXR1cm4gdGhlIG9yaWdpbmFs IHNlbWFwaG9yZSB2YWx1ZSArMTsgLS0+IHRoYXQncyB3aHkgd2UgaGF2ZSB0byBjaGVjayB0aGUg cmV0dXJuIHZhbHVlIGlzICAwIG9yIG5vdCBpbiBTbW1DcHVTeW5jQ2hlY2tJbkNwdSgpDQpleGlz dGluZyBXYWl0Rm9yU2VtYXBob3JlKCkgYWxsb3cgZGVjcmVhc2UgdGhlIHNlbWFwaG9yZSBpZiBs b2NrZWQsIGFuZCBpdCBhbHNvIHJldHVybiB0aGUgb3JpZ2luYWwgc2VtYXBob3JlIHZhbHVlIC0x OyAgLS0+IHRoYXQncyB3aHkgd2UgaGF2ZSB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIGlzICA8 IDAgb3Igbm90IGluIFNtbUNwdVN5bmNDaGVja091dENwdSgpDQogDQpzbywgZG8geW91IHdhbnQg dG8gYWxpZ24gdGhlIGJlaGF2aW9yIGFzIGJlbG93Pw0KDQpSZWxlYXNlU2VtYXBob3JlKCkgcHJl dmVudHMgaW5jcmVhc2UgdGhlIHNlbWFwaG9yZSBpZiBsb2NrZWQsIGFuZCBpdCBzaG91bGQgcmV0 dXJuIHRoZSBsb2NrZWQgdmFsdWUgKE1BWF9VSU5UMzIpOyAgLS0+IHRoZW4gd2UgY2FuIGNoZWNr IHRoZSByZXR1cm4gdmFsdWUgaXMgIE1BWF9VSU5UMzIgb3Igbm90IGluIFNtbUNwdVN5bmNDaGVj a0luQ3B1KCksIGFuZCBzZW0gaXRzZWxmIHdvbid0IGJlIGNoYW5nZWQuDQpXYWl0Rm9yU2VtYXBo b3JlKCkgcHJldmVudHMgZGVjcmVhc2UgdGhlIHNlbWFwaG9yZSBpZiBsb2NrZWQsIGFuZCBpdCBz aG91bGQgcmV0dXJuIHRoZSBsb2NrZWQgdmFsdWUgKE1BWF9VSU5UMzIpOyAtLT4gdGhlbiB3ZSBj YW4gY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBpcyAgTUFYX1VJTlQzMiBvciBub3QgaW4gU21tQ3B1 U3luY0NoZWNrT3V0Q3B1ICgpLCBhbmQgc2VtIGl0c2VsZiB3b24ndCBiZSBjaGFuZ2VkLg0KDQpJ IHRoaW5rOg0KZm9yIFJlbGVhc2VTZW1hcGhvcmUsIGl0IG11c3QgbWVldCBiZWxvdyAyIGNhc2Vz IHVzYWdlOg0KMS4gZm9yIHNlbWFwaG9yZSBzeW5jIHVzYWdlIChSdW4pLCBpdCBkb2Vzbid0IGNh cmUgdGhlIGxvY2sgY2FzZSwgYW5kIHJldHVybmVkIHZhbHVlIGlzIG5vdCBjYXJlZC4gSnVzdCBj aGVjayB0aGUgc2VtYXBob3JlIGl0c2VsZi4NCjIuIGZvciBSZW5kZXp2b3VzIGNhc2UgKENvdW50 ZXIpLCBpdCBub3Qgb25seSBuZWVkcyB0byBjaGVjayBsb2NrZWQgb3Igbm90IGZyb20gcmV0dXJu IHZhbHVlLCBidXQgYWxzbyByZXF1aXJlICJvbmx5IGluY3JlYXNlIHRoZSBzZW1hcGhvcmUgaWYg bm90IGxvY2tlZCIuDQoNCmZvciBXYWl0Rm9yU2VtYXBob3JlLCBpdCBtdXN0IG1lZXQgYmVsb3cg MiBjYXNlcyB1c2FnZToNCjEuIGZvciBzZW1hcGhvcmUgc3luYyB1c2FnZSAoUnVuKSwgaXQgZG9l c24ndCBjYXJlIHRoZSBsb2NrIGNhc2UsIGFuZCByZXR1cm5lZCB2YWx1ZSBpcyBub3QgY2FyZWQu IEJ1dCBmb3IgdGhlIHNlbWFwaG9yZSBpdHNlbGYsIGl0IG5lZWQgYmxvY2sgYXQgMCwgYW5kIGRl Y3JlYXNlIHdoZW4gcmV0dXJuLg0KMi4gZm9yIFJlbmRlenZvdXMgY2FzZSAoQ291bnRlciksIGl0 IG9ubHkgbmVlZHMgdG8gY2hlY2sgbG9ja2VkIG9yIG5vdCBmcm9tIHJldHVybiB2YWx1ZS4gc2Vt YXBob3JlIGl0c2VsZiBpcyBub3QgY2FyZWQuDQoNClNvLCBiYXNlZCBvbiBhYm92ZSwgSSB0aGlu aywgeWVzLCB3ZSBjYW4gZG8gdGhlIGNoYW5nZSB0byBhbGlnbiB0aGUgbG9jayBiZWhhdmlvcjog IA0KDQovKioNCiAgUGVyZm9ybXMgYW4gYXRvbWljIGNvbXBhcmUgZXhjaGFuZ2Ugb3BlcmF0aW9u IHRvIGdldCBzZW1hcGhvcmUuDQogIFRoZSBjb21wYXJlIGV4Y2hhbmdlIG9wZXJhdGlvbiBtdXN0 IGJlIHBlcmZvcm1lZCB1c2luZyBNUCBzYWZlDQogIG1lY2hhbmlzbXMuDQoNCiAgQHBhcmFtW2lu LG91dF0gIFNlbSAgICBJTjogIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyDQogICAgICAgICAgICAg ICAgICAgICAgICAgT1VUOiBvcmlnaW5hbCBpbnRlZ2VyIC0gMSBpZiBTZW0gaXMgbm90IGxvY2tl ZC4NCiAgICAgICAgICAgICAgICAgICAgICAgICBPVVQ6IG9yaWdpbmFsIGludGVnZXIgKE1BWF9V SU5UMzIpIGlmIFNlbSBpcyBsb2NrZWQuDQoNCiAgQHJldHZhbCAgICAgT3JpZ2luYWwgaW50ZWdl ciAtIDEgaWYgU2VtIGlzIG5vdCBsb2NrZWQuDQogICAgICAgICAgICAgIE9yaWdpbmFsIGludGVn ZXIgKE1BWF9VSU5UMzIpIGlmIFNlbSBpcyBsb2NrZWQuDQoNCioqLw0KU1RBVElDDQpVSU5UMzIN CkludGVybmFsV2FpdEZvclNlbWFwaG9yZSAoDQogIElOIE9VVCAgdm9sYXRpbGUgVUlOVDMyICAq U2VtDQogICkNCnsNCiAgVUlOVDMyICBWYWx1ZTsNCg0KICBmb3IgKCA7IDspIHsNCiAgICBWYWx1 ZSA9ICpTZW07DQogICAgaWYgKFZhbHVlID09IE1BWF9VSU5UMzIpIHsNCiAgICAgIHJldHVybiBW YWx1ZTsNCiAgICB9DQoNCiAgICBpZiAoKFZhbHVlICE9IDApICYmDQogICAgICAgIChJbnRlcmxv Y2tlZENvbXBhcmVFeGNoYW5nZTMyICgNCiAgICAgICAgICAgKFVJTlQzMiAqKVNlbSwNCiAgICAg ICAgICAgVmFsdWUsDQogICAgICAgICAgIFZhbHVlIC0gMQ0KICAgICAgICAgICApID09IFZhbHVl KSkNCiAgICB7DQogICAgICBicmVhazsNCiAgICB9DQoNCiAgICBDcHVQYXVzZSAoKTsNCiAgfQ0K DQogIHJldHVybiBWYWx1ZSAtIDE7DQp9DQoNCi8qKg0KICBQZXJmb3JtcyBhbiBhdG9taWMgY29t cGFyZSBleGNoYW5nZSBvcGVyYXRpb24gdG8gcmVsZWFzZSBzZW1hcGhvcmUuDQogIFRoZSBjb21w YXJlIGV4Y2hhbmdlIG9wZXJhdGlvbiBtdXN0IGJlIHBlcmZvcm1lZCB1c2luZyBNUCBzYWZlDQog IG1lY2hhbmlzbXMuDQoNCiAgQHBhcmFtW2luLG91dF0gIFNlbSAgICBJTjogIDMyLWJpdCB1bnNp Z25lZCBpbnRlZ2VyDQogICAgICAgICAgICAgICAgICAgICAgICAgT1VUOiBvcmlnaW5hbCBpbnRl Z2VyICsgMSBpZiBTZW0gaXMgbm90IGxvY2tlZC4NCiAgICAgICAgICAgICAgICAgICAgICAgICBP VVQ6IG9yaWdpbmFsIGludGVnZXIgKE1BWF9VSU5UMzIpIGlmIFNlbSBpcyBsb2NrZWQuDQoNCiAg QHJldHZhbCAgICBPcmlnaW5hbCBpbnRlZ2VyICsgMSBpZiBTZW0gaXMgbm90IGxvY2tlZC4NCiAg ICAgICAgICAgICBPcmlnaW5hbCBpbnRlZ2VyIChNQVhfVUlOVDMyKSBpZiBTZW0gaXMgbG9ja2Vk Lg0KDQoqKi8NClNUQVRJQw0KVUlOVDMyDQpJbnRlcm5hbFJlbGVhc2VTZW1hcGhvcmUgKA0KICBJ TiBPVVQgIHZvbGF0aWxlIFVJTlQzMiAgKlNlbQ0KICApDQp7DQogIFVJTlQzMiAgVmFsdWU7DQoN CiAgZG8gew0KICAgIFZhbHVlID0gKlNlbTsNCiAgfSB3aGlsZSAoVmFsdWUgKyAxICE9IDAgJiYN CiAgICAgICAgICAgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UzMiAoDQogICAgICAgICAgICAg KFVJTlQzMiAqKVNlbSwNCiAgICAgICAgICAgICBWYWx1ZSwNCiAgICAgICAgICAgICBWYWx1ZSAr IDENCiAgICAgICAgICAgICApICE9IFZhbHVlKTsNCg0KICBpZiAoVmFsdWUgPT0gTUFYX1VJTlQz Mikgew0KICAgIHJldHVybiBWYWx1ZTsNCiAgfQ0KDQogIHJldHVybiBWYWx1ZSArIDE7DQp9DQoN CkkgaGF2ZW4ndCBzZWUgYW55IGlzc3VlIHdpdGggdGhpcyBjaGFuZ2UuIA0KDQo+IHdlIGtub3cg dGhlIGRvb3Igd2FzIGxvY2tlZCBlYXJsaWVyIChhbmQgdGhlIHNlbWFwaG9yZSBpcyBub3QgY2hh bmdlZCkuDQo+IA0KPiBBdCB0aGUgc2FtZSB0aW1lLCB3ZSBtaWdodCB3YW50IHRvIHVwZGF0ZSBJ bnRlcm5hbFJlbGVhc2VTZW1hcGhvcmUoKSBhcw0KPiB3ZWxsLCBzbyB0aGF0IGl0IGNhbm5vdCB2 YWxpZGx5IGluY3JlbWVudCB0aGUgc2VtYXBob3JlIHZhbHVlIHRvIE1BWF9VSU5UMzIuDQo+IA0K PiANCj4gDQo+ID4NCj4gPg0KDQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8g TGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcv UmVwbHkgT25saW5lICgjMTEyNTQyKTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21l c3NhZ2UvMTEyNTQyCk11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvMTAzMDEw MTY1Lzc2ODYxNzYKR3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvClVuc3Vi c2NyaWJlOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWIgW3JlYmVjY2FAb3Bl bmZ3LmlvXQotPS09LT0tPS09LT0tPS09LT0tPS09LQoKDQo=