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 36859941519 for ; Wed, 20 Dec 2023 12:28:47 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=kUtgzWoFcsyAQ3JcASa8uDQJ9IDBvSmUMxVCXKSdUns=; 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=1703075325; v=1; b=WWXewHUcbfoBcZGDNOs5bMS/I6rocwlAIGlnKzQB4zW28434BuI1fQwd3gkFglm0X6s82+Ut 3vWlsvvK7stUiG0QboWlqhiK2CSnIRhF6e5+epHwxobwHR+J/bJblvKWz41HihuhgrYkH/PclVK jliJtPA+hXky7NuaytoHTzow= X-Received: by 127.0.0.2 with SMTP id v7VxYY7687511xYvPqmKmPBb; Wed, 20 Dec 2023 04:28:45 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by mx.groups.io with SMTP id smtpd.web11.20185.1703075323913606360 for ; Wed, 20 Dec 2023 04:28:45 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10929"; a="17361329" X-IronPort-AV: E=Sophos;i="6.04,291,1695711600"; d="scan'208";a="17361329" X-Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Dec 2023 04:28:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10929"; a="769571856" X-IronPort-AV: E=Sophos;i="6.04,291,1695711600"; d="scan'208";a="769571856" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 20 Dec 2023 04:28:41 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.2507.35; Wed, 20 Dec 2023 04:28:41 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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; Wed, 20 Dec 2023 04:28:41 -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; Wed, 20 Dec 2023 04:28:41 -0800 X-Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.41) 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; Wed, 20 Dec 2023 04:28:40 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ot8lHt01AskonB9kl+Yvdvj1IJbCuKMYLDdsg9tAAykA3RacFDo88S5X6GpsXYwqbSlvNv6VIB2PLDt1Y5Wz+kozNixmHYQhvZSeUDw34hw0FfszYiMml7DdzRHaurtJlgvOq3IQhn/MDWNQOy+u/P4yaPE7jml2EgaG2HIu1gLqo9UP3Fd2IO0h6Xp40OfH/i/FtAEQVAOcBh/FZok3UGG1xk7DBrS+djkxxIwuUAEDNRznvlkKuxKsoTJUtO+aTc8U403krOAXsWCH5g4JyCy8Y12UAussQXdq4ZvvbRChiuDoZDGdTewpkkU+flCI6ZXHAmrqSO8yUDgEr+vBuA== 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=IsQh21C6py1dUBgVg4XFWrJDoitV5z6OYqSO3i/36s8=; b=U+A0I2p/nYnQplWOMN4QYVcB5G1oC7t1Wc0Txx5BIJJGP7nOi57OBpYDONJKAbgR+HvJsTfXCV0BGkaPHmiRtkBtwLjqULHMY5EsiyRQATOfys4WSFJwxpEmnG251FRLRcWnWA+Unw79wQZ5BBe0Es10mQoLWUH89KMqIi+EV6nOBEQ5UBxenVWiSYiBQz40b0BIr8c8P7ZpGUGPinlv+m7jBgMphkTBGS/nvgXpN2a0V3PhrxGZi6rxTpJh6H93zb+VY4NOsmNrOHFQAXrR9g4ne/iryp6U6pbGZhKdPRGCtLsIesj0rGJURmKawXP2QuVw4i17dhAwhjU/ZP4hCg== 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 MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by SA3PR11MB8074.namprd11.prod.outlook.com (2603:10b6:806:302::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec 2023 12:28:37 +0000 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858%4]) with mapi id 15.20.7091.034; Wed, 20 Dec 2023 12:28:37 +0000 From: "Ni, Ray" To: Ard Biesheuvel CC: "devel@edk2.groups.io" , "lichao@loongson.cn" , "Kumar, Rahul R" , "Gerd Hoffmann" , Leif Lindholm , "Ard Biesheuvel" , Sami Mujawar Subject: Re: [edk2-devel] [PATCH v4 19/37] UefiCpuPkg: Add MMIO method in CpuIo2Dxe Thread-Topic: [edk2-devel] [PATCH v4 19/37] UefiCpuPkg: Add MMIO method in CpuIo2Dxe Thread-Index: AQHaMnwmrO5JQp/6yES0lV3La77QdbCxZvoggABj1QCAAB61MIAABocAgAAk9VA= Date: Wed, 20 Dec 2023 12:28:36 +0000 Message-ID: References: <20231212130932.2467028-1-lichao@loongson.cn> <17A017C201FEB90D.32321@groups.io> <9014a7b3-095c-42b1-a9ef-5a388818385d@loongson.cn> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|SA3PR11MB8074:EE_ x-ms-office365-filtering-correlation-id: f3a522d2-5286-4ceb-b841-08dc01573044 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: gm9phYF+GxIavWt6gsWJ+UTfNodjANSuzc9JzCd8ff90o/WTMOPIMnpBy5ArACrdyiYmiwVRvbTv/EtTAZLzptm30hj+R489TPjVUTBDyQkfkzqll+to4/YVUah/xmN5jNXLQXYBQDaNTGzm7fYGuPWxfHJGTG7UGQiSPMm3///4s5wKXPddVQzE1k1Z2/C2Jwtpt+IaLthwnhJfYofDiICnIbkyxd8VMXzP0eE8ZcKV0ZilPV2rYbc8pwFUVUDUDZh/KRM3x2de7gG/4A7+RnFvM9O0aG48cKHtNdHO36SfumxVUUoiBQBbJYX4kVlzOECpBU+hdQWscn2qj+Skul5aC+u0wfod57UXLInIcFBmDTqJu3uo98TvNduABwBE//EopLyF1+Y3zE2qVJo1UYD3v1ef8+oAmHBU0KCzhRBfjWzUNLqhlCpH0DYoyH2JmOjMd6xdXAVzp5HyB/m4hbATOJkti8TTU39IVO6nzJApo8jKjcx3Y6D8YKlv5VTqwxooGpNhl38kNzS5oBpDPyVjIrNe+cbQfpuuMMXhMKn8v371d43pDJ/4fb/jNLA1VUjp1acCLv8cS7KxDHy3N6Wh6u0mpezILbh/VaRov0sp8AycD2U0X7YviEIEEaKYJTQxkKyeUhr2zQmPYjkWpAaCXXJzJexLftlEtvHWg5E= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RE1mWjdqYis4REZvNkxCWCs5VXRTTUcySVJqTGFMQitIUkVpSThlMS93c0lV?= =?utf-8?B?MU1WU08rU1BqcUNndHJpN2RrQ01tbXROQ0ZvWW9YVlhnY2Y5T1RFbVI0ZklP?= =?utf-8?B?RExaR1I2eS85S0p5Y2dpNE9uSXVEZmlMdFFVQWZLM3I4VitFZXVTL2xFbnNi?= =?utf-8?B?ZWFxVC9EQlIvTFFTM0RMU29nV1VOVFFBeEZnMHUyM253WmdrTDNiQlRROGlJ?= =?utf-8?B?L0tjRjRqbUpORWpzOHAwc1JxaVVSdEMvNnJBK0w1alBMbmJNWXlORk1ScUdM?= =?utf-8?B?dVFic0dKM3ZZNTBMZ3FPWVJDSVdXS1JDZGZkTHhnbnRVb2lsWkV4QVpwdHcw?= =?utf-8?B?RHQ3Tnkvd0p1NDV3U0FZY08wM2trV1pBbmovOWJlWDI1cUpZV1M2SUQ3RkZQ?= =?utf-8?B?VFczMWN1WmhmU0NQcnVvRWhxVTJwWFdFWURsTEFIalBBbnpkNjdNY3l4Wndm?= =?utf-8?B?Y0NiTllacHc1Z3J2aW01cWNZZXZRTnRFeWlVcHZoZGluVWxUeEZWazNEbGxS?= =?utf-8?B?V0pHMFZGanh5NHQzVnplWEFDU3NwVVhyUXZSKzY0ZkdCdXF2YTNxOThkY2sz?= =?utf-8?B?SFloTkZrVE5WQWFxRDZTenFZT2hZcjU1aW9RQmlYVjBZVXFxT3R1akZFcEVO?= =?utf-8?B?bEpFTFFqR2gveUNXVldPZUNsYkE5aUc3OUwvSXI2blZsQlZMMHJ2SU9HaHJx?= =?utf-8?B?TkJYNmM5REgrTUJmWDJ1MDdsbk9KZU85cDBEMGFKU1ZMTTdHbFdFSEZYWlJO?= =?utf-8?B?S1BvQlYxdEpYL3grOUZld25laG0yYTl3QW1GdDRtVVF5YUczVkprdjV0WUEy?= =?utf-8?B?SU9RcGRubVAvR2lUbmJqTjdnL2huQ1RsTitGL2RPTjRVU2VSaTljVVYrb0JG?= =?utf-8?B?NkdHbm9hQk5OZ1lQVmR2N0d0TThGRC9jL2xLdUhhYng5cGdmaWdudEdSNXlz?= =?utf-8?B?Sk03R0pJQ2VsS1JyNzVqeitSRVJtOUF2THlrdVFjdkVaVGh5b3BuaWppVStx?= =?utf-8?B?SDlhL1lJdHNIZjhxVW5HUDNvOFJvcHdMWjFCWE9GWWtWNUlVYkRxUUlLYlRQ?= =?utf-8?B?N1Z2bDhMVi9OY3VJVEVOellxVlRERnJFQUE1UGlkMDZibXhUZWFjOUg4ZE5z?= =?utf-8?B?UkdhQkpJSktrR3BlWWVoenBqUE10clhDeUFtYW5vNlNwVlJMWjRUUHFGcmlX?= =?utf-8?B?UHgzWWZBYlRlWlA4eEJxVCtzYlJvdTJsUG5Ta044ODRJMnZmU3p5enIzRnpi?= =?utf-8?B?UFBPOGFpaFN3V3JNVXoydlFORVdjWXlua0VRZmFpMGtTTm40NldGQ3BTWmtG?= =?utf-8?B?RjhXSjFreTJUSWxyaDNmd0w4QytqL3I0ZDdQOGUxeUQ0RGtqZXhwNUxpT3Vs?= =?utf-8?B?OFlxWmlHRzFVZldiWDVJZE9pZHFQdzQvTWFXaWFIUE1xZUVvT0RmUi93UkxC?= =?utf-8?B?ZTBmYWVZU21hOTJtNXJNakoyemZqVDAxU280L2dUeGZGKzRkNzc1eXVpbTJt?= =?utf-8?B?VVZvSHMxVllxdWJENkJmaDhqTWpXaDJHV3JSVkFjV2NVanJUZlZ0RGdXQXpK?= =?utf-8?B?d3lzWXZEVE1JS1hmUkg1cXZsaE10Q3ZrOFBKYVlGbnp3dEJ5WFVsbEg1SGt6?= =?utf-8?B?TUdQSGNZMmFTQmpwY2tWR2NnZlNsYkJ4cko3azM5WkYwYklkazFtTDRvQjhJ?= =?utf-8?B?OU5tTXdOdUU2QzJ1V1Z2L2RGUWFOckZRMktCcWhXbVlwMXlFcDFiVzB3MGlY?= =?utf-8?B?aVJ0Rm9wLzV3cU0rM2pFV1FkanFLSDhnMWZXQ0lYejFKL3p0L1c5em9RZ3Bu?= =?utf-8?B?dmFTQzBENWhUZS9wTWZ6dnhQMkF5cXcwMnIvZG9kWVIycVVqMkFjaEhEVHpp?= =?utf-8?B?Yk0yWHhhZVdZaks1bGlNdnNtMm9GdTRELzVrQVhrdzdyQzR3bW5HUnU3UEVl?= =?utf-8?B?ajlwakljY0pJemRRQ2k1QXJvNnNxYTI2bm1LRGMvNVhQbjJVOUlHYXRwUk9E?= =?utf-8?B?U1RUWWhmTlVZdUxxQXI3S2htMy85c2JsdjZtMzlnVXVpeXZhY1pTRVZOdW5o?= =?utf-8?B?Y3F3cEFtMy8xVG8xOWgzc2h5N0R5d1pNNC90T2hSSTZiN2JzYURZeEl1NTVr?= =?utf-8?Q?c55M=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3a522d2-5286-4ceb-b841-08dc01573044 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2023 12:28:36.3041 (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: ILUtuLaW3r7syN5HVdnuZIJIgRZtgLqovoEKYSsFWkwxkDJOxk7VUu0LzimrMvbN5xa/bXKcLoN3OGzESojdxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR11MB8074 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,ray.ni@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: Mkak6OlfEKuMXBxsuzNDNx4Tx7686176AA= 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=WWXewHUc; 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 VGhhbmtzIGZvciBwb2ludGluZyBpdCBvdXQuDQpJIGZvdW5kIGl0IGluIEFDUEkgc3BlYyB0aGF0 IHRlbGxzIGhvdyB0byB1c2UgIlJlc291cmNlIFR5cGUgU3BlY2lmaWMgRmxhZ3MiIHRvIGRlc2Ny aWJlIGEgTUVNIHJlc291cmNlIHdoaWxlIG1hcHMgdG8gSU8sDQphbmQgYW4gSU8gcmVzb3VyY2Ug d2hpbGUgbWFwcyB0byBNRU0uDQoNCkkgYXNzdW1lIHRoYXQgdGhlIElPIHBvcnQgYWNjZXNzZXMg YXJlIGFsbCBmcm9tIFBDSSBkZXZpY2UgZHJpdmVycy4NClRoZW4sIHdlIGNhbiBjaGFuZ2UgdGhl IFBjaUhvc3RCcmlkZ2VMaWIgbGliIGludGVyZmFjZSB0byBhZGQgYSBuZXcgZmllbGQgSW8yTW1p byBhcGVydHVyZQ0KdG8gUENJX1JPT1RfQlJJREdFIGluZGljYXRpbmcgdGhlIG1hcHBpbmcgZnJv bSBJTyB0byBNTUlPPw0KDQpJZiBJbzJNbWlvIGFwZXJ0dXJlIGlzIHZhbGlkLCBhbnkgSU8gYWNj ZXNzIGlzIHRyYW5zbGF0ZWQgYnkgUGNpSG9zdEJyaWRnZUR4ZSBkcml2ZXIgdG8gTU1JTyBhY2Nl c3MuDQoNClN1Y2ggZGVzaWduIGhhcyBzb21lIGxpbWl0YXRpb25zIG9yIG9wZW5zOg0KMS4gaG93 IHRvIGJlIGJhY2t3YXJkIGNvbXBhdGlibGUgdG8gZXhpc3RpbmcgeDg2IGZpcm13YXJlLg0KMi4g SXMgdGhlIElPIHdpbmRvdyB0aGUgc2FtZSBhcyBNTUlPIHdpbmRvdz8gQ2FuIElPIHdpbmRvdyBh bmQgTU1JTyB3aW5kb3cgdXNlIGRpZmZlcmVudCBzdHJpZGVzPyBFLmcuOiBJT1swLTB4MTBdIG1h cHMgdG8gTU1JT1sweDEwMCAtIDB4MTIwXS4NCjMuIE5vIG11bHRpcGxlIElPIHdpbmRvd3MgZm9y IGVhY2ggUGNpUm9vdEJyaWRnZQ0KDQpUaGFua3MsDQpSYXkNCj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgPGFyZGJAa2VybmVsLm9yZz4NCj4gU2Vu dDogV2VkbmVzZGF5LCBEZWNlbWJlciAyMCwgMjAyMyA1OjU0IFBNDQo+IFRvOiBOaSwgUmF5IDxy YXkubmlAaW50ZWwuY29tPg0KPiBDYzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGxpY2hhb0Bsb29u Z3Nvbi5jbjsgS3VtYXIsIFJhaHVsIFINCj4gPHJhaHVsLnIua3VtYXJAaW50ZWwuY29tPjsgR2Vy ZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBMZWlmDQo+IExpbmRob2xtIDxxdWljX2xs aW5kaG9sQHF1aWNpbmMuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4gPGFyZGIrdGlhbm9jb3JlQGtl cm5lbC5vcmc+OyBTYW1pIE11amF3YXIgPHNhbWkubXVqYXdhckBhcm0uY29tPg0KPiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NCAxOS8zN10gVWVmaUNwdVBrZzogQWRkIE1NSU8g bWV0aG9kDQo+IGluIENwdUlvMkR4ZQ0KPiANCj4gT24gV2VkLCAyMCBEZWMgMjAyMyBhdCAxMDo0 NCwgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBBcmQsDQo+ID4g TGV0IG1lIHRyeSB0byB1bmRlcnN0YW5kOg0KPiA+DQo+ID4gMS4gQ1BVIGRvZXMgbm90IHN1cHBv cnQgSU8gaW5zdHJ1Y3Rpb25zIHRvIGFjY2VzcyBJTyBwb3J0cy4NCj4gPiAyLiBQQ0kgZGV2aWNl cyBjb250YWluIElPIHNwYWNlLg0KPiA+IDMuIEEgc3BlY2lhbCBQQ0kgaG9zdCBicmlkZ2UgY2Fu IGJlIGNvbmZpZ3VyZWQgdG8gbWFwIGEgcmFuZ2Ugb2YgTU1JTyBzcGFjZQ0KPiBmcm9tIENQVSBz aWRlIHRvIGFub3RoZXIgcmFuZ2Ugb2YgSU8gc3BhY2UgdG8gUENJIGRldmljZSBzaWRlLg0KPiA+ DQo+IA0KPiBDb3JyZWN0Lg0KPiANCj4gPiBJZiBhYm92ZSBpcyByaWdodCwgSSBjYW4gaW1hZ2lu ZSB3aGF0IHByb2JsZW0gQ2hhbyBpcyB0cnlpbmcgdG8gc29sdmUuDQo+ID4gVGhlcmUgYXJlIGZv bGxvd2luZyBmYWN0czoNCj4gPiA0LiBNZGVNb2R1bGVQa2cvUGNpSG9zdEJyaWRnZSBkcml2ZXIg cHJvZHVjZXMgUGNpUm9vdEJyaWRnZUlvLT5JbygpDQo+IHNlcnZpY2Ugd2hpY2ggZGlyZWN0bHkg Y2FsbHMgdG8gQ3B1SW8tPklvKCkNCj4gPg0KPiA+IEkgZ3Vlc3MgQ2hhbyBhcmUgdXNpbmcgTWRl TW9kdWxlUGtnL1BjaUhvc3RCcmlkZ2UgZHJpdmVyLg0KPiA+DQo+IA0KPiBZZXMuIFRoaXMgZHJp dmVyIGlzIHdpZGVseSB1c2VkIG9uIEFSTSBhbmQgUklTQy1WIHN5c3RlbXMuDQo+IA0KPiA+IEkg YWdyZWUgd2l0aCBBcmQgdGhhdCB0aGUgcHJvcGVyIHBsYWNlIHRvIGNoYW5nZS9ob29rIHRoZSBJ TyBhY2Nlc3MgaXMgaW5zaWRlDQo+IFBjaUhvc3RCcmlkZ2UgZHJpdmVyIGluc3RlYWQgb2YgQ3B1 SW8yRHhlIGlmIHRoZSBvbmx5IElPIGFjY2VzcyBpcyBmcm9tIFBDSQ0KPiBkZXZpY2UgZHJpdmVy Lg0KPiA+DQo+IA0KPiBUaGF0IGlzIG5vdCB3aGF0IEkgc2FpZCA6LSkNCj4gDQo+IEkgaW1wbGVt ZW50ZWQgQ3B1SW8yRHhlIGxpa2UgdGhpcyBpbiB0aGUgcGFzdCBmb3IgQVJNLCBhbmQgbm93IGl0 DQo+IGFwcGVhcnMgd2UgbmVlZCB0byBnZW5lcmFsaXplIHRoaXMgc29sdXRpb24gZm9yIG90aGVy IGFyY2hpdGVjdHVyZXMgYXMNCj4gd2VsbC4NCj4gDQo+ID4gVGhlbiBQY2lIb3N0QnJpZGdlRHhl IGRyaXZlciBjb3VsZCBiZSBlbmhhbmNlZCB0byBob25vciB0aGUgTU1JTy10by1JTw0KPiBtYXBw aW5nIGFuZCBvbmx5IHRyYW5zbGF0ZSB0aGUgSU8gcmVxdWVzdCB0byBNTUlPIHdoaWNoIGJlbG9u Z3MgdG8gdGhlIElPDQo+IHdpbmRvdy4NCj4gPg0KPiANCj4gVGhlIHByb2JsZW0gaXMgdGhhdCBQ SS9VRUZJIGhhcyBhIGRlZGljYXRlZCBnbG9iYWwgY29oZXJlbmN5IGRvbWFpbg0KPiAoR0NEKSBm b3IgcG9ydCBJL08sIHNvIEkgZG9uJ3QgdGhpbmsgd2UgY2FuIGNvbXBsZXRlbHkgaGlkZSBpdCBp biB0aGUNCj4gUENJIGRyaXZlci4gQnV0IHRoZSBzaXR1YXRpb24gaXMgdmVyeSBkaWZmZXJlbnQg ZnJvbSB4ODYsIHdoaWNoIGhhcw0KPiBtYW55IHdlbGwta25vd24gcG9ydCBJL08gbnVtYmVycyB0 aGF0IGNvdWxkIGVpdGhlciBiZSBiYWNrZWQgYnkgdGhlDQo+IGNoaXBzZXQgZGlyZWN0bHkgb3Ig YnkgZGV2aWNlcyBvbiB0aGUgUENJIGJ1cy4NCj4gDQo+IEFDUEkgY2FuIGFscmVhZHkgZGVzY3Jp YmUgdGhpcyBhcnJhbmdlbWVudCwgZS5nLiwgc2VlIGJlbG93LCB3aGVyZSB0aGUNCj4gRFdvcmRJ TyB3aW5kb3cgaGFzIFR5cGVUcmFuc2xhdGlvbiwgYW5kIHRoZSByYW5nZSBpcyBpbiB0aGUgcG9y dCBJL08NCj4gZG9tYWluLCBidXQgdHJhbnNsYXRlIGFuZCBsZW5ndGggYXJlIGluIHRoZSBtZW1v cnkgZG9tYWluLiBOb24teDg2DQo+IE9TZXMgY2FuIGRlYWwgd2l0aCB0aGlzIG5hdGl2ZWx5Lg0K PiANCj4gR2l2ZW4gdGhhdCBDcHVJbzIgYWxyZWFkeSBleGlzdHMsIGFuZCBwcm92aWRlcyBhIHN1 aXRhYmxlIGFic3RyYWN0aW9uDQo+IChpLmUuLCBDIGZ1bmN0aW9ucyB0byBwZXJmb3JtIHBvcnQg SS9PIHdoZXJlIHRoZSBDUFUgbWF5IG5vdCBoYXZlDQo+IG5hdGl2ZSBpbnN0cnVjdGlvbnMgdG8g ZG8gc28pLCBJIHRoaW5rIHJldGFpbmluZyB0aGlzIHByb3RvY29sIGlzDQo+IGZpbmUsIHdlIGp1 c3QgbmVlZCBhIGJldHRlciB3YXkgdG8gbGluayBpdCBpbnRvIHRoZSBleGlzdGluZyBQQ0kNCj4g aW5mcmFzdHJ1Y3R1cmUuDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gICAgICAgICAvLyBSb290IGNv bXBsZXggcmVzb3VyY2VzDQo+ICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSB7 DQo+ICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkgew0KPiAgICAg ICAgICAgICAgICAgV29yZEJ1c051bWJlciAoIC8vIEJ1cyBudW1iZXJzIGFzc2lnbmVkIHRvIHRo aXMgcm9vdA0KPiAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlUHJvZHVjZXIsDQo+ICAgICAg ICAgICAgICAgICAgICAgTWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsDQo+ICAgICAgICAg ICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRyZXNzR3Jh bnVsYXJpdHkNCj4gICAgICAgICAgICAgICAgICAgICBTWU5RVUFDRVJfUENJX1NFRzBfQlVTTlVN X01JTiwgIC8vIE1pbmltdW0gQnVzIE51bWJlcg0KPiAgICAgICAgICAgICAgICAgICAgIFNZTlFV QUNFUl9QQ0lfU0VHMF9CVVNOVU1fTUFYLCAgLy8gTWF4aW11bSBCdXMgTnVtYmVyDQo+ICAgICAg ICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRyZXNz VHJhbnNsYXRpb24NCj4gICAgICAgICAgICAgICAgICAgICBTWU5RVUFDRVJfUENJX1NFRzBfQlVT TlVNX1JBTkdFIC8vIFJhbmdlTGVuZ3RoIC0gIyBvZg0KPiBCdXNzZXMNCj4gICAgICAgICAgICAg ICAgICkNCj4gDQo+ICAgICAgICAgICAgICAgICBRV29yZE1lbW9yeSAoIC8vIDMyLWJpdCBCQVIg V2luZG93cw0KPiAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29k ZSwNCj4gICAgICAgICAgICAgICAgICAgICBNaW5GaXhlZCwgTWF4Rml4ZWQsDQo+ICAgICAgICAg ICAgICAgICAgICAgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsDQo+ICAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JhbnVsYXJpdHkNCj4gICAg ICAgICAgICAgICAgICAgICBTWU5RVUFDRVJfUENJX1NFRzBfTU1JTzMyX01JTiwgICAgICAvLyBN aW4gQmFzZSBBZGRyZXNzDQo+ICAgICAgICAgICAgICAgICAgICAgU1lOUVVBQ0VSX1BDSV9TRUcw X01NSU8zMl9NQVgsICAgICAgLy8gTWF4IEJhc2UgQWRkcmVzcw0KPiAgICAgICAgICAgICAgICAg ICAgIFNZTlFVQUNFUl9QQ0lfU0VHMF9NTUlPMzJfWExBVEUsICAgIC8vIFRyYW5zbGF0ZQ0KPiAg ICAgICAgICAgICAgICAgICAgIFNZTlFVQUNFUl9QQ0lfU0VHMF9NTUlPMzJfU0laRSAgICAgIC8v IExlbmd0aA0KPiAgICAgICAgICAgICAgICAgKQ0KPiANCj4gICAgICAgICAgICAgICAgIFFXb3Jk TWVtb3J5ICggLy8gNjQtYml0IEJBUiBXaW5kb3dzDQo+ICAgICAgICAgICAgICAgICAgICAgUmVz b3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLA0KPiAgICAgICAgICAgICAgICAgICAgIE1pbkZpeGVk LCBNYXhGaXhlZCwNCj4gICAgICAgICAgICAgICAgICAgICBDYWNoZWFibGUsIFJlYWRXcml0ZSwN Cj4gICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBHcmFudWxhcml0eQ0KPiAgICAgICAgICAgICAgICAgICAgIFNZTlFVQUNFUl9QQ0lfU0VH MF9NTUlPNjRfTUlOLCAgICAgIC8vIE1pbiBCYXNlIEFkZHJlc3MNCj4gICAgICAgICAgICAgICAg ICAgICBTWU5RVUFDRVJfUENJX1NFRzBfTU1JTzY0X01BWCwgICAgICAvLyBNYXggQmFzZSBBZGRy ZXNzDQo+ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVHJhbnNsYXRlDQo+ICAgICAgICAgICAgICAgICAgICAgU1lOUVVBQ0VSX1BDSV9T RUcwX01NSU82NF9TSVpFICAgICAgLy8gTGVuZ3RoDQo+ICAgICAgICAgICAgICAgICApDQo+IA0K PiAgICAgICAgICAgICAgICAgRFdvcmRJbyAoIC8vIElPIHdpbmRvdw0KPiAgICAgICAgICAgICAg ICAgICAgIFJlc291cmNlUHJvZHVjZXIsDQo+ICAgICAgICAgICAgICAgICAgICAgTWluRml4ZWQs DQo+ICAgICAgICAgICAgICAgICAgICAgTWF4Rml4ZWQsDQo+ICAgICAgICAgICAgICAgICAgICAg UG9zRGVjb2RlLA0KPiAgICAgICAgICAgICAgICAgICAgIEVudGlyZVJhbmdlLA0KPiAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdyYW51 bGFyaXR5DQo+ICAgICAgICAgICAgICAgICAgICAgU1lOUVVBQ0VSX1BDSV9TRUcwX1BPUlRJT19N SU4sICAgICAgLy8gTWluIEJhc2UgQWRkcmVzcw0KPiAgICAgICAgICAgICAgICAgICAgIFNZTlFV QUNFUl9QQ0lfU0VHMF9QT1JUSU9fTUFYLCAgICAgIC8vIE1heCBCYXNlIEFkZHJlc3MNCj4gICAg ICAgICAgICAgICAgICAgICBTWU5RVUFDRVJfUENJX1NFRzBfUE9SVElPX01FTUJBU0UsICAvLyBU cmFuc2xhdGUNCj4gICAgICAgICAgICAgICAgICAgICBTWU5RVUFDRVJfUENJX1NFRzBfUE9SVElP X01FTVNJWkUsICAvLyBMZW5ndGgNCj4gICAgICAgICAgICAgICAgICAgICAsDQo+ICAgICAgICAg ICAgICAgICAgICAgLA0KPiAgICAgICAgICAgICAgICAgICAgICwNCj4gICAgICAgICAgICAgICAg ICAgICBUeXBlVHJhbnNsYXRpb24NCj4gICAgICAgICAgICAgICAgICkNCj4gICAgICAgICAgICAg fSkgLy8gTmFtZSAoUkJVRikNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBM aW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9S ZXBseSBPbmxpbmUgKCMxMTI3NjEpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVz c2FnZS8xMTI3NjEKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDMyNjE2 OTMvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJz Y3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9sZWF2ZS8xMjM2NzExMS83Njg2 MTc2LzE5MTM0NTYyMTIveHl6enkgW3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09LT0tPS09LT0tPS09 LT0tPS09LQoKDQo=