From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0042.outbound.protection.outlook.com [104.47.1.42]) by dpdk.org (Postfix) with ESMTP id E2315374E for ; Thu, 7 Sep 2017 10:24:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=itlrie3wY4JmRck+uc+pO1KPeOMTPHHF1C9MxxzCYc8=; b=yQZvInvWTAQQrhQjrehHm3GMMUUZmo9kRmsNP/nWv7OEISd3BfNug6pMN9ahqFP+8X8B0V2IMvMusCheiLcGYDAfTd0ojT/EfbgeS+tzZrHuapJI4oTaS69SorQ4jQ9nYnv/vWuQDmu3lSf9vM6fkWTxVmM+UFta96VFQtF0n9U= Received: from AM3PR05MB307.eurprd05.prod.outlook.com (10.242.247.152) by AM3PR05MB1265.eurprd05.prod.outlook.com (10.163.7.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Thu, 7 Sep 2017 08:24:16 +0000 Received: from AM3PR05MB307.eurprd05.prod.outlook.com ([fe80::9432:5ada:16f6:e273]) by AM3PR05MB307.eurprd05.prod.outlook.com ([fe80::9432:5ada:16f6:e273%14]) with mapi id 15.20.0035.010; Thu, 7 Sep 2017 08:24:16 +0000 From: Wisam Monther To: "Hu, Jiayu" CC: "users@dpdk.org" , Raslan Darawsheh , Shahaf Shuler Thread-Topic: Unable to merge packets using GRO feature Thread-Index: AdMaTiF+8CYSsq4aQZ+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosADMAwaAACXOZZAAC76hwAGa1cBQABz64GAADFFDsAAB9LoAAADl2aA= Date: Thu, 7 Sep 2017 08:24:16 +0000 Message-ID: References: <20170821091347.GA94297@dpdk15.sh.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=wisamm@mellanox.com; x-originating-ip: [195.35.85.130] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM3PR05MB1265; 6:YRMQ9+Egj2fI1AHaNp9iOVlCi2EeGs9SQH1aqXCIB9LQu+1IKlqcDaGNWgUm1iYoL5oUFbxlA3pTtJ+fc1gUIjuAX26VuFWN7KFXrULTFJsHzX+3kenpsyKSyYQJjmPsSEF6Dhs50Ty3JBO9DraV9DGXctJ8KnOXbJ9A+9cSPiLlYLlFvEMjUXJHyRSTlYdnrPKtJ7fRuo7YtzD8/pGZ4kTSmh2mlrntlqgZuGoQEUWmzRfo9oQKX1ds5Voi+qsYN/gkB+rQqSF/Q62ZTvWHg6t1ip0gwNxqQuq7sSHyO29LT4pepdBobWVXnbYyNjRD9/9kjclaiZdl6Yzp/+v5kg==; 5:BbjS3nBBrtuUw7fAqkPK6CPQSOE6MjLyZV8BbjegGSNiY0qdQXAXTOM7xG/ghCWSr18zZMucjPAjirN2zMHKT4/yXTXczYt05O9Q/ryJFwg7L5oKr2X3t9ssRsNSJXQlMxppu6J5RFO9SeBDt0eWNw==; 24:/ZnQwT+CiYgiim7p808oIE8waQaqpjBgrZWfXEBy357DYUxt++0ALDdb2WQzpcr4T2G8V7+1dTHVYV97vwr8kE+ivT5lqrvHDzqtAUbIzdw=; 7:2E0gRao9yuJU+smVR0L0+M96UU/jBJ3cJFQvLjkrrdpIEgx5mVPSdw9sW+dyic6zwhEofK1GI5hoKnMh26ms1gJk8Zqc81S635gr2pF8Rz6yFrsK9KaN5IZJ7HlbHFzrfPgeG5NfrwblD65Fh61fe8QgGGpw7O8Ml5QWopC2O6TahNKd/wWa4+oYFu8b/vs+eqSGl/tcqagKrIpPDAzPhUeHGGaRwVkpAHGqQH/9bBo= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 54d065a5-dd61-48a6-ffab-08d4f5c9d459 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM3PR05MB1265; x-ms-traffictypediagnostic: AM3PR05MB1265: x-exchange-antispam-report-test: UriScan:(278428928389397)(228905959029699); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123558100)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM3PR05MB1265; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM3PR05MB1265; x-forefront-prvs: 04238CD941 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(24454002)(13464003)(377454003)(199003)(189002)(97736004)(2950100002)(5660300001)(7696004)(345774005)(93886005)(8676002)(81166006)(81156014)(66066001)(25786009)(478600001)(74316002)(7736002)(6436002)(189998001)(54356999)(6916009)(68736007)(8936002)(4326008)(305945005)(50986999)(229853002)(53946003)(55016002)(99286003)(2906002)(33656002)(53936002)(54906002)(76176999)(6506006)(53546010)(101416001)(3280700002)(3846002)(14454004)(105586002)(6116002)(6246003)(102836003)(86362001)(110136004)(107886003)(106356001)(2900100001)(5250100002)(9686003)(5890100001)(3660700001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR05MB1265; H:AM3PR05MB307.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2017 08:24:16.5044 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR05MB1265 Subject: Re: [dpdk-users] Unable to merge packets using GRO feature X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Sep 2017 08:24:19 -0000 WWVzIHN1cmUsDQoNClRoaXMgaXMgdGhlIHBhY2tldCBJIHNlbnQgZm9yIHRoZSB0ZXN0cG1kICJ0 aGUgb25lIHRoYXQgZW5hYmxlZCB0c28iDQoiIg0KcD1FdGhlcihzcmM9Z2V0X2lmX2h3YWRkcign ZW5zMTAnKSwgZHN0PSAnZmY6ZmY6ZmY6ZmY6ZmY6ZmYnKQ0KcC5hZGRfcGF5bG9hZChEb3QxUSh2 bGFuPTEpKQ0KcC5hZGRfcGF5bG9hZChJUChkc3Q9JzExLjEwLjEwLjIxJywgc3JjPScxMS4xMC4x MC4yMCcpKQ0KcC5hZGRfcGF5bG9hZChUQ1Aoc3BvcnQ9MjAwMCwgZHBvcnQ9MzAwMCkpDQpwLmFk ZF9wYXlsb2FkKCcwJyooMTUwMCAtIGxlbihwKSkpDQpzZW5kcChwLCBpZmFjZT0nZW5zMTAnLCBj b3VudD0xICkNCiIiIg0KDQpBbmQgdGhpcyBpcyB0aGUgb3V0cHV0IGZyb20gVFNPICJ0aGUgaW5w dXQgZm9yIEdSTyINCg0KIiIiDQojIHRjcGR1bXAgLWkgZW5zOSAtdnZ2ZW4gLXZsYW4NCnRjcGR1 bXA6IGxpc3RlbmluZyBvbiBlbnM5LCBsaW5rLXR5cGUgRU4xME1CIChFdGhlcm5ldCksIGNhcHR1 cmUgc2l6ZSAyNjIxNDQgYnl0ZXMNCg0KMTE6MjA6NTEuNDk0NjUxIDI0OjhhOjA3Ojg4OjI2OjZh ID4gMjQ6OGE6MDc6ODg6MjY6NWEsIGV0aGVydHlwZSBJUHY0ICgweDA4MDApLCBsZW5ndGggNTU0 OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgMCwgZmxhZ3MgW25vbmVdLCBwcm90byBU Q1AgKDYpLCBsZW5ndGggNTQwKQ0KICAgIDExLjEwLjEwLjIwLjIwMDAgPiAxMS4xMC4xMC4yMS4z MDAwOiBGbGFncyBbU10sIGNrc3VtIDB4NDExYiAoY29ycmVjdCksIHNlcSAwOjUwMCwgd2luIDgx OTIsIGxlbmd0aCA1MDANCjExOjIwOjUxLjQ5NDY2MCAyNDo4YTowNzo4ODoyNjo2YSA+IDI0Ojhh OjA3Ojg4OjI2OjVhLCBldGhlcnR5cGUgSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDU1NDogKHRvcyAw eDAsIHR0bCA2NCwgaWQgMiwgb2Zmc2V0IDAsIGZsYWdzIFtub25lXSwgcHJvdG8gVENQICg2KSwg bGVuZ3RoIDU0MCkNCiAgICAxMS4xMC4xMC4yMC4yMDAwID4gMTEuMTAuMTAuMjEuMzAwMDogRmxh Z3MgW1NdLCBja3N1bSAweDNmMjcgKGNvcnJlY3QpLCBzZXEgNTAwOjEwMDAsIHdpbiA4MTkyLCBs ZW5ndGggNTAwDQoxMToyMDo1MS40OTQ2NjIgMjQ6OGE6MDc6ODg6MjY6NmEgPiAyNDo4YTowNzo4 ODoyNjo1YSwgZXRoZXJ0eXBlIElQdjQgKDB4MDgwMCksIGxlbmd0aCA0OTY6ICh0b3MgMHgwLCB0 dGwgNjQsIGlkIDMsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFRDUCAoNiksIGxlbmd0 aCA0ODIpDQogICAgMTEuMTAuMTAuMjAuMjAwMCA+IDExLjEwLjEwLjIxLjMwMDA6IEZsYWdzIFtT XSwgY2tzdW0gMHhiMmUyIChjb3JyZWN0KSwgc2VxIDEwMDA6MTQ0Miwgd2luIDgxOTIsIGxlbmd0 aCA0NDINCiIiIg0KDQpCUnMsDQpXaXNhbSBKYWRkbw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KRnJvbTogSHUsIEppYXl1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXSANClNlbnQ6 IFRodXJzZGF5LCBTZXB0ZW1iZXIgNywgMjAxNyAxMDo1OCBBTQ0KVG86IFdpc2FtIE1vbnRoZXIN CkNjOiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaDsgU2hhaGFmIFNodWxlcg0KU3Vi amVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQoNCkhp IFdpc2FtLA0KDQpDYW4geW91IHNlbmQgbWUgdGhlIHBjYXAgZmlsZSBvZiB0aGUgVFNPZWQgcGFj a2V0cz8gSSB3YW50IHRvIHNlZSB3aGF0IHRoZSBwYWNrZXRzIHRoYXQgdGhlIEdSTyBlbmFibGVk IHBvcnQgcmVjZWl2ZXMgbG9vayBsaWtlLg0KDQpUaGFua3MsDQpKaWF5dQ0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdpc2FtIE1vbnRoZXIgW21haWx0bzp3aXNhbW1A bWVsbGFub3guY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDcsIDIwMTcgMzoxOSBQ TQ0KPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+IENjOiB1c2Vyc0BkcGRr Lm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYgDQo+ IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8g bWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiANCj4gSGkgSmlheXUsDQo+IA0KPiBG aXJzdCBvZiBhbGwsIEkgYXBwcmVjaWF0ZSB5b3VyIGVmZm9ydHMgd2l0aCBtZSA6KSBUaGUgdGhp bmcgdGhhdCB0aGUgDQo+IHBhY2tldHMgZGlkbid0IGRyb3BwZWQgd2hlbiBJIHVzZWQgYSBwYWNr ZXQgd2l0aCAxNTAwIGluIHRvdGFsIGFzIGEgDQo+IHRocmVlIHNlZ21lbnRzIG9mIDUwMCwgU28s IGV2ZW4gd2hlbiBlbmFibGUgZ3JvLCB0ZXN0cG1kIHdpbGwgZndkIHRoZSANCj4gcmVjZWl2ZWQg c2VnbWVudHMgYXMgaXQuDQo+ICJTbyBhY2NvcmRpbmcgdG8gdGhpcyBiZWhhdmlvciB3ZSBjb25j bHVkZSB0aGF0IGl0J3MgZGlkbid0IHJlYWNoIHRoZSANCj4gbGltaXQsIGFuZCBhbHNvIHRoZSBH Uk8gZGlkbid0IHdvcmsiDQo+IA0KPiBDb3VsZCBiZSB0aGVyZSBzb21lIGNvbnN0cmFpbnRzIGZv ciBNTFggZHJpdmVyIG9yIE1MWCBOSUNzIHJlZ2FyZHMgR1JPPw0KPiANCj4gQmVzdCByZWdhcmRz LA0KPiBXaXNhbSBKYWRkbw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogSHUsIEppYXl1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiBTZW50OiBUaHVyc2Rh eSwgU2VwdGVtYmVyIDcsIDIwMTcgNDoxNSBBTQ0KPiBUbzogV2lzYW0gTW9udGhlcg0KPiBDYzog dXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gU3ViamVj dDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+IA0KPiBI aSBXaXNhbSwNCj4gDQo+IFdoZW4gd2UgcGVyZm9ybSBhIHNpbWlsYXIgdGVzdCBvbiBpNDBlLCB3 ZSBmaW5kIGFuIGltcG9ydGFudCB0aGluZzoNCj4gdGhlcmUgaXMgYSBtYXggbnVtYmVyIGxpbWl0 IGZvciBtYnVmLT5uYl9zZWdzLiBXaGVuIHRoZSBudW1iZXIgb2YgTUJVRiANCj4gc2VnbWVudHMg b2YgdGhlIHBhY2tldCBpcyBsYXJnZXIgdGhhbiB0aGlzIGxpbWl0LCB0aGUgcGFja2V0IHdpbGwg YmUgZHJvcHBlZC4NCj4gDQo+IFRoZSBHUk9lZCBwYWNrZXQgaGFzIG11bHRpcGxlIE1CVUYgc2Vn bWVudHMuIEZvciB2aG9zdC1kcGRrLCBpdCANCj4gZG9lc24ndCBoYXZlIGxpbWl0IGZvciB0aGUg bnVtYmVyIG9mIHNlZ21lbnRzLiBCdXQgaXQncyBub3QgdGhlIHNhbWUgDQo+IGZvciBhbGwgTklD IGRyaXZlcnMuIFNvIEkgc3VnZ2VzdCB5b3UgdG8gY2hlY2sgaWYgdGhlIE1MWCBkcml2ZXIgaGFz IHRoaXMgbGltaXQgdG9vLg0KPiANCj4gVGhhbmtzLA0KPiBKaWF5dQ0KPiANCj4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFdpc2FtIE1vbnRoZXIgW21haWx0bzp3aXNh bW1AbWVsbGFub3guY29tXQ0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDYsIDIwMTcg NzoxOCBQTQ0KPiA+IFRvOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT4NCj4gPiBDYzog dXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsg U2hhaGFmIA0KPiA+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gU3ViamVjdDog UkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4NCj4gPiBI aSBKaWF5dSwNCj4gPg0KPiA+IEFueSBjb21tZW50IHJlZ2FyZCB3aGF0IEkgZGVzY3JpYmVkPw0K PiA+DQo+ID4gQlJzLA0KPiA+IFdpc2FtIEphZGRvDQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+IEZyb206IFdpc2FtIE1vbnRoZXINCj4gPiBTZW50OiBUdWVzZGF5LCBB dWd1c3QgMjksIDIwMTcgMTA6NDkgQU0NCj4gPiBUbzogJ0h1LCBKaWF5dScNCj4gPiBDYzogdXNl cnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiBTdWJqZWN0 OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+ IEhpIEppYXl1LA0KPiA+DQo+ID4gTGV0IG1lIHJlLWRlc2NyaWJlIG15IHRvcG9sb2d5IGluIGEg YmV0dGVyIHdheSwgc2VlIGF0dGFjaGVkIGltYWdlLg0KPiA+IEFuZCBpdCBpcyBjb25uZWN0ZWQg cGh5c2ljYWxseSBhcyBkZXNjcmliZWQsIGFuZCBJJ20gdXNpbmcgaXQgd2l0aCANCj4gPiBNVFUN Cj4gPiBzaXplPTE1MDAgaW4gb3JkZXIgdG8gbWFrZSBzdXJlIEV2ZXJ5IHBvcnQgY2FuIGhhbmRs ZSBpdC4NCj4gPg0KPiA+IEFuZCB0aGlzIGlzIHRoZSBleGFjdCBjb25uZWN0aW9uIGJldHdlZW4g dGhlIGludGVyZmFjZXMsIHNvIEknbSBzdXJlIA0KPiA+IHRoZSBwYWNrZXRzIHJlY2VpdmVkIGlu IE5JQyBCIG1hY2hpbmUgQiBpcyBjb21pbmcgZnJvbSB0aGUgdGVzdHBtZCANCj4gPiB3aXRoIEdS TyBlbmFibGVkLg0KPiA+DQo+ID4gQnV0IGV2ZW4gc28sIEkgaW50ZW50aW9uYWxseSBtYWRlIHRo ZSBwYWNrZXQgc2l6ZSAxNTAwLCB0byBiZSANCj4gPiBkaXZpZGVkIGludG8gMyAqICggNTAwKSBm cmFnbWVudHMgdXNpbmcgdGhlIFRTTywgYW5kIHRoZW4gbWVyZ2VkIA0KPiA+IGludG8gMTUwMCBw YWNrZXQgYWdhaW4gaW4gdGhlIEdSTy4NCj4gPiBTbyB0aGUgZXZlcnkgbWFjaGluZSBjYW4gbWFu YWdlIHRoaXMgbXR1IHNpemUuDQo+ID4NCj4gPiBUaGUgdGhpbmcgdGhhdCBJIG5lZWQgdG8gdGVz dCBHUk8gd2l0aCBlYWNoIHNldHVwcyB0eXBlcywgIlZNcyB3aXRoIA0KPiA+IEJhcmVtZXRhbCB3 aXRoIHBhc3MgdGhyb3VnaCB3aXRoIFZGcyBldGMuLi4iLg0KPiA+IFNvIEkgbmVlZCB0byBzZWUg dGhlIGZlYXR1cmUgd29ya3Mgb24gbGVhc3Qgd29yaywgaXQgd291bGQgYmUgbmljZSANCj4gPiB0 byBzZW5kIElQVjRfVENQIGZyYWdtZW50ZWQgcGFja2V0IHVzaW5nICJzY2FweSwgSXBlcmYiDQo+ ID4gQW5kIGNoZWNrIHRoZSBmd2QgcGFja2V0IGZyb20gR1JPIGRpcmVjdGx5Lg0KPiA+DQo+ID4g QlJzLA0KPiA+IFdpc2FtIEphZGRvDQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+IEZyb206IEh1LCBKaWF5dSBbbWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbV0NCj4gPiBT ZW50OiBUdWVzZGF5LCBBdWd1c3QgMjksIDIwMTcgNDo1MSBBTQ0KPiA+IFRvOiBXaXNhbSBNb250 aGVyDQo+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1 bGVyDQo+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBm ZWF0dXJlDQo+ID4NCj4gPiBIaSBXaXNhbSwNCj4gPg0KPiA+IEluIHRoZSBwaWN0dXJlIG9mIHlv dXIgZXhwZXJpbWVudCB0b3BvbG9neSwgSSBndWVzcyBOSUMgQiBpbiB0aGUgDQo+ID4gbWFjaGlu ZSBCIGlzIGNvbm5lY3RlZCB3aXRoIGFub3RoZXIgaW50ZXJmYWNlIHBoeXNpY2FsbHkuIElmIHNv LCB0aGUgDQo+ID4gcGFja2V0cyB0aGF0IHRjcGR1bXAgY2FwdHVyZXMgYXJlIGZyb20gdGhlIHBo eXNpY2FsIGxpbmsuIEhvd2V2ZXIsIA0KPiA+IHBhY2tldHMgYWZ0ZXIgR1JPZWQgYXJlIG11bHRp LSBzZWdtZW50IGxhcmdlIHBhY2tldHMsIHdoaWNoIGFyZSANCj4gPiBsYXJnZXIgdGhhbiBNVFUu IEkgYW0gbm90IHN1cmUgaWYgeW91IGhhdmUgbWFrZSBvdGhlciBjb25maWd1cmF0aW9ucyANCj4g PiB0byBlbmFibGUgdGhlc2UgbGFyZ2UgcGFja2V0cyB0byBwYXNzIHRoZSBwaHlzaWNhbCBsaW5r LCBhbmQgdGhlcmUgDQo+ID4gaXMganVtYm8gZnJhbWUgc2l6ZSBsaW1pdCBmb3IgZGlmZmVyZW50 IE5JQ3MuIFNvIHdvdWxkIHlvdSBwbGVhc2UgdG8gDQo+ID4gY2hlY2sgdGhpcz8gQlRXLCB5b3Ug Y2FuIHVzZSB0aGUgVk0gdG8gdGVzdCB0aGlzIEdSTyBmZWF0dXJlLCBzaW5jZSANCj4gPiBsYXJn ZQ0KPiBwYWNrZXRzIGNhbiBhbHdheXMgcGFzcyB0byB0aGUgVk0uDQo+ID4NCj4gPiBUaGFua3Ms DQo+ID4gSmlheXUNCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ IEZyb206IFdpc2FtIE1vbnRoZXIgW21haWx0bzp3aXNhbW1AbWVsbGFub3guY29tXQ0KPiA+ID4g U2VudDogTW9uZGF5LCBBdWd1c3QgMjgsIDIwMTcgMzozNyBQTQ0KPiA+ID4gVG86IEh1LCBKaWF5 dSA8amlheXUuaHVAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4g RGFyYXdzaGVoIDxyYXNsYW5kQG1lbGxhbm94LmNvbT47DQo+IFNoYWhhZg0KPiA+ID4gU2h1bGVy IDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVy Z2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4NCj4gPiA+IEhpIEppYXl1LA0KPiA+ ID4NCj4gPiA+IEknbSBzb3JyeSBmb3IgYm90aGVyaW5nIHlvdSwgYnV0IGNvdWxkIHlvdSBjb25m b3JtIHRoYXQgdGhlIA0KPiA+ID4gZmVhdHVyZSBpcyB3b3JraW5nIHByb2JhYmx5IEJlY2F1c2Us IHdoYXQgSSBldmVyICBkaWQsIEkgY291bGRuJ3QgDQo+ID4gPiBnZXQgdGhlIG1lcmdlZCBwYWNr ZXRzLg0KPiA+ID4NCj4gPiA+IEJScywNCj4gPiA+IFdpc2FtIEphZGRvDQo+ID4gPg0KPiA+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IFdpc2FtIE1vbnRoZXINCj4g PiA+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjQsIDIwMTcgOToxNSBBTQ0KPiA+ID4gVG86ICdI dSwgSmlheXUnDQo+ID4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNo YWhhZiBTaHVsZXINCj4gPiA+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1 c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4NCj4gPiA+IEhpLA0KPiA+ID4NCj4gPiA+IEknbSB1c2lu ZyBNZWxsYW5veCBOSUNzLCBhbmQgaXQgaXMgc3VwcG9ydGluZyBwYXJzZSBwYWNrZXQgdHlwZXMu DQo+ID4gPg0KPiA+ID4gQmVzdCByZWdhcmRzLA0KPiA+ID4gV2lzYW0gSmFkZG8NCj4gPiA+DQo+ ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogSHUsIEppYXl1IFtt YWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiA+ID4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAy NCwgMjAxNyA4OjQ3IEFNDQo+ID4gPiBUbzogV2lzYW0gTW9udGhlcg0KPiA+ID4gQ2M6IHVzZXJz QGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+ID4gPiBTdWJqZWN0 OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPiA+DQo+ ID4gPiBIaSwNCj4gPiA+DQo+ID4gPiBDYW4geW91IHRlbGwgbWUgd2hhdCdzIHRoZSBOSUMgdHlw ZSBvZiB0aGUgR1JPLWVuYWJsZWQgcG9ydD8NCj4gPiA+DQo+ID4gPiBTaW5jZSBHUk8gbGlicmFy eSB1c2VzIG1idWYtPnBhY2tldF90eXBlIHRvIHBhcnNlIHBhY2tldCBoZWFkZXJzLCANCj4gPiA+ IGFwcGxpY2F0aW9ucyBuZWVkIHRvIGZpbGwgdGhpcyB2YWx1ZSBiZWZvcmUgY2FsbGluZyBHUk8g cmVhc3NlbWJseSBBUElzLg0KPiA+ID4gT3RoZXJ3aXNlLCB0aGUgR1JPIGNhbid0IHdvcmsgY29y cmVjdGx5Lg0KPiA+ID4NCj4gPiA+IEluIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgb2YgdGVzdHBt ZCwgcGFja2V0X3R5cGUgaXMgZmlsbGVkIGJ5IE5JQyBkcml2ZXJzLg0KPiA+ID4gVGhlIGNzdW0g Zm9yd2FyZGluZyBlbmdpbmUgd29uJ3Qgc2V0IHRoaXMgdmFsdWUuIFNvIGlmIHlvdXIgTklDIA0K PiA+ID4gZG9lc27igJl0IHN1cHBvcnQgdG8gcGFyc2UgcGFja2V0IHR5cGVzLCB0aGUgdmFsdWUg b2YgcGFja2V0X3R5cGUgaXMgDQo+ID4gPiAwIGFuZCBHUk8gY2FuJ3Qgd29yayBjb3JyZWN0bHku DQo+ID4gPg0KPiA+ID4gQlJzLA0KPiA+ID4gSmlheXUNCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IFdpc2FtIE1vbnRoZXIgW21haWx0bzp3 aXNhbW1AbWVsbGFub3guY29tXQ0KPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIsIDIw MTcgOToyNSBQTQ0KPiA+ID4gPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+ ID4gPiA+IENjOiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxs YW5veC5jb20+Ow0KPiA+IFNoYWhhZg0KPiA+ID4gPiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3gu Y29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcg R1JPIGZlYXR1cmUNCj4gPiA+ID4NCj4gPiA+ID4gWWVzIGl0IGlzLA0KPiA+ID4gPiBUaGUgZnJh Z21lbnRlZCBwYWNrZXRzIGNvbWVzIGZyb20gcG9ydDEgLyBOSUMgYiBmcm9tIG1hY2hpbmUgQSAN Cj4gPiA+ID4gdG8gcG9ydA0KPiA+ID4gPiAxIGluIE5JQyBBIGZvciBtYWNoaW5lIGIgU28gaXQn cyByZWNlaXZlZCBvbiB0aGUgcG9ydCAnMScsIHdoaWNoIA0KPiA+ID4gPiBpcyBjb25maWd1cmVk IGdybyBhY3RpdmUgb24gdGhpcyBwb3J0Lg0KPiA+ID4gPg0KPiA+ID4gPiBCZXN0IHJlZ2FyZHMs DQo+ID4gPiA+IFdpc2FtIEphZGRvDQo+ID4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IEh1LCBKaWF5dSBbbWFpbHRvOmppYXl1Lmh1QGludGVs LmNvbV0NCj4gPiA+ID4gU2VudDogVHVlc2RheSwgQXVndXN0IDIyLCAyMDE3IDQ6MjEgUE0NCj4g PiA+ID4gVG86IFdpc2FtIE1vbnRoZXINCj4gPiA+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNs YW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBVbmFibGUg dG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4gPg0KPiA+ID4gPiBIaSwN Cj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ IEZyb206IFdpc2FtIE1vbnRoZXIgW21haWx0bzp3aXNhbW1AbWVsbGFub3guY29tXQ0KPiA+ID4g PiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyMiwgMjAxNyA3OjA3IFBNDQo+ID4gPiA+ID4gVG86 IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPg0KPiA+ID4gPiA+IENjOiB1c2Vyc0BkcGRr Lm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+Ow0KPiA+ID4gU2hh aGFmDQo+ID4gPiA+ID4gU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gPiA+ID4gPiBT dWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4g PiA+ID4gPg0KPiA+ID4gPiA+IEhleSBKaWF5dSwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYW5r IHlvdSBmb3IgeW91ciByZXBseS4NCj4gPiA+ID4gPiBJIHRyaWVkIHdoYXQgeW91IHNhaWQgd2l0 aCB0aGUgY3N1bSBhdCBmd2QgbW9kZS4NCj4gPiA+ID4gPiBFdmVuIHNvIHRoZSBHUk8gZGlkbid0 IHdvcmtzIGZpbmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJIGV2ZW4gdGVzdGVkIHdpdGggYSBu ZXcgbWV0aG9kb2xvZ3kuDQo+ID4gPiA+ID4gVHdvIG1hY2hpbmVzIHdpdGggdHdvIGRpZmZlcmVu dCBuaWMgZm9yIGVhY2guDQo+ID4gPiA+ID4gVGhlIG1ldGhvZG9sb2d5IHRoYXQgSSB1c2VkIHRv IHRlc3QgaXQgaXMgZGVzY3JpYmVkIGluIHRoZSBhdHRhY2hlZCBmaWxlLg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gV2hhdCBJIGRpZCBmcm9tIGdybyBzaWRlOg0KPiA+ID4gPiA+ICIiIg0KPiA+ID4g PiA+IHRlc3RwbWQ+Z3JvIG9uIDENCj4gPiA+ID4NCj4gPiA+ID4gRG9lcyB0aGUgcG9ydCBudW1i ZXIgb2YgTklDIEEgaW4gbWFjaGluZSBCIGlzICcxJz8gV2hlbiB5b3UgDQo+ID4gPiA+IGVuYWJs ZSBHUk8gZm9yIHBvcnQgJzEnLCBUZXN0cG1kIG9ubHkgdHJpZXMgdG8gbWVyZ2UgcGFja2V0cyAN Cj4gPiA+ID4gcmVjZWl2ZWQgZnJvbSBwb3J0DQo+ID4gJzEnLg0KPiA+ID4gPg0KPiA+ID4gPiBC UnMsDQo+ID4gPiA+IEppYXl1DQo+ID4gPiA+DQo+ID4gPiA+ID4gVGVzdHBtZD5zZXQgZndkIGNz dW0NCj4gPiA+ID4gPiBUZXN0cG1kPnN0YXJ0DQo+ID4gPiA+ID4gIiIiDQo+ID4gPiA+ID4gQW5k IHRoZSBwYWNrZXQgd2l0aCBjb3JyZWN0IGRzdCBtYWMuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBC ZXN0IHJlZ2FyZHMsDQo+ID4gPiA+ID4gV2lzYW0gSmFkZG8NCj4gPiA+ID4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IEppYXl1IEh1IFttYWlsdG86amlheXUu aHVAaW50ZWwuY29tXQ0KPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDIxLCAyMDE3IDEy OjE0IFBNDQo+ID4gPiA+ID4gVG86IFdpc2FtIE1vbnRoZXINCj4gPiA+ID4gPiBDYzogVGhvbWFz IE1vbmphbG9uOyB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaDsgU2hhaGFmIA0KPiA+ ID4gPiA+IFNodWxlcg0KPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBVbmFibGUgdG8gbWVyZ2UgcGFj a2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSGksDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBPbiBNb24sIEF1ZyAyMSwgMjAxNyBhdCAwNzoyNToyM0FNICswMDAwLCBX aXNhbSBNb250aGVyIHdyb3RlOg0KPiA+ID4gPiA+ID4gSGVsbG8gR3V5cywNCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgaG9wZSB0aGlzIGZpbmRz IHlvdSB3ZWxsLCBJ4oCZbSB0cnlpbmcgdG8gdGVzdCB0aGUgR1JPIGZlYXR1cmUuDQo+ID4gPiA+ ID4gPiBCdXQgSeKAmW0gc3R1Y2sgd2l0aCB0aGlzIHNjZW5hcmlvLg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IEFzIHlvdSBrbm93LCBHUk8gaXMgb25seSBzdXBwb3J0IFRDUF9JUFY0IHBhY2tl dCB1bnRpbCBub3cuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU28gSeKAmW0gdHJ5aW5nIHRv IHRlc3QgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIA0KPiA+ID4gPiA+ID4gZmVhdHVy ZSwgYXMNCj4gPiBmb2xsb3dpbmc6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU3RhcnQgdGVz dHBtZDoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiDigJzigJ3igJ0NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiAuL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2J1aWxkL2FwcC90ZXN0LXBt ZC90ZXN0cG1kIC1uIDQgDQo+ID4gPiA+ID4gPiAtdw0KPiA+ID4gPiA+ID4gMDA6MGEuMCAgLXcN Cj4gPiA+ID4gPiA+IDAwOjA5LjAgLS0gIC0tYnVyc3Q9NjQgLS1tYmNhY2hlPTUxMiAtLXBvcnRt YXNrIDB4ZiAtaQ0KPiA+ID4gPiA+ID4gLS10eGQ9NTEyDQo+ID4gPiA+ID4gPiAtLXJ4ZD01MTIN Cj4gPiA+ID4gPiA+IC0tbmItY29yZXM9OSAgLS1yeHE9MiAtLXR4cT0yIC0tdHhxZmxhZ3M9MA0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlbiBlbmFibGUgR1JPIGF0IHRoZSB0d28g cG9ydHM6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gVGVzdHBtZD5ncm8gb24gMA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRl c3RwbWQ+Z3JvIG9uIDENCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdoZW4gdXNlIEdSTyBpbiB0ZXN0 cG1kLCB0aGVyZSBhcmUgZm9sbG93aW5nIHRoaW5ncyB0byBub3RpY2U6DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiAxLiBJbiB0ZXN0cG1kLCBHUk8gaXMgc3VwcG9ydGVkIGJ5IGNzdW0gZm9yd2FyZGlu ZyBlbmdpbmUuDQo+ID4gPiA+ID4gVGhlcmVmb3JlLCBwbGVhc2UgdXNlICdzZXQgZndkIGNzdW0n IHRvIHN3aXRjaCBmb3J3YXJkaW5nIGVuZ2luZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IDIuIEJ5 IGRlZmF1bHQsIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgY29tcHVsc29yaWx5IGNoYW5nZXMgDQo+ ID4gPiA+ID4gZXRoZXJuZXQgYWRkcmVzc2VzLiBTbyBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgTUFD IGFkZHJlc3NlcyBhcmUNCj4gPiBjb3JyZWN0Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMy4gV2hl biBlbmFibGUgR1JPIGZvciBwb3J0MCwgY3N1bSBmb3J3YXJkaW5nIGVuZ2luZSB3aWxsIA0KPiA+ ID4gPiA+IG1lcmdlIHBhY2tldHMgcmVjZWl2ZWQgZnJvbSBwb3J0MC4gSWYgdGhlcmUgYXJlIG5v IHBhY2tldHMgDQo+ID4gPiA+ID4gZnJvbSBwb3J0MSB0byBwb3J0MCwgeW91IGRvbid0IG5lZWQg dG8gZW5hYmxlIEdSTyBmb3IgcG9ydDEuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA0LiBHUk8gbGli cmFyeSBkb2Vzbid0IHJlLWNhbGN1bGF0ZSBjaGVja3N1bXMgZm9yIG1lcmdlZCBwYWNrZXRzLg0K PiA+ID4gPiA+IElmIHlvdSB3YW50IG1lcmdlZCBwYWNrZXRzIGhhdmUgY29ycmVjdCBjaGVja3N1 bSwgcGxlYXNlIA0KPiA+ID4gPiA+IHNlbGVjdCBIVyBJUCBhbmQgSFcgVENQIGNoZWNrc3VtIGNh bGN1bGF0aW9uIGZvciB0aGUgcG9ydCANCj4gPiA+ID4gPiB3aGljaCB0aGUgbWVyZ2VkIHBhY2tl dHMgYXJlIHRyYW5zbWl0dGVkIHRvIGluIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUuDQo+ID4gPiA+ ID4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtZXJnZWQgcGFja2V0cyBhcmUgbXVsdGktc2VnbWVudCBt YnVmcywgDQo+ID4gPiA+ID4gYnV0IGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgZG9lc24ndCBzdXBw b3J0IHRvIGNhbGN1bGF0ZSANCj4gPiA+ID4gPiBjaGVja3N1bXMgZm9yIG11bHRpLXNlZ21lbnQg bWJ1ZnMgaW4gU1cuIFNvIHdlIG5lZWQgdG8gc2VsZWN0IA0KPiA+ID4gPiA+IEhXIGNoZWNrc3Vt DQo+ID4gPiBvZmZsb2FkaW5nLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gZS5nLiBJZiBkYXRhIGZs b3cgaXMgInBhY2tldHMgLT4gcG9ydDAgLT4gcG9ydDEiLCBjb21tYW5kcyANCj4gPiA+ID4gPiB1 c2VkIGluDQo+ID4gPiB0ZXN0cG1kOg0KPiA+ID4gPiA+IAlncm8gb24gcG9ydDANCj4gPiA+ID4g PiAJc2V0IGZ3ZCBjc3VtDQo+ID4gPiA+ID4gCWNzdW0gc2V0IGlwIGh3IHBvcnQxDQo+ID4gPiA+ ID4gCWNzdW0gc2V0IHRjcCBodyBwb3J0MQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBCZXNpZGVzLCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB5b3VyIFBNRCBkcml2ZXIgZG9l c24ndCANCj4gPiA+ID4gPiB1c2UgdmVjdG9yIFRYIGZ1bmN0aW9uLCBzaW5jZSB2ZWN0b3IgZnVu Y3Rpb24gZG9lc24ndCBzdXBwb3J0IA0KPiA+ID4gPiA+IGNoZWNrc3VtDQo+ID4gPiBvZmZsb2Fk aW5nLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBbmQgdHJ5aW5n IHRvIHNlbmQgVENQX0lQVjQgZnJhZ21lbnRlZCBwYWNrZXQg4oCccGFja2V0IHdpdGggDQo+ID4g PiA+ID4gPiBsZW5ndGgNCj4gPiA+ID4gPiA+IDE1MDAgZnJhZ21lbnRlZCB0byB0aHJlZSBwYWNr ZXRzIG9mIDUwMOKAnQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IHA9RXRoZXIoc3JjPWdldF9pZl9od2FkZHIoJ2VuczEwJyksIGRz dD0NCj4gPiA+ID4gPiA+ICcyNDo4QTowNzo4ODoyNjo2QicpL0lQKCkvVENQKCkNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBwLmFkZF9wYXlsb2FkKCdGJyooMTUwMCAtIGxlbihwKSkpDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gZnJhZ3M9ZnJhZ21lbnQocCxmcmFnc2l6ZT01MDApDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gZm9yIGZyYWdtZW50IGluIGZyYWdzOg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ICAgICAgc2VuZHAoZnJhZ21lbnQsIGlmYWNlPSdlbnMxMCcpDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBCdXQgdGhlIHRlc3RwbWQgZm9yd2FyZCB0aGUgcGFja2V0 cyBhcyBpdCBpcywg4oCcIGRvZXNu4oCZdCBkbyBhbnkgbWVyZ2XigJ0NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRjcGR1bXAgYXQgdGhlIFRHIHNp ZGUsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlIHNlbmRpbmcgZnJhZ21ldHMgdXNpbmcg ZW5zMTA6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gI3RjcGR1bXAg4oCTSSBlbnMxMCDigJN2 dnZlbg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IDE1OjQ1OjI5LjA4MzUxNCAyNDo4YTowNzo4 ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCANCj4gPiA+ID4gPiA+IGV0aGVydHlwZQ0KPiA+ ID4gPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDUzODogKHRvcyAweDAsIHR0bCA2NCwgaWQg MSwgb2Zmc2V0IDAsIA0KPiA+ID4gPiA+ID4gZmxhZ3MgWytdLCBwcm90byBPcHRpb25zICgwKSwg bGVuZ3RoIDUyNCkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3 LjAuMC4xOiAgaXAtcHJvdG8tMCA1MDQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAxNTo0NToy OS4xMTUyNjYgMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgDQo+ID4gPiA+ ID4gPiBldGhlcnR5cGUNCj4gPiA+ID4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0 b3MgMHgwLCB0dGwgNjQsIGlkIDEsIG9mZnNldCANCj4gPiA+ID4gPiA+IDUwNCwgZmxhZ3MgWytd LCBwcm90byBPcHRpb25zICgwKSwgbGVuZ3RoIDUyNCkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiAgICAgMTI3LjAuMC4xID4gMTI3LjAuMC4xOiBpcC1wcm90by0wDQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gMTU6NDU6MjkuMTQ3MjU4IDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6 MjY6NmIsIA0KPiA+ID4gPiA+ID4gZXRoZXJ0eXBlDQo+ID4gPiA+ID4gPiBJUHY0ICgweDA4MDAp LCBsZW5ndGggNDkyOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgDQo+ID4gPiA+ID4g PiAxMDA4LCBmbGFncyBbbm9uZV0sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5ndGggNDc4KQ0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6IGlwLXByb3Rv LTANCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICN0 Y3BkdW1wIC1pIGVuczkg4oCTdnZ2ZW4gIC8vLyBoZXJlIHdpbGwgYmUgcmVjZWl2ZWQgdGhlIA0K PiA+ID4gPiA+ID4gZm9yd2FyZGVkIHBhY2tldHMgZnJvbQ0KPiA+ID4gPiA+ID4gdGVzdHBtZDoN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAxNTo0NToyOS4wODM5OTYgMjQ6OGE6MDc6ODg6MjY6 NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgDQo+ID4gPiA+ID4gPiBldGhlcnR5cGUNCj4gPiA+ID4g PiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDEsIG9m ZnNldCAwLCANCj4gPiA+ID4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0 aCA1MjQpDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAu MTogIGlwLXByb3RvLTAgNTA0DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMTU6NDU6MjkuMTE1 NDI1IDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsIA0KPiA+ID4gPiA+ID4g ZXRoZXJ0eXBlDQo+ID4gPiA+ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4 MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgDQo+ID4gPiA+ID4gPiA1MDQsIGZsYWdzIFsrXSwgcHJv dG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAg IDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IDE1OjQ1OjI5LjE0NzQ5MiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZi LCANCj4gPiA+ID4gPiA+IGV0aGVydHlwZQ0KPiA+ID4gPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVu Z3RoIDQ5MjogKHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0IA0KPiA+ID4gPiA+ID4gMTAw OCwgZmxhZ3MgW25vbmVdLCBwcm90byBPcHRpb25zICgwKSwgbGVuZ3RoIDQ3OCkNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3LjAuMC4xOiBpcC1wcm90by0wDQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IEFtIEkgZG9pbmcgc29tZXRoaW5nIHdyb25nPyEgT3IgaXQgaXMg YSBidWcuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gw6ggQXMgeW91IHNlZSB0aGUgdGNwZHVt cCBzaG93cyB0aGUgb2Zmc2V0IG9mIGVhY2ggZnJhZ21lbnQsIA0KPiA+ID4gPiA+ID4gYW5kIHRl c3RwbWQgcHJpbnRzIEw0X0ZSQUcsIHNvIHRoZSBib3RoIGFyZSByZWNvZ25pemluZyB0aGF0IA0K PiA+ID4gPiA+ID4gdGhpcyBpcyBhDQo+ID4gPiA+ID4gZnJhZ21lbnRlZCBwYWNrZXQuDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBHUk8gbGlicmFyeSBtZXJnZXMgVFNPZWQvR1NPZWQgcGFja2V0cywg d2hvc2UgSVAgSURzIGFuZCBUQ1ANCj4gPiA+ID4gc2VxdWVuY2VzDQo+ID4gPiA+ID4gYXJlIGJv dGggY29uc2VjdXRpdmUuIElmIGlucHV0IHBhY2tldHMgaGF2ZSBzYW1lIElQIElEcywgbm8gDQo+ ID4gPiA+ID4gcGFja2V0cyB3aWxsIGJlIG1lcmdlZC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJU VywgeW91IGNhbiB1c2UgaXBlcmYgdG8gdGVzdCBHUk8gZmVhdHVyZS4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IEJlc3QgUmVnYXJkcywNCj4gPiA+ID4gPiBKaWF5dQ0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBCZXN0IHJlZ2FyZHMs DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gV2lzYW0gSmFkZG8NCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4NCg==