From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.8925.1613575096576687367 for ; Wed, 17 Feb 2021 07:18:17 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: anuj.mittal@intel.com) IronPort-SDR: IwUmS1/R4/yZ6jDI00AtqYqhXhqmZE60OjR9fO4BI1RfCTuPPPz0hvkFlRkf27InS6Mgv0Z17G 55Zb09V5eLJQ== X-IronPort-AV: E=McAfee;i="6000,8403,9897"; a="183290950" X-IronPort-AV: E=Sophos;i="5.81,184,1610438400"; d="scan'208";a="183290950" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Feb 2021 07:18:15 -0800 IronPort-SDR: VUwuAz9d9XqGnp2vGosQeHHcRT32dBAq+tcj0LdfKtQx5ouGL3/syoDP3sdcPzxHeckc4GCci3 XRjeVRJ2GzGA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,184,1610438400"; d="scan'208";a="426523518" Received: from kmsmsx601.gar.corp.intel.com ([172.21.219.141]) by FMSMGA003.fm.intel.com with ESMTP; 17 Feb 2021 07:18:13 -0800 Received: from pgsmsx601.gar.corp.intel.com (10.108.199.136) by kmsmsx601.gar.corp.intel.com (172.21.219.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 17 Feb 2021 23:18:12 +0800 Received: from pgsmsx601.gar.corp.intel.com ([10.108.199.136]) by pgsmsx601.gar.corp.intel.com ([10.108.199.136]) with mapi id 15.01.2106.002; Wed, 17 Feb 2021 23:18:12 +0800 From: "Anuj Mittal" To: "Rahul.Taya@kpit.com" , "Openembedded-core@lists.openembedded.org" , "raj.khem@gmail.com" , "akuster808@gmail.com" CC: "Nisha.Parrakat@kpit.com" , "Harpritkaur.Bhandari@kpit.com" Subject: Re: [OE-core] [meta-openembedded][dunfell][PATCH] nghttp2: Add fix for CVE-2020-11080 Thread-Topic: [OE-core] [meta-openembedded][dunfell][PATCH] nghttp2: Add fix for CVE-2020-11080 Thread-Index: AQHXBD8/nleDx61rAkSZ+s7d7VB8HKpaa7GAgAEbgYCAAGppAA== Date: Wed, 17 Feb 2021 15:18:12 +0000 Message-ID: References: <20210216083900.7631-1-Rahul.Taya@kpit.com> ,<8abf4b2a-c035-eba0-0a19-8136296e4ad4@gmail.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.108.32.68] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <3CFBBCD7BEEE064FA76CDC6332941230@intel.com> Content-Transfer-Encoding: base64 T24gV2VkLCAyMDIxLTAyLTE3IGF0IDA4OjU3ICswMDAwLCBSYWh1bCBUYXlhIHdyb3RlOg0KPiBI aSwNCj4gDQo+IEkgaGF2ZSBiYWNrcG9ydGVkIHRoaXMgcGF0Y2ggZnJvbSBNYXN0ZXIgYnJhbmNo IGFzIGluIG1hc3Rlcih2MS40My4wKQ0KPiBhbmQgR2F0ZXNnYXJ0aCh2MS40MS4wKSB0aGUgY29k ZSBvZiB0aGlzIHBhdGNoIGlzIGFscmVhZHkgcHJlc2VudCBpbg0KPiB0aGUgc291cmNlIGNvZGUg c28gaXQgaXMgb25seSBhcHBsaWNhYmxlIGZvciBEdW5mZWxsKHYxLjQwLjApIGFuZA0KPiBaZXVz KHYxLjM5LjEpIGJyYW5jaC4NCj4gDQo+IFllcyBpIHdpbGwgYWRkIG15IHNpZ25vZmYgaW4gdGhl IHBhdGNoLg0KDQpUaGlzIHNob3VsZCBiZSBzZW50IHRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0 cy5vcGVuZW1iZWRkZWQub3JnLiBBbHNvLA0KeW91IGFyZSBtaXNzaW5nIHRoZSBvdGhlciBwYXRj aC4gWW91IHdpbGwgYWxzbyBuZWVkOg0KDQpodHRwczovL2dpdGh1Yi5jb20vbmdodHRwMi9uZ2h0 dHAyL2NvbW1pdC9mOGRhNzNiZDA0MmY4MTBmMzRkMTlmOWVhZTAyYjQ2ZDg3MGFmMzk0DQoNClBs ZWFzZSBzZWU6DQoNCmh0dHBzOi8vZ2l0aHViLmNvbS9uZ2h0dHAyL25naHR0cDIvc2VjdXJpdHkv YWR2aXNvcmllcy9HSFNBLXE1d3IteGZ3OS1xN3hyDQoNClRoYW5rcywNCg0KQW51ag0KDQo+IA0K PiBDYW4geW91IHBsZWFzZSB0ZWxsIHdoaWNoIGlzIHRoZSBjb3JyZWN0IE1MIGZvciBzZW5kaW5n IHRoaXMgcGF0Y2ggPw0KPiANCj4gVGhhbmtzIGFuZCBSZWdhcmRzLA0KPiBSYWh1bCBUYXlhDQo+ IEZyb206IGFrdXN0ZXI4MDggPGFrdXN0ZXI4MDhAZ21haWwuY29tPg0KPiBTZW50OiBUdWVzZGF5 LCBGZWJydWFyeSAxNiwgMjAyMSA5OjMyIFBNDQo+IFRvOiBSYWh1bCBUYXlhIDxSYWh1bC5UYXlh QGtwaXQuY29tPjsgDQo+IE9wZW5lbWJlZGRlZC1jb3JlQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcg PA0KPiBPcGVuZW1iZWRkZWQtY29yZUBsaXN0cy5vcGVuZW1iZWRkZWQub3JnPjsgcmFqLmtoZW1A Z21haWwuY29tIDwNCj4gcmFqLmtoZW1AZ21haWwuY29tPg0KPiBDYzogTmlzaGEgUGFycmFrYXQg PE5pc2hhLlBhcnJha2F0QGtwaXQuY29tPjsgSGFycHJpdGthdXIgQmhhbmRhcmkgPA0KPiBIYXJw cml0a2F1ci5CaGFuZGFyaUBrcGl0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtPRS1jb3JlXSBbbWV0 YS1vcGVuZW1iZWRkZWRdW2R1bmZlbGxdW1BBVENIXSBuZ2h0dHAyOiBBZGQNCj4gZml4IGZvciBD VkUtMjAyMC0xMTA4MMKgDQo+IA0KPiANCj4gT24gMi8xNi8yMSAxMjozOSBBTSwgUmFodWwgVGF5 YSB3cm90ZToNCj4gPiBBZGRlZCBwYXRjaCBmb3IgQ1ZFLTIwMjAtMTEwODAgdGFrZW4gZnJvbSBi ZWxvdyBsaW5rOg0KPiA+IGh0dHBzOi8vYXBjMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZuZ2h0dHAyJTJGbmdodHRwMiUy RmNvbW1pdCUyRjMzNmE5OGZlYjBkNTZiOWFjNTRlMTI3MzZiMTg3ODVjMjdmNzUwOTAmYW1wO2Rh dGE9MDQlN0MwMSU3Q1JhaHVsLlRheWElNDBrcGl0LmNvbSU3QzgxYzdiMGE1ODljNTRmZDk4MTVk MDhkOGQyOTQ0YjVmJTdDMzUzOTQ1MWViNDZlNGEyNmEyNDJmZjYxNTAyODU1YzclN0MwJTdDMCU3 QzYzNzQ5MDg4MTcwNzI5MDk4NSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdM akF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0Mx MDAwJmFtcDtzZGF0YT1MTzclMkJLWCUyRjZaRDRWU2k4NWZPVlMlMkZ5ZFVBRlNIMWtDVWFtcU95 UWNWMFd3JTNEJmFtcDtyZXNlcnZlZD0wDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogUmFodWwg VGF5YSA8UmFodWwuVGF5YUBrcGl0LmNvbT4NCj4gV3JvbmcgTUwuwqANCj4gDQo+IElzIG1hc3Rl ciBvciBHYXRlc2dhdGggYWZmZWN0ZWQgYnkgdGhpcz8NCj4gDQo+IEFsc28gdGhlIHBhdGNoIGl0 IHNlbGYgaXMgbWlzc2luZyB5b3VyIHNpZ25vZmYuDQo+IA0KPiAtYXJtaW4NCj4gPiAtLS0NCj4g PiDCoCAuLi4vbmdodHRwMi9uZ2h0dHAyL0NWRS0yMDIwLTExMDgwLnBhdGNowqDCoMKgwqDCoCB8 IDMwNg0KPiA+ICsrKysrKysrKysrKysrKysrKw0KPiA+IMKgIC4uLi9yZWNpcGVzLXN1cHBvcnQv bmdodHRwMi9uZ2h0dHAyXzEuNDAuMC5iYiB8wqDCoCAxICsNCj4gPiDCoCAyIGZpbGVzIGNoYW5n ZWQsIDMwNyBpbnNlcnRpb25zKCspDQo+ID4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IG1ldGEtbmV0 d29ya2luZy9yZWNpcGVzLQ0KPiA+IHN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyL0NWRS0yMDIwLTEx MDgwLnBhdGNoDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL21ldGEtbmV0d29ya2luZy9yZWNpcGVz LXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyL0NWRS0NCj4gPiAyMDIwLTExMDgwLnBhdGNoIGIvbWV0 YS1uZXR3b3JraW5nL3JlY2lwZXMtDQo+ID4gc3VwcG9ydC9uZ2h0dHAyL25naHR0cDIvQ1ZFLTIw MjAtMTEwODAucGF0Y2gNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAw MDAwMC4uYTM3NmU1MzcyDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL21ldGEtbmV0d29y a2luZy9yZWNpcGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyL0NWRS0yMDIwLQ0KPiA+IDExMDgw LnBhdGNoDQo+ID4gQEAgLTAsMCArMSwzMDYgQEANCj4gPiArRnJvbSAzMzZhOThmZWIwZDU2Yjlh YzU0ZTEyNzM2YjE4Nzg1YzI3Zjc1MDkwIE1vbiBTZXAgMTcgMDA6MDA6MDANCj4gPiAyMDAxDQo+ ID4gK0Zyb206IEphbWVzIE0gU25lbGwgPGphc25lbGxAZ21haWwuY29tPg0KPiA+ICtEYXRlOiBG cmksIDE3IEFwciAyMDIwIDE2OjUzOjUxIC0wNzAwDQo+ID4gK1N1YmplY3Q6IFtQQVRDSF0gSW1w bGVtZW50IG1heCBzZXR0aW5ncyBvcHRpb24NCj4gPiArDQo+ID4gK0NWRTogQ1ZFLTIwMjAtMTEw ODANCj4gPiArVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbDQo+ID4gaHR0cHM6Ly9hcGMwMS5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0aHVi LmNvbSUyRm5naHR0cDIlMkZuZ2h0dHAyJTJGY29tbWl0JTJGMzM2YTk4ZmViMGQ1NmI5YWM1NGUx MjczNmIxODc4NWMyN2Y3NTA5MCZhbXA7ZGF0YT0wNCU3QzAxJTdDUmFodWwuVGF5YSU0MGtwaXQu Y29tJTdDODFjN2IwYTU4OWM1NGZkOTgxNWQwOGQ4ZDI5NDRiNWYlN0MzNTM5NDUxZWI0NmU0YTI2 YTI0MmZmNjE1MDI4NTVjNyU3QzAlN0MwJTdDNjM3NDkwODgxNzA3MjkwOTg1JTdDVW5rbm93biU3 Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2 SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPUxPNyUyQktYJTJGNlpENFZT aTg1Zk9WUyUyRnlkVUFGU0gxa0NVYW1xT3lRY1YwV3clM0QmYW1wO3Jlc2VydmVkPTANCj4gPiBd DQo+ID4gK0NvbW1lbnQ6IE5vIGh1bmtzIHJlZnJlc2hlZA0KPiA+ICstLS0NCj4gPiArIGRvYy9D TWFrZUxpc3RzLnR4dMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMSArDQo+ID4gKyBkb2Mv TWFrZWZpbGUuYW3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKw0KPiA+ICsg bGliL2luY2x1ZGVzL25naHR0cDIvbmdodHRwMi5oIHwgMjMgKysrKysrKysrKysrKw0KPiA+ICsg bGliL25naHR0cDJfaGVscGVyLmPCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArKw0KPiA+ICsg bGliL25naHR0cDJfb3B0aW9uLmPCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNSArKysNCj4gPiAr IGxpYi9uZ2h0dHAyX29wdGlvbi5owqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDUgKysrDQo+ID4g KyBsaWIvbmdodHRwMl9zZXNzaW9uLmPCoMKgwqDCoMKgwqDCoMKgwqAgfCAyMSArKysrKysrKysr KysNCj4gPiArIGxpYi9uZ2h0dHAyX3Nlc3Npb24uaMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiAr Kw0KPiA+ICsgdGVzdHMvbWFpbi5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCAyICsrDQo+ID4gKyB0ZXN0cy9uZ2h0dHAyX3Nlc3Npb25fdGVzdC5jwqDCoCB8IDYxDQo+ ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICsgdGVzdHMvbmdodHRw Ml9zZXNzaW9uX3Rlc3QuaMKgwqAgfMKgIDEgKw0KPiA+ICsgMTEgZmlsZXMgY2hhbmdlZCwgMTI0 IGluc2VydGlvbnMoKykNCj4gPiArDQo+ID4gK2RpZmYgLS1naXQgYS9kb2MvQ01ha2VMaXN0cy50 eHQgYi9kb2MvQ01ha2VMaXN0cy50eHQNCj4gPiAraW5kZXggMzRjMDI3OTI5Li5mM2FlYzg0ZGEg MTAwNjQ0DQo+ID4gKy0tLSBhL2RvYy9DTWFrZUxpc3RzLnR4dA0KPiA+ICsrKysgYi9kb2MvQ01h a2VMaXN0cy50eHQNCj4gPiArQEAgLTQyLDYgKzQyLDcgQEAgc2V0KEFQSURPQ1MNCj4gPiArwqDC oCBuZ2h0dHAyX29wdGlvbl9zZXRfbm9fcmVjdl9jbGllbnRfbWFnaWMucnN0DQo+ID4gK8KgwqAg bmdodHRwMl9vcHRpb25fc2V0X3BlZXJfbWF4X2NvbmN1cnJlbnRfc3RyZWFtcy5yc3QNCj4gPiAr wqDCoCBuZ2h0dHAyX29wdGlvbl9zZXRfdXNlcl9yZWN2X2V4dGVuc2lvbl90eXBlLnJzdA0KPiA+ ICsrwqAgbmdodHRwMl9vcHRpb25fc2V0X21heF9zZXR0aW5ncy5yc3QNCj4gPiArwqDCoCBuZ2h0 dHAyX3BhY2tfc2V0dGluZ3NfcGF5bG9hZC5yc3QNCj4gPiArwqDCoCBuZ2h0dHAyX3ByaW9yaXR5 X3NwZWNfY2hlY2tfZGVmYXVsdC5yc3QNCj4gPiArwqDCoCBuZ2h0dHAyX3ByaW9yaXR5X3NwZWNf ZGVmYXVsdF9pbml0LnJzdA0KPiA+ICtkaWZmIC0tZ2l0IGEvZG9jL01ha2VmaWxlLmFtIGIvZG9j L01ha2VmaWxlLmFtDQo+ID4gK2luZGV4IDRkNzNjZWY1MC4uZjA3M2JmYTRjIDEwMDY0NA0KPiA+ ICstLS0gYS9kb2MvTWFrZWZpbGUuYW0NCj4gPiArKysrIGIvZG9jL01ha2VmaWxlLmFtDQo+ID4g K0BAIC02OSw2ICs2OSw3IEBAIEFQSURPQ1M9IFwNCj4gPiArwqDCoMKgwqDCoMKgIG5naHR0cDJf b3B0aW9uX3NldF9wZWVyX21heF9jb25jdXJyZW50X3N0cmVhbXMucnN0IFwNCj4gPiArwqDCoMKg wqDCoMKgIG5naHR0cDJfb3B0aW9uX3NldF91c2VyX3JlY3ZfZXh0ZW5zaW9uX3R5cGUucnN0IFwN Cj4gPiArwqDCoMKgwqDCoMKgIG5naHR0cDJfb3B0aW9uX3NldF9tYXhfb3V0Ym91bmRfYWNrLnJz dCBcDQo+ID4gKyvCoMKgwqDCoMKgIG5naHR0cDJfb3B0aW9uX3NldF9tYXhfc2V0dGluZ3MucnN0 IFwNCj4gPiArwqDCoMKgwqDCoMKgIG5naHR0cDJfcGFja19zZXR0aW5nc19wYXlsb2FkLnJzdCBc DQo+ID4gK8KgwqDCoMKgwqDCoCBuZ2h0dHAyX3ByaW9yaXR5X3NwZWNfY2hlY2tfZGVmYXVsdC5y c3QgXA0KPiA+ICvCoMKgwqDCoMKgwqAgbmdodHRwMl9wcmlvcml0eV9zcGVjX2RlZmF1bHRfaW5p dC5yc3QgXA0KPiA+ICtkaWZmIC0tZ2l0IGEvbGliL2luY2x1ZGVzL25naHR0cDIvbmdodHRwMi5o DQo+ID4gYi9saWIvaW5jbHVkZXMvbmdodHRwMi9uZ2h0dHAyLmgNCj4gPiAraW5kZXggZTNhZWI5 ZmVkLi45YmU2ZWVhNWMgMTAwNjQ0DQo+ID4gKy0tLSBhL2xpYi9pbmNsdWRlcy9uZ2h0dHAyL25n aHR0cDIuaA0KPiA+ICsrKysgYi9saWIvaW5jbHVkZXMvbmdodHRwMi9uZ2h0dHAyLmgNCj4gPiAr QEAgLTIyOCw2ICsyMjgsMTMgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICvCoCAqLw0KPiA+ICsg I2RlZmluZSBOR0hUVFAyX0NMSUVOVF9NQUdJQ19MRU4gMjQNCj4gPiArDQo+ID4gKysvKioNCj4g PiArKyAqIEBtYWNybw0KPiA+ICsrICoNCj4gPiArKyAqIFRoZSBkZWZhdWx0IG1heCBudW1iZXIg b2Ygc2V0dGluZ3MgcGVyIFNFVFRJTkdTIGZyYW1lDQo+ID4gKysgKi8NCj4gPiArKyNkZWZpbmUg TkdIVFRQMl9ERUZBVUxUX01BWF9TRVRUSU5HUyAzMg0KPiA+ICsrDQo+ID4gKyAvKioNCj4gPiAr wqAgKiBAZW51bQ0KPiA+ICvCoCAqDQo+ID4gK0BAIC0zOTgsNiArNDA1LDExIEBAIHR5cGVkZWYg ZW51bSB7DQo+ID4gK8KgwqDCoCAqIHJlY2VpdmVzIGFuIG90aGVyIHR5cGUgb2YgZnJhbWUuDQo+ ID4gK8KgwqDCoCAqLw0KPiA+ICvCoMKgIE5HSFRUUDJfRVJSX1NFVFRJTkdTX0VYUEVDVEVEID0g LTUzNiwNCj4gPiArK8KgIC8qKg0KPiA+ICsrwqDCoCAqIFdoZW4gYSBsb2NhbCBlbmRwb2ludCBy ZWNlaXZlcyB0b28gbWFueSBzZXR0aW5ncyBlbnRyaWVzDQo+ID4gKyvCoMKgICogaW4gYSBzaW5n bGUgU0VUVElOR1MgZnJhbWUuDQo+ID4gKyvCoMKgICovDQo+ID4gKyvCoCBOR0hUVFAyX0VSUl9U T09fTUFOWV9TRVRUSU5HUyA9IC01MzcsDQo+ID4gK8KgwqAgLyoqDQo+ID4gK8KgwqDCoCAqIFRo ZSBlcnJvcnMgPCA6ZW51bTpgTkdIVFRQMl9FUlJfRkFUQUxgIG1lYW4gdGhhdCB0aGUgbGlicmFy eQ0KPiA+IGlzDQo+ID4gK8KgwqDCoCAqIHVuZGVyIHVuZXhwZWN0ZWQgY29uZGl0aW9uIGFuZCBw cm9jZXNzaW5nIHdhcyB0ZXJtaW5hdGVkDQo+ID4gKGUuZy4sDQo+ID4gK0BAIC0yNjU5LDYgKzI2 NzEsMTcgQEAgTkdIVFRQMl9FWFRFUk4gdm9pZA0KPiA+IG5naHR0cDJfb3B0aW9uX3NldF9ub19j bG9zZWRfc3RyZWFtcyhuZ2h0dHAyX29wdGlvbiAqb3B0aW9uLA0KPiA+ICsgTkdIVFRQMl9FWFRF Uk4gdm9pZA0KPiA+IG5naHR0cDJfb3B0aW9uX3NldF9tYXhfb3V0Ym91bmRfYWNrKG5naHR0cDJf b3B0aW9uICpvcHRpb24sDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZV90DQo+ID4gdmFsKTsNCj4gPiArDQo+ID4gKysvKioN Cj4gPiArKyAqIEBmdW5jdGlvbg0KPiA+ICsrICoNCj4gPiArKyAqIFRoaXMgZnVuY3Rpb24gc2V0 cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgU0VUVElOR1MgZW50cmllcyBwZXINCj4gPiArKyAqIFNF VFRJTkdTIGZyYW1lIHRoYXQgd2lsbCBiZSBhY2NlcHRlZC4gSWYgbW9yZSB0aGFuIHRob3NlIGVu dHJpZXMNCj4gPiArKyAqIGFyZSByZWNlaXZlZCwgdGhlIHBlZXIgaXMgY29uc2lkZXJlZCB0byBi ZSBtaXNiZWhhdmluZyBhbmQNCj4gPiBzZXNzaW9uDQo+ID4gKysgKiB3aWxsIGJlIGNsb3NlZC4g VGhlIGRlZmF1bHQgdmFsdWUgaXMgMzIuDQo+ID4gKysgKi8NCj4gPiArK05HSFRUUDJfRVhURVJO IHZvaWQgbmdodHRwMl9vcHRpb25fc2V0X21heF9zZXR0aW5ncyhuZ2h0dHAyX29wdGlvbg0KPiA+ ICpvcHRpb24sDQo+ID4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc2l6ZV90IHZhbCk7DQo+ID4gKysNCj4gPiArIC8qKg0KPiA+ICvCoCAqIEBmdW5jdGlv bg0KPiA+ICvCoCAqDQo+ID4gK2RpZmYgLS1naXQgYS9saWIvbmdodHRwMl9oZWxwZXIuYyBiL2xp Yi9uZ2h0dHAyX2hlbHBlci5jDQo+ID4gK2luZGV4IDkxMTM2YTYxOS4uMGJkNTQxNDcyIDEwMDY0 NA0KPiA+ICstLS0gYS9saWIvbmdodHRwMl9oZWxwZXIuYw0KPiA+ICsrKysgYi9saWIvbmdodHRw Ml9oZWxwZXIuYw0KPiA+ICtAQCAtMzM0LDYgKzMzNCw4IEBAIGNvbnN0IGNoYXIgKm5naHR0cDJf c3RyZXJyb3IoaW50IGVycm9yX2NvZGUpIHsNCj4gPiArwqDCoCBjYXNlIE5HSFRUUDJfRVJSX0ZM T09ERUQ6DQo+ID4gK8KgwqDCoMKgIHJldHVybiAiRmxvb2Rpbmcgd2FzIGRldGVjdGVkIGluIHRo aXMgSFRUUC8yIHNlc3Npb24sIGFuZCBpdA0KPiA+IG11c3QgYmUgIg0KPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICJjbG9zZWQiOw0KPiA+ICsrwqAgY2FzZSBOR0hUVFAyX0VSUl9UT09fTUFO WV9TRVRUSU5HUzoNCj4gPiArK8KgwqDCoCByZXR1cm4gIlNFVFRJTkdTIGZyYW1lIGNvbnRhaW5l ZCBtb3JlIHRoYW4gdGhlIG1heGltdW0gYWxsb3dlZA0KPiA+IGVudHJpZXMiOw0KPiA+ICvCoMKg IGRlZmF1bHQ6DQo+ID4gK8KgwqDCoMKgIHJldHVybiAiVW5rbm93biBlcnJvciBjb2RlIjsNCj4g PiArwqDCoCB9DQo+ID4gK2RpZmYgLS1naXQgYS9saWIvbmdodHRwMl9vcHRpb24uYyBiL2xpYi9u Z2h0dHAyX29wdGlvbi5jDQo+ID4gK2luZGV4IGU1M2YyMmQzNi4uMzQzNDhlNjYwIDEwMDY0NA0K PiA+ICstLS0gYS9saWIvbmdodHRwMl9vcHRpb24uYw0KPiA+ICsrKysgYi9saWIvbmdodHRwMl9v cHRpb24uYw0KPiA+ICtAQCAtMTIxLDMgKzEyMSw4IEBAIHZvaWQNCj4gPiBuZ2h0dHAyX29wdGlv bl9zZXRfbWF4X291dGJvdW5kX2FjayhuZ2h0dHAyX29wdGlvbiAqb3B0aW9uLCBzaXplX3QNCj4g PiB2YWwpIHsNCj4gPiArwqDCoCBvcHRpb24tPm9wdF9zZXRfbWFzayB8PSBOR0hUVFAyX09QVF9N QVhfT1VUQk9VTkRfQUNLOw0KPiA+ICvCoMKgIG9wdGlvbi0+bWF4X291dGJvdW5kX2FjayA9IHZh bDsNCj4gPiArIH0NCj4gPiArKw0KPiA+ICsrdm9pZCBuZ2h0dHAyX29wdGlvbl9zZXRfbWF4X3Nl dHRpbmdzKG5naHR0cDJfb3B0aW9uICpvcHRpb24sIHNpemVfdA0KPiA+IHZhbCkgew0KPiA+ICsr wqAgb3B0aW9uLT5vcHRfc2V0X21hc2sgfD0gTkdIVFRQMl9PUFRfTUFYX1NFVFRJTkdTOw0KPiA+ ICsrwqAgb3B0aW9uLT5tYXhfc2V0dGluZ3MgPSB2YWw7DQo+ID4gKyt9DQo+ID4gK2RpZmYgLS1n aXQgYS9saWIvbmdodHRwMl9vcHRpb24uaCBiL2xpYi9uZ2h0dHAyX29wdGlvbi5oDQo+ID4gK2lu ZGV4IDFmNzQwYWFhNi4uOTM5NzI5ZmRjIDEwMDY0NA0KPiA+ICstLS0gYS9saWIvbmdodHRwMl9v cHRpb24uaA0KPiA+ICsrKysgYi9saWIvbmdodHRwMl9vcHRpb24uaA0KPiA+ICtAQCAtNjcsNiAr NjcsNyBAQCB0eXBlZGVmIGVudW0gew0KPiA+ICvCoMKgIE5HSFRUUDJfT1BUX01BWF9ERUZMQVRF X0RZTkFNSUNfVEFCTEVfU0laRSA9IDEgPDwgOSwNCj4gPiArwqDCoCBOR0hUVFAyX09QVF9OT19D TE9TRURfU1RSRUFNUyA9IDEgPDwgMTAsDQo+ID4gK8KgwqAgTkdIVFRQMl9PUFRfTUFYX09VVEJP VU5EX0FDSyA9IDEgPDwgMTEsDQo+ID4gKyvCoCBOR0hUVFAyX09QVF9NQVhfU0VUVElOR1MgPSAx IDw8IDEyLA0KPiA+ICsgfSBuZ2h0dHAyX29wdGlvbl9mbGFnOw0KPiA+ICsNCj4gPiArIC8qKg0K PiA+ICtAQCAtODUsNiArODYsMTAgQEAgc3RydWN0IG5naHR0cDJfb3B0aW9uIHsNCj4gPiArwqDC oMKgICogTkdIVFRQMl9PUFRfTUFYX09VVEJPVU5EX0FDSw0KPiA+ICvCoMKgwqAgKi8NCj4gPiAr wqDCoCBzaXplX3QgbWF4X291dGJvdW5kX2FjazsNCj4gPiArK8KgIC8qKg0KPiA+ICsrwqDCoCAq IE5HSFRUUDJfT1BUX01BWF9TRVRUSU5HUw0KPiA+ICsrwqDCoCAqLw0KPiA+ICsrwqAgc2l6ZV90 IG1heF9zZXR0aW5nczsNCj4gPiArwqDCoCAvKioNCj4gPiArwqDCoMKgICogQml0d2lzZSBPUiBv ZiBuZ2h0dHAyX29wdGlvbl9mbGFnIHRvIGRldGVybWluZSB0aGF0IHdoaWNoDQo+ID4gZmllbGRz DQo+ID4gK8KgwqDCoCAqIGFyZSBzcGVjaWZpZWQuDQo+ID4gK2RpZmYgLS1naXQgYS9saWIvbmdo dHRwMl9zZXNzaW9uLmMgYi9saWIvbmdodHRwMl9zZXNzaW9uLmMNCj4gPiAraW5kZXggNTYzY2Nk N2RlLi40MTVlMzQ3NzYgMTAwNjQ0DQo+ID4gKy0tLSBhL2xpYi9uZ2h0dHAyX3Nlc3Npb24uYw0K PiA+ICsrKysgYi9saWIvbmdodHRwMl9zZXNzaW9uLmMNCj4gPiArQEAgLTQ1OCw2ICs0NTgsNyBA QCBzdGF0aWMgaW50IHNlc3Npb25fbmV3KG5naHR0cDJfc2Vzc2lvbg0KPiA+ICoqc2Vzc2lvbl9w dHIsDQo+ID4gKw0KPiA+ICvCoMKgICgqc2Vzc2lvbl9wdHIpLT5tYXhfc2VuZF9oZWFkZXJfYmxv Y2tfbGVuZ3RoID0NCj4gPiBOR0hUVFAyX01BWF9IRUFERVJTTEVOOw0KPiA+ICvCoMKgICgqc2Vz c2lvbl9wdHIpLT5tYXhfb3V0Ym91bmRfYWNrID0NCj4gPiBOR0hUVFAyX0RFRkFVTFRfTUFYX09C UV9GTE9PRF9JVEVNOw0KPiA+ICsrwqAgKCpzZXNzaW9uX3B0ciktPm1heF9zZXR0aW5ncyA9IE5H SFRUUDJfREVGQVVMVF9NQVhfU0VUVElOR1M7DQo+ID4gKw0KPiA+ICvCoMKgIGlmIChvcHRpb24p IHsNCj4gPiArwqDCoMKgwqAgaWYgKChvcHRpb24tPm9wdF9zZXRfbWFzayAmIE5HSFRUUDJfT1BU X05PX0FVVE9fV0lORE9XX1VQREFURSkNCj4gPiAmJg0KPiA+ICtAQCAtNTIxLDYgKzUyMiwxMSBA QCBzdGF0aWMgaW50IHNlc3Npb25fbmV3KG5naHR0cDJfc2Vzc2lvbg0KPiA+ICoqc2Vzc2lvbl9w dHIsDQo+ID4gK8KgwqDCoMKgIGlmIChvcHRpb24tPm9wdF9zZXRfbWFzayAmIE5HSFRUUDJfT1BU X01BWF9PVVRCT1VORF9BQ0spIHsNCj4gPiArwqDCoMKgwqDCoMKgICgqc2Vzc2lvbl9wdHIpLT5t YXhfb3V0Ym91bmRfYWNrID0gb3B0aW9uLT5tYXhfb3V0Ym91bmRfYWNrOw0KPiA+ICvCoMKgwqDC oCB9DQo+ID4gKysNCj4gPiArK8KgwqDCoCBpZiAoKG9wdGlvbi0+b3B0X3NldF9tYXNrICYgTkdI VFRQMl9PUFRfTUFYX1NFVFRJTkdTKSAmJg0KPiA+ICsrwqDCoMKgwqDCoMKgwqAgb3B0aW9uLT5t YXhfc2V0dGluZ3MpIHsNCj4gPiArK8KgwqDCoMKgwqAgKCpzZXNzaW9uX3B0ciktPm1heF9zZXR0 aW5ncyA9IG9wdGlvbi0+bWF4X3NldHRpbmdzOw0KPiA+ICsrwqDCoMKgIH0NCj4gPiArwqDCoCB9 DQo+ID4gKw0KPiA+ICvCoMKgIHJ2ID0gbmdodHRwMl9oZF9kZWZsYXRlX2luaXQyKCYoKnNlc3Np b25fcHRyKS0+aGRfZGVmbGF0ZXIsDQo+ID4gK0BAIC01NjU3LDYgKzU2NjMsMTYgQEAgc3NpemVf dA0KPiA+IG5naHR0cDJfc2Vzc2lvbl9tZW1fcmVjdihuZ2h0dHAyX3Nlc3Npb24gKnNlc3Npb24s IGNvbnN0IHVpbnQ4X3QgKmluLA0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZnJhbWUtPm1h eF9uaXYgPQ0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmcmFtZS0+ZnJhbWUu aGQubGVuZ3RoIC8NCj4gPiBOR0hUVFAyX0ZSQU1FX1NFVFRJTkdTX0VOVFJZX0xFTkdUSCArIDE7 DQo+ID4gKw0KPiA+ICsrwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChpZnJhbWUtPm1heF9uaXYgLSAx ID4gc2Vzc2lvbi0+bWF4X3NldHRpbmdzKSB7DQo+ID4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJ2ID0gbmdodHRwMl9zZXNzaW9uX3Rlcm1pbmF0ZV9zZXNzaW9uX3dpdGhfcmVhc29uKA0KPiA+ ICsrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlc3Npb24sIE5HSFRUUDJfRU5IQU5D RV9ZT1VSX0NBTE0sDQo+ID4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlNFVFRJ TkdTOiB0b28gbWFueSBzZXR0aW5nIGVudHJpZXMiKTsNCj4gPiArK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgKG5naHR0cDJfaXNfZmF0YWwocnYpKSB7DQo+ID4gKyvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCByZXR1cm4gcnY7DQo+ID4gKyvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4g PiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChzc2l6ZV90KWlubGVuOw0KPiA+ICsr wqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4gPiArKw0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBp ZnJhbWUtPml2ID0gbmdodHRwMl9tZW1fbWFsbG9jKG1lbSwNCj4gPiBzaXplb2YobmdodHRwMl9z ZXR0aW5nc19lbnRyeSkgKg0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaWZyYW1lLQ0KPiA+ID5tYXhfbml2KTsNCj4gPiArDQo+ID4gK0BAIC03NDI1 LDYgKzc0NDEsMTEgQEAgc3RhdGljIGludA0KPiA+IG5naHR0cDJfc2Vzc2lvbl91cGdyYWRlX2lu dGVybmFsKG5naHR0cDJfc2Vzc2lvbiAqc2Vzc2lvbiwNCj4gPiArwqDCoCBpZiAoc2V0dGluZ3Nf cGF5bG9hZGxlbiAlIE5HSFRUUDJfRlJBTUVfU0VUVElOR1NfRU5UUllfTEVOR1RIKSB7DQo+ID4g K8KgwqDCoMKgIHJldHVybiBOR0hUVFAyX0VSUl9JTlZBTElEX0FSR1VNRU5UOw0KPiA+ICvCoMKg IH0NCj4gPiArK8KgIC8qIFNFVFRJTkdTIGZyYW1lIGNvbnRhaW5zIHRvbyBtYW55IHNldHRpbmdz ICovDQo+ID4gKyvCoCBpZiAoc2V0dGluZ3NfcGF5bG9hZGxlbiAvIE5HSFRUUDJfRlJBTUVfU0VU VElOR1NfRU5UUllfTEVOR1RIDQo+ID4gKyvCoMKgwqDCoMKgwqDCoCA+IHNlc3Npb24tPm1heF9z ZXR0aW5ncykgew0KPiA+ICsrwqDCoMKgIHJldHVybiBOR0hUVFAyX0VSUl9UT09fTUFOWV9TRVRU SU5HUzsNCj4gPiArK8KgIH0NCj4gPiArwqDCoCBydiA9IG5naHR0cDJfZnJhbWVfdW5wYWNrX3Nl dHRpbmdzX3BheWxvYWQyKCZpdiwgJm5pdiwNCj4gPiBzZXR0aW5nc19wYXlsb2FkLA0KPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZXR0aW5nc19wYXlsb2FkbGVuLA0K PiA+IG1lbSk7DQo+ID4gK8KgwqAgaWYgKHJ2ICE9IDApIHsNCj4gPiArZGlmZiAtLWdpdCBhL2xp Yi9uZ2h0dHAyX3Nlc3Npb24uaCBiL2xpYi9uZ2h0dHAyX3Nlc3Npb24uaA0KPiA+ICtpbmRleCBk MjA4MjczMTUuLjA3YmZiYjZjOSAxMDA2NDQNCj4gPiArLS0tIGEvbGliL25naHR0cDJfc2Vzc2lv bi5oDQo+ID4gKysrKyBiL2xpYi9uZ2h0dHAyX3Nlc3Npb24uaA0KPiA+ICtAQCAtMjY3LDYgKzI2 Nyw4IEBAIHN0cnVjdCBuZ2h0dHAyX3Nlc3Npb24gew0KPiA+ICvCoMKgIC8qIFRoZSBtYXhpbXVt IGxlbmd0aCBvZiBoZWFkZXIgYmxvY2sgdG8gc2VuZC7CoCBDYWxjdWxhdGVkIGJ5IHRoZQ0KPiA+ ICvCoMKgwqDCoMKgIHNhbWUgd2F5IGFzIG5naHR0cDJfaGRfZGVmbGF0ZV9ib3VuZCgpIGRvZXMu ICovDQo+ID4gK8KgwqAgc2l6ZV90IG1heF9zZW5kX2hlYWRlcl9ibG9ja19sZW5ndGg7DQo+ID4g KyvCoCAvKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2V0dGluZ3MgYWNjZXB0ZWQgcGVyIFNFVFRJ TkdTIGZyYW1lLiAqLw0KPiA+ICsrwqAgc2l6ZV90IG1heF9zZXR0aW5nczsNCj4gPiArwqDCoCAv KiBOZXh0IFN0cmVhbSBJRC4gTWFkZSB1bnNpZ25lZCBpbnQgdG8gZGV0ZWN0ID49ICgxIDw8IDMx KS4gKi8NCj4gPiArwqDCoCB1aW50MzJfdCBuZXh0X3N0cmVhbV9pZDsNCj4gPiArwqDCoCAvKiBU aGUgbGFzdCBzdHJlYW0gSUQgdGhpcyBzZXNzaW9uIGluaXRpYXRlZC7CoCBGb3IgY2xpZW50DQo+ ID4gc2Vzc2lvbiwNCj4gPiArZGlmZiAtLWdpdCBhL3Rlc3RzL21haW4uYyBiL3Rlc3RzL21haW4u Yw0KPiA+ICtpbmRleCA0MWUwYjAzZWIuLjY3ZWI0YTFjMiAxMDA2NDQNCj4gPiArLS0tIGEvdGVz dHMvbWFpbi5jDQo+ID4gKysrKyBiL3Rlc3RzL21haW4uYw0KPiA+ICtAQCAtMzE3LDYgKzMxNyw4 IEBAIGludCBtYWluKCkgew0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB0ZXN0X25naHR0cDJfc2Vzc2lvbl9zZXRfbG9jYWxfd2luZG93X3NpemUpIHx8DQo+ID4g K8KgwqDCoMKgwqDCoCAhQ1VfYWRkX3Rlc3QocFN1aXRlLCAic2Vzc2lvbl9jYW5jZWxfZnJvbV9i ZWZvcmVfZnJhbWVfc2VuZCIsDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgDQo+ID4gdGVzdF9uZ2h0dHAyX3Nlc3Npb25fY2FuY2VsX2Zyb21fYmVmb3JlX2ZyYW1l X3NlbmQpIHx8DQo+ID4gKyvCoMKgwqDCoMKgICFDVV9hZGRfdGVzdChwU3VpdGUsICJzZXNzaW9u X3Rvb19tYW55X3NldHRpbmdzIiwNCj4gPiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB0ZXN0X25naHR0cDJfc2Vzc2lvbl90b29fbWFueV9zZXR0aW5ncykgfHwNCj4gPiAr wqDCoMKgwqDCoMKgICFDVV9hZGRfdGVzdChwU3VpdGUsICJzZXNzaW9uX3JlbW92ZWRfY2xvc2Vk X3N0cmVhbSIsDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRl c3RfbmdodHRwMl9zZXNzaW9uX3JlbW92ZWRfY2xvc2VkX3N0cmVhbSkgfHwNCj4gPiArwqDCoMKg wqDCoMKgICFDVV9hZGRfdGVzdChwU3VpdGUsICJzZXNzaW9uX3BhdXNlX2RhdGEiLA0KPiA+ICtk aWZmIC0tZ2l0IGEvdGVzdHMvbmdodHRwMl9zZXNzaW9uX3Rlc3QuYw0KPiA+IGIvdGVzdHMvbmdo dHRwMl9zZXNzaW9uX3Rlc3QuYw0KPiA+ICtpbmRleCA2ZWI4ZTI0NGQuLjMzZWUzYWQ4NCAxMDA2 NDQNCj4gPiArLS0tIGEvdGVzdHMvbmdodHRwMl9zZXNzaW9uX3Rlc3QuYw0KPiA+ICsrKysgYi90 ZXN0cy9uZ2h0dHAyX3Nlc3Npb25fdGVzdC5jDQo+ID4gK0BAIC0xMDYxNCw2ICsxMDYxNCw2NyBA QCB2b2lkDQo+ID4gdGVzdF9uZ2h0dHAyX3Nlc3Npb25fY2FuY2VsX2Zyb21fYmVmb3JlX2ZyYW1l X3NlbmQodm9pZCkgew0KPiA+ICvCoMKgIG5naHR0cDJfc2Vzc2lvbl9kZWwoc2Vzc2lvbik7DQo+ ID4gKyB9DQo+ID4gKw0KPiA+ICsrdm9pZCB0ZXN0X25naHR0cDJfc2Vzc2lvbl90b29fbWFueV9z ZXR0aW5ncyh2b2lkKSB7DQo+ID4gKyvCoCBuZ2h0dHAyX3Nlc3Npb24gKnNlc3Npb247DQo+ID4g KyvCoCBuZ2h0dHAyX29wdGlvbiAqb3B0aW9uOw0KPiA+ICsrwqAgbmdodHRwMl9zZXNzaW9uX2Nh bGxiYWNrcyBjYWxsYmFja3M7DQo+ID4gKyvCoCBuZ2h0dHAyX2ZyYW1lIGZyYW1lOw0KPiA+ICsr wqAgbmdodHRwMl9idWZzIGJ1ZnM7DQo+ID4gKyvCoCBuZ2h0dHAyX2J1ZiAqYnVmOw0KPiA+ICsr wqAgc3NpemVfdCBydjsNCj4gPiArK8KgIG15X3VzZXJfZGF0YSB1ZDsNCj4gPiArK8KgIG5naHR0 cDJfc2V0dGluZ3NfZW50cnkgaXZbM107DQo+ID4gKyvCoCBuZ2h0dHAyX21lbSAqbWVtOw0KPiA+ ICsrwqAgbmdodHRwMl9vdXRib3VuZF9pdGVtICppdGVtOw0KPiA+ICsrDQo+ID4gKyvCoCBtZW0g PSBuZ2h0dHAyX21lbV9kZWZhdWx0KCk7DQo+ID4gKyvCoCBmcmFtZV9wYWNrX2J1ZnNfaW5pdCgm YnVmcyk7DQo+ID4gKysNCj4gPiArK8KgIG1lbXNldCgmY2FsbGJhY2tzLCAwLCBzaXplb2Yobmdo dHRwMl9zZXNzaW9uX2NhbGxiYWNrcykpOw0KPiA+ICsrwqAgY2FsbGJhY2tzLm9uX2ZyYW1lX3Jl Y3ZfY2FsbGJhY2sgPSBvbl9mcmFtZV9yZWN2X2NhbGxiYWNrOw0KPiA+ICsrwqAgY2FsbGJhY2tz LnNlbmRfY2FsbGJhY2sgPSBudWxsX3NlbmRfY2FsbGJhY2s7DQo+ID4gKysNCj4gPiArK8KgIG5n aHR0cDJfb3B0aW9uX25ldygmb3B0aW9uKTsNCj4gPiArK8KgIG5naHR0cDJfb3B0aW9uX3NldF9t YXhfc2V0dGluZ3Mob3B0aW9uLCAxKTsNCj4gPiArKw0KPiA+ICsrwqAgbmdodHRwMl9zZXNzaW9u X2NsaWVudF9uZXcyKCZzZXNzaW9uLCAmY2FsbGJhY2tzLCAmdWQsIG9wdGlvbik7DQo+ID4gKysN Cj4gPiArK8KgIENVX0FTU0VSVCgxID09IHNlc3Npb24tPm1heF9zZXR0aW5ncyk7DQo+ID4gKysN Cj4gPiArK8KgIG5naHR0cDJfb3B0aW9uX2RlbChvcHRpb24pOw0KPiA+ICsrDQo+ID4gKyvCoCBp dlswXS5zZXR0aW5nc19pZCA9IE5HSFRUUDJfU0VUVElOR1NfSEVBREVSX1RBQkxFX1NJWkU7DQo+ ID4gKyvCoCBpdlswXS52YWx1ZSA9IDMwMDA7DQo+ID4gKysNCj4gPiArK8KgIGl2WzFdLnNldHRp bmdzX2lkID0gTkdIVFRQMl9TRVRUSU5HU19JTklUSUFMX1dJTkRPV19TSVpFOw0KPiA+ICsrwqAg aXZbMV0udmFsdWUgPSAxNjM4NDsNCj4gPiArKw0KPiA+ICsrwqAgbmdodHRwMl9mcmFtZV9zZXR0 aW5nc19pbml0KCZmcmFtZS5zZXR0aW5ncywgTkdIVFRQMl9GTEFHX05PTkUsDQo+ID4gZHVwX2l2 KGl2LCAyKSwNCj4gPiArK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgMik7DQo+ID4gKysNCj4gPiArK8KgIHJ2ID0gbmdodHRwMl9mcmFt ZV9wYWNrX3NldHRpbmdzKCZidWZzLCAmZnJhbWUuc2V0dGluZ3MpOw0KPiA+ICsrDQo+ID4gKyvC oCBDVV9BU1NFUlQoMCA9PSBydik7DQo+ID4gKyvCoCBDVV9BU1NFUlQobmdodHRwMl9idWZzX2xl bigmYnVmcykgPiAwKTsNCj4gPiArKw0KPiA+ICsrwqAgbmdodHRwMl9mcmFtZV9zZXR0aW5nc19m cmVlKCZmcmFtZS5zZXR0aW5ncywgbWVtKTsNCj4gPiArKw0KPiA+ICsrwqAgYnVmID0gJmJ1ZnMu aGVhZC0+YnVmOw0KPiA+ICsrwqAgYXNzZXJ0KG5naHR0cDJfYnVmc19sZW4oJmJ1ZnMpID09IG5n aHR0cDJfYnVmX2xlbihidWYpKTsNCj4gPiArKw0KPiA+ICsrwqAgdWQuZnJhbWVfcmVjdl9jYl9j YWxsZWQgPSAwOw0KPiA+ICsrDQo+ID4gKyvCoCBydiA9IG5naHR0cDJfc2Vzc2lvbl9tZW1fcmVj dihzZXNzaW9uLCBidWYtPnBvcywNCj4gPiBuZ2h0dHAyX2J1Zl9sZW4oYnVmKSk7DQo+ID4gKyvC oCBDVV9BU1NFUlQoKHNzaXplX3QpbmdodHRwMl9idWZfbGVuKGJ1ZikgPT0gcnYpOw0KPiA+ICsr DQo+ID4gKyvCoCBpdGVtID0gbmdodHRwMl9zZXNzaW9uX2dldF9uZXh0X29iX2l0ZW0oc2Vzc2lv bik7DQo+ID4gKyvCoCBDVV9BU1NFUlQoTkdIVFRQMl9HT0FXQVkgPT0gaXRlbS0+ZnJhbWUuaGQu dHlwZSk7DQo+ID4gKysNCj4gPiArK8KgIG5naHR0cDJfYnVmc19yZXNldCgmYnVmcyk7DQo+ID4g KyvCoCBuZ2h0dHAyX2J1ZnNfZnJlZSgmYnVmcyk7DQo+ID4gKyvCoCBuZ2h0dHAyX3Nlc3Npb25f ZGVsKHNlc3Npb24pOw0KPiA+ICsrfQ0KPiA+ICsrDQo+ID4gKyBzdGF0aWMgdm9pZA0KPiA+ICsg cHJlcGFyZV9zZXNzaW9uX3JlbW92ZWRfY2xvc2VkX3N0cmVhbShuZ2h0dHAyX3Nlc3Npb24gKnNl c3Npb24sDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmdodHRwMl9oZF9kZWZsYXRlcg0KPiA+ ICpkZWZsYXRlcikgew0KPiA+ICtkaWZmIC0tZ2l0IGEvdGVzdHMvbmdodHRwMl9zZXNzaW9uX3Rl c3QuaA0KPiA+IGIvdGVzdHMvbmdodHRwMl9zZXNzaW9uX3Rlc3QuaA0KPiA+ICtpbmRleCBlODcy YzVkMGIuLjgxOGM4MDhkMCAxMDA2NDQNCj4gPiArLS0tIGEvdGVzdHMvbmdodHRwMl9zZXNzaW9u X3Rlc3QuaA0KPiA+ICsrKysgYi90ZXN0cy9uZ2h0dHAyX3Nlc3Npb25fdGVzdC5oDQo+ID4gK0BA IC0xNTYsNiArMTU2LDcgQEAgdm9pZA0KPiA+IHRlc3RfbmdodHRwMl9zZXNzaW9uX3JlcGVhdGVk X3ByaW9yaXR5X2NoYW5nZSh2b2lkKTsNCj4gPiArIHZvaWQgdGVzdF9uZ2h0dHAyX3Nlc3Npb25f cmVwZWF0ZWRfcHJpb3JpdHlfc3VibWlzc2lvbih2b2lkKTsNCj4gPiArIHZvaWQgdGVzdF9uZ2h0 dHAyX3Nlc3Npb25fc2V0X2xvY2FsX3dpbmRvd19zaXplKHZvaWQpOw0KPiA+ICsgdm9pZCB0ZXN0 X25naHR0cDJfc2Vzc2lvbl9jYW5jZWxfZnJvbV9iZWZvcmVfZnJhbWVfc2VuZCh2b2lkKTsNCj4g PiArK3ZvaWQgdGVzdF9uZ2h0dHAyX3Nlc3Npb25fdG9vX21hbnlfc2V0dGluZ3Modm9pZCk7DQo+ ID4gKyB2b2lkIHRlc3RfbmdodHRwMl9zZXNzaW9uX3JlbW92ZWRfY2xvc2VkX3N0cmVhbSh2b2lk KTsNCj4gPiArIHZvaWQgdGVzdF9uZ2h0dHAyX3Nlc3Npb25fcGF1c2VfZGF0YSh2b2lkKTsNCj4g PiArIHZvaWQgdGVzdF9uZ2h0dHAyX3Nlc3Npb25fbm9fY2xvc2VkX3N0cmVhbXModm9pZCk7DQo+ ID4gZGlmZiAtLWdpdCBhL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLQ0KPiA+IHN1cHBvcnQvbmdo dHRwMi9uZ2h0dHAyXzEuNDAuMC5iYiBiL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLQ0KPiA+IHN1 cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuNDAuMC5iYg0KPiA+IGluZGV4IDllZDhjNTY0Mi4uYjIx MmVkZTRkIDEwMDY0NA0KPiA+IC0tLSBhL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQv bmdodHRwMi9uZ2h0dHAyXzEuNDAuMC5iYg0KPiA+ICsrKyBiL21ldGEtbmV0d29ya2luZy9yZWNp cGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuNDAuMC5iYg0KPiA+IEBAIC0xMCw2ICsxMCw3 IEBAIFVQU1RSRUFNX0NIRUNLX1VSSSA9ICINCj4gPiBodHRwczovL2FwYzAxLnNhZmVsaW5rcy5w cm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGbmdo dHRwMiUyRm5naHR0cDIlMkZyZWxlYXNlcyZhbXA7ZGF0YT0wNCU3QzAxJTdDUmFodWwuVGF5YSU0 MGtwaXQuY29tJTdDODFjN2IwYTU4OWM1NGZkOTgxNWQwOGQ4ZDI5NDRiNWYlN0MzNTM5NDUxZWI0 NmU0YTI2YTI0MmZmNjE1MDI4NTVjNyU3QzAlN0MwJTdDNjM3NDkwODgxNzA3MjkwOTg1JTdDVW5r bm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxD SkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPW1pc08lMkZTRXBC OTJUSFczeFZ4OSUyQldrdkZzZEkzWiUyRkwlMkZ5JTJGZE1jRUc4OEFZJTNEJmFtcDtyZXNlcnZl ZD0wDQo+ID4gIg0KPiA+IMKgIFNSQ19VUkkgPSAiXA0KPiA+IMKgwqDCoMKgwqAgDQo+ID4gaHR0 cHM6Ly9hcGMwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNB JTJGJTJGZ2l0aHViLmNvbSUyRm5naHR0cDIlMkZuZ2h0dHAyJTJGcmVsZWFzZXMlMkZkb3dubG9h ZCUyRnYlMjQmYW1wO2RhdGE9MDQlN0MwMSU3Q1JhaHVsLlRheWElNDBrcGl0LmNvbSU3QzgxYzdi MGE1ODljNTRmZDk4MTVkMDhkOGQyOTQ0YjVmJTdDMzUzOTQ1MWViNDZlNGEyNmEyNDJmZjYxNTAy ODU1YzclN0MwJTdDMCU3QzYzNzQ5MDg4MTcwNzI5MDk4NSU3Q1Vua25vd24lN0NUV0ZwYkdac2Iz ZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENK WFZDSTZNbjAlM0QlN0MxMDAwJmFtcDtzZGF0YT10cSUyQkd6NHpnZlA4NGJMZnFmMlVBSTM4NEZN aGklMkJVNEt2UGdob1BqR1I5WSUzRCZhbXA7cmVzZXJ2ZWQ9MHtQVn0vbmdodHRwMi0ke1BWfS50 YXIueHoNCj4gPiBcDQo+ID4gwqDCoMKgwqDCoCBmaWxlOi8vMDAwMS1mZXRjaC1vY3NwLXJlc3Bv bnNlLXVzZS1weXRob24zLnBhdGNoIFwNCj4gPiArwqDCoMKgIGZpbGU6Ly9DVkUtMjAyMC0xMTA4 MC5wYXRjaCBcDQo+ID4gwqAgIg0KPiA+IMKgIFNSQ19VUklbbWQ1c3VtXSA9ICI4ZDFhNmI5Njc2 MDI1NGU0ZGQxNDJkNzE3NmU4ZmI3YyINCj4gPiDCoCBTUkNfVVJJW3NoYTI1NnN1bV0gPQ0KPiA+ ICIwOWZjNDNkNDI4ZmYyMzcxMzg3MzNjNzM3YjI5ZmIxYTdlNDlkNDlkZTA2ZDJlZGJlZDNiYzRj ZGNlZTY5MDczIg0KPiA+IC0tDQo+ID4gMi4xNy4xDQo+ID4gDQo+ID4gVGhpcyBtZXNzYWdlIGNv bnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgbWF5IGJlIHByaXZpbGVnZWQgb3INCj4gPiBjb25maWRl bnRpYWwgYW5kIGlzIHRoZSBwcm9wZXJ0eSBvZiB0aGUgS1BJVCBUZWNobm9sb2dpZXMgTHRkLiBJ dCBpcw0KPiA+IGludGVuZGVkIG9ubHkgZm9yIHRoZSBwZXJzb24gdG8gd2hvbSBpdCBpcyBhZGRy ZXNzZWQuIElmIHlvdSBhcmUgbm90DQo+ID4gdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFy ZSBub3QgYXV0aG9yaXplZCB0byByZWFkLCBwcmludCwgcmV0YWluDQo+ID4gY29weSwgZGlzc2Vt aW5hdGUsIGRpc3RyaWJ1dGUsIG9yIHVzZSB0aGlzIG1lc3NhZ2Ugb3IgYW55IHBhcnQNCj4gPiB0 aGVyZW9mLiBJZiB5b3UgcmVjZWl2ZSB0aGlzIG1lc3NhZ2UgaW4gZXJyb3IsIHBsZWFzZSBub3Rp ZnkgdGhlDQo+ID4gc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkZWxldGUgYWxsIGNvcGllcyBvZiB0 aGlzIG1lc3NhZ2UuIEtQSVQNCj4gPiBUZWNobm9sb2dpZXMgTHRkLiBkb2VzIG5vdCBhY2NlcHQg YW55IGxpYWJpbGl0eSBmb3IgdmlydXMgaW5mZWN0ZWQNCj4gPiBtYWlscy4NCj4gPiANCj4gPiAN Cj4gPiANCj4gDQo+IFRoaXMgbWVzc2FnZSBjb250YWlucyBpbmZvcm1hdGlvbiB0aGF0IG1heSBi ZSBwcml2aWxlZ2VkIG9yDQo+IGNvbmZpZGVudGlhbCBhbmQgaXMgdGhlIHByb3BlcnR5IG9mIHRo ZSBLUElUIFRlY2hub2xvZ2llcyBMdGQuIEl0IGlzDQo+IGludGVuZGVkIG9ubHkgZm9yIHRoZSBw ZXJzb24gdG8gd2hvbSBpdCBpcyBhZGRyZXNzZWQuIElmIHlvdSBhcmUgbm90DQo+IHRoZSBpbnRl bmRlZCByZWNpcGllbnQsIHlvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcmVhZCwgcHJpbnQsIHJl dGFpbg0KPiBjb3B5LCBkaXNzZW1pbmF0ZSwgZGlzdHJpYnV0ZSwgb3IgdXNlIHRoaXMgbWVzc2Fn ZSBvciBhbnkgcGFydCB0aGVyZW9mLg0KPiBJZiB5b3UgcmVjZWl2ZSB0aGlzIG1lc3NhZ2UgaW4g ZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlcg0KPiBpbW1lZGlhdGVseSBhbmQgZGVsZXRl IGFsbCBjb3BpZXMgb2YgdGhpcyBtZXNzYWdlLiBLUElUIFRlY2hub2xvZ2llcw0KPiBMdGQuIGRv ZXMgbm90IGFjY2VwdCBhbnkgbGlhYmlsaXR5IGZvciB2aXJ1cyBpbmZlY3RlZCBtYWlscy4NCj4g DQo+IA0KPiANCg0K