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 CDFB574003C for ; Tue, 30 Jan 2024 18:18:53 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=8hcLd+Gf00K1AazQo1Hxc8TJyujkoDhzYaU97vZ8Zo4=; 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=1706638732; v=1; b=SJK4LtLwM1JxJUmTql2E3480pl/Po2jOL8UPSvKpunoHKt2MsJhSHFDxTb0fJd0/JqmIDyHR bg8ReKMHH75tK52V7IWCQ8EwiZfGHtwv94W4EJ4fBsQ++BnrnM2iIG/x2oNFyzpdxPcQupV45UT XtIoC66SpcaUZBTAfc32/Pkw= X-Received: by 127.0.0.2 with SMTP id w1wvYY7687511xTMLb3Vggap; Tue, 30 Jan 2024 10:18:52 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.3612.1706638731383686765 for ; Tue, 30 Jan 2024 10:18:51 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10969"; a="407077460" X-IronPort-AV: E=Sophos;i="6.05,230,1701158400"; d="scan'208";a="407077460" X-Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jan 2024 10:18:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10969"; a="737846659" X-IronPort-AV: E=Sophos;i="6.05,230,1701158400"; d="scan'208";a="737846659" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Jan 2024 10:18:29 -0800 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 10:18:28 -0800 X-Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) 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; Tue, 30 Jan 2024 10:18:28 -0800 X-Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 30 Jan 2024 10:18:28 -0800 X-Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.40) 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; Tue, 30 Jan 2024 10:18:27 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i8AN2QtjIIlYeFIAYEEZGfwmily4GFQSHibfGRvJmPXbykpEQx45RtY+mVuWtX6rTtyRmniG0jQstwSnhJCZ6MGwbXMu+UJPXVGQ7FgSW0VyT3fgsew0ull+bc/Yms9QzX4PVRfwTgaC0tWk0avx3eU6OuoDc5tQL7D5bH6Ej8sTku6Fkzlu6R2UZcXKu6UqXE3BaPa7nV3E5LwX/qpTFfLoOJoVt8KaLIHvusvv9WhXEhzBbUQERaNdkwKRedE7m5o8dYdpivnQYXosAJvdkX14RWsVvgZpHuPNJZLaA2Wb909P3NZMPoWaq4QgqXMhCXvOh41qLdIOHiNMQkEOWA== 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=n00dZP2qmxDj5nLw/oY900gYx+6//7x7MRsySvDrByk=; b=DpSXg1IZgmKoYqwO0TIO4vC2xU1HmRvoHAB7tROpcb30kVD2rCOrLr+L2pM6Hc8jX9qPVASSV1sApyNIHluZ1wqqW6/AZv0AQM/CNvfkly3aScOS5iJkJGL6Jii8XhckIlCBC93/z0btOxtQ/gdsJKOfdqAKOgrbOv9cMpd+mNy4fmh9i8aIP3C46EupV6RTe3bYqY4jYnf5dUl2nKgLT4DRlq/wK/z8dbI89uxgI1+YCCaJftoi1XLNb9jG0rlD4eVJNUDk7ABD5eRj2fcSQ+k2/Kj3FhQfEFWr9h8DSi8yumt8WJ7YM5RsnV77EYyKSEtmTlVMrdXl5ycAfL39Sw== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CH3PR11MB7371.namprd11.prod.outlook.com (2603:10b6:610:151::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.33; Tue, 30 Jan 2024 18:18:24 +0000 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00%6]) with mapi id 15.20.7228.029; Tue, 30 Jan 2024 18:18:23 +0000 From: "Michael D Kinney" To: "Xu, GuoX" , gaoliming , "devel@edk2.groups.io" CC: "Liu, Zhiguang" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of EFI_FIRMWARE_MANAGEMENT_PROTOCOL Thread-Topic: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of EFI_FIRMWARE_MANAGEMENT_PROTOCOL Thread-Index: AQHaNtCsbAL5tve5MUqnGmqOW7oVhLDRSdLAgAAAP0CAC1acAIAI28gAgAEh64CAC4zZAIAAt28g Date: Tue, 30 Jan 2024 18:18:23 +0000 Message-ID: References: <02c301da4887$27c4e190$774ea4b0$@byosoft.com.cn> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|CH3PR11MB7371:EE_ x-ms-office365-filtering-correlation-id: b1a3c044-54b3-4895-928a-08dc21bfd8aa x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: AhJTGpPdylFEFfQI2qof48Mf+mEdiAPRb3zwTv0J3/dXlcUeYm32B822zh8B2C8BMVWGIXHIGrxPVXVLIt1qk+uouvir2nDUHyUSLSz6s1o2Njd8yHAXPDYfKtAzPpNlfdXxz7w9McPXtWmfyB9HXicaWxJUJdef25g9HozA29t3sk8kuoCwXVF2DGJz6JmkyVaNuKsN/UN6HXG5QjaNEC5Myw/JBDLwWRnqUsNAY69p79nyuX69r6c1d9vN8sTKhoybRyAnq/9jiP7SHzSGsoAgpWXfrFzeAvHex9zHoWzdn5eTTYmoHyRHhBP3CAxSHlAj3NHum3ihBcP5vwgt+vmIvhGSGWpVbaIN8FcwX+ZyTzb4Cb+5WkIrh7fSuEu33N7UH34B+p3CAN18S7W+5q6uVTvb/cQ6K5/CdwzjAI9ENTFsbNYPeZG87IwhO6PP3u8ceZOG6KcHgxdpq8Hrgxu+9CI/+gjjL5e7jSnN/MknWFaDnF+mqHnFpIOf2cjN+5y5PxYaaW4wnsFKvGh2V7J7YwfWW6o6Z9SXWl8tL3aqv1KMILMgrGvlQVzggh+YSE+D4s3f1kLoof844+UXGV7+GmidbupuLWN8VHpFdwuJqeQ6it4bfDlHQDR4APa1keW3Frr3AzHVmXIQ1cXl+A== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZVJkV2ZNZHA2Wnd0S2lsd1V5dDR2bGNJODU5RHFZYUtqUEdXWHFuWWllR0tv?= =?utf-8?B?ZE1jd1U4emg0RUJydm9LY0dwNnh2VFVUUUsrVy9VeVB0WW1xeE4xZkhVZUVl?= =?utf-8?B?dXJDWElLc3R6WmZKSnltRFhsSUQ0aTlGQnJnZDFOb2pPdVJMdEUxQVlqaVpM?= =?utf-8?B?TzFTZW9tOHpKd2U5b2dQelcvSEQzWGVhVVdVbEZraXY3cUs5dHh1Z2VRRlh5?= =?utf-8?B?VnNxUlQ1WDdQWkRvejNmM2FGTVdnRDBiRFdPZXV1cVJ5Vk1YSW5Mb25oajBW?= =?utf-8?B?OEplelF1NEp0MUx1STJxWHFrTlAvL1hhamZoZnZGWkZ4akMvMTdVcmluQkU0?= =?utf-8?B?dDlGbTM1SHJSd0kwOFlOL2p1SDZEaVNsZlU1NFp1QkZJWWxiSy9OQ0xjQlNI?= =?utf-8?B?M1VVcmZUaFZSblptWGdsUGNzYUszSTJhYUZkWnhzU0dxcDVJU0NxNjhudzNQ?= =?utf-8?B?cmlmUGVNSVpyK3hmVEErUHUvL3JoNXNnSTdFVEJWWVpyV2JHNkxkVFpsZlpR?= =?utf-8?B?UmtQVUtpZExVWmxPWmtPNE9Cdmsxb203MlM5RkpXWW04YjVaU1l1SFpEUWV0?= =?utf-8?B?cmZxNXIrdVQ2NmYyV0JxR0lkMXhhQnVQcWNJeTl5VUluY3BmWkhMcjZRMTNy?= =?utf-8?B?R3UzRWhDZU5ReG9XcEJmSzltLzRtQWdOVGw3bVc2bkdWYUtCcDQ3dGhMWndD?= =?utf-8?B?RFdFUXIyVWVqOTFnMG5LZGZCMEd3NG90SUNxYkswY1B5cCtMOW9idm4rNVFs?= =?utf-8?B?KzR1WHV2d3J0Q3l4eVl5K1lYQWhWZlVucUdsdldZekhDYlJjYm80bVVrWXJR?= =?utf-8?B?cWVWNHNnbmdRT1gzSlRsT0ZDYVE3RkZ1RXFsREM5M2sxWFdjbEhWSlF4eUxu?= =?utf-8?B?UjE5ZlR3Si90SExiclJLVy9WbFdySGRINGZIL2ZTVm9TSkxoQWJBZ0F0RWQv?= =?utf-8?B?T3k4dkREbHNDd21tcDkrMEhJa1Z4bVFVcVVlUzI0Y09GWGU1bXFhS2pZR2di?= =?utf-8?B?UWhLYUswdHBmbytOVVI5cklzc2lVOUVkNyt2UUNTVVkvRGd3UW5vRmFlenVE?= =?utf-8?B?RTlFYTY2cUVTU09uQkN4R29GRDg4K1pLdmNXamo1VjNIVDdOM1FBcEdBOW1S?= =?utf-8?B?TXBFZXRibHJHaFV2Zjg4ZlpaUEEyRURneE8vU0l0bDY2WmJXb3Q1SnNnVHBn?= =?utf-8?B?VGFvd1VqOG9XRVFRQTZJd1lTK2w2VUprSWJ6QWNXNXBocG54d2xmdEdzL01X?= =?utf-8?B?ZHVNUlY0Q3pXT3FaZXI4L1ZTQ29pMytwQVZIbVV4Y2lidUloNVcrZlEvNUhC?= =?utf-8?B?bFc5U2lQbStGSG5ZT1Y1amc1ek14V1ZISEVFaUQ4ZEZNTFh4NjlVejVvdWt3?= =?utf-8?B?QUlwakN5aHlNajlHUVk3VndNUFcyR1BRdnNlVGovVXBhRm12bUpucmxUMmxx?= =?utf-8?B?MkpjSzE0czBlRFNQOFdzRnJZSUNSMkFjbWUxdXJobG1tbEZZMHdNUTBNc2Y1?= =?utf-8?B?UEZzT0UyTFovenpjL0tkZTBEZmhua0g4M0tiM3c4Vjd3WENvcGJLMGJKR29U?= =?utf-8?B?c3FsNVdZQmpieFJWRE9rWHdtYThPMXZVazZRYnpvaEViOGNRa0Y0eVoxK1Fj?= =?utf-8?B?Z0FDN08zSlgvNThOUWgzTElzNFcyUFdVdU80T2lWNXg0ZFBjYkp6RUl5L3NH?= =?utf-8?B?bXA4WWFjMldUS2VJRHQ0Sk5GbjBWRjRlTzlYNHVNU3dVSmFBUVVOU3dMZ2d4?= =?utf-8?B?cVg2UEZmTjM4NXR3aVNvU1h3cFJxK3RDTDd0U3ZOb1NwMS9oZ01VR2VqNmF0?= =?utf-8?B?OWF1djJMOUlvNEN4VmRSWk8wYlF3bFd5cVE5OTl1NHMramVSN2pFS2w1bnRN?= =?utf-8?B?TzY0N3JpVm00YklTSit4QU5oWFhRZTVmdGRRY1ZTZjFQV2pmQXRKUkxIOEhv?= =?utf-8?B?dzZDRnFYOGhGTkI3OU1BY3hUUTF0bE45QzcxVk9Ocys3ZTlWYUhlNFE5RkUy?= =?utf-8?B?TDlJWFFlUDJNejRoQUhQYm9TblE4anRyeUkrTjNzeC9tNjRGMUZjLzlzRkJw?= =?utf-8?B?V3RRTC9XemE2V3haT0s2aXk3NElzL2I2M2pndWdGekRKV3ljZ21tMTNxeWtt?= =?utf-8?B?aG5FNlBuM2lFREw5LzlrS3U4YmVtakNuaTI1WnRCRHhERWFSYUFEVWp0eWlU?= =?utf-8?B?Tmc9PQ==?= 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: b1a3c044-54b3-4895-928a-08dc21bfd8aa X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2024 18:18:23.6734 (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: mwvkHwSXbuHXgrO0wZStqoz3a9NQAxUUvuH7ipbZV2EKmCiIz7Md0dj3jRT3ksEFucu/yg0lZD0NC19JJsyj/RcWPPqVkD1CJh9WGLUw6dU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB7371 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,michael.d.kinney@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: Jmj9BKl5toEo7drkubmswghJx7686176AA= 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=SJK4LtLw; 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; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SGkgR3VvLA0KDQpPbmUgY29tbWVudCBiZWxvdy4NCg0KTWlrZQ0KDQoNCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWHUsIEd1b1ggPGd1b3gueHVAaW50ZWwuY29tPg0KPiBT ZW50OiBNb25kYXksIEphbnVhcnkgMjksIDIwMjQgMTE6MTggUE0NCj4gVG86IEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGdhb2xpbWluZw0KPiA8Z2FvbGlt aW5nQGJ5b3NvZnQuY29tLmNuPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IExpdSwgWmhp Z3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZl bF0gW1BBVENIIDEvMV0gTWRlUGtnOlVwZGF0ZWQgdGhlIGNvbW1lbnRzIG9mDQo+IEVGSV9GSVJN V0FSRV9NQU5BR0VNRU5UX1BST1RPQ09MDQo+IA0KPiBIaSBNaWNoYWVsLA0KPiANCj4gVGhhbmtz IGZvciB5b3VyIHN1Z2dlc3Rpb25zLg0KPiANCj4gMS4gSW4gZWRrMiByZXBvIHRoZXJlIGFyZSB0 d28gaW1wbGVtZW50YXRpb25zIGZvciBGaXJtd2FyZSBNYW5hZ2VtZW50DQo+IFByb3RvY29sLg0K PiAgIDEuMSBJbiBlZGsyXEZtcERldmljZVBrZ1xGbXBEeGVcRm1wRHhlLmMsIGZ1bmN0aW9uIEdl dFRoZUltYWdlSW5mbygpOg0KPiAgICAgLy8NCj4gICAgIC8vIENoZWNrIHRoZSBidWZmZXIgc2l6 ZQ0KPiAgICAgLy8gTk9URTogQ2hlY2sgdGhpcyBmaXJzdCBzbyBjYWxsZXIgY2FuIGdldCB0aGUg bmVjZXNzYXJ5IG1lbW9yeQ0KPiBzaXplIGl0IG11c3QgYWxsb2NhdGUuDQo+ICAgICAvLw0KPiAg ICAgaWYgKCpJbWFnZUluZm9TaXplIDwgKHNpemVvZiAoRUZJX0ZJUk1XQVJFX0lNQUdFX0RFU0NS SVBUT1IpKSkgew0KPiAgICAgICAqSW1hZ2VJbmZvU2l6ZSA9IHNpemVvZiAoRUZJX0ZJUk1XQVJF X0lNQUdFX0RFU0NSSVBUT1IpOw0KPiAgICAgICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICJGbXBE eGUoJXMpOiBHZXRJbWFnZUluZm8oKSAtIEltYWdlSW5mb1NpemUNCj4gaXMgdG8gc21hbGwuXG4i LCBtSW1hZ2VJZE5hbWUpKTsNCj4gICAgICAgU3RhdHVzID0gRUZJX0JVRkZFUl9UT09fU01BTEw7 DQo+ICAgICAgIGdvdG8gY2xlYW51cDsNCj4gICAgIH0NCj4gDQo+ICAgICAvLw0KPiAgICAgLy8g Q29uZmlybSB0aGF0IGJ1ZmZlciBpc24ndCBudWxsDQo+ICAgICAvLw0KPiAgICAgaWYgKCAgKElt YWdlSW5mbyA9PSBOVUxMKSB8fCAoRGVzY3JpcHRvclZlcnNpb24gPT0gTlVMTCkgfHwNCj4gKERl c2NyaXB0b3JDb3VudCA9PSBOVUxMKSB8fCAoRGVzY3JpcHRvclNpemUgPT0gTlVMTCkNCj4gICAg ICAgIHx8IChQYWNrYWdlVmVyc2lvbiA9PSBOVUxMKSkNCj4gICAgIHsNCj4gICAgICAgREVCVUcg KChERUJVR19FUlJPUiwgIkZtcER4ZSglcyk6IEdldEltYWdlSW5mbygpIC0gUG9pbnRlcg0KPiBQ YXJhbWV0ZXIgaXMgTlVMTC5cbiIsIG1JbWFnZUlkTmFtZSkpOw0KPiAgICAgICBTdGF0dXMgPSBF RklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgICAgIGdvdG8gY2xlYW51cDsNCj4gICAgIH0NCj4g ICAgIEluIHRoZSBsaW5lIDQ5NyB0byA0OTgsIGl0IGlzIG1pc3NlZCB0aGUganVkZ21lbnQgb2YN Cj4gUGFja2FnZVZlcnNpb25OYW1lIGJ1dCB0aGVyZSBpcyBhIGNvbW1lbnQgaW4gbGluZSA1Mjkg IiAvLyBEbyBub3QgdXBkYXRlDQo+IFBhY2thZ2VWZXJzaW9uTmFtZSBzaW5jZSBpdCBpcyBub3Qg c3VwcG9ydGVkIGluIHRoaXMgaW5zdGFuY2UuIg0KPiAgICAgU28sIGRvIHdlIG5lZWQgdG8gYWRk IHRoZSBqdWRnbWVudCBvZiBQYWNrYWdlVmVyc2lvbk5hbWUgaW4gdGhpcw0KPiBmdW5jdGlvbj8N Cg0KWWVzLiAgVGhlIGNoZWNrIG5lZWRzIHRvIGJlIGFkZGVkIGZvciBQYWNrYWdlVmVyc2lvbk5h bWUgYmVpbmcgTlVMTCBmb3INCnRoaXMgcHJvdG9jb2wgc2VydmljZSB0byBiZSBjb25mb3JtYW50 IHdpdGggdGhlIFVFRkkgU3BlY2lmaWNhdGlvbi4NCg0KVGhlIGZhY3QgdGhhdCB0aGlzIHNwZWNp ZmljIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHVwZGF0ZSBQYWNrYWdlVmVyc2lvbk5hbWUNCmNv bnRlbnRzIGRvZXMgbm90IGNoYW5nZSB3aGF0IGEgY29uZm9ybWFuY2UgdGVzdCB0aGF0IGNoZWNr cyB0aGUgYmVoYXZpb3INCm9mIGEgTlVMTCBwYXJhbWV0ZXIgdmFsdWUgd291bGQgY29uY2x1ZGUg dGhhdCB0aGUgc2VydmljZSBkb2VzIG5vdCBmb2xsb3cNCnRoZSBzcGVjLg0KDQo+IA0KPiAgIDEu MiBJbg0KPiBlZGsyXFNpZ25lZENhcHN1bGVQa2dcVW5pdmVyc2FsXFN5c3RlbUZpcm13YXJlVXBk YXRlXFN5c3RlbUZpcm13YXJlQ29tbW8NCj4gbkR4ZS5jLCBmdW5jdGlvbiBGbXBHZXRJbWFnZUlu Zm8oKToNCj4gICAgICAgICAgaWYgKEltYWdlSW5mb1NpemUgPT0gTlVMTCkgew0KPiAgICAgICAg ICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgICAgICAgIH0NCj4gDQo+ICAg ICAgICAgIGlmICgqSW1hZ2VJbmZvU2l6ZSA8IHNpemVvZiAoRUZJX0ZJUk1XQVJFX0lNQUdFX0RF U0NSSVBUT1IpICoNCj4gU3lzdGVtRm1wUHJpdmF0ZS0+RGVzY3JpcHRvckNvdW50KSB7DQo+ICAg ICAgICAgICAgKkltYWdlSW5mb1NpemUgPSBzaXplb2YgKEVGSV9GSVJNV0FSRV9JTUFHRV9ERVND UklQVE9SKSAqDQo+IFN5c3RlbUZtcFByaXZhdGUtPkRlc2NyaXB0b3JDb3VudDsNCj4gICAgICAg ICAgICByZXR1cm4gRUZJX0JVRkZFUl9UT09fU01BTEw7DQo+ICAgICAgICAgfQ0KPiANCj4gICAg ICAgICBpZiAoKEltYWdlSW5mbyA9PSBOVUxMKSB8fA0KPiAgICAgICAgICAgKERlc2NyaXB0b3JW ZXJzaW9uID09IE5VTEwpIHx8DQo+ICAgICAgICAgICAoRGVzY3JpcHRvckNvdW50ID09IE5VTEwp IHx8DQo+ICAgICAgICAgICAoRGVzY3JpcHRvclNpemUgPT0gTlVMTCkgfHwNCj4gICAgICAgICAg IChQYWNrYWdlVmVyc2lvbiA9PSBOVUxMKSB8fA0KPiAgICAgICAgICAgKFBhY2thZ2VWZXJzaW9u TmFtZSA9PSBOVUxMKSkNCj4gICAgICAgIHsNCj4gICAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElE X1BBUkFNRVRFUjsNCj4gICAgICAgIH0NCj4gICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5 IGluY2x1ZGVkIHRoZSByZXF1aXJlZCBjb2RlIGNoYW5nZXMuDQo+IA0KPiAgMi4gSW4gZWRrMi1w bGF0Zm9ybXMgcmVwbyB0aGVyZSBpcyBvbmx5IG9uZSBpbXBsZW1lbnRhdGlvbiBmb3IgRmlybXdh cmUNCj4gTWFuYWdlbWVudCBQcm90b2NvbC4NCj4gICAgICBJbiB0aGUgZmlsZSBNaWNyb2NvZGVG bXAuYywgZnVuY3Rpb24gRm1wR2V0SW1hZ2VJbmZvKCk6DQo+ICAgICAgSWYgKEltYWdlSW5mb1Np emUgPT0gTlVMTCkgew0KPiAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4g ICAgICB9DQo+ICAgICAgaWYgKCpJbWFnZUluZm9TaXplIDwgc2l6ZW9mKEVGSV9GSVJNV0FSRV9J TUFHRV9ERVNDUklQVE9SKSAqDQo+IE1pY3JvY29kZUZtcFByaXZhdGUtPkRlc2NyaXB0b3JDb3Vu dCkgew0KPiAgICAgICAgKkltYWdlSW5mb1NpemUgPSBzaXplb2YoRUZJX0ZJUk1XQVJFX0lNQUdF X0RFU0NSSVBUT1IpICoNCj4gTWljcm9jb2RlRm1wUHJpdmF0ZS0+RGVzY3JpcHRvckNvdW50Ow0K PiAgICAgICAgcmV0dXJuIEVGSV9CVUZGRVJfVE9PX1NNQUxMOw0KPiAgICAgIH0NCj4gICAgICBp ZiAoSW1hZ2VJbmZvID09IE5VTEwgfHwNCj4gICAgICAgICBEZXNjcmlwdG9yVmVyc2lvbiA9PSBO VUxMIHx8DQo+ICAgICAgICAgRGVzY3JpcHRvckNvdW50ID09IE5VTEwgfHwNCj4gICAgICAgICBE ZXNjcmlwdG9yU2l6ZSA9PSBOVUxMIHx8DQo+ICAgICAgICAgUGFja2FnZVZlcnNpb24gPT0gTlVM TCB8fA0KPiAgICAgICAgIFBhY2thZ2VWZXJzaW9uTmFtZSA9PSBOVUxMKSB7DQo+ICAgICAgIHJl dHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgICB9DQo+ICAgIFRoZSBpbXBsZW1lbnRh dGlvbiBhbHJlYWR5IGluY2x1ZGVkIHRoZSByZXF1aXJlZCBjb2RlIGNoYW5nZXMuDQo+IA0KPiBU aGFua3MNCj4gWHUgR3VvDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t OiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6 IFR1ZXNkYXksIEphbnVhcnkgMjMsIDIwMjQgNzowOCBBTQ0KPiBUbzogWHUsIEd1b1ggPGd1b3gu eHVAaW50ZWwuY29tPjsgZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Ow0KPiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGlu dGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBNZGVQa2c6VXBkYXRl ZCB0aGUgY29tbWVudHMgb2YNCj4gRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfUFJPVE9DT0wNCj4g DQo+IEhpIEd1bywNCj4gDQo+IFRoYW5rIHlvdSBmb3Igc3RhcnRpbmcgdGhpcyB0YXNrIHRvIHVw ZGF0ZSBGaXJtd2FyZSBNYW5hZ2VtZW50IFByb3RvY29sLg0KPiANCj4gVGhlcmUgYXJlIGFkZGl0 aW9uYWwgdGFza3MgdG8gbWFrZSBzdXJlIGFsbCByZXF1aXJlZCBjb2RlIGNoYW5nZXMgYXJlDQo+ IGFsc28gaW1wbGVtZW50ZWQgZm9yIGEgc3BlY2lmaWNhdGlvbiB1cGRhdGUgbGlrZSB0aGlzLg0K PiANCj4gKiBDcmVhdGUgYSBUaWFub0NvcmUgQnVnemlsbGEgdGhhdCBkZXNjcmliZXMgdGhlIHNw ZWNpZmljYXRpb24gdXBkYXRlDQo+ICAgbmVlZGVkIHdpdGggbGlua3MgdG8gdGhlIHB1YmxpYyBk b2N1bWVudHMgd2l0aCB0aGUgcmVxdWlyZWQNCj4gICBzcGVjaWZpY2F0aW9uIHVwZGF0ZS4NCj4g DQo+ICogUmV2aWV3L3VwZGF0ZSBlZGsyIHJlcG8gaW5jbHVkZSBmaWxlcy4NCj4gDQo+ICogUmV2 aWV3L3VwZGF0ZSBmdW5jdGlvbiBoZWFkZXJzIG9mIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhl DQo+ICAgRmlybXdhcmUgTWFuYWdlbWVudCBQcm90b2NvbCBpbiB0aGUgZWRrMiByZXBvLg0KPiAN Cj4gKiBSZXZpZXcvdXBkYXRlIGxvZ2ljIGluIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgRmlybXdh cmUNCj4gICBNYW5hZ2VtZW50IFByb3RvY29sIGluIHRoZSBlZGsyIHJlcG8gdG8gbWFrZSBzdXJl IGFsbCBlcnJvcg0KPiAgIHJldHVybiBjb25kaXRpb25zIGFyZSBjaGVja2VkLg0KPiANCj4gKiBS ZXZpZXcvdXBkYXRlIGZ1bmN0aW9uIGhlYWRlcnMgb2YgdGhlIGltcGxlbWVudGF0aW9ucyBvZiB0 aGUNCj4gICBGaXJtd2FyZSBNYW5hZ2VtZW50IFByb3RvY29sIGluIHRoZSBlZGsyLXBsYXRmb3Jt cyByZXBvLg0KPiANCj4gKiBSZXZpZXcvdXBkYXRlIGxvZ2ljIGluIGltcGxlbWVudGF0aW9ucyBv ZiB0aGUgRmlybXdhcmUNCj4gICBNYW5hZ2VtZW50IFByb3RvY29sIGluIHRoZSBlZGsyLXBsYXRm b3JtcyByZXBvIHRvIG1ha2Ugc3VyZQ0KPiAgIGFsbCBlcnJvciByZXR1cm4gY29uZGl0aW9ucyBh cmUgY2hlY2tlZC4NCj4gDQo+ICogUmV2aWV3L3VwZGF0ZSB0ZXN0IGNhc2VzIGVkazItdGVzdCBy ZXBvIGZvciB0aGUgVUVGSSBTQ1RzIGZvcg0KPiAgIHRoZXNlIGVycm9yIHJldHVybiBjb25kaXRp b25zLg0KPiANCj4gDQo+IFRoZSAiUkVGIiBpbiB0aGUgY29tbWl0IG1lc3NhZ2Ugc2hvdWxkIGJl IGEgbGluayB0byB0aGUgVGlhbm9Db3JlDQo+IEJ1Z3ppbGxhLiAgVGhlIHJlZmVyZW5jZSB0byB0 aGUgc3BlY2lmaWNhdGlvbiBpcyBhbHNvIHJlcXVpcmVkLCBidXQNCj4gc2hvdWxkIGJlIGluIHRo ZSB0ZXh0IG9mIHRoZSBjb21taXQgbWVzc2FnZS4NCj4gDQo+IFRoYW5rcywNCj4gDQo+IE1pa2UN Cj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogWHUsIEd1 b1ggPGd1b3gueHVAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFN1bmRheSwgSmFudWFyeSAyMSwgMjAy NCA5OjM3IFBNDQo+ID4gVG86IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPjsgTGl1LCBaaGlndWFuZw0KPiA+IDx6aGlndWFuZy5saXVAaW50 ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEvMV0gTWRlUGtn OlVwZGF0ZWQgdGhlIGNvbW1lbnRzIG9mDQo+ID4gRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfUFJP VE9DT0wNCj4gPg0KPiA+IEhpIExpbWluZywNCj4gPiAgIEkgY3JlYXRlZCBhIFBSOiBodHRwczov L2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC81MTgyLCBjb3VsZA0KPiA+IHlvdSBoZWxw IHB1c2ggaXQgPw0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gWHUgR3VvDQo+ID4NCj4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3Nv ZnQuY29tLmNuPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMTYsIDIwMjQgMTA6MjAgUE0N Cj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFh1LCBHdW9YIDxndW94Lnh1QGludGVsLmNv bT4NCj4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsgTGl1LCBaaGlndWFuZw0KPiA+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiA+IFN1Ympl Y3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtQQVRDSCAxLzFdIE1kZVBrZzpVcGRhdGVkIHRoZSBj b21tZW50cyBvZg0KPiA+IEVGSV9GSVJNV0FSRV9NQU5BR0VNRU5UX1BST1RPQ09MDQo+ID4NCj4g PiBJIGFtIE9LIGZvciB0aGlzIGNoYW5nZS4gUmV2aWV3ZWQtYnk6IExpbWluZyBHYW8NCj4gPiA8 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+DQo+ID4gPiAtLS0tLemCruS7tuWOn+S7ti0t LS0tDQo+ID4gPiDlj5Hku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdy b3Vwcy5pbz4g5Luj6KGoIFh1LCBHdW9YDQo+ID4gPiDlj5HpgIHml7bpl7Q6IDIwMjTlubQx5pyI OeaXpSAxNzoyNA0KPiA+ID4g5pS25Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4g 5oqE6YCBOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBH YW8sIExpbWluZw0KPiA+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3Vh bmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+ID4gPiDkuLvpopg6IFJlOiBbZWRrMi1kZXZl bF0gW1BBVENIIDEvMV0gTWRlUGtnOlVwZGF0ZWQgdGhlIGNvbW1lbnRzIG9mDQo+ID4gPiBFRklf RklSTVdBUkVfTUFOQUdFTUVOVF9QUk9UT0NPTA0KPiA+ID4NCj4gPiA+IEhpIGFsbCwgYW55IGNv bW1lbnRzIGFib3V0IHRoaXMgcGF0Y2g/DQo+ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdy b3Vwcy5pbz4gT24gQmVoYWxmIE9mIEd1b1gNCj4gPiA+IFh1DQo+ID4gPiBTZW50OiBNb25kYXks IERlY2VtYmVyIDI1LCAyMDIzIDk6MjEgQU0NCj4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiA+ID4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IEdhbywgTGltaW5nDQo+ID4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBa aGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47DQo+ID4gPiBMaSwgWWkxIDx5aTEubGlA aW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSCAxLzFdIE1kZVBr ZzpVcGRhdGVkIHRoZSBjb21tZW50cyBvZg0KPiA+ID4gRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRf UFJPVE9DT0wNCj4gPiA+DQo+ID4gPiAxLkZvciBFRklfRklSTVdBUkVfTUFOQUdFTUVOVF9QUk9U T0NPTC5HZXRJbWFnZSgpOg0KPiA+ID4gQWRkIHRoZSBmb2xsb3dpbmcgc2VudGVuY2UgYXQgdGhl IGVuZCBvZiB0aGUgSW1hZ2UgcGFyYW1ldGVyDQo+ID4gZGVzY3JpcHRpb24uDQo+ID4gPiAiTWF5 IGJlIE5VTEwgd2l0aCBhIHplcm8gSW1hZ2VTaXplIGluIG9yZGVyIHRvIGRldGVybWluZSB0aGUg c2l6ZSBvZg0KPiA+ID4gdGhlIGJ1ZmZlciBuZWVkZWQiLg0KPiA+ID4NCj4gPiA+IE1vZGlmeSB0 aGUgZGVzY3JpcHRpb24gb2YgIkVGSV9JTlZBTElEX1BBUkFNRVRFUiIgcmV0dXJuIGNvZGUgYXMN Cj4gPiA+ICJUaGUgSW1hZ2VTaXplIGlzIG5vdCB0b28gc21hbGwgYW5kIEltYWdlIGlzIE5VTEwu Ig0KPiA+ID4NCj4gPiA+IDIuRm9yIEVGSV9GSVJNV0FSRV9NQU5BR0VNRU5UX1BST1RPQ09MLkdl dEltYWdlSW5mbygpOg0KPiA+ID4gQWRkIHRoZSBmb2xsb3dpbmcgc2VudGVuY2UgYXQgdGhlIGVu ZCBvZiB0aGUgSW1hZ2VJbmZvIHBhcmFtZXRlcg0KPiA+ID4gZGVzY3JpcHRpb24uIk1heSBiZSBO VUxMIHdpdGggYSB6ZXJvIEltYWdlSW5mb1NpemUgaW4gb3JkZXIgdG8NCj4gPiA+IGRldGVybWlu ZSB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIG5lZWRlZCIuDQo+ID4gPg0KPiA+ID4gTW9kaWZ5IHRo ZSBkZXNjcmlwdGlvbiBvZiAiRUZJX0lOVkFMSURfUEFSQU1FVEVSIiByZXR1cm4gY29kZSBhcw0K PiA+ID4gIlRoZSBJbWFnZUluZm9TaXplIGlzIG5vdCB0b28gc21hbGwgYW5kIEltYWdlIGlzIE5V TEwuIiBhbmQgYWRkIG5ldw0KPiA+ID4gZGVzY3JpcHRpb25zIGZvciAiRUZJX0lOVkFMSURfUEFS QU1FVEVSIiByZXR1cm4gY29kZS4NCj4gPiA+DQo+ID4gPiBSRUY6IFVFRkkgU3BlYyAyLjdCIENo YXB0ZXIgMjMuMS4NCj4gPiA+DQo+ID4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3Nv ZnQuY29tLmNuPg0KPiA+ID4gQ2M6IFpoaWd1YW5nIExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNv bT4NCj4gPiA+IENjOiBZaSBMaSA8eWkxLmxpQGludGVsLmNvbT4NCj4gPiA+IFNpZ25lZC1vZmYt Ynk6IEd1b1ggWHUgPGd1b3gueHVAaW50ZWwuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgTWRlUGtn L0luY2x1ZGUvUHJvdG9jb2wvRmlybXdhcmVNYW5hZ2VtZW50LmggfCAxMyArKysrKysrKysrKy0t DQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p DQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL1Byb3RvY29sL0Zpcm13 YXJlTWFuYWdlbWVudC5oDQo+ID4gPiBiL01kZVBrZy9JbmNsdWRlL1Byb3RvY29sL0Zpcm13YXJl TWFuYWdlbWVudC5oDQo+ID4gPiBpbmRleCBmMzcwNjdkZjM0NTUuLjkzYzhiNzY1OGUxYSAxMDA2 NDQNCj4gPiA+IC0tLSBhL01kZVBrZy9JbmNsdWRlL1Byb3RvY29sL0Zpcm13YXJlTWFuYWdlbWVu dC5oDQo+ID4gPiArKysgYi9NZGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9GaXJtd2FyZU1hbmFnZW1l bnQuaA0KPiA+ID4gQEAgLTI5Myw2ICsyOTMsOCBAQCBFRklfU1RBVFVTDQo+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGNvbnRhaW4gdGhlIGltYWdlKHMpDQo+ ID4gPiBpbmZvcm1hdGlvbiBpZiB0aGUgYnVmZmVyIHdhcyB0b28gc21hbGwuDQo+ID4gPiAgICBA cGFyYW1baW4sIG91dF0gSW1hZ2VJbmZvICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUgYnVmZmVy IGluDQo+IHdoaWNoDQo+ID4gPiBmaXJtd2FyZSBwbGFjZXMgdGhlIGN1cnJlbnQgaW1hZ2UocykN Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24u IFRoZSBpbmZvcm1hdGlvbg0KPiA+ID4gaXMgYW4gYXJyYXkgb2YgRUZJX0ZJUk1XQVJFX0lNQUdF X0RFU0NSSVBUT1JzLg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBNYXkgYmUgTlVMTCB3aXRoIGEgemVybw0KPiA+ID4gSW1hZ2VJbmZvU2l6ZSBpbiBvcmRlciB0 byBkZXRlcm1pbmUgdGhlIHNpemUgb2YgdGhlDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJ1ZmZlciBuZWVkZWQuDQo+ID4gPiAgICBAcGFyYW1bb3V0XSAgICAg RGVzY3JpcHRvclZlcnNpb24gIEEgcG9pbnRlciB0byB0aGUgbG9jYXRpb24gaW4NCj4gPiB3aGlj aA0KPiA+ID4gZmlybXdhcmUgcmV0dXJucyB0aGUgdmVyc2lvbiBudW1iZXINCj4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZQ0KPiA+ ID4gRUZJX0ZJUk1XQVJFX0lNQUdFX0RFU0NSSVBUT1IuDQo+ID4gPiAgICBAcGFyYW1bb3V0XSAg ICAgRGVzY3JpcHRvckNvdW50ICAgIEEgcG9pbnRlciB0byB0aGUgbG9jYXRpb24gaW4NCj4gPiA+ IHdoaWNoIGZpcm13YXJlIHJldHVybnMgdGhlIG51bWJlciBvZiBAQCAtMzEzLDcgKzMxNSwxMiBA QCBFRklfU1RBVFVTDQo+ID4gPiAgICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAg IFRoZSBkZXZpY2Ugd2FzIHN1Y2Nlc3NmdWxseQ0KPiA+ID4gdXBkYXRlZCB3aXRoIHRoZSBuZXcg aW1hZ2UuDQo+ID4gPiAgICBAcmV0dmFsIEVGSV9CVUZGRVJfVE9PX1NNQUxMICAgICAgIFRoZSBJ bWFnZUluZm8gYnVmZmVyIHdhcyB0b28NCj4gPiA+IHNtYWxsLiBUaGUgY3VycmVudCBidWZmZXIg c2l6ZQ0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkZWQg dG8gaG9sZCB0aGUgaW1hZ2UocykNCj4gPiA+IGluZm9ybWF0aW9uIGlzIHJldHVybmVkIGluIElt YWdlSW5mb1NpemUuDQo+ID4gPiAtICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgICAg IEltYWdlSW5mb1NpemUgaXMgTlVMTC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFS QU1FVEVSICAgICAgSW1hZ2VJbmZvU2l6ZSBpcyBub3QgdG9vIHNtYWxsDQo+ID4gPiBhbmQgSW1h Z2VJbmZvIGlzIE5VTEwuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAg ICAgIEltYWdlSW5mb1NpemUgaXMgbm9uLXplcm8gYW5kDQo+ID4gPiBEZXNjcmlwdG9yVmVyc2lv biBpcyBOVUxMLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgICBJ bWFnZUluZm9TaXplIGlzIG5vbi16ZXJvIGFuZA0KPiA+ID4gRGVzY3JpcHRvckNvdW50IGlzIE5V TEwuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgICAgIEltYWdlSW5m b1NpemUgaXMgbm9uLXplcm8gYW5kDQo+ID4gPiBEZXNjcmlwdG9yU2l6ZSBpcyBOVUxMLg0KPiA+ ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgICBJbWFnZUluZm9TaXplIGlz IG5vbi16ZXJvIGFuZA0KPiA+ID4gUGFja2FnZVZlcnNpb24gaXMgTlVMTC4NCj4gPiA+ICsgIEBy ZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICAgSW1hZ2VJbmZvU2l6ZSBpcyBub24temVy byBhbmQNCj4gPiA+IFBhY2thZ2VWZXJzaW9uTmFtZSBpcyBOVUxMLg0KPiA+ID4gICAgQHJldHZh bCBFRklfREVWSUNFX0VSUk9SICAgICAgICAgICBWYWxpZCBpbmZvcm1hdGlvbiBjb3VsZCBub3Qg YmUNCj4gPiA+IHJldHVybmVkLiBQb3NzaWJsZSBjb3JydXB0ZWQgaW1hZ2UuDQo+ID4gPg0KPiA+ ID4gICoqLw0KPiA+ID4gQEAgLTM0MCw2ICszNDcsOCBAQCBFRklfU1RBVFVTDQo+ID4gPiAgICBA cGFyYW1baW5dICAgICAgSW1hZ2VJbmRleCAgICAgQSB1bmlxdWUgbnVtYmVyIGlkZW50aWZ5aW5n IHRoZQ0KPiA+ID4gZmlybXdhcmUgaW1hZ2Uocykgd2l0aGluIHRoZSBkZXZpY2UuDQo+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG51bWJlciBpcyBiZXR3ZWVuIDEg YW5kDQo+ID4gPiBEZXNjcmlwdG9yQ291bnQuDQo+ID4gPiAgICBAcGFyYW1bb3V0XSAgICAgSW1h Z2UgICAgICAgICAgUG9pbnRzIHRvIHRoZSBidWZmZXIgd2hlcmUgdGhlDQo+ID4gPiBjdXJyZW50 IGltYWdlIGlzIGNvcGllZCB0by4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNYXkgYmUgTlVMTCB3aXRoIGEgemVybw0KPiA+ID4gSW1hZ2VTaXplIGluIG9yZGVyIHRv IGRldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBidWZmZXIgbmVlZGVkLg0KPiA+ID4gICAgQHBhcmFtW2luLCBvdXRdIEltYWdl U2l6ZSAgICAgIE9uIGVudHJ5LCBwb2ludHMgdG8gdGhlIHNpemUgb2YNCj4gdGhlDQo+ID4gPiBi dWZmZXIgcG9pbnRlZCB0byBieSBJbWFnZSwgaW4gYnl0ZXMuDQo+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT24gcmV0dXJuLCBwb2ludHMgdG8gdGhlIGxlbmd0aCBvZg0K PiA+ID4gdGhlIGltYWdlLCBpbiBieXRlcy4NCj4gPiA+DQo+ID4gPiBAQCAtMzQ3LDcgKzM1Niw3 IEBAIEVGSV9TVEFUVVMNCj4gPiA+ICAgIEByZXR2YWwgRUZJX0JVRkZFUl9UT09fU01BTEwgICBU aGUgYnVmZmVyIHNwZWNpZmllZCBieSBJbWFnZVNpemUNCj4gaXMNCj4gPiA+IHRvbyBzbWFsbCB0 byBob2xkIHRoZQ0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdl LiBUaGUgY3VycmVudCBidWZmZXIgc2l6ZQ0KPiA+ID4gbmVlZGVkIHRvIGhvbGQgdGhlIGltYWdl IGlzIHJldHVybmVkDQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g SW1hZ2VTaXplLg0KPiA+ID4gLSAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFRoZSBJ bWFnZSB3YXMgTlVMTC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBU aGUgSW1hZ2VTaXplIGlzIG5vdCB0b28gc21hbGwgYW5kDQo+ID4gPiBJbWFnZSBpcyBOVUxMLg0K PiA+ID4gICAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgIFRoZSBjdXJyZW50IGltYWdl IGlzIG5vdCBjb3BpZWQgdG8NCj4gPiA+IHRoZSBidWZmZXIuDQo+ID4gPiAgICBAcmV0dmFsIEVG SV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLg0KPiA+ ID4gICAgQHJldHZhbCBFRklfU0VDVVJJVFlfVklPTEFUSU9OIFRoZSBvcGVyYXRpb24gY291bGQg bm90IGJlDQo+ID4gPiBwZXJmb3JtZWQgZHVlIHRvIGFuIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUu DQo+ID4gPiAtLQ0KPiA+ID4gMi4yOS4yLndpbmRvd3MuMw0KPiA+ID4NCj4gPiA+DQo+ID4gPg0K PiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiANCj4gPiA+DQo+ID4NCj4g Pg0KDQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSByZWNl aXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcvUmVwbHkgT25saW5lICgj MTE0ODEyKTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTE0ODEyCk11 dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvMTAzODk4NzY1Lzc2ODYxNzYKR3Jv dXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvClVuc3Vic2NyaWJlOiBodHRwczov L2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbGVhdmUvMTIzNjcxMTEvNzY4NjE3Ni8xOTEzNDU2MjEy L3h5enp5IFtyZWJlY2NhQG9wZW5mdy5pb10KLT0tPS09LT0tPS09LT0tPS09LT0tPS0KCg0K