From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web11.7742.1576841391518922848 for ; Fri, 20 Dec 2019 03:29:51 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=025773e735=sunnywang@hpe.com) Received: from pps.filterd (m0148663.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xBKBOYde022667; Fri, 20 Dec 2019 11:29:49 GMT Received: from g4t3425.houston.hpe.com (g4t3425.houston.hpe.com [15.241.140.78]) by mx0a-002e3701.pphosted.com with ESMTP id 2x07pk8jac-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Dec 2019 11:29:49 +0000 Received: from G2W6311.americas.hpqcorp.net (g2w6311.austin.hp.com [16.197.64.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g4t3425.houston.hpe.com (Postfix) with ESMTPS id 3A0A58D; Fri, 20 Dec 2019 11:29:48 +0000 (UTC) Received: from G9W8674.americas.hpqcorp.net (16.220.49.0) by G2W6311.americas.hpqcorp.net (16.197.64.53) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 20 Dec 2019 11:29:48 +0000 Received: from G4W10205.americas.hpqcorp.net (2002:10cf:520f::10cf:520f) by G9W8674.americas.hpqcorp.net (2002:10dc:3100::10dc:3100) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 20 Dec 2019 11:28:40 +0000 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (15.241.52.11) by G4W10205.americas.hpqcorp.net (16.207.82.15) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Fri, 20 Dec 2019 11:28:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fYKmlgGQQWqCz+/Ph7ketX5hkxi+rI3RE7PyD2iqSAss6tqxGajDEwjlznqVtDB8N/irfck+BCS+ERNuThDuLfTCv8BnrcCmUgGod1AvJmNJd7KbFD36nLe76pQYHOm4YSr79Jkft/H1nHae7KZscuCKGFNrv3KtoDr+Fg0+pFFIVgAakQSXcpuE87XlNqDvZvB7XxUfz0psTpbfnCxfhfbOWz323mfZ3s5WyCBJkvSM2ak61Nz2Ow2qO3riR+Lj5O6a2Tf9oudnSIBnOXy/J76GszpfDJtiPWdqFUf6WPr5//wpASiBLo4F2MoChPxmxY2VfrcfxOlIuqjhlmzAVw== 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-SenderADCheck; bh=XfgyW6y+1EbPOlsLWv0nX5J9++rGyHS1mL0soIVas2o=; b=C9qBVYf11AOXvGYsvNzVxSJ4y585ZdzE8MkCi7GCwFgexHzoUPdmZqVz5R9/xRudgyfx6lmUS7s3aoTfXsFeNBEUAkHilOkkUkoPLctA2yFSGW8fY+t0xu2wzY/uOHu0cuxUJwEE8VpyE+FsmQyOx8WD2Ou7C4wYB3DDFa6vQ7/ECS8NpISeqqf6AFuikKiiLGKnTXYtbPbVYJRJFbxqAQdoevhcYGRDKi6O1O+76W5tYlA69vZ4WImueWuyJ6i9WsQt3aOzgyMekHbxVLCz48QGrIStUng+HFb5FT3e26RKtAEsdOupHbbFkd5mImZzr2vf3goyLBsJYCpgSDPGmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from DF4PR8401MB1307.NAMPRD84.PROD.OUTLOOK.COM (10.169.93.143) by DF4PR8401MB1177.NAMPRD84.PROD.OUTLOOK.COM (10.169.92.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.15; Fri, 20 Dec 2019 11:28:38 +0000 Received: from DF4PR8401MB1307.NAMPRD84.PROD.OUTLOOK.COM ([fe80::7969:cbbd:6156:5fb4]) by DF4PR8401MB1307.NAMPRD84.PROD.OUTLOOK.COM ([fe80::7969:cbbd:6156:5fb4%4]) with mapi id 15.20.2559.016; Fri, 20 Dec 2019 11:28:38 +0000 From: "Wang, Sunny (HPS SW)" To: "devel@edk2.groups.io" , "ashishsingha@nvidia.com" , "ray.ni@intel.com" , "Wang, Jian J" , "Wu, Hao A" , "Gao, Zhichao" , "Kinney, Michael D" , "'Andrew Fish (afish@apple.com)'" CC: "Spottswood, Jason" , "Wang, Sunny (HPS SW)" Subject: Re: [edk2-devel] [PATCH v4] MdeModulePkg: Add EDK2 Platform Boot Manager Protocol Thread-Topic: [edk2-devel] [PATCH v4] MdeModulePkg: Add EDK2 Platform Boot Manager Protocol Thread-Index: AQHVtdbtDUTs0N7AkEWjenHG5wi4qafAtC6AgACELICAAHFuAIAA7mvA Date: Fri, 20 Dec 2019 11:28:38 +0000 Message-ID: References: <734D49CCEBEEF84792F5B80ED585239D5C3A269D@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [16.242.247.139] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 4615a545-657e-48f2-d7d1-08d7853fc23c x-ms-traffictypediagnostic: DF4PR8401MB1177: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1002; x-forefront-prvs: 025796F161 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(376002)(366004)(346002)(39860400002)(396003)(189003)(13464003)(199004)(50084003)(53546011)(7696005)(5660300002)(19627235002)(186003)(26005)(110136005)(9686003)(81166006)(55016002)(2906002)(33656002)(316002)(478600001)(66476007)(66556008)(64756008)(66446008)(66946007)(81156014)(8676002)(8936002)(6506007)(30864003)(86362001)(71200400001)(76116006)(4326008)(54906003)(966005)(52536014)(921003)(1121003);DIR:OUT;SFP:1102;SCL:1;SRVR:DF4PR8401MB1177;H:DF4PR8401MB1307.NAMPRD84.PROD.OUTLOOK.COM;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: hpe.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OROOBoJGthv4JqbIEj5N4aVYmJP7nXETk//jVNwjQN8sANpofTaKumc2GY8n0d7JGbGTmD12KvOSya/87tGXtfxTk1KwLVGbs3aJVTzeChv0D0LH3vyWVg4Pj3YX2jSEQ9XTIEYVziLgqrlkChKhDSOHkH+Ckp1EAQBg6EuZqDNFHj4trMO58JR8sLYZv0dt3mLjucKdTi4Zdt/1CQe4KyADhc3fjmieMG3exA99CaSWu3E2rIQeSc+Ya/DDvxiCxIltNsTkGD8g6zE6Ujxo/YYVHOWvbZpd1i/n1J4YQFtrbLMgtIuDNSrDn4EwHokVBKhhItL+EdMv82DWNblejjWU84Cpd17pWPh9C4lMfDOoEdUugZIrfsj7djwMJTupr5Jf0RONsDIXF34yQc5M+r6mj6BRij52UegMI28foq8aVOqrGiSfkyGCWMkZm2pXwSbAUoug1yjVFncGLiA7iguuTdJynQyOuJB86PfKDyFoOotZn1XcSgCdxRnYrVxAT9onvvhC3ewpmxRa8xEDeNTv5l8z4ppcndC2jedeQHOihzG7zIcxz1yI4NSY+DgTqtdrQopEfScjuBGlKF1nyA== X-MS-Exchange-CrossTenant-Network-Message-Id: 4615a545-657e-48f2-d7d1-08d7853fc23c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2019 11:28:38.2916 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CXgfMWkd5N/dyqNSqmZZKSs5dc7w1i1LzmyG3fwBDXI+bDetc9puEC1hOFsch54SSsfpkBSjHJzwPIe3625pbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DF4PR8401MB1177 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 3 URL's were un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-12-20_01:2019-12-17,2019-12-20 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 mlxlogscore=999 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-1912200092 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 R29vZCBwb2ludC4gVGhlIHdheSB5b3UgdXNlZCBpcyBtb3JlIHJvYnVzdC4gSXQgY2FuIGNvdmVy IGEgbWlzdGFrZSBpbiBmdW5jdGlvbidzIGVycm9yIGhhbmRsaW5nLiBUaGFua3MgZm9yIGNsYXJp ZnlpbmcgdGhpcywgQXNoaXNoLg0KDQpJbiBhZGRpdGlvbiwgdGhlIG90aGVyIG5hbWluZyBzdWdn ZXN0aW9uIGp1c3QgY29tZXMgdG8gbWluZC4gSG93IGFib3V0IHdlIHJlbmFtZSB0aGUgZnVuY3Rp b24gdG8gYSBtb3JlIGdlbmVyaWMgb25lIChiYXNlZCBvbiBsb2NhdGlvbikgbGlrZSBBZnRlckVu dW1lcmF0ZUJvb3RPcHRpb25zIG9yIGEgbW9yZSBzcGVjaWZpYyBvbmUgbGlrZSBSZWZyZXNoRW51 bWVyYXRlZEJvb3RPcHRpb25zPyBJbiB0aGUgZnV0dXJlLCB3ZSBtYXkgYWRkIHRoZSBvdGhlciBo b29rIGZ1bmN0aW9uIGluIHRoZSBFZmlCb290TWFuYWdlclJlZnJlc2hBbGxCb290T3B0aW9uIHRv IGRlYWwgd2l0aCB0aGUgYm9vdCBvcHRpb25zIHRoYXQgYXJlIG5vdCBjcmVhdGVkIGJ5IEJtRW51 bWVyYXRlQm9vdE9wdGlvbnMuIEluIHRoaXMgY2FzZSAodHdvIGhvb2sgZnVuY3Rpb25zIGluIEVm aUJvb3RNYW5hZ2VyUmVmcmVzaEFsbEJvb3RPcHRpb24pLCB0aGUgb3JpZ2luYWwgZnVuY3Rpb24g bmFtZSAiUmVmcmVzaEFsbEJvb3RPcHRpb25zIiBtYXkgY2F1c2Ugc29tZSBjb25mdXNpb24uDQoN ClJlZ2FyZHMsDQpTdW5ueSBXYW5nDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTog ZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24gQmVo YWxmIE9mIEFzaGlzaCBTaW5naGFsDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDIwLCAyMDE5IDEy OjM4IEFNDQpUbzogV2FuZywgU3VubnkgKEhQUyBTVykgPHN1bm55d2FuZ0BocGUuY29tPjsgZGV2 ZWxAZWRrMi5ncm91cHMuaW87IHJheS5uaUBpbnRlbC5jb207IFdhbmcsIEppYW4gSiA8amlhbi5q LndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBHYW8sIFpo aWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT47ICdBbmRyZXcgRmlzaCAoYWZpc2hAYXBwbGUuY29tKScgPGFm aXNoQGFwcGxlLmNvbT4NCkNjOiBTcG90dHN3b29kLCBKYXNvbiA8amFzb24uc3BvdHRzd29vZEBo cGUuY29tPg0KU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjRdIE1kZU1vZHVsZVBr ZzogQWRkIEVESzIgUGxhdGZvcm0gQm9vdCBNYW5hZ2VyIFByb3RvY29sDQoNCkhpIFN1bm55LA0K DQpJIHRob3VnaHQgYWJvdXQga2VlcGluZyB0aGUgYXJndW1lbnRzIHRoZSB3YXkgeW91IHN1Z2dl c3RlZCBidXQgdGhlbiBkZWNpZGVkIGFnYWluc3QgaXQgc28gdGhhdCB0aGUgYXV0byBlbnVtZXJh dGVkIGJvb3Qgb3B0aW9ucyBsaXN0IGlzIG5vdCB0YW1wZXJlZCB3aXRoIGluIGNhc2UgdGhlIGZ1 bmN0aW9uIGltcGxlbWVudGF0aW9uIGhpdHMgYW4gZXJyb3IgaW4gYmV0d2Vlbi4gVGhpcyB3YXks IGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yLCB3ZSBjYW4gdXNlIHRoZSBsaXN0IHdl IHBhc3NlZCBpbiBhbmQgY29udGludWUgYm9vdC4NCg0KSSBhbSBPSyB3aXRoIGFueSBzdWdnZXN0 ZWQgbmFtZSBjaGFuZ2VzLg0KDQpUaGFua3MNCkFzaGlzaA0KDQotLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KRnJvbTogV2FuZywgU3VubnkgKEhQUyBTVykgPHN1bm55d2FuZ0BocGUuY29tPg0K U2VudDogVGh1cnNkYXksIERlY2VtYmVyIDE5LCAyMDE5IDc6MjMgQU0NClRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgcmF5Lm5pQGludGVsLmNvbTsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0Bp bnRlbC5jb20+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IEdhbywgWmhpY2hhbyA8 emhpY2hhby5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPjsgJ0FuZHJldyBGaXNoIChhZmlzaEBhcHBsZS5jb20pJyA8YWZpc2hAYXBw bGUuY29tPg0KQ2M6IEFzaGlzaCBTaW5naGFsIDxhc2hpc2hzaW5naGFAbnZpZGlhLmNvbT47IFdh bmcsIFN1bm55IChIUFMgU1cpIDxzdW5ueXdhbmdAaHBlLmNvbT47IFNwb3R0c3dvb2QsIEphc29u IDxqYXNvbi5zcG90dHN3b29kQGhwZS5jb20+DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQ QVRDSCB2NF0gTWRlTW9kdWxlUGtnOiBBZGQgRURLMiBQbGF0Zm9ybSBCb290IE1hbmFnZXIgUHJv dG9jb2wNCg0KRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0 YWNobWVudHMNCg0KDQoxLiBJcyBpdCBhIHByb3BlciBzb2x1dGlvbiB0byB0aGUgcHJvYmxlbT8N CiAgICBZZXMsIGl0IGFscmVhZHkgc29sdmVkIG15IGNvbmNlcm4gZGlzY3Vzc2VkIGluIHRoZSBv dGhlciBlbWFpbC4NCjIuIElzIHRoZSBuZXcgcHJvdG9jb2wvZnVuY3Rpb24gbmFtZSBwcm9wZXI/ DQogICAgWWVzLCBidXQgSSdtIG5vdCBnb29kIGF0IG5hbWluZy4gV2UgbWF5IG5lZWQgb3RoZXJz JyBmZWVkYmFjay4gOikgMy4gQXJlIHRoZSBwYXJhbWV0ZXJzIGluIHRoZSBmdW5jdGlvbiBwcm9w ZXI/DQogICAgSG93IGFib3V0IHdlIG9ubHkgaGF2ZSB0d28gcGFyYW1ldGVycyBhcyBiZWxvdyB0 byBzaW1wbGlmeSB0aGlzIGNvZGUgY2hhbmdlPw0KdHlwZWRlZg0KRUZJX1NUQVRVUw0KKEVGSUFQ SSAqUkVGUkVTSF9BTExfQk9PVF9PUFRJT05TKSAoDQpJTiAgT1VUIEVGSV9CT09UX01BTkFHRVJf TE9BRF9PUFRJT04gKipCb290T3B0aW9ucywNCklOICBPVVQgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpCb290T3B0aW9uc0Nv dW50LA0KKTsNCg0KSW4gYWRkaXRpb24sIEkgaGF2ZSBvbmUgbW9yZSBzdWdnZXN0aW9uIGFib3V0 IHRoZSBzdHJ1Y3R1cmUgbmFtZSBpbmxpbmUuDQoNCkJlc2lkZXMgdGhlc2UgdHdvIGNvbW1lbnRz LCBldmVyeXRoaW5nIGVsc2UgbG9va3MgZ29vZCB0byBtZS4NCg0KUmVnYXJkcywNClN1bm55IFdh bmcNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBz LmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFsZiBPZiBOaSwgUmF5DQpT ZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMTksIDIwMTkgOTo1OSBBTQ0KVG86IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+ OyBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47ICdBbmRyZXcgRmlzaCAoYWZpc2hAYXBwbGUu Y29tKScgPGFmaXNoQGFwcGxlLmNvbT4NCkNjOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQXNoaXNo IFNpbmdoYWwgPGFzaGlzaHNpbmdoYUBudmlkaWEuY29tPg0KU3ViamVjdDogUmU6IFtlZGsyLWRl dmVsXSBbUEFUQ0ggdjRdIE1kZU1vZHVsZVBrZzogQWRkIEVESzIgUGxhdGZvcm0gQm9vdCBNYW5h Z2VyIFByb3RvY29sDQoNCkFsbCwNClRoZSBuZXcgRURLSUkgUGxhdGZvcm0gQm9vdCBNYW5hZ2Vy IHByb3RvY29sIHByb3ZpZGVzIGEgcGxhdGZvcm0gaG9vayB0byBzb2x2ZSBiZWxvdyBwcm9ibGVt Lg0KQ2FuIHlvdSBwbGVhc2UgcmV2aWV3IGFuZCB0aGluayBhYm91dDoNCjEuIElzIGl0IGEgcHJv cGVyIHNvbHV0aW9uIHRvIHRoZSBwcm9ibGVtPw0KMi4gSXMgdGhlIG5ldyBwcm90b2NvbC9mdW5j dGlvbiBuYW1lIHByb3Blcj8NCjMuIEFyZSB0aGUgcGFyYW1ldGVycyBpbiB0aGUgZnVuY3Rpb24g cHJvcGVyPw0KDQoNCioqUHJvYmxlbToNCiAgICAgICAgICAgICAgIFBsYXRmb3JtIHJlcXVpcmVz IGNlcnRhaW4gQmxvY2tJby9TaW1wbGVGaWxlU3lzdGVtL0xvYWRGaWxlIGluc3RhbmNlcyBkb24n dCBjYXVzZSBCb290IyMjIyBjcmVhdGVkLiBJdCdzIGEgbmVlZCBvZiBwbGF0Zm9ybSBjdXN0b21p emF0aW9uLg0KDQoqKkRldGFpbHM6DQogICAgICAgICAgICAgICBCb290IyMjIyBmb3IgQmxvY2tJ by9TaW1wbGVGaWxlU3lzdGVtL0xvYWRGaWxlIGFyZSBjcmVhdGVkIGJ5IEFQSSBFZmlCb290TWFu Z2VyUmVmcmVzaEFsbEJvb3RPcHRpb25zKCkuIFRoZXJlIGFyZSAyIHBsYWNlcyB0aGF0IGNhbGwg dGhpcyBBUEk6DQoxLiAgICAgIFBsYXRmb3JtIEJvb3QgTWFuYWdlciBjYWxscyB0aGUgQVBJICh1 c3VhbGx5IGluIHRoZSBmdWxsIGNvbmZpZ3VyYXRpb24gYm9vdCBwYXRoKQ0KMi4gICAgICBVaUFw cCBjYWxscyB0aGUgQVBJIHdoZW4gZW50ZXJpbmcgIkJvb3QgTWFuYWdlciIgcGFnZSBhbmQgIkJv b3QgTWFpbnRlbmFuY2UgTWFuYWdlciIgcGFnZS4NCg0KUGxhdGZvcm0gY2FuIGNoYW5nZSBQbGF0 Zm9ybSBCb290IE1hbmFnZXIgbGlicmFyeSB0byByZW1vdmUgdGhlIHVubmVlZGVkIEJvb3QjIyMj IGluIGNhc2UgIzEuDQpCdXQgcGxhdGZvcm0gaGFzIG5vIHdheSB0byByZW1vdmUgdGhlIEJvb3Qj IyMjIGNyZWF0ZWQgaW4gY2FzZSAjMiAuDQoNClRoYW5rcywNClJheQ0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFzaGlzaCBTaW5naGFsIDxhc2hpc2hzaW5naGFAbnZp ZGlhLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDE5LCAyMDE5IDM6MTEgQU0NCj4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVs LmNvbT47IFd1LCANCj4gSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IEdhbywgWmhpY2hhbyA8 emhpY2hhby5nYW9AaW50ZWwuY29tPjsgTmksIA0KPiBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ IENjOiBBc2hpc2ggU2luZ2hhbCA8YXNoaXNoc2luZ2hhQG52aWRpYS5jb20+DQo+IFN1YmplY3Q6 IFtQQVRDSCB2NF0gTWRlTW9kdWxlUGtnOiBBZGQgRURLMiBQbGF0Zm9ybSBCb290IE1hbmFnZXIg DQo+IFByb3RvY29sDQo+DQo+IEFkZCBlZGsyIHBsYXRmb3JtIGJvb3QgbWFuYWdlciBwcm90b2Nv bCB3aGljaCB3b3VsZCBoYXZlIHBsYXRmb3JtIA0KPiBzcGVjaWZpYyByZWZyZXNoZXMgdG8gdGhl IGF1dG8gZW51bWVyYXRlZCBhcyB3ZWxsIGFzIE5WIGJvb3Qgb3B0aW9ucyANCj4gZm9yIHRoZSBw bGF0Zm9ybS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogQXNoaXNoIFNpbmdoYWwgPGFzaGlzaHNpbmdo YUBudmlkaWEuY29tPg0KPiAtLS0NCj4gIC4uLi9JbmNsdWRlL1Byb3RvY29sL1BsYXRmb3JtQm9v dE1hbmFnZXIuaCAgICAgICAgIHwgODINCj4gKysrKysrKysrKysrKysrKysrKysrKw0KPiAgTWRl TW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtQm9vdC5jICAgfCA0MSArKysr KysrKystLQ0KPiAgLi4uL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0ludGVybmFsQm0uaCAg ICAgICAgfCAgMiArDQo+ICAuLi4vVWVmaUJvb3RNYW5hZ2VyTGliL1VlZmlCb290TWFuYWdlckxp Yi5pbmYgICAgICB8ICAyICsNCj4gIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKysNCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZQ0KPiAxMDA2NDQgTWRlTW9kdWxlUGtn L0luY2x1ZGUvUHJvdG9jb2wvUGxhdGZvcm1Cb290TWFuYWdlci5oDQo+DQo+IGRpZmYgLS1naXQg YS9NZGVNb2R1bGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9QbGF0Zm9ybUJvb3RNYW5hZ2VyLmgNCj4g Yi9NZGVNb2R1bGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9QbGF0Zm9ybUJvb3RNYW5hZ2VyLmgNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uZWMzMjIxNQ0KPiAtLS0gL2Rl di9udWxsDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29sL1BsYXRmb3JtQm9v dE1hbmFnZXIuaA0KPiBAQCAtMCwwICsxLDgyIEBADQo+ICsvKiogQGZpbGUNCj4gKw0KPiArICBD b3B5cmlnaHQgKGMpIDIwMTksIE5WSURJQSBDT1JQT1JBVElPTi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4NCj4gKw0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiArDQo+ICsqKi8NCj4gKw0KPiArI2lmbmRlZiBfX1BMQVRGT1JNX0JPT1RfTUFOQUdFUl9Q Uk9UT0NPTF9IX18NCj4gKyNkZWZpbmUgX19QTEFURk9STV9CT09UX01BTkFHRVJfUFJPVE9DT0xf SF9fDQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi5oPg0KPiAr DQo+ICsvLw0KPiArLy8gUGxhdGZvcm0gQm9vdCBNYW5hZ2VyIFByb3RvY29sIEdVSUQgdmFsdWUg Ly8gI2RlZmluZSANCj4gK0VES0lJX1BMQVRGT1JNX0JPT1RfTUFOQUdFUl9QUk9UT0NPTF9HVUlE IFwNCj4gKyAgICB7IFwNCj4gKyAgICAgIDB4YWExN2FkZDQsIDB4NzU2YywgMHg0NjBkLCB7IDB4 OTQsIDB4YjgsIDB4NDMsIDB4ODgsIDB4ZDcsIA0KPiArMHhmYiwgMHgzZSwNCj4gMHg1OSB9IFwN Cj4gKyAgICB9DQo+ICsNCj4gKy8vDQo+ICsvLyBQcm90b2NvbCBpbnRlcmZhY2Ugc3RydWN0dXJl DQo+ICsvLw0KPiArdHlwZWRlZiBzdHJ1Y3QgX1BMQVRGT1JNX0JPT1RfTUFOQUdFUl9QUk9UT0NP TA0KPiBQTEFURk9STV9CT09UX01BTkFHRVJfUFJPVE9DT0w7DQoNCkZvciBiZWluZyBjb25zaXN0 ZW50IHdpdGggb3RoZXIgRURLSUkgcHJvdG9jb2xzIGxpa2UgRURLSUlfUExBVEZPUk1fTE9HT19Q Uk9UT0NPTCAsIGhvdyBhYm91dCB3ZSB1cGRhdGUgaXQgdG8gdGhlIGZvbGxvd2luZz8NCnR5cGVk ZWYgc3RydWN0IF9FREtJSV9QTEFURk9STV9CT09UX01BTkFHRVJfUFJPVE9DT0wgRURLSUlfUExB VEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09MOw0KDQo+ICsNCj4gKy8vDQo+ICsvLyBSZXZpc2lv biBUaGUgcmV2aXNpb24gdG8gd2hpY2ggdGhlIHByb3RvY29sIGludGVyZmFjZSBhZGhlcmVzLg0K PiArLy8gICAgICAgICAgQWxsIGZ1dHVyZSByZXZpc2lvbnMgbXVzdCBiZSBiYWNrd2FyZHMgY29t cGF0aWJsZS4NCj4gKy8vICAgICAgICAgIElmIGEgZnV0dXJlIHZlcnNpb24gaXMgbm90IGJhY2sg d2FyZHMgY29tcGF0aWJsZSBpdCBpcyBub3QgdGhlIHNhbWUNCj4gR1VJRC4NCj4gKy8vDQo+ICsj ZGVmaW5lIEVES0lJX1BMQVRGT1JNX0JPT1RfTUFOQUdFUl9QUk9UT0NPTF9SRVZJU0lPTg0KPiAw eDAwMDAwMDAxDQo+ICsNCj4gKy8vDQo+ICsvLyBGdW5jdGlvbiBQcm90b3R5cGVzDQo+ICsvLw0K PiArDQo+ICsvKg0KPiArICBUaGlzIGZ1bmN0aW9uIGFsbG93cyBwbGF0Zm9ybSB0byByZWZyZXNo IGFsbCBib290IG9wdGlvbnMgc3BlY2lmaWMgDQo+ICt0byB0aGUNCj4gcGxhdGZvcm0uIFdpdGhp bg0KPiArICB0aGlzIGZ1bmN0aW9uLCBwbGF0Zm9ybSBjYW4gbWFrZSBtb2RpZmljYXRpb25zIHRv IHRoZSBhdXRvIA0KPiArIGVudW1lcmF0ZWQNCj4gcGxhdGZvcm0gYm9vdCBvcHRpb25zDQo+ICsg IGFzIHdlbGwgYXMgTlYgYm9vdCBvcHRpb25zLg0KPiArDQo+ICsgIEBwYXJhbVtpbiBjb25zdF0g Qm9vdE9wdGlvbnMgICAgICAgICAgICAgQW4gYXJyYXkgb2YgYXV0byBlbnVtZXJhdGVkDQo+IHBs YXRmb3JtIGJvb3Qgb3B0aW9ucy4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUaGlzIGFycmF5IHdpbGwgYmUgZnJlZWQgYnkgY2FsbGVyIHVwb24gc3VjY2Vz c2Z1bA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQg b2YgdGhpcyBmdW5jdGlvbiBhbmQgb3V0cHV0IGFycmF5IHdvdWxkIGJlIHVzZWQuDQo+ICsNCj4g KyAgQHBhcmFtW2luIGNvbnN0XSBCb290T3B0aW9uc0NvdW50ICAgICAgICBUaGUgbnVtYmVyIG9m IGVsZW1lbnRzIGluDQo+IEJvb3RPcHRpb25zLg0KPiArDQo+ICsgIEBwYXJhbVtvdXRdICAgICAg VXBkYXRlZEJvb3RPcHRpb25zICAgICAgQW4gYXJyYXkgb2YgYm9vdCBvcHRpb25zIHRoYXQNCj4g aGF2ZSBiZWVuIGN1c3RvbWl6ZWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgdGhlIHBsYXRmb3JtIG9uIHRvcCBvZiBpbnB1dCBib290IG9wdGlvbnMu IFRoaXMNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJh eSB3b3VsZCBiZSBhbGxvY2F0ZWQgDQo+ICsgYnkNCj4gUkVGUkVTSF9BTExfQk9PVF9PUFRJT05T DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHdvdWxk IGJlIGZyZWVkIGJ5IGNhbGxlciBhZnRlciBjb25zdW1pbmcgaXQuDQo+ICsNCj4gKyAgQHBhcmFt W291dF0gICAgICBVcGRhdGVkQm9vdE9wdGlvbnNDb3VudCBUaGUgbnVtYmVyIG9mIGVsZW1lbnRz IGluDQo+IFVwZGF0ZWRCb290T3B0aW9ucy4NCj4gKw0KPiArDQo+ICsgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm0gcmVmcmVzaCB0byBpbnB1dCBCb290 T3B0aW9ucyBhbmQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCb290Q291bnQgaGF2ZSBiZWVuIGRvbmUuDQo+ICsNCj4gKyAgQHJldHZhbCBFRklfT1VUX09G X1JFU09VUkNFUyAgICAgICAgICAgICBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuDQo+ICsNCj4g KyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgICAgICAgICBJbnB1dCBpcyBub3Qg Y29ycmVjdC4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgICAgICAg ICAgIFBsYXRmb3JtIHNwZWNpZmljIG92ZXJyaWRlcyBhcmUgbm90DQo+IHN1cHBvcnRlZC4NCj4g KyovDQo+ICt0eXBlZGVmDQo+ICtFRklfU1RBVFVTDQo+ICsoRUZJQVBJICpSRUZSRVNIX0FMTF9C T09UX09QVElPTlMpICgNCj4gKyAgSU4gIENPTlNUIEVGSV9CT09UX01BTkFHRVJfTE9BRF9PUFRJ T04gKkJvb3RPcHRpb25zLA0KPiArICBJTiAgQ09OU1QgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICBCb290T3B0aW9uc0NvdW50LA0KPiArICBPVVQgICAgICAgRUZJX0JPT1RfTUFOQUdFUl9M T0FEX09QVElPTiAqKlVwZGF0ZWRCb290T3B0aW9ucywNCj4gKyAgT1VUICAgICAgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgICAgKlVwZGF0ZWRCb290T3B0aW9uc0NvdW50DQo+ICsgICk7DQo+ ICsNCj4gK3N0cnVjdCBfUExBVEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09MIHsNCj4gKyAgVUlO VDY0ICAgICAgICAgICAgICAgICAgIFJldmlzaW9uOw0KPiArICBSRUZSRVNIX0FMTF9CT09UX09Q VElPTlMgUmVmcmVzaEFsbEJvb3RPcHRpb25zOyB9Ow0KPiArDQo+ICtleHRlcm4gRUZJX0dVSUQg Z0Vka2lpUGxhdGZvcm1Cb290TWFuYWdlclByb3RvY29sR3VpZDsNCj4gKw0KPiArI2VuZGlmIC8q IF9fUExBVEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09MX0hfXyAqLw0KPiBkaWZmIC0tZ2l0IGEv TWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtQm9vdC5jDQo+IGIvTWRl TW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtQm9vdC5jDQo+IGluZGV4IDc2 MGQ3NjQuLjhiOWE3NmQgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlC b290TWFuYWdlckxpYi9CbUJvb3QuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZp Qm9vdE1hbmFnZXJMaWIvQm1Cb290LmMNCj4gQEAgLTEsNiArMSw3IEBADQo+ICAvKiogQGZpbGUN Cj4gICAgTGlicmFyeSBmdW5jdGlvbnMgd2hpY2ggcmVsYXRlcyB3aXRoIGJvb3RpbmcuDQo+DQo+ ICtDb3B5cmlnaHQgKGMpIDIwMTksIE5WSURJQSBDT1JQT1JBVElPTi4gQWxsIHJpZ2h0cyByZXNl cnZlZC4NCj4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIA0KPiByZXNlcnZlZC48QlI+DQo+ICAoQykgQ29weXJpZ2h0IDIwMTUtMjAxNiBI ZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4gIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50IEBAIC0yMjU4LDEyICsyMjU5LDE1 IEBAIA0KPiBFZmlCb290TWFuYWdlclJlZnJlc2hBbGxCb290T3B0aW9uICgNCj4gICAgVk9JRA0K PiAgICApDQo+ICB7DQo+IC0gIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgIFN0YXR1czsN Cj4gLSAgRUZJX0JPT1RfTUFOQUdFUl9MT0FEX09QVElPTiAgKk52Qm9vdE9wdGlvbnM7DQo+IC0g IFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgIE52Qm9vdE9wdGlvbkNvdW50Ow0KPiAtICBF RklfQk9PVF9NQU5BR0VSX0xPQURfT1BUSU9OICAqQm9vdE9wdGlvbnM7DQo+IC0gIFVJTlROICAg ICAgICAgICAgICAgICAgICAgICAgIEJvb3RPcHRpb25Db3VudDsNCj4gLSAgVUlOVE4gICAgICAg ICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAg ICAgICBTdGF0dXM7DQo+ICsgIEVGSV9CT09UX01BTkFHRVJfTE9BRF9PUFRJT04gICAqTnZCb290 T3B0aW9uczsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgIE52Qm9vdE9wdGlv bkNvdW50Ow0KPiArICBFRklfQk9PVF9NQU5BR0VSX0xPQURfT1BUSU9OICAgKkJvb3RPcHRpb25z Ow0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vdE9wdGlvbkNvdW50Ow0K PiArICBFRklfQk9PVF9NQU5BR0VSX0xPQURfT1BUSU9OICAgKlVwZGF0ZWRCb290T3B0aW9uczsN Cj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgIFVwZGF0ZWRCb290T3B0aW9uQ291 bnQ7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gKyAgUExB VEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09MICpQbGF0Zm9ybUJvb3RNYW5hZ2VyOw0KPg0KPiAg ICAvLw0KPiAgICAvLyBPcHRpb25hbGx5IHJlZnJlc2ggdGhlIGxlZ2FjeSBib290IG9wdGlvbiBA QCAtMjI3Myw3ICsyMjc3LDYgQEAgDQo+IEVmaUJvb3RNYW5hZ2VyUmVmcmVzaEFsbEJvb3RPcHRp b24gKA0KPiAgICB9DQo+DQo+ICAgIEJvb3RPcHRpb25zICAgPSBCbUVudW1lcmF0ZUJvb3RPcHRp b25zICgmQm9vdE9wdGlvbkNvdW50KTsNCj4gLSAgTnZCb290T3B0aW9ucyA9IEVmaUJvb3RNYW5h Z2VyR2V0TG9hZE9wdGlvbnMgKCZOdkJvb3RPcHRpb25Db3VudCwgDQo+IExvYWRPcHRpb25UeXBl Qm9vdCk7DQo+DQo+ICAgIC8vDQo+ICAgIC8vIE1hcmsgdGhlIGJvb3Qgb3B0aW9uIGFzIGFkZGVk IGJ5IEJEUyBieSBzZXR0aW5nIE9wdGlvbmFsRGF0YSB0byANCj4gYSBzcGVjaWFsIEdVSUQgQEAg LTIyODQsNiArMjI4NywzMCBAQCANCj4gRWZpQm9vdE1hbmFnZXJSZWZyZXNoQWxsQm9vdE9wdGlv biAoDQo+ICAgIH0NCj4NCj4gICAgLy8NCj4gKyAgLy8gTG9jYXRlIFBsYXRmb3JtIEJvb3QgT3B0 aW9ucyBQcm90b2NvbCAgLy8gIFN0YXR1cyA9DQo+ICsgZ0JTLT5Mb2NhdGVQcm90b2NvbCAoJmdF ZGtpaVBsYXRmb3JtQm9vdE1hbmFnZXJQcm90b2NvbEd1aWQsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChWT0lEICoqKSZQbGF0Zm9ybUJvb3RNYW5hZ2VyKTsgIGlmIA0KPiArICghRUZJX0VSUk9SIChT dGF0dXMpKSB7DQo+ICsgICAgLy8NCj4gKyAgICAvLyBJZiBmb3VuZCwgY2FsbCBwbGF0Zm9ybSBz cGVjaWZpYyByZWZyZXNoIHRvIGFsbCBhdXRvIGVudW1lcmF0ZWQgYW5kIE5WDQo+ICsgICAgLy8g Ym9vdCBvcHRpb25zLg0KPiArICAgIC8vDQo+ICsgICAgU3RhdHVzID0gUGxhdGZvcm1Cb290TWFu YWdlci0+UmVmcmVzaEFsbEJvb3RPcHRpb25zICgoQ09OU1QNCj4gRUZJX0JPT1RfTUFOQUdFUl9M T0FEX09QVElPTiAqKUJvb3RPcHRpb25zLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENPTlNUIFVJTlROKUJvb3RPcHRpb25Db3Vu dCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZVcGRhdGVkQm9vdE9wdGlvbnMsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVXBkYXRlZEJvb3RPcHRpb25Db3VudCk7 DQo+ICsgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICAgIEVmaUJvb3RNYW5h Z2VyRnJlZUxvYWRPcHRpb25zIChCb290T3B0aW9ucywgQm9vdE9wdGlvbkNvdW50KTsNCj4gKyAg ICAgIEJvb3RPcHRpb25zID0gVXBkYXRlZEJvb3RPcHRpb25zOw0KPiArICAgICAgQm9vdE9wdGlv bkNvdW50ID0gVXBkYXRlZEJvb3RPcHRpb25Db3VudDsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKw0K PiArICBOdkJvb3RPcHRpb25zID0gRWZpQm9vdE1hbmFnZXJHZXRMb2FkT3B0aW9ucyAoJk52Qm9v dE9wdGlvbkNvdW50LA0KPiBMb2FkT3B0aW9uVHlwZUJvb3QpOw0KPiArDQo+ICsgIC8vDQo+ICAg IC8vIFJlbW92ZSBpbnZhbGlkIEVGSSBib290IG9wdGlvbnMgZnJvbSBOVg0KPiAgICAvLw0KPiAg ICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdkJvb3RPcHRpb25Db3VudDsgSW5kZXgrKykgeyBk aWZmIC0tZ2l0IA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9J bnRlcm5hbEJtLmgNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIv SW50ZXJuYWxCbS5oDQo+IGluZGV4IDAyN2ViMjUuLmFjODY2YWMgMTAwNjQ0DQo+IC0tLSBhL01k ZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9JbnRlcm5hbEJtLmgNCj4gKysr IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0ludGVybmFsQm0uaA0K PiBAQCAtMSw2ICsxLDcgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBCRFMgbGlicmFyeSBkZWZpbml0 aW9uLCBpbmNsdWRlIHRoZSBmaWxlIGFuZCBkYXRhIHN0cnVjdHVyZQ0KPg0KPiArQ29weXJpZ2h0 IChjKSAyMDE5LCBOVklESUEgQ09SUE9SQVRJT04uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICBD b3B5cmlnaHQgKGMpIDIwMDQgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyAN Cj4gcmVzZXJ2ZWQuPEJSPg0KPiAgKEMpIENvcHlyaWdodCAyMDE1IEhld2xldHQgUGFja2FyZCBF bnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQgQEAgLTQxLDYgKzQyLDcgQEANCj4gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgICNpbmNsdWRlIA0KPiA8UHJvdG9jb2wvVmFy aWFibGVMb2NrLmg+ICAjaW5jbHVkZSA8UHJvdG9jb2wvUmFtRGlzay5oPiAgI2luY2x1ZGUgDQo+ IDxQcm90b2NvbC9EZWZlcnJlZEltYWdlTG9hZC5oPg0KPiArI2luY2x1ZGUgPFByb3RvY29sL1Bs YXRmb3JtQm9vdE1hbmFnZXIuaD4NCj4NCj4gICNpbmNsdWRlIDxHdWlkL01lbW9yeVR5cGVJbmZv cm1hdGlvbi5oPiAgI2luY2x1ZGUgPEd1aWQvRmlsZUluZm8uaD4gDQo+IGRpZmYgLS1naXQgDQo+ IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL1VlZmlCb290TWFuYWdl ckxpYi5pbmYNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvVWVm aUJvb3RNYW5hZ2VyTGliLmluZg0KPiBpbmRleCBlZDZiNDY3Li5jZjU5MDg2IDEwMDY0NA0KPiAt LS0gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvVWVmaUJvb3RNYW5h Z2VyTGliLmluZg0KPiArKysNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFn ZXJMaWIvVWVmaUJvb3RNYW5hZ2VyTGliLmluZg0KPiBAQCAtNSw2ICs1LDcgQEANCj4gICMgIG1h bmlwdWxhdGlvbiwgaG90a2V5IHJlZ2lzdHJhdGlvbiwgVUVGSSBib290LCBjb25uZWN0L2Rpc2Nv bm5lY3QsIA0KPiBjb25zb2xlICAjICBtYW5pcHVsYXRpb24sIGRyaXZlciBoZWFsdGggY2hlY2tp bmcgYW5kIGV0Yy4NCj4gICMNCj4gKyMgIENvcHlyaWdodCAoYykgMjAxOSwgTlZJRElBIENPUlBP UkFUSU9OLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAgIyAgQ29weXJpZ2h0IChjKSAyMDA3IC0g MjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+IHJlc2VydmVkLjxCUj4gICMg IChDKSBDb3B5cmlnaHQgMjAxNiBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSANCj4gRGV2ZWxv cG1lbnQgTFA8QlI+ICAjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudCBAQA0KPiAtMTA3LDYgKzEwOCw3IEBADQo+ICAgIGdFZmlGb3JtQnJvd3NlcjJQcm90b2Nv bEd1aWQgICAgICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4gICAgZ0VmaVJh bURpc2tQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICAgICMjIFNPTUVUSU1FU19DT05T VU1FUw0KPiAgICBnRWZpRGVmZXJyZWRJbWFnZUxvYWRQcm90b2NvbEd1aWQgICAgICAgICAgICAg IyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ICsgIGdFZGtpaVBsYXRmb3JtQm9vdE1hbmFnZXJQcm90 b2NvbEd1aWQgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4NCj4gIFtQY2RdDQo+DQo+ IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RSZXNldE9uTWVtb3J5VHlwZUluZm9y bWF0aW9uQw0KPiBoYW5nZSAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiBkaWZmIC0tZ2l0 IGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMgDQo+IGIvTWRlTW9kdWxlUGtnL01kZU1v ZHVsZVBrZy5kZWMgaW5kZXggNDFiOWU3MC4uY2MyMzhlOSAxMDA2NDQNCj4gLS0tIGEvTWRlTW9k dWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBr Zy5kZWMNCj4gQEAgLTMsNiArMyw3IEBADQo+ICAjIEl0IGFsc28gcHJvdmlkZXMgdGhlIGRlZmlu aXRpb25zKGluY2x1ZGluZyBQUElzL1BST1RPQ09Mcy9HVUlEcyBhbmQgDQo+IGxpYnJhcnkgY2xh c3NlcykgICMgYW5kIGxpYnJhcmllcyBpbnN0YW5jZXMsIHdoaWNoIGFyZSB1c2VkIGZvciB0aG9z ZSANCj4gbW9kdWxlcy4NCj4gICMNCj4gKyMgQ29weXJpZ2h0IChjKSAyMDE5LCBOVklESUEgQ09S UE9SQVRJT04uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICAjIENvcHlyaWdodCAoYykgMjAwNyAt IDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiByZXNlcnZlZC48QlI+ICAj IENvcHlyaWdodCAoYykgMjAxNiwgTGluYXJvIEx0ZC4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQu PEJSPiAgIyAoQykgQ29weXJpZ2h0IDIwMTYgLSAyMDE5IEhld2xldHQgUGFja2FyZCBFbnRlcnBy aXNlIA0KPiBEZXZlbG9wbWVudCBMUDxCUj4gQEAgLTYwOSw2ICs2MTAsOSBAQA0KPiAgICAjIyBJ bmNsdWRlL1Byb3RvY29sL1BlQ29mZkltYWdlRW11bGF0b3IuaA0KPiAgICBnRWRraWlQZUNvZmZJ bWFnZUVtdWxhdG9yUHJvdG9jb2xHdWlkID0geyAweDk2ZjQ2MTUzLCAweDk3YTcsIA0KPiAweDQ3 OTMsIHsgMHhhYywgMHhjMSwgMHhmYSwgMHgxOSwgMHhiZiwgMHg3OCwgMHhlYSwgMHg5NyB9IH0N Cj4NCj4gKyAgIyMgSW5jbHVkZS9Qcm90b2NvbC9QbGF0Zm9ybUJvb3RNYW5hZ2VyLmgNCj4gKyAg Z0Vka2lpUGxhdGZvcm1Cb290TWFuYWdlclByb3RvY29sR3VpZCA9IHsgMHhhYTE3YWRkNCwgMHg3 NTZjLCANCj4gKyAweDQ2MGQsDQo+IHsgMHg5NCwgMHhiOCwgMHg0MywgMHg4OCwgMHhkNywgMHhm YiwgMHgzZSwgMHg1OSB9IH0NCj4gKw0KPiAgIw0KPiAgIyBbRXJyb3IuZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkXQ0KPiAgIyAgIDB4ODAwMDAwMDEgfCBJbnZhbGlkIHZhbHVlIHByb3Zp ZGVkLg0KPiAtLQ0KPiAyLjcuNA0KDQoNCg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpUaGlzIGVtYWlsIG1lc3NhZ2UgaXMgZm9yIHRoZSBzb2xlIHVzZSBvZiB0aGUgaW50ZW5kZWQg cmVjaXBpZW50KHMpIGFuZCBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24uICBB bnkgdW5hdXRob3JpemVkIHJldmlldywgdXNlLCBkaXNjbG9zdXJlIG9yIGRpc3RyaWJ1dGlvbiBp cyBwcm9oaWJpdGVkLiAgSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxl YXNlIGNvbnRhY3QgdGhlIHNlbmRlciBieSByZXBseSBlbWFpbCBhbmQgZGVzdHJveSBhbGwgY29w aWVzIG9mIHRoZSBvcmlnaW5hbCBtZXNzYWdlLg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cg0KDQoNCg==