From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web08.769.1632524493887978535 for ; Fri, 24 Sep 2021 16:01:34 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=DxxJ/FMJ; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10117"; a="220985789" X-IronPort-AV: E=Sophos;i="5.85,321,1624345200"; d="scan'208";a="220985789" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2021 16:01:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,321,1624345200"; d="scan'208";a="436281833" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga006.jf.intel.com with ESMTP; 24 Sep 2021 16:01:32 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) 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.2242.12; Fri, 24 Sep 2021 16:01:32 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2242.12 via Frontend Transport; Fri, 24 Sep 2021 16:01:32 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Fri, 24 Sep 2021 16:01:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Skhxt1uQvrUCBZqqdpKWipuDkO2OsR0vHGGTPBVvKLPISzhqPx+plGfg1vxyvg4UAfdwazGyykt5hL0mTwvIXQ5dJYsbb4e0gyHBjSOAsiiM4UAIE5dfzajjRosn3hb/2gQP/yJhWI20X3DkZ1zp7CGxoCEXEcg12BNKrQCoOvHXniJLTRJIbNXw9t7EJ2f3zBQRWzfRl7994WQKtGYeaqIk/QE32HttFOVFAeOJ7cbvCKusBfrT8+usaJTyFT3IxPoOt3NUa8j5owiMWrXnBpgdqLE8BCIwQhxGsgK9Clj4auqpaoM6TNQ+T07hCDbICTKyZtHg92VXM7hH7ksrDw== 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; bh=H27NmNlXp+kr59ro/ggzj+nMvRawI4gy/2AM8x8kABg=; b=geo8WrScCVUHT7TPMomlFmNbO0whMpAlktxiPsKjF4C0mrEurAmR2KW8oFXbpNsMpTwES2csZCE45hcVK7jstTGSLu6ow4pg7J2MfN0VmoDsMwO2/iGhR/SXFdKs+zXOyZHQedqpQLIpsCDpD1a1buZA743sC3zRi39iQyyX1AqJNnNjkBKVDX9Q0xTGR36YeU7F2kd4SipkMDnxEDcrLza4esLEmwPyjL6YgVs7i4AWdwRt03x9KaXWnvI/dW213a/Vemz3f6LbZjOl8LBx/dXLgugHiR0SPP17+yx+Fv2wfIyiKeLe+tBrFZksw4lTA55HkZqRKTmcyelyJ3dC0A== 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=H27NmNlXp+kr59ro/ggzj+nMvRawI4gy/2AM8x8kABg=; b=DxxJ/FMJQm1+TYDSYZeuVdY67QIau+xBsFdkdHXSbM7BfoZd76yjhq9M7PH8E4XC4AGWvDBDmPcl1Q8V7WvLdFxcpDkvYi8AkEVTPiCzXZk4vkAgclz4RS69AorI2OoT2npI6hfe/ldVLP8e9wfOH8qAF4uzIRAvc50FO45lQDI= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB5125.namprd11.prod.outlook.com (2603:10b6:510:3e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13; Fri, 24 Sep 2021 23:01:25 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::754e:42e9:16cd:1306]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::754e:42e9:16cd:1306%6]) with mapi id 15.20.4544.018; Fri, 24 Sep 2021 23:01:25 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" , "Xu, Min M" CC: "Kinney, Michael D" , "Liu, Zhiguang" , "Wang, Jian J" , "Lu, Ken" Subject: Re: [edk2-devel] [PATCH 1/2] MdePkg: Introduce TdProtocol for TD-Guest firmware Thread-Topic: [edk2-devel] [PATCH 1/2] MdePkg: Introduce TdProtocol for TD-Guest firmware Thread-Index: AQHXqQvqAqkdzeQwtEGjuHf3d8TzGqukmNsAgA9E4bA= Date: Fri, 24 Sep 2021 23:01:25 +0000 Message-ID: References: <29ffecfbc2a4076d9cb9fc40238548ab637c5f19.1631583583.git.min.m.xu@intel.com> <002201d7a9f5$79acd310$6d067930$@byosoft.com.cn> In-Reply-To: <002201d7a9f5$79acd310$6d067930$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action 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-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4a2fc6ed-68a1-4923-3f0c-08d97faf3c5e x-ms-traffictypediagnostic: PH0PR11MB5125: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3044; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sORjHa/I2Fe6KF777iGA8J/BZEESpKZbCYvaDqhOgHXmmY0/N0Si4j3kUUwdk4R9ULQ5yelNEvTRAQEQiuPjqqmqsRBH4WOXuPD9QAywT1n1WSVNIuT0S6C+PEEBSXMfvVwxSqOmLx0siWlSshQ5eaIg0ZY+m7E2keggVw4a5lylnvbs+exrmgCadznTCp7hDcxhe2Dsg3VcT3d39x8l3Jkf3s+EsP2nPspi9izgpqznMVWvHmJd4JiDTDFBwMhXigJsvdAaTGgDebgSCb4ly8bBvZF+FouIWhszGt61tTZd3mIE78HbmDYqU3S4QIAHsuFAQNs2/wbK5bU4bLNT574aopqaiRjKgCBI2TGJP/DoB5QQ0eF4s+iKdQwQDXah0cMWUwXnI9XJg0N8fB/FDhggtO7AkQeUFznGeRe7OKs6a3cce85m+lQkkzeYa3ClbMP6NH2HOq/xXsW6ag2DlGZjlKb43xNlKULSn0L750gYqJ/RF+MzqWBK8zxAzaU0r2jmgFsNpwxLmI2IY/nTvuuZaE3aYKZ3/xdLpU4miwSGtJMxA1MQlzHJKR5rHsi670mVHjav3hYtrTJU4tdwv/6qlnH9fEFjIm7XwlqPViTLyRmgGk0MBGzcpl1IKidmgCkRH1WmnqKvVqbXARxfEU6LXNHcPO+JUatjkKMNSp/xOYMaEAFhGDN4oRDvdRMONkWiVy5hePuzbGiCJL9EyjZhNAcrtLCY9trdHtwDFMsV/FHJTqPUSoBXWBLEYKfBz/qyBmwfvGeZw+qykidlOmiPL+9nh35ZGfRLymG65zOGDlODqfdRFsYHPLZzFFUoDAGC4gfCZ82vhwo0OleRSg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(4636009)(366004)(186003)(64756008)(30864003)(55016002)(83380400001)(508600001)(7696005)(966005)(52536014)(26005)(66556008)(5660300002)(38070700005)(8936002)(316002)(4326008)(66946007)(66446008)(86362001)(6636002)(54906003)(38100700002)(122000001)(8676002)(110136005)(76116006)(33656002)(53546011)(2906002)(9686003)(6506007)(71200400001)(66476007)(107886003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Sk9qSmpEajlyUTBIQk4rNjBSSy9PTUdKRmhrV3JXeGwrQzJNczI0MnlsWWMz?= =?utf-8?B?T052OW0wVWVDWk1Ic0tlL2g5UGJQUm5OQ3cydDBXY2k1a1JRSXo5R3BneTFn?= =?utf-8?B?VXZBY3drZm9lR240cC9abkFNUTNwRUhMLzJMdEVhL1F3QWZ6SVpqMGVpeThC?= =?utf-8?B?Vkl2UVdoTkRGSi9UajNjbUIxc1duTmdBeG5EQ3QvZU9nTy9XYzZYOVdRVTNN?= =?utf-8?B?STRvS3V0V3kxa0grWGpOR1lwdEVUVlBnUzJlQ1BGaTFoUFAvcXlPQm9CbWVR?= =?utf-8?B?cXRrV2s3aTZaR04rZ3FwWUFpVGd4VytucjFOOThHbURiQ1d0OVBYcFhtUjdD?= =?utf-8?B?Zk1RYVd5cytqRE9jQi9vdkt1clRBemJHVEdvcU1mRlFsbXFyME1Pd3FmL1BZ?= =?utf-8?B?azJOMFJyWlVBL0FUekQ0alE2UE9oajFmYXJIUzRUYW94RkEvMlVVM0lTS2hu?= =?utf-8?B?NG9XZVZRLzhnN2tTYytiY0s4N0FKTktIcWx3dXI2MlNWbDlMbkxPN0NtVVpN?= =?utf-8?B?dmh5MzVFZklQQXFMM3ZyOTIwcjdoYkVaYndQM1gvblcyVGNlaW5uK0JWR2Zw?= =?utf-8?B?MWJBczY0WWdvVjRjUFZmVWYzWU14cmxIdG5LVk0zRUFGRSt0T09JenQ2M01B?= =?utf-8?B?aWxHZExZTGNOb28xTUJoa2VTNG5EWktoVW1tc0pZMEFEVTBYM2hjQyt2djBK?= =?utf-8?B?N0puY2RMOThEWFpCZjF1TkNuUi95eXZudHNMWmdZcVdkbEIxRDVtVWRKc1RP?= =?utf-8?B?TGJsN1ZVeVhoT0V0TnYvRHBLYjZQWWlXeTVtMmxwdndtdU1kclNIOUZiSzRv?= =?utf-8?B?Ull3RDNqSmFnL2gzTUFZbGZWWmJ1NHRqUFFSWGZpSUF4cnd3VFN1dEI1OWhl?= =?utf-8?B?V29UTkRWYmdRSDY5UU1EeEdQUWt5emsvZElSSEZ2dmlNelhOeE11b2M1K095?= =?utf-8?B?UDZUSmQ1cFBFQVFKUUxkdmxtL011V292RndQUXBEOEpaRXpZd1AybmRLNGJI?= =?utf-8?B?bG82bFlCRjcwczUzVmYyMlBVVGlSMm83MEsrQ0NnZUZhdjJFN0oyT0xPdkhn?= =?utf-8?B?T3ZVdE5rK1RQRTdjVGhucDk0eDFBL0VYSU40ZzFpMS9oQkZBZ1lOT2R3SklN?= =?utf-8?B?enFMQ0dFa2lLMHA0K284Tm9JK0xPZzBITXlNbUQwMi94R1dXWXgxSmUwZ20v?= =?utf-8?B?aUZrSFNic0NWZEZ5MnJZd3BQTVcxOXUzakJKUGhySTBnREdDZjFId1VLMCtB?= =?utf-8?B?bWdoWmh4TEgvV3o5REg1ZmloQVZhUVJ6ZWdacWJMSzFZNDU3V09LRFJPcExF?= =?utf-8?B?elRST2x6TVIrcENXb2JOU09FZXJ2Vkx0ekRxWW5jUVNTMDZTbTR1TlMzOW9W?= =?utf-8?B?MldjVUNnSTcxdWZUNGlrTjdpaWwxVFM5dDdGRVJua1VqNjhWd0pZZDFPS3ZZ?= =?utf-8?B?b2FIajRKYUVKeXFJMllCeTRQV2VTZGw1dkhPaVNyS1hXc2R2UEliQTRJRzVl?= =?utf-8?B?SFZjSmIyQUU0SUk0bGJVSGpXSXRqaS9EVlJlNENQcEl6TnBQM010RXYveFBF?= =?utf-8?B?anZKb0c4MGtsNWVvenplckhkenlPbE9BWlJiYmgvYVNnVkEwSWZlbnlZemxO?= =?utf-8?B?c0RHakRMMWo2eWw4WXNOY0VPNGNOWUJuU3ZKUGF2enRjdlhuSGpQVlFxbXVn?= =?utf-8?B?M0F6MnppMDF0SzY0VldUVjdJblZtTERxcythR2tvdGRHRXc1bWo5KzNFbEdZ?= =?utf-8?Q?xzGpLaS+cMgY7c0DXkGtEF39VV6+VZjs+WeSo+B?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a2fc6ed-68a1-4923-3f0c-08d97faf3c5e X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Sep 2021 23:01:25.6896 (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: 85oYXbJsaS+6lWSDcyjIqhk0zUlaSOf6au0kgFViBxwYhNS5+2lV+BB3KDKa9ke0yeZ5ZarJCkH6dEYpRAWkqw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5125 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nDQpXZSBqdXN0IHB1Ymxpc2hlZCB0aGUgR0hDSSBzcGVjIHZlcnNpb24gMS4wIHJl dmlzaW9uIDAwMiBhdCBodHRwczovL3NvZnR3YXJlLmludGVsLmNvbS9jb250ZW50L2RhbS9kZXZl bG9wL2V4dGVybmFsL3VzL2VuL2RvY3VtZW50cy9pbnRlbC10ZHgtZ3Vlc3QtaHlwZXJ2aXNvci1j b21tdW5pY2F0aW9uLWludGVyZmFjZS0xLjAtMzQ0NDI2LTAwMi5wZGYNCg0KNC4zLjIgaW5jbHVk ZSB0aGUgRUZJX1REX1BST1RPQ09MLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2 ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBnYW9saW1pbmcNCj4gU2VudDogV2VkbmVz ZGF5LCBTZXB0ZW1iZXIgMTUsIDIwMjEgMTo1MCBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW87IFh1LCBNaW4gTSA8bWluLm0ueHVAaW50ZWwuY29tPg0KPiBDYzogS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTGl1LCBaaGlndWFuZw0KPiA8emhpZ3Vh bmcubGl1QGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFdh bmcsIEppYW4gSg0KPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIEtlbiA8a2VuLmx1QGlu dGVsLmNvbT4NCj4gU3ViamVjdDog5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEvMl0gTWRl UGtnOiBJbnRyb2R1Y2UgVGRQcm90b2NvbCBmb3IgVEQtDQo+IEd1ZXN0IGZpcm13YXJlDQo+IA0K PiBNaW46DQo+ICAgV2hpY2ggcHVibGljIHNwZWMgZGVmaW5lcyB0aGlzIG5ldyBwcm90b2NvbD8N Cj4gDQo+IFRoYW5rcw0KPiBMaW1pbmcNCj4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g 5Y+R5Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IOS7 o+ihqCBNaW4gWHUNCj4gPiDlj5HpgIHml7bpl7Q6IDIwMjHlubQ55pyIMTTml6UgOTo1Nw0KPiA+ IOaUtuS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiDmioTpgIE6IE1pbiBYdSA8bWlu Lm0ueHVAaW50ZWwuY29tPjsgTWljaGFlbCBEIEtpbm5leQ0KPiA+IDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47DQo+ID4g WmhpZ3VhbmcgTGl1IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgSmlld2VuIFlhbyA8amlld2Vu Lnlhb0BpbnRlbC5jb20+Ow0KPiA+IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ OyBLZW4gTHUgPGtlbi5sdUBpbnRlbC5jb20+DQo+ID4g5Li76aKYOiBbZWRrMi1kZXZlbF0gW1BB VENIIDEvMl0gTWRlUGtnOiBJbnRyb2R1Y2UgVGRQcm90b2NvbCBmb3IgVEQtR3Vlc3QNCj4gPiBm aXJtd2FyZQ0KPiA+DQo+ID4gQlo6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MzYyNQ0KPiA+DQo+ID4gSWYgVEQtR3Vlc3QgZmlybXdhcmUgc3VwcG9ydHMg bWVhc3VyZW1lbnQgYW5kIGFuIGV2ZW50IGlzIGNyZWF0ZWQsDQo+ID4gVEQtR3Vlc3QgZmlybXdh cmUgaXMgZGVzaWduZWQgdG8gcmVwb3J0IHRoZSBldmVudCBsb2cgd2l0aCB0aGUgc2FtZSBkYXRh DQo+ID4gc3RydWN0dXJlIGluIFRDRy1QbGF0Zm9ybS1GaXJtd2FyZS1Qcm9maWxlIHNwZWNpZmlj YXRpb24gd2l0aA0KPiA+IEVGSV9UQ0cyX0VWRU5UX0xPR19GT1JNQVRfVENHXzIgZm9ybWF0Lg0K PiA+DQo+ID4gVGhlIFRELUd1ZXN0IGZpcm13YXJlIHN1cHBvcnRzIG1lYXN1cmVtZW50LCB0aGUg VEQgR3Vlc3QgRmlybXdhcmUgaXMNCj4gPiBkZXNpZ25lZCB0byBwcm9kdWNlIEVGSV9URF9QUk9U T0NPTCB3aXRoIG5ldyBHVUlEDQo+ID4gRUZJX1REX1BST1RPQ09MX0dVSUQNCj4gPiB0byByZXBv cnQgZXZlbnQgbG9nIGFuZCBwcm92aWRlcyBoYXNoIGNhcGFiaWxpdHkuDQo+ID4NCj4gPiBDYzog TWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gQ2M6IExp bWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiBDYzogWmhpZ3VhbmcgTGl1 IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFv QGludGVsLmNvbT4NCj4gPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4N Cj4gPiBDYzogS2VuIEx1IDxrZW4ubHVAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE1p biBYdSA8bWluLm0ueHVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBNZGVQa2cvSW5jbHVkZS9Q cm90b2NvbC9UZFByb3RvY29sLmggfCAzMDUNCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysr KysNCj4gPiAgTWRlUGtnL01kZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgIHwgICAzICsNCj4g PiAgMiBmaWxlcyBjaGFuZ2VkLCAzMDggaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvVGRQcm90b2NvbC5oDQo+ID4NCj4gPiBkaWZm IC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvVGRQcm90b2NvbC5oDQo+ID4gYi9NZGVQ a2cvSW5jbHVkZS9Qcm90b2NvbC9UZFByb3RvY29sLmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNWEwMTVmY2EwMDc5DQo+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ICsrKyBiL01kZVBrZy9JbmNsdWRlL1Byb3RvY29sL1RkUHJvdG9jb2wuaA0KPiA+IEBA IC0wLDAgKzEsMzA1IEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsgIElmIFRELUd1ZXN0IGZpcm13 YXJlIHN1cHBvcnRzIG1lYXN1cmVtZW50IGFuZCBhbiBldmVudCBpcyBjcmVhdGVkLA0KPiA+IFRE LUd1ZXN0DQo+ID4gKyAgZmlybXdhcmUgaXMgZGVzaWduZWQgdG8gcmVwb3J0IHRoZSBldmVudCBs b2cgd2l0aCB0aGUgc2FtZSBkYXRhDQo+IHN0cnVjdHVyZQ0KPiA+ICsgIGluIFRDRy1QbGF0Zm9y bS1GaXJtd2FyZS1Qcm9maWxlIHNwZWNpZmljYXRpb24gd2l0aA0KPiA+ICsgIEVGSV9UQ0cyX0VW RU5UX0xPR19GT1JNQVRfVENHXzIgZm9ybWF0Lg0KPiA+ICsNCj4gPiArICBUaGUgVEQtR3Vlc3Qg ZmlybXdhcmUgc3VwcG9ydHMgbWVhc3VyZW1lbnQsIHRoZSBURCBHdWVzdCBGaXJtd2FyZSBpcw0K PiA+IGRlc2lnbmVkDQo+ID4gKyAgdG8gcHJvZHVjZSBFRklfVERfUFJPVE9DT0wgd2l0aCBuZXcg R1VJRCBFRklfVERfUFJPVE9DT0xfR1VJRA0KPiA+IHRvIHJlcG9ydA0KPiA+ICsgIGV2ZW50IGxv ZyBhbmQgcHJvdmlkZXMgaGFzaCBjYXBhYmlsaXR5Lg0KPiA+ICsNCj4gPiArQ29weXJpZ2h0IChj KSAyMDIwIC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiA+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ICsNCj4gPiArKiovDQo+ID4gKw0KPiA+ICsNCj4gPiArI2lmbmRlZiBURF9QUk9UT0NPTF9IXw0K PiA+ICsjZGVmaW5lIFREX1BST1RPQ09MX0hfDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8VWVmaS9V ZWZpQmFzZVR5cGUuaD4NCj4gPiArI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvVWVmaVRjZ1Bs YXRmb3JtLmg+DQo+ID4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1RwbTIwLmg+DQo+ID4g Kw0KPiA+ICsNCj4gPiArI2RlZmluZSBFRklfVERfUFJPVE9DT0xfR1VJRCAgXA0KPiA+ICsgIHsg MHg5Njc1MWEzZCwgMHg3MmY0LCAweDQxYTYsIHsgMHhhNywgMHg5NCwgMHhlZCwgMHg1ZCwgMHgw ZSwgMHg2NywNCj4gMHhhZSwNCj4gPiAweDZiIH19DQo+ID4gK2V4dGVybiBFRklfR1VJRCBnRWZp VGRQcm90b2NvbEd1aWQ7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCBfRUZJX1REX1BST1RP Q09MIEVGSV9URF9QUk9UT0NPTDsNCj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiAr ICBVSU5UOCBNYWpvcjsNCj4gPiArICBVSU5UOCBNaW5vcjsNCj4gPiArfSBFRklfVERfVkVSU0lP TjsNCj4gPiArDQo+ID4gK3R5cGVkZWYgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIEVGSV9U RF9FVkVOVF9MT0dfQklUTUFQOw0KPiA+ICt0eXBlZGVmIFVJTlQzMiAgICAgICAgICAgICAgICAg ICAgICBFRklfVERfRVZFTlRfTE9HX0ZPUk1BVDsNCj4gPiArdHlwZWRlZiBVSU5UMzINCj4gPiBF RklfVERfRVZFTlRfQUxHT1JJVEhNX0JJVE1BUDsNCj4gPiArdHlwZWRlZiBVSU5UMzIgICAgICAg ICAgICAgICAgICAgICAgRUZJX1REX01SX0lOREVYOw0KPiA+ICsNCj4gPiArI2RlZmluZSBFRklf VERfRVZFTlRfTE9HX0ZPUk1BVF9UQ0dfMiAgIDB4MDAwMDAwMDINCj4gPiArI2RlZmluZSBFRklf VERfQk9PVF9IQVNIX0FMR19TSEEzODQgICAgIDB4MDAwMDAwMDQNCj4gPiArDQo+ID4gKy8vDQo+ ID4gKy8vIFRoaXMgYml0IGlzIHNoYWxsIGJlIHNldCB3aGVuIGFuIGV2ZW50IHNoYWxsIGJlIGV4 dGVuZGVkIGJ1dCBub3QNCj4gbG9nZ2VkLg0KPiA+ICsvLw0KPiA+ICsjZGVmaW5lIEVGSV9URF9G TEFHX0VYVEVORF9PTkxZICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMQ0KPiA+ICsvLw0KPiA+ICsv LyBUaGlzIGJpdCBzaGFsbCBiZSBzZXQgd2hlbiB0aGUgaW50ZW50IGlzIHRvIG1lYXN1cmUgYSBQ RS9DT0ZGIGltYWdlLg0KPiA+ICsvLw0KPiA+ICsjZGVmaW5lIEVGSV9URF9GTEFHX1BFX0NPRkZf SU1BR0UgICAgIDB4MDAwMDAwMDAwMDAwMDAxMA0KPiA+ICsNCj4gPiArI2RlZmluZSBNUl9JTkRF WF9NUlREICAwDQo+ID4gKyNkZWZpbmUgTVJfSU5ERVhfUlRNUjAgMQ0KPiA+ICsjZGVmaW5lIE1S X0lOREVYX1JUTVIxIDINCj4gPiArI2RlZmluZSBNUl9JTkRFWF9SVE1SMiAzDQo+ID4gKyNkZWZp bmUgTVJfSU5ERVhfUlRNUjMgNA0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gVGhpcyBiaXQgc2hh bGwgYmUgc2V0IHdoZW4gdGhlIGludGVudCBpcyB0byBtZWFzdXJlIGEgUEUvQ09GRiBpbWFnZS4N Cj4gPiArLy8NCj4gPiArI2RlZmluZSBQRV9DT0ZGX0lNQUdFICAgICAweDAwMDAwMDAwMDAwMDAw MTANCj4gPiArDQo+ID4gKyNwcmFnbWEgcGFjayAoMSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgRUZJ X1REX0VWRU5UX0hFQURFUl9WRVJTSU9OICAgMQ0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qg ew0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gU2l6ZSBvZiB0aGUgZXZlbnQgaGVhZGVyIGl0c2VsZiAo c2l6ZW9mKEVGSV9URF9FVkVOVF9IRUFERVIpKS4NCj4gPiArICAvLw0KPiA+ICsgIFVJTlQzMiAg ICAgICAgICAgIEhlYWRlclNpemU7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBIZWFkZXIgdmVyc2lv bi4gRm9yIHRoaXMgdmVyc2lvbiBvZiB0aGlzIHNwZWNpZmljYXRpb24sIHRoZSB2YWx1ZQ0KPiBz aGFsbCBiZQ0KPiA+IDEuDQo+ID4gKyAgLy8NCj4gPiArICBVSU5UMTYgICAgICAgICAgICBIZWFk ZXJWZXJzaW9uOw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gSW5kZXggb2YgdGhlIE1SIHRoYXQgc2hh bGwgYmUgZXh0ZW5kZWQuDQo+ID4gKyAgLy8NCj4gPiArICBFRklfVERfTVJfSU5ERVggICBNcklu ZGV4Ow0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gVHlwZSBvZiB0aGUgZXZlbnQgdGhhdCBzaGFsbCBi ZSBleHRlbmRlZCAoYW5kIG9wdGlvbmFsbHkgbG9nZ2VkKS4NCj4gPiArICAvLw0KPiA+ICsgIFVJ TlQzMiAgICAgICAgICAgIEV2ZW50VHlwZTsNCj4gPiArfSBFRklfVERfRVZFTlRfSEVBREVSOw0K PiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gVG90YWwg c2l6ZSBvZiB0aGUgZXZlbnQgaW5jbHVkaW5nIHRoZSBTaXplIGNvbXBvbmVudCwgdGhlIGhlYWRl ciBhbmQNCj4gdGhlDQo+ID4gRXZlbnQgZGF0YS4NCj4gPiArICAvLw0KPiA+ICsgIFVJTlQzMiAg ICAgICAgICAgICAgICBTaXplOw0KPiA+ICsgIEVGSV9URF9FVkVOVF9IRUFERVIgICBIZWFkZXI7 DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgIEV2ZW50WzFdOw0KPiA+ICt9IEVGSV9URF9F VkVOVDsNCj4gPiArDQo+ID4gKyNwcmFnbWEgcGFjaygpDQo+ID4gKw0KPiA+ICsNCj4gPiArdHlw ZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gQWxsb2NhdGVkIHNpemUgb2YgdGhl IHN0cnVjdHVyZQ0KPiA+ICsgIC8vDQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2l6ZTsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFZlcnNpb24gb2YgdGhlIEVGSV9URF9C T09UX1NFUlZJQ0VfQ0FQQUJJTElUWSBzdHJ1Y3R1cmUgaXRzZWxmLg0KPiA+ICsgIC8vIEZvciB0 aGlzIHZlcnNpb24gb2YgdGhlIHByb3RvY29sLCB0aGUgTWFqb3IgdmVyc2lvbiBzaGFsbCBiZSBz ZXQgdG8NCj4gMQ0KPiA+ICsgIC8vIGFuZCB0aGUgTWlub3IgdmVyc2lvbiBzaGFsbCBiZSBzZXQg dG8gMS4NCj4gPiArICAvLw0KPiA+ICsgIEVGSV9URF9WRVJTSU9OICAgICAgICAgICAgICAgICAg IFN0cnVjdHVyZVZlcnNpb247DQo+ID4gKyAgLy8NCj4gPiArICAvLyBWZXJzaW9uIG9mIHRoZSBF RkkgVEQgcHJvdG9jb2wuDQo+ID4gKyAgLy8gRm9yIHRoaXMgdmVyc2lvbiBvZiB0aGUgcHJvdG9j b2wsIHRoZSBNYWpvciB2ZXJzaW9uIHNoYWxsIGJlIHNldCB0bw0KPiAxDQo+ID4gKyAgLy8gYW5k IHRoZSBNaW5vciB2ZXJzaW9uIHNoYWxsIGJlIHNldCB0byAxLg0KPiA+ICsgIC8vDQo+ID4gKyAg RUZJX1REX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgUHJvdG9jb2xWZXJzaW9uOw0KPiA+ICsg IC8vDQo+ID4gKyAgLy8gU3VwcG9ydGVkIGhhc2ggYWxnb3JpdGhtcw0KPiA+ICsgIC8vDQo+ID4g KyAgRUZJX1REX0VWRU5UX0FMR09SSVRITV9CSVRNQVAgICAgSGFzaEFsZ29yaXRobUJpdG1hcDsN Cj4gPiArICAvLw0KPiA+ICsgIC8vIEJpdG1hcCBvZiBzdXBwb3J0ZWQgZXZlbnQgbG9nIGZvcm1h dHMNCj4gPiArICAvLw0KPiA+ICsgIEVGSV9URF9FVkVOVF9MT0dfQklUTUFQICAgICAgICAgIFN1 cHBvcnRlZEV2ZW50TG9nczsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBGYWxzZSA9IFRE IG5vdCBwcmVzZW50DQo+ID4gKyAgLy8NCj4gPiArICBCT09MRUFOICAgICAgICAgICAgICAgICAg ICAgICAgICBUZFByZXNlbnRGbGFnOw0KPiA+ICt9IEVGSV9URF9CT09UX1NFUlZJQ0VfQ0FQQUJJ TElUWTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFRoZSBFRklfVERfUFJPVE9DT0wgR2V0Q2Fw YWJpbGl0eSBmdW5jdGlvbiBjYWxsIHByb3ZpZGVzIHByb3RvY29sDQo+ID4gKyAgY2FwYWJpbGl0 eSBpbmZvcm1hdGlvbiBhbmQgc3RhdGUgaW5mb3JtYXRpb24uDQo+ID4gKw0KPiA+ICsgIEBwYXJh bVtpbl0gICAgICBUaGlzICAgICAgICAgICAgICAgSW5kaWNhdGVzIHRoZSBjYWxsaW5nIGNvbnRl eHQNCj4gPiArICBAcGFyYW1baW4sIG91dF0gUHJvdG9jb2xDYXBhYmlsaXR5IFRoZSBjYWxsZXIg YWxsb2NhdGVzIG1lbW9yeSBmb3IgYQ0KPiA+IEVGSV9URF9CT09UX1NFUlZJQ0VfQ0FQQUJJTElU WQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlIGFu ZCBzZXRzIHRoZSBzaXplDQo+ID4gZmllbGQgdG8gdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBh bGxvY2F0ZWQuDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUg Y2FsbGVlIGZpbGxzIGluIHRoZSBmaWVsZHMNCj4gPiB3aXRoIHRoZSBFRkkgcHJvdG9jb2wgY2Fw YWJpbGl0eSBpbmZvcm1hdGlvbg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYW5kIHRoZSBjdXJyZW50IEVGSSBURCBzdGF0ZQ0KPiA+IGluZm9ybWF0aW9uIHVwIHRv IHRoZSBudW1iZXIgb2YgZmllbGRzIHdoaWNoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmaXQgd2l0aGluIHRoZSBzaXplIG9mIHRoZQ0KPiA+IHN0cnVjdHVyZSBw YXNzZWQgaW4uDQo+ID4gKw0KPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBP cGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4NCj4gPiArICBAcmV0dmFsIEVGSV9ERVZJ Q0VfRVJST1IgICAgICAgVGhlIGNvbW1hbmQgd2FzIHVuc3VjY2Vzc2Z1bC4NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIFByb3RvY29sQ2FwYWJpbGl0eSB2YXJpYWJs ZSB3aWxsDQo+ID4gbm90IGJlIHBvcHVsYXRlZC4NCj4gPiArICBAcmV0dmFsIEVGSV9JTlZBTElE X1BBUkFNRVRFUiAgT25lIG9yIG1vcmUgb2YgdGhlIHBhcmFtZXRlcnMgYXJlDQo+ID4gaW5jb3Jy ZWN0Lg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgUHJvdG9jb2xD YXBhYmlsaXR5IHZhcmlhYmxlIHdpbGwNCj4gPiBub3QgYmUgcG9wdWxhdGVkLg0KPiA+ICsgIEBy ZXR2YWwgRUZJX0JVRkZFUl9UT09fU01BTEwgICBUaGUgUHJvdG9jb2xDYXBhYmlsaXR5IHZhcmlh YmxlIGlzDQo+ID4gdG9vIHNtYWxsIHRvIGhvbGQgdGhlIGZ1bGwgcmVzcG9uc2UuDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IHdpbGwgYmUgcGFydGlhbGx5IHBvcHVs YXRlZA0KPiA+IChyZXF1aXJlZCBTaXplIGZpZWxkIHdpbGwgYmUgc2V0KS4NCj4gPiArKiovDQo+ ID4gK3R5cGVkZWYNCj4gPiArRUZJX1NUQVRVUw0KPiA+ICsoRUZJQVBJICpFRklfVERfR0VUX0NB UEFCSUxJVFkpICgNCj4gPiArICBJTiAgICAgRUZJX1REX1BST1RPQ09MICAgICAgICAgICAgICAg ICpUaGlzLA0KPiA+ICsgIElOIE9VVCBFRklfVERfQk9PVF9TRVJWSUNFX0NBUEFCSUxJVFkgKlBy b3RvY29sQ2FwYWJpbGl0eQ0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBUaGUg RUZJX1REX1BST1RPQ09MIEdldCBFdmVudCBMb2cgZnVuY3Rpb24gY2FsbCBhbGxvd3MgYSBjYWxs ZXIgdG8NCj4gPiArICByZXRyaWV2ZSB0aGUgYWRkcmVzcyBvZiBhIGdpdmVuIGV2ZW50IGxvZyBh bmQgaXRzIGxhc3QgZW50cnkuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gIFRoaXMgICAgICAg ICAgICAgICBJbmRpY2F0ZXMgdGhlIGNhbGxpbmcgY29udGV4dA0KPiA+ICsgIEBwYXJhbVtpbl0g IEV2ZW50TG9nRm9ybWF0ICAgICBUaGUgdHlwZSBvZiB0aGUgZXZlbnQgbG9nIGZvciB3aGljaA0K PiA+IHRoZSBpbmZvcm1hdGlvbiBpcyByZXF1ZXN0ZWQuDQo+ID4gKyAgQHBhcmFtW291dF0gRXZl bnRMb2dMb2NhdGlvbiAgIEEgcG9pbnRlciB0byB0aGUgbWVtb3J5IGFkZHJlc3Mgb2YNCj4gPiB0 aGUgZXZlbnQgbG9nLg0KPiA+ICsgIEBwYXJhbVtvdXRdIEV2ZW50TG9nTGFzdEVudHJ5ICBJZiB0 aGUgRXZlbnQgTG9nIGNvbnRhaW5zIG1vcmUgdGhhbg0KPiA+IG9uZSBlbnRyeSwgdGhpcyBpcyBh IHBvaW50ZXIgdG8gdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFk ZHJlc3Mgb2YgdGhlIHN0YXJ0IG9mIHRoZSBsYXN0DQo+ID4gZW50cnkgaW4gdGhlIGV2ZW50IGxv ZyBpbiBtZW1vcnkuDQo+ID4gKyAgQHBhcmFtW291dF0gRXZlbnRMb2dUcnVuY2F0ZWQgIElmIHRo ZSBFdmVudCBMb2cgaXMgbWlzc2luZyBhdCBsZWFzdCBvbmUNCj4gPiBlbnRyeSBiZWNhdXNlIGFu IGV2ZW50IHdvdWxkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUg ZXhjZWVkZWQgdGhlIGFyZWEgYWxsb2NhdGVkDQo+ID4gZm9yIGV2ZW50cywgdGhpcyB2YWx1ZSBp cyBzZXQgdG8gVFJVRS4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Ro ZXJ3aXNlLCB0aGUgdmFsdWUgd2lsbCBiZSBGQUxTRQ0KPiA+IGFuZCB0aGUgRXZlbnQgTG9nIHdp bGwgYmUgY29tcGxldGUuDQo+ID4gKw0KPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAg ICAgICBPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4NCj4gPiArICBAcmV0dmFsIEVG SV9JTlZBTElEX1BBUkFNRVRFUiAgT25lIG9yIG1vcmUgb2YgdGhlIHBhcmFtZXRlcnMgYXJlDQo+ ID4gaW5jb3JyZWN0DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmcu IGFza2luZyBmb3IgYW4gZXZlbnQgbG9nIHdob3NlDQo+ID4gZm9ybWF0IGlzIG5vdCBzdXBwb3J0 ZWQpLg0KPiA+ICsqKi8NCj4gPiArdHlwZWRlZg0KPiA+ICtFRklfU1RBVFVTDQo+ID4gKyhFRklB UEkgKkVGSV9URF9HRVRfRVZFTlRfTE9HKSAoDQo+ID4gKyAgSU4gIEVGSV9URF9QUk9UT0NPTCAg ICAgICAgICAqVGhpcywNCj4gPiArICBJTiAgRUZJX1REX0VWRU5UX0xPR19GT1JNQVQgIEV2ZW50 TG9nRm9ybWF0LA0KPiA+ICsgIE9VVCBFRklfUEhZU0lDQUxfQUREUkVTUyAgICAgKkV2ZW50TG9n TG9jYXRpb24sDQo+ID4gKyAgT1VUIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAqRXZlbnRMb2dM YXN0RW50cnksDQo+ID4gKyAgT1VUIEJPT0xFQU4gICAgICAgICAgICAgICAgICAqRXZlbnRMb2dU cnVuY2F0ZWQNCj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgVGhlIEVGSV9URF9Q Uk9UT0NPTCBIYXNoTG9nRXh0ZW5kRXZlbnQgZnVuY3Rpb24gY2FsbCBwcm92aWRlcyBjYWxsZXJz DQo+ID4gd2l0aA0KPiA+ICsgIGFuIG9wcG9ydHVuaXR5IHRvIGV4dGVuZCBhbmQgb3B0aW9uYWxs eSBsb2cgZXZlbnRzIHdpdGhvdXQgcmVxdWlyaW5nDQo+ID4gKyAga25vd2xlZGdlIG9mIGFjdHVh bCBURCBjb21tYW5kcy4NCj4gPiArICBUaGUgZXh0ZW5kIG9wZXJhdGlvbiB3aWxsIG9jY3VyIGV2 ZW4gaWYgdGhpcyBmdW5jdGlvbiBjYW5ub3QgY3JlYXRlIGFuDQo+ID4gZXZlbnQNCj4gPiArICBs b2cgZW50cnkgKGUuZy4gZHVlIHRvIHRoZSBldmVudCBsb2cgYmVpbmcgZnVsbCkuDQo+ID4gKw0K PiA+ICsgIEBwYXJhbVtpbl0gIFRoaXMgICAgICAgICAgICAgICBJbmRpY2F0ZXMgdGhlIGNhbGxp bmcgY29udGV4dA0KPiA+ICsgIEBwYXJhbVtpbl0gIEZsYWdzICAgICAgICAgICAgICBCaXRtYXAg cHJvdmlkaW5nIGFkZGl0aW9uYWwNCj4gPiBpbmZvcm1hdGlvbi4NCj4gPiArICBAcGFyYW1baW5d ICBEYXRhVG9IYXNoICAgICAgICAgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgc3RhcnQgb2YgdGhl DQo+ID4gZGF0YSBidWZmZXIgdG8gYmUgaGFzaGVkLg0KPiA+ICsgIEBwYXJhbVtpbl0gIERhdGFU b0hhc2hMZW4gICAgICBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBidWZmZXINCj4gPiByZWZl cmVuY2VkIGJ5IERhdGFUb0hhc2guDQo+ID4gKyAgQHBhcmFtW2luXSAgRWZpVGRFdmVudCAgICAg ICAgIFBvaW50ZXIgdG8gZGF0YSBidWZmZXIgY29udGFpbmluZw0KPiA+IGluZm9ybWF0aW9uIGFi b3V0IHRoZSBldmVudC4NCj4gPiArDQo+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAg ICAgIE9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KPiA+ICsgIEByZXR2YWwgRUZJ X0RFVklDRV9FUlJPUiAgICAgICBUaGUgY29tbWFuZCB3YXMgdW5zdWNjZXNzZnVsLg0KPiA+ICsg IEByZXR2YWwgRUZJX1ZPTFVNRV9GVUxMICAgICAgICBUaGUgZXh0ZW5kIG9wZXJhdGlvbiBvY2N1 cnJlZCwgYnV0DQo+ID4gdGhlIGV2ZW50IGNvdWxkIG5vdCBiZSB3cml0dGVuIHRvIG9uZSBvciBt b3JlIGV2ZW50IGxvZ3MuDQo+ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIE9u ZSBvciBtb3JlIG9mIHRoZSBwYXJhbWV0ZXJzIGFyZQ0KPiA+IGluY29ycmVjdC4NCj4gPiArICBA cmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIFBFL0NPRkYgaW1hZ2UgdHlwZSBpcyBu b3QNCj4gPiBzdXBwb3J0ZWQuDQo+ID4gKyoqLw0KPiA+ICt0eXBlZGVmDQo+ID4gK0VGSV9TVEFU VVMNCj4gPiArKEVGSUFQSSAqIEVGSV9URF9IQVNIX0xPR19FWFRFTkRfRVZFTlQpICgNCj4gPiAr ICBJTiBFRklfVERfUFJPVE9DT0wgICAgICAqVGhpcywNCj4gPiArICBJTiBVSU5UNjQgICAgICAg ICAgICAgICBGbGFncywNCj4gPiArICBJTiBFRklfUEhZU0lDQUxfQUREUkVTUyBEYXRhVG9IYXNo LA0KPiA+ICsgIElOIFVJTlQ2NCAgICAgICAgICAgICAgIERhdGFUb0hhc2hMZW4sDQo+ID4gKyAg SU4gRUZJX1REX0VWRU5UICAgICAgICAgKkVmaVRkRXZlbnQNCj4gPiArICApOw0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyAgVGhlIEVGSV9URF9QUk9UT0NPTCBNYXBQY3JUb01ySW5kZXggZnVuY3Rp b24gY2FsbCBwcm92aWRlcyBjYWxsZXJzDQo+ID4gKyAgdGhlIGluZm8gb24gVFBNIFBDUjwtPiBt ZWFzdXJlbWVudCByZWdpc3RlciBtYXBwaW5nIGluZm9ybWF0aW9uLg0KPiA+ICsNCj4gPiArICBJ biBjdXJyZW50IHZlcnNpb24sIHdlIHVzZSBiZWxvdyBtYXBwaW5nOg0KPiA+ICsgICAgUENSMCAg ICAtPiBNUlREICAoSW5kZXggMCkNCj4gPiArICAgIFBDUjEgICAgLT4gUlRNUjAgKEluZGV4IDEp DQo+ID4gKyAgICBQQ1IyfjYgIC0+IFJUTVIxIChJbmRleCAyKQ0KPiA+ICsgICAgUENSNyAgICAt PiBSVE1SMCAoSW5kZXggMSkNCj4gPiArICAgIFBDUjh+MTUgLT4gUlRNUjIgKEluZGV4IDMpDQo+ ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gIFRoaXMgICAgICAgICAgICAgICBJbmRpY2F0ZXMgdGhl IGNhbGxpbmcgY29udGV4dA0KPiA+ICsgIEBwYXJhbVtpbl0gIFBjckluZGV4ICAgICAgICAgICBU UE0gUENSIGluZGV4Lg0KPiA+ICsgIEBwYXJhbVtvdXRdIE1ySW5kZXggICAgICAgICAgICBNZWFz dXJlbWVudCByZWdpc3RlciBpbmRleC4NCj4gPiArDQo+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VT UyAgICAgICAgICAgIFRoZSBNUiBpbmRleCBpcyByZXR1cm5lZC4NCj4gPiArICBAcmV0dmFsIEVG SV9JTlZBTElEX1BBUkFNRVRFUiAgVGhlIE1ySW5kZXggaXMgTlVMTC4NCj4gPiArICBAcmV0dmFs IEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIFBjckluZGV4IGlzIGludmFsaWQuDQo+ID4gKyoq Lw0KPiA+ICt0eXBlZGVmDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiArKEVGSUFQSSAqIEVGSV9URF9N QVBfUENSX1RPX01SX0lOREVYKSAoDQo+ID4gKyAgSU4gIEVGSV9URF9QUk9UT0NPTCAgICpUaGlz LA0KPiA+ICsgIElOICBUQ0dfUENSSU5ERVggICAgICBQY3JJbmRleCwNCj4gPiArICBPVVQgRUZJ X1REX01SX0lOREVYICAgKk1ySW5kZXgNCj4gPiArICApOw0KPiA+ICsNCj4gPiArc3RydWN0IF9F RklfVERfUFJPVE9DT0wgew0KPiA+ICsgIEVGSV9URF9HRVRfQ0FQQUJJTElUWSAgICAgICAgICAg ICAgICAgICAgIEdldENhcGFiaWxpdHk7DQo+ID4gKyAgRUZJX1REX0dFVF9FVkVOVF9MT0cgICAg ICAgICAgICAgICAgICAgICAgR2V0RXZlbnRMb2c7DQo+ID4gKyAgRUZJX1REX0hBU0hfTE9HX0VY VEVORF9FVkVOVA0KPiA+IEhhc2hMb2dFeHRlbmRFdmVudDsNCj4gPiArICBFRklfVERfTUFQX1BD Ul9UT19NUl9JTkRFWCAgICAgICAgICAgICAgICBNYXBQY3JUb01ySW5kZXg7DQo+ID4gK307DQo+ ID4gKw0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gVEQgZXZlbnQgbG9nDQo+ID4gKy8vDQo+ID4g Kw0KPiA+ICsjcHJhZ21hIHBhY2soMSkNCj4gPiArDQo+ID4gKy8vDQo+ID4gKy8vIENyeXB0byBB Z2lsZSBMb2cgRW50cnkgRm9ybWF0Lg0KPiA+ICsvLyBJdCBpcyBzaW1pbGFyIHdpdGggVENHX1BD Ul9FVkVOVDIgZXhjZXB0IHRoZSBmaWVsZCBvZiBNckluZGV4IGFuZA0KPiA+IFBDUkluZGV4Lg0K PiA+ICsvLw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgRUZJX1REX01SX0lOREVYICAg ICBNckluZGV4Ow0KPiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAgRXZlbnRUeXBlOw0KPiA+ICsg IFRQTUxfRElHRVNUX1ZBTFVFUyAgRGlnZXN0czsNCj4gPiArICBVSU5UMzIgICAgICAgICAgICAg IEV2ZW50U2l6ZTsNCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgIEV2ZW50WzFdOw0KPiA+ICt9 IFREX0VWRU5UOw0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gRUZJIFREIEV2ZW50IEhlYWRlcg0K PiA+ICsvLyBJdCBpcyBzaW1pbGFyIHdpdGggVENHX1BDUl9FVkVOVDJfSERSIGV4Y2VwdCB0aGUg ZmllbGQgb2YgTXJJbmRleCBhbmQNCj4gPiBQQ1JJbmRleA0KPiA+ICsvLw0KPiA+ICt0eXBlZGVm IHN0cnVjdCB7DQo+ID4gKyAgRUZJX1REX01SX0lOREVYICAgICBNckluZGV4Ow0KPiA+ICsgIFVJ TlQzMiAgICAgICAgICAgICAgRXZlbnRUeXBlOw0KPiA+ICsgIFRQTUxfRElHRVNUX1ZBTFVFUyAg RGlnZXN0czsNCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgIEV2ZW50U2l6ZTsNCj4gPiArfSBU RF9FVkVOVF9IRFI7DQo+ID4gKw0KPiA+ICsjcHJhZ21hIHBhY2soKQ0KPiA+ICsNCj4gPiArLy8N Cj4gPiArLy8gTG9nIGVudHJpZXMgYWZ0ZXIgR2V0IEV2ZW50IExvZyBzZXJ2aWNlDQo+ID4gKy8v DQo+ID4gKw0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIC8vDQo+ID4gKyAg Ly8gVGhlIHZlcnNpb24gb2YgdGhpcyBzdHJ1Y3R1cmUuIEl0IHNoYWxsIGJlIHNldCBvdCAxLg0K PiA+ICsgIC8vDQo+ID4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgVmVyc2lvbjsNCj4gPiAr ICAvLw0KPiA+ICsgIC8vIE51bWJlciBvZiBldmVudHMgcmVjb3JkZWQgYWZ0ZXIgaW52b2NhdGlv biBvZiBHZXRFdmVudExvZyBBUEkNCj4gPiArICAvLw0KPiA+ICsgIFVJTlQ2NCAgICAgICAgICAg ICAgICAgIE51bWJlck9mRXZlbnRzOw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gTGlzdCBvZiBldmVu dHMgb2YgdHlwZSBUQ0dfVERfRVZFTlQuDQo+ID4gKyAgLy8NCj4gPiArICAvL1REX0VWRU5UICAg ICAgICAgICAgICBFdmVudFsxXTsNCj4gPiArfSBFRklfVERfRklOQUxfRVZFTlRTX1RBQkxFOw0K PiA+ICsNCj4gPiArDQo+ID4gKyNkZWZpbmUgRUZJX1REX0ZJTkFMX0VWRU5UU19UQUJMRV9HVUlE IFwNCj4gPiArICB7MHhkZDRhNDY0OCwgMHgyZGU3LCAweDQ2NjUsIHsweDk2LCAweDRkLCAweDIx LCAweGQ5LCAweGVmLCAweDVmLCAweGI0LA0KPiA+IDB4NDZ9fQ0KPiA+ICsNCj4gPiArZXh0ZXJu IEVGSV9HVUlEIGdFZmlUZEZpbmFsRXZlbnRzVGFibGVHdWlkOw0KPiA+ICsNCj4gPiArI2VuZGlm DQo+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZGVjIGIvTWRlUGtnL01kZVBrZy5kZWMN Cj4gPiBpbmRleCBhMjhhMmRhYWZmYTguLjJmNDhmNmM0MGMxZSAxMDA2NDQNCj4gPiAtLS0gYS9N ZGVQa2cvTWRlUGtnLmRlYw0KPiA+ICsrKyBiL01kZVBrZy9NZGVQa2cuZGVjDQo+ID4gQEAgLTEw MDgsNiArMTAwOCw5IEBADQo+ID4gICAgIyMgSW5jbHVkZS9Qcm90b2NvbC9QY2RJbmZvLmgNCj4g PiAgICBnR2V0UGNkSW5mb1Byb3RvY29sR3VpZCAgICAgICAgPSB7IDB4NWJlNDBmNTcsIDB4ZmE2 OCwgMHg0NjEwLCB7IDB4YmIsDQo+ID4gMHhiZiwgMHhlOSwgMHhjNSwgMHhmYywgMHhkYSwgMHhk MywgMHg2NSB9IH0NCj4gPg0KPiA+ICsgICMjIEluY2x1ZGUvUHJvdG9jb2wvVGRQcm90b2NvbC5o DQo+ID4gKyAgZ0VmaVRkUHJvdG9jb2xHdWlkICAgICAgICAgICAgID0geyAweDk2NzUxYTNkLCAw eDcyZjQsIDB4NDFhNiwgeyAweGE3LA0KPiA+IDB4OTQsIDB4ZWQsIDB4NWQsIDB4MGUsIDB4Njcs IDB4YWUsIDB4NmIgfX0NCj4gPiArDQo+ID4gICAgIw0KPiA+ICAgICMgUHJvdG9jb2xzIGRlZmlu ZWQgaW4gUEkxLjAuDQo+ID4gICAgIw0KPiA+IC0tDQo+ID4gMi4yOS4yLndpbmRvd3MuMg0KPiA+ DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQoNCg==