From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20064.outbound.protection.outlook.com [40.107.2.64]) by dpdk.org (Postfix) with ESMTP id DAE8016829 for ; Thu, 7 Sep 2017 09:19:16 +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=0Z79lebbbb7aFOl02XE7qtR87wcCCj2S8yI9rp/0Xt8=; b=RApP9QT1UGcXBQY9EpnX95sLZzDtKT763hqwufluWVowgD3HFCuqrD5H8RgcTqqY4q4h8216E49tgwtaeHqn+LNinuCC3gLrq62aij0PIrmfXWVp3tOGAnPb34myyvhu+aSxN2B/VymHRhrErWUEIrYYCBG/E2AeXEyNwRHAYTk= Received: from AM3PR05MB307.eurprd05.prod.outlook.com (10.242.247.152) by AM3PR05MB0839.eurprd05.prod.outlook.com (10.161.33.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12; Thu, 7 Sep 2017 07:19:14 +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 07:19:14 +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+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosADMAwaAACXOZZAAC76hwAGa1cBQABz64GAADFFDsA== Date: Thu, 7 Sep 2017 07:19:13 +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; AM3PR05MB0839; 6:Xt5VkEceDCZnT9dW81M3wE/FDV5hntaskpJcl8M9KnPr3qSShjB1nwDsErwL0ZGULuw15mQaYbwuygan+e0DrHyc3B4GE4RQnhCF+VQbvY+XbUzee8MgZyv8so/J58H1zyKCvrLR+D6jh5yMcc46cJHwgebTeCcmQ8ttFhrWRvyUmjxhZz/PlFoD+Je56VM+tadLhqFFremFkX46C5JtrQ7pn/eN//nIekalMK+6hkXR/dwFFRC8E+FmKBivBDog1/dxFHjJvT6aPwdLfuD7be4/6zTUqjyB2hR4kmpOOZ2ibMBbJ7r0WFsgniEhoNgzWkWM+dLHsqf1fc5CjMBbug==; 5:aiIHA0kVfq8GJe8KkRZcblM5gXpRUvMOKKx/dIAwdFSaM5ADmo/Qa+5LWwCIT1TjiJKVxn14yGBlnnUOy+dENS2E6DSP0JdVH3UT/X2x/ASauOtSj9w/yKbT1Aq4l6xo3dueAQQhf37vuyaKLKEfyQ==; 24:PVSLyedcSBeimuxLpLGSaeaR0T+sqI+7N5xblEo2dXNAYdiKC17LBqSifHKagV8aDUYEMHl3GNSAZdgn7A+3SFgIkZV5U5YD1fJbtmaAqT0=; 7:pdDPOD/vSjrum5O0quyn0n1tTA0v98AoPZG4QL5zLGP87NknfhPmxznqDUji8aFjZHag2ueH8P8Crf74Q/IMuPC7yI570d9syt+bRwXVBEbgujujF5UL1/8eaSg4V0tHKK0iHu1uz4xfoyD9EiXLDQ7B+Qe9ovhC+Hjdiopp3o6hFcmvjw6rrKr2S9ln2DVtsfsYj+wq6lgWgxJSKqzBTzgnqYriPdS8Sw8HN4fuhWs= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: e54f2ea4-01d8-4fa1-cf2d-08d4f5c0be51 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM3PR05MB0839; x-ms-traffictypediagnostic: AM3PR05MB0839: 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)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123555025)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM3PR05MB0839; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM3PR05MB0839; x-forefront-prvs: 04238CD941 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(199003)(377454003)(24454002)(13464003)(189002)(2906002)(8936002)(345774005)(86362001)(101416001)(6116002)(478600001)(3846002)(68736007)(102836003)(74316002)(33656002)(25786009)(189998001)(93886005)(97736004)(305945005)(7736002)(81166006)(8676002)(81156014)(14454004)(6506006)(6436002)(5250100002)(3280700002)(2900100001)(50986999)(4326008)(55016002)(229853002)(105586002)(106356001)(66066001)(7696004)(5660300001)(5890100001)(6246003)(6916009)(54356999)(76176999)(2950100002)(107886003)(110136004)(3660700001)(54906002)(53936002)(53546010)(9686003)(99286003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR05MB0839; 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 07:19:13.9453 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR05MB0839 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 07:19:17 -0000 SGkgSmlheXUsDQoNCkZpcnN0IG9mIGFsbCwgSSBhcHByZWNpYXRlIHlvdXIgZWZmb3J0cyB3aXRo IG1lIDopIA0KVGhlIHRoaW5nIHRoYXQgdGhlIHBhY2tldHMgZGlkbid0IGRyb3BwZWQgd2hlbiBJ IHVzZWQgYSBwYWNrZXQgd2l0aCAxNTAwIGluIHRvdGFsIGFzIGEgdGhyZWUgc2VnbWVudHMgb2Yg NTAwLA0KU28sIGV2ZW4gd2hlbiBlbmFibGUgZ3JvLCB0ZXN0cG1kIHdpbGwgZndkIHRoZSByZWNl aXZlZCBzZWdtZW50cyBhcyBpdC4NCiJTbyBhY2NvcmRpbmcgdG8gdGhpcyBiZWhhdmlvciB3ZSBj b25jbHVkZSB0aGF0IGl0J3MgZGlkbid0IHJlYWNoIHRoZSBsaW1pdCwgYW5kIGFsc28gdGhlIEdS TyBkaWRuJ3Qgd29yayINCg0KQ291bGQgYmUgdGhlcmUgc29tZSBjb25zdHJhaW50cyBmb3IgTUxY IGRyaXZlciBvciBNTFggTklDcyByZWdhcmRzIEdSTz8gDQoNCkJlc3QgcmVnYXJkcywNCldpc2Ft IEphZGRvDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBIdSwgSmlheXUgW21h aWx0bzpqaWF5dS5odUBpbnRlbC5jb21dIA0KU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAy MDE3IDQ6MTUgQU0NClRvOiBXaXNhbSBNb250aGVyDQpDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xh biBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINClN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2Ug cGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KDQpIaSBXaXNhbSwNCg0KV2hlbiB3ZSBwZXJmb3Jt IGEgc2ltaWxhciB0ZXN0IG9uIGk0MGUsIHdlIGZpbmQgYW4gaW1wb3J0YW50IHRoaW5nOg0KdGhl cmUgaXMgYSBtYXggbnVtYmVyIGxpbWl0IGZvciBtYnVmLT5uYl9zZWdzLiBXaGVuIHRoZSBudW1i ZXIgb2YgTUJVRiBzZWdtZW50cyBvZiB0aGUgcGFja2V0IGlzIGxhcmdlciB0aGFuIHRoaXMgbGlt aXQsIHRoZSBwYWNrZXQgd2lsbCBiZSBkcm9wcGVkLg0KDQpUaGUgR1JPZWQgcGFja2V0IGhhcyBt dWx0aXBsZSBNQlVGIHNlZ21lbnRzLiBGb3Igdmhvc3QtZHBkaywgaXQgZG9lc24ndCBoYXZlIGxp bWl0IGZvciB0aGUgbnVtYmVyIG9mIHNlZ21lbnRzLiBCdXQgaXQncyBub3QgdGhlIHNhbWUgZm9y IGFsbCBOSUMgZHJpdmVycy4gU28gSSBzdWdnZXN0IHlvdSB0byBjaGVjayBpZiB0aGUgTUxYIGRy aXZlciBoYXMgdGhpcyBsaW1pdCB0b28uDQoNClRoYW5rcywNCkppYXl1DQoNCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV2lzYW0gTW9udGhlciBbbWFpbHRvOndpc2FtbUBt ZWxsYW5veC5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDYsIDIwMTcgNzoxOCBQ TQ0KPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+IENjOiB1c2Vyc0BkcGRr Lm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYgDQo+ IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8g bWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiANCj4gSGkgSmlheXUsDQo+IA0KPiBB bnkgY29tbWVudCByZWdhcmQgd2hhdCBJIGRlc2NyaWJlZD8NCj4gDQo+IEJScywNCj4gV2lzYW0g SmFkZG8NCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdpc2FtIE1v bnRoZXINCj4gU2VudDogVHVlc2RheSwgQXVndXN0IDI5LCAyMDE3IDEwOjQ5IEFNDQo+IFRvOiAn SHUsIEppYXl1Jw0KPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhh ZiBTaHVsZXINCj4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdS TyBmZWF0dXJlDQo+IA0KPiBIaSBKaWF5dSwNCj4gDQo+IExldCBtZSByZS1kZXNjcmliZSBteSB0 b3BvbG9neSBpbiBhIGJldHRlciB3YXksIHNlZSBhdHRhY2hlZCBpbWFnZS4NCj4gQW5kIGl0IGlz IGNvbm5lY3RlZCBwaHlzaWNhbGx5IGFzIGRlc2NyaWJlZCwgYW5kIEknbSB1c2luZyBpdCB3aXRo IE1UVQ0KPiBzaXplPTE1MDAgaW4gb3JkZXIgdG8gbWFrZSBzdXJlIEV2ZXJ5IHBvcnQgY2FuIGhh bmRsZSBpdC4NCj4gDQo+IEFuZCB0aGlzIGlzIHRoZSBleGFjdCBjb25uZWN0aW9uIGJldHdlZW4g dGhlIGludGVyZmFjZXMsIHNvIEknbSBzdXJlIA0KPiB0aGUgcGFja2V0cyByZWNlaXZlZCBpbiBO SUMgQiBtYWNoaW5lIEIgaXMgY29taW5nIGZyb20gdGhlIHRlc3RwbWQgDQo+IHdpdGggR1JPIGVu YWJsZWQuDQo+IA0KPiBCdXQgZXZlbiBzbywgSSBpbnRlbnRpb25hbGx5IG1hZGUgdGhlIHBhY2tl dCBzaXplIDE1MDAsIHRvIGJlIGRpdmlkZWQgDQo+IGludG8gMyAqICggNTAwKSBmcmFnbWVudHMg dXNpbmcgdGhlIFRTTywgYW5kIHRoZW4gbWVyZ2VkIGludG8gMTUwMCANCj4gcGFja2V0IGFnYWlu IGluIHRoZSBHUk8uDQo+IFNvIHRoZSBldmVyeSBtYWNoaW5lIGNhbiBtYW5hZ2UgdGhpcyBtdHUg c2l6ZS4NCj4gDQo+IFRoZSB0aGluZyB0aGF0IEkgbmVlZCB0byB0ZXN0IEdSTyB3aXRoIGVhY2gg c2V0dXBzIHR5cGVzLCAiVk1zIHdpdGggDQo+IEJhcmVtZXRhbCB3aXRoIHBhc3MgdGhyb3VnaCB3 aXRoIFZGcyBldGMuLi4iLg0KPiBTbyBJIG5lZWQgdG8gc2VlIHRoZSBmZWF0dXJlIHdvcmtzIG9u IGxlYXN0IHdvcmssIGl0IHdvdWxkIGJlIG5pY2UgdG8gDQo+IHNlbmQgSVBWNF9UQ1AgZnJhZ21l bnRlZCBwYWNrZXQgdXNpbmcgInNjYXB5LCBJcGVyZiINCj4gQW5kIGNoZWNrIHRoZSBmd2QgcGFj a2V0IGZyb20gR1JPIGRpcmVjdGx5Lg0KPiANCj4gQlJzLA0KPiBXaXNhbSBKYWRkbw0KPiANCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSHUsIEppYXl1IFttYWlsdG86amlh eXUuaHVAaW50ZWwuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjksIDIwMTcgNDo1MSBB TQ0KPiBUbzogV2lzYW0gTW9udGhlcg0KPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJh d3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNr ZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+IA0KPiBIaSBXaXNhbSwNCj4gDQo+IEluIHRoZSBwaWN0 dXJlIG9mIHlvdXIgZXhwZXJpbWVudCB0b3BvbG9neSwgSSBndWVzcyBOSUMgQiBpbiB0aGUgDQo+ IG1hY2hpbmUgQiBpcyBjb25uZWN0ZWQgd2l0aCBhbm90aGVyIGludGVyZmFjZSBwaHlzaWNhbGx5 LiBJZiBzbywgdGhlIA0KPiBwYWNrZXRzIHRoYXQgdGNwZHVtcCBjYXB0dXJlcyBhcmUgZnJvbSB0 aGUgcGh5c2ljYWwgbGluay4gSG93ZXZlciwgDQo+IHBhY2tldHMgYWZ0ZXIgR1JPZWQgYXJlIG11 bHRpLSBzZWdtZW50IGxhcmdlIHBhY2tldHMsIHdoaWNoIGFyZSBsYXJnZXIgDQo+IHRoYW4gTVRV LiBJIGFtIG5vdCBzdXJlIGlmIHlvdSBoYXZlIG1ha2Ugb3RoZXIgY29uZmlndXJhdGlvbnMgdG8g DQo+IGVuYWJsZSB0aGVzZSBsYXJnZSBwYWNrZXRzIHRvIHBhc3MgdGhlIHBoeXNpY2FsIGxpbmss IGFuZCB0aGVyZSBpcyANCj4ganVtYm8gZnJhbWUgc2l6ZSBsaW1pdCBmb3IgZGlmZmVyZW50IE5J Q3MuIFNvIHdvdWxkIHlvdSBwbGVhc2UgdG8gDQo+IGNoZWNrIHRoaXM/IEJUVywgeW91IGNhbiB1 c2UgdGhlIFZNIHRvIHRlc3QgdGhpcyBHUk8gZmVhdHVyZSwgc2luY2UgbGFyZ2UgcGFja2V0cyBj YW4gYWx3YXlzIHBhc3MgdG8gdGhlIFZNLg0KPiANCj4gVGhhbmtzLA0KPiBKaWF5dQ0KPiANCj4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFdpc2FtIE1vbnRoZXIgW21h aWx0bzp3aXNhbW1AbWVsbGFub3guY29tXQ0KPiA+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDI4LCAy MDE3IDM6MzcgUE0NCj4gPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+ID4g Q2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoIDxyYXNsYW5kQG1lbGxhbm94LmNv bT47IFNoYWhhZiANCj4gPiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPg0KPiA+IFN1Ympl Y3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+DQo+ ID4gSGkgSmlheXUsDQo+ID4NCj4gPiBJJ20gc29ycnkgZm9yIGJvdGhlcmluZyB5b3UsIGJ1dCBj b3VsZCB5b3UgY29uZm9ybSB0aGF0IHRoZSBmZWF0dXJlIA0KPiA+IGlzIHdvcmtpbmcgcHJvYmFi bHkgQmVjYXVzZSwgd2hhdCBJIGV2ZXIgIGRpZCwgSSBjb3VsZG4ndCBnZXQgdGhlIA0KPiA+IG1l cmdlZCBwYWNrZXRzLg0KPiA+DQo+ID4gQlJzLA0KPiA+IFdpc2FtIEphZGRvDQo+ID4NCj4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFdpc2FtIE1vbnRoZXINCj4gPiBT ZW50OiBUaHVyc2RheSwgQXVndXN0IDI0LCAyMDE3IDk6MTUgQU0NCj4gPiBUbzogJ0h1LCBKaWF5 dScNCj4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVs ZXINCj4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZl YXR1cmUNCj4gPg0KPiA+IEhpLA0KPiA+DQo+ID4gSSdtIHVzaW5nIE1lbGxhbm94IE5JQ3MsIGFu ZCBpdCBpcyBzdXBwb3J0aW5nIHBhcnNlIHBhY2tldCB0eXBlcy4NCj4gPg0KPiA+IEJlc3QgcmVn YXJkcywNCj4gPiBXaXNhbSBKYWRkbw0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiBGcm9tOiBIdSwgSmlheXUgW21haWx0bzpqaWF5dS5odUBpbnRlbC5jb21dDQo+ID4g U2VudDogVGh1cnNkYXksIEF1Z3VzdCAyNCwgMjAxNyA4OjQ3IEFNDQo+ID4gVG86IFdpc2FtIE1v bnRoZXINCj4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBT aHVsZXINCj4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JP IGZlYXR1cmUNCj4gPg0KPiA+IEhpLA0KPiA+DQo+ID4gQ2FuIHlvdSB0ZWxsIG1lIHdoYXQncyB0 aGUgTklDIHR5cGUgb2YgdGhlIEdSTy1lbmFibGVkIHBvcnQ/DQo+ID4NCj4gPiBTaW5jZSBHUk8g bGlicmFyeSB1c2VzIG1idWYtPnBhY2tldF90eXBlIHRvIHBhcnNlIHBhY2tldCBoZWFkZXJzLCAN Cj4gPiBhcHBsaWNhdGlvbnMgbmVlZCB0byBmaWxsIHRoaXMgdmFsdWUgYmVmb3JlIGNhbGxpbmcg R1JPIHJlYXNzZW1ibHkgQVBJcy4NCj4gPiBPdGhlcndpc2UsIHRoZSBHUk8gY2FuJ3Qgd29yayBj b3JyZWN0bHkuDQo+ID4NCj4gPiBJbiBjc3VtIGZvcndhcmRpbmcgZW5naW5lIG9mIHRlc3RwbWQs IHBhY2tldF90eXBlIGlzIGZpbGxlZCBieSBOSUMgZHJpdmVycy4NCj4gPiBUaGUgY3N1bSBmb3J3 YXJkaW5nIGVuZ2luZSB3b24ndCBzZXQgdGhpcyB2YWx1ZS4gU28gaWYgeW91ciBOSUMgDQo+ID4g ZG9lc27igJl0IHN1cHBvcnQgdG8gcGFyc2UgcGFja2V0IHR5cGVzLCB0aGUgdmFsdWUgb2YgcGFj a2V0X3R5cGUgaXMgMCANCj4gPiBhbmQgR1JPIGNhbid0IHdvcmsgY29ycmVjdGx5Lg0KPiA+DQo+ ID4gQlJzLA0KPiA+IEppYXl1DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1lbGxhbm94LmNvbV0N Cj4gPiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyMiwgMjAxNyA5OjI1IFBNDQo+ID4gPiBUbzog SHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+ID4gPiBDYzogdXNlcnNAZHBkay5vcmc7 IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsNCj4gU2hhaGFmDQo+ID4g PiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFVuYWJs ZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4gPg0KPiA+ID4gWWVzIGl0 IGlzLA0KPiA+ID4gVGhlIGZyYWdtZW50ZWQgcGFja2V0cyBjb21lcyBmcm9tIHBvcnQxIC8gTklD IGIgZnJvbSBtYWNoaW5lIEEgdG8gDQo+ID4gPiBwb3J0DQo+ID4gPiAxIGluIE5JQyBBIGZvciBt YWNoaW5lIGIgU28gaXQncyByZWNlaXZlZCBvbiB0aGUgcG9ydCAnMScsIHdoaWNoIA0KPiA+ID4g aXMgY29uZmlndXJlZCBncm8gYWN0aXZlIG9uIHRoaXMgcG9ydC4NCj4gPiA+DQo+ID4gPiBCZXN0 IHJlZ2FyZHMsDQo+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBIdSwgSmlheXUgW21haWx0bzpqaWF5dS5odUBpbnRl bC5jb21dDQo+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIsIDIwMTcgNDoyMSBQTQ0KPiA+ ID4gVG86IFdpc2FtIE1vbnRoZXINCj4gPiA+IENjOiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERh cmF3c2hlaDsgU2hhaGFmIFNodWxlcg0KPiA+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJn ZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4gPg0KPiA+ID4gSGksDQo+ID4gPg0KPiA+ ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBXaXNhbSBNb250 aGVyIFttYWlsdG86d2lzYW1tQG1lbGxhbm94LmNvbV0NCj4gPiA+ID4gU2VudDogVHVlc2RheSwg QXVndXN0IDIyLCAyMDE3IDc6MDcgUE0NCj4gPiA+ID4gVG86IEh1LCBKaWF5dSA8amlheXUuaHVA aW50ZWwuY29tPg0KPiA+ID4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWgg PHJhc2xhbmRAbWVsbGFub3guY29tPjsNCj4gPiBTaGFoYWYNCj4gPiA+ID4gU2h1bGVyIDxzaGFo YWZzQG1lbGxhbm94LmNvbT4NCj4gPiA+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBw YWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4gPiA+DQo+ID4gPiA+IEhleSBKaWF5dSwNCj4g PiA+ID4NCj4gPiA+ID4gVGhhbmsgeW91IGZvciB5b3VyIHJlcGx5Lg0KPiA+ID4gPiBJIHRyaWVk IHdoYXQgeW91IHNhaWQgd2l0aCB0aGUgY3N1bSBhdCBmd2QgbW9kZS4NCj4gPiA+ID4gRXZlbiBz byB0aGUgR1JPIGRpZG4ndCB3b3JrcyBmaW5lLg0KPiA+ID4gPg0KPiA+ID4gPiBJIGV2ZW4gdGVz dGVkIHdpdGggYSBuZXcgbWV0aG9kb2xvZ3kuDQo+ID4gPiA+IFR3byBtYWNoaW5lcyB3aXRoIHR3 byBkaWZmZXJlbnQgbmljIGZvciBlYWNoLg0KPiA+ID4gPiBUaGUgbWV0aG9kb2xvZ3kgdGhhdCBJ IHVzZWQgdG8gdGVzdCBpdCBpcyBkZXNjcmliZWQgaW4gdGhlIGF0dGFjaGVkIGZpbGUuDQo+ID4g PiA+DQo+ID4gPiA+IFdoYXQgSSBkaWQgZnJvbSBncm8gc2lkZToNCj4gPiA+ID4gIiIiDQo+ID4g PiA+IHRlc3RwbWQ+Z3JvIG9uIDENCj4gPiA+DQo+ID4gPiBEb2VzIHRoZSBwb3J0IG51bWJlciBv ZiBOSUMgQSBpbiBtYWNoaW5lIEIgaXMgJzEnPyBXaGVuIHlvdSBlbmFibGUgDQo+ID4gPiBHUk8g Zm9yIHBvcnQgJzEnLCBUZXN0cG1kIG9ubHkgdHJpZXMgdG8gbWVyZ2UgcGFja2V0cyByZWNlaXZl ZCANCj4gPiA+IGZyb20gcG9ydA0KPiAnMScuDQo+ID4gPg0KPiA+ID4gQlJzLA0KPiA+ID4gSmlh eXUNCj4gPiA+DQo+ID4gPiA+IFRlc3RwbWQ+c2V0IGZ3ZCBjc3VtDQo+ID4gPiA+IFRlc3RwbWQ+ c3RhcnQNCj4gPiA+ID4gIiIiDQo+ID4gPiA+IEFuZCB0aGUgcGFja2V0IHdpdGggY29ycmVjdCBk c3QgbWFjLg0KPiA+ID4gPg0KPiA+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gPiA+IFdpc2FtIEph ZGRvDQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IEpp YXl1IEh1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiA+ID4gPiBTZW50OiBNb25kYXks IEF1Z3VzdCAyMSwgMjAxNyAxMjoxNCBQTQ0KPiA+ID4gPiBUbzogV2lzYW0gTW9udGhlcg0KPiA+ ID4gPiBDYzogVGhvbWFzIE1vbmphbG9uOyB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hl aDsgU2hhaGFmIA0KPiA+ID4gPiBTaHVsZXINCj4gPiA+ID4gU3ViamVjdDogUmU6IFVuYWJsZSB0 byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4gPiA+DQo+ID4gPiA+IEhpLA0K PiA+ID4gPg0KPiA+ID4gPiBPbiBNb24sIEF1ZyAyMSwgMjAxNyBhdCAwNzoyNToyM0FNICswMDAw LCBXaXNhbSBNb250aGVyIHdyb3RlOg0KPiA+ID4gPiA+IEhlbGxvIEd1eXMsDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBob3BlIHRoaXMgZmluZHMgeW91IHdl bGwsIEnigJltIHRyeWluZyB0byB0ZXN0IHRoZSBHUk8gZmVhdHVyZS4NCj4gPiA+ID4gPiBCdXQg SeKAmW0gc3R1Y2sgd2l0aCB0aGlzIHNjZW5hcmlvLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQXMg eW91IGtub3csIEdSTyBpcyBvbmx5IHN1cHBvcnQgVENQX0lQVjQgcGFja2V0IHVudGlsIG5vdy4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFNvIEnigJltIHRyeWluZyB0byB0ZXN0IHRoZSBiYXNpYyBm dW5jdGlvbmFsaXR5IG9mIHRoZSBmZWF0dXJlLCANCj4gPiA+ID4gPiBhcw0KPiBmb2xsb3dpbmc6 DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTdGFydCB0ZXN0cG1kOg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4g4oCc4oCd4oCdDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAuL3g4Nl82NC1uYXRpdmUtbGludXhh cHAtZ2NjL2J1aWxkL2FwcC90ZXN0LXBtZC90ZXN0cG1kIC1uIDQgIA0KPiA+ID4gPiA+IC13DQo+ ID4gPiA+ID4gMDA6MGEuMCAgLXcNCj4gPiA+ID4gPiAwMDowOS4wIC0tICAtLWJ1cnN0PTY0IC0t bWJjYWNoZT01MTIgLS1wb3J0bWFzayAweGYgLWkNCj4gPiA+ID4gPiAtLXR4ZD01MTINCj4gPiA+ ID4gPiAtLXJ4ZD01MTINCj4gPiA+ID4gPiAtLW5iLWNvcmVzPTkgIC0tcnhxPTIgLS10eHE9MiAt LXR4cWZsYWdzPTANCj4gPiA+ID4gPg0KPiA+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoZW4gZW5hYmxlIEdSTyBhdCB0aGUgdHdv IHBvcnRzOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBUZXN0cG1kPmdybyBvbiAwDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUZXN0cG1kPmdybyBv biAxDQo+ID4gPiA+DQo+ID4gPiA+IFdoZW4gdXNlIEdSTyBpbiB0ZXN0cG1kLCB0aGVyZSBhcmUg Zm9sbG93aW5nIHRoaW5ncyB0byBub3RpY2U6DQo+ID4gPiA+DQo+ID4gPiA+IDEuIEluIHRlc3Rw bWQsIEdSTyBpcyBzdXBwb3J0ZWQgYnkgY3N1bSBmb3J3YXJkaW5nIGVuZ2luZS4NCj4gPiA+ID4g VGhlcmVmb3JlLCBwbGVhc2UgdXNlICdzZXQgZndkIGNzdW0nIHRvIHN3aXRjaCBmb3J3YXJkaW5n IGVuZ2luZS4NCj4gPiA+ID4NCj4gPiA+ID4gMi4gQnkgZGVmYXVsdCwgY3N1bSBmb3J3YXJkaW5n IGVuZ2luZSBjb21wdWxzb3JpbHkgY2hhbmdlcyANCj4gPiA+ID4gZXRoZXJuZXQgYWRkcmVzc2Vz LiBTbyBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgTUFDIGFkZHJlc3NlcyBhcmUNCj4gY29ycmVjdC4N Cj4gPiA+ID4NCj4gPiA+ID4gMy4gV2hlbiBlbmFibGUgR1JPIGZvciBwb3J0MCwgY3N1bSBmb3J3 YXJkaW5nIGVuZ2luZSB3aWxsIG1lcmdlIA0KPiA+ID4gPiBwYWNrZXRzIHJlY2VpdmVkIGZyb20g cG9ydDAuIElmIHRoZXJlIGFyZSBubyBwYWNrZXRzIGZyb20gcG9ydDEgDQo+ID4gPiA+IHRvIHBv cnQwLCB5b3UgZG9uJ3QgbmVlZCB0byBlbmFibGUgR1JPIGZvciBwb3J0MS4NCj4gPiA+ID4NCj4g PiA+ID4gNC4gR1JPIGxpYnJhcnkgZG9lc24ndCByZS1jYWxjdWxhdGUgY2hlY2tzdW1zIGZvciBt ZXJnZWQgcGFja2V0cy4NCj4gPiA+ID4gSWYgeW91IHdhbnQgbWVyZ2VkIHBhY2tldHMgaGF2ZSBj b3JyZWN0IGNoZWNrc3VtLCBwbGVhc2Ugc2VsZWN0IA0KPiA+ID4gPiBIVyBJUCBhbmQgSFcgVENQ IGNoZWNrc3VtIGNhbGN1bGF0aW9uIGZvciB0aGUgcG9ydCB3aGljaCB0aGUgDQo+ID4gPiA+IG1l cmdlZCBwYWNrZXRzIGFyZSB0cmFuc21pdHRlZCB0byBpbiBjc3VtIGZvcndhcmRpbmcgZW5naW5l Lg0KPiA+ID4gPiBUaGlzIGlzIGJlY2F1c2UgdGhlIG1lcmdlZCBwYWNrZXRzIGFyZSBtdWx0aS1z ZWdtZW50IG1idWZzLCBidXQgDQo+ID4gPiA+IGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgZG9lc24n dCBzdXBwb3J0IHRvIGNhbGN1bGF0ZSBjaGVja3N1bXMgDQo+ID4gPiA+IGZvciBtdWx0aS1zZWdt ZW50IG1idWZzIGluIFNXLiBTbyB3ZSBuZWVkIHRvIHNlbGVjdCBIVyBjaGVja3N1bQ0KPiA+IG9m ZmxvYWRpbmcuDQo+ID4gPiA+DQo+ID4gPiA+IGUuZy4gSWYgZGF0YSBmbG93IGlzICJwYWNrZXRz IC0+IHBvcnQwIC0+IHBvcnQxIiwgY29tbWFuZHMgdXNlZCANCj4gPiA+ID4gaW4NCj4gPiB0ZXN0 cG1kOg0KPiA+ID4gPiAJZ3JvIG9uIHBvcnQwDQo+ID4gPiA+IAlzZXQgZndkIGNzdW0NCj4gPiA+ ID4gCWNzdW0gc2V0IGlwIGh3IHBvcnQxDQo+ID4gPiA+IAljc3VtIHNldCB0Y3AgaHcgcG9ydDEN Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gQmVzaWRlcywgeW91IG5lZWQgdG8gbWFrZSBzdXJl IHRoYXQgeW91ciBQTUQgZHJpdmVyIGRvZXNuJ3QgdXNlIA0KPiA+ID4gPiB2ZWN0b3IgVFggZnVu Y3Rpb24sIHNpbmNlIHZlY3RvciBmdW5jdGlvbiBkb2Vzbid0IHN1cHBvcnQgDQo+ID4gPiA+IGNo ZWNrc3VtDQo+ID4gb2ZmbG9hZGluZy4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IOKA nOKAneKAnQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFuZCB0 cnlpbmcgdG8gc2VuZCBUQ1BfSVBWNCBmcmFnbWVudGVkIHBhY2tldCDigJxwYWNrZXQgd2l0aCAN Cj4gPiA+ID4gPiBsZW5ndGgNCj4gPiA+ID4gPiAxNTAwIGZyYWdtZW50ZWQgdG8gdGhyZWUgcGFj a2V0cyBvZiA1MDDigJ0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gcD1FdGhlcihzcmM9Z2V0X2lmX2h3YWRkcignZW5zMTAnKSwgZHN0PQ0KPiA+ ID4gPiA+ICcyNDo4QTowNzo4ODoyNjo2QicpL0lQKCkvVENQKCkNCj4gPiA+ID4gPg0KPiA+ID4g PiA+IHAuYWRkX3BheWxvYWQoJ0YnKigxNTAwIC0gbGVuKHApKSkNCj4gPiA+ID4gPg0KPiA+ID4g PiA+IGZyYWdzPWZyYWdtZW50KHAsZnJhZ3NpemU9NTAwKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g Zm9yIGZyYWdtZW50IGluIGZyYWdzOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICBzZW5kcChm cmFnbWVudCwgaWZhY2U9J2VuczEwJykNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IOKAnOKAneKAnQ0K PiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJ1dCB0aGUgdGVzdHBt ZCBmb3J3YXJkIHRoZSBwYWNrZXRzIGFzIGl0IGlzLCDigJwgZG9lc27igJl0IGRvIGFueSBtZXJn ZeKAnQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRjcGR1bXAg YXQgdGhlIFRHIHNpZGUsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGUgc2VuZGluZyBmcmFnbWV0 cyB1c2luZyBlbnMxMDoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICN0Y3BkdW1wIOKAk0kgZW5zMTAg 4oCTdnZ2ZW4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IDE1OjQ1OjI5LjA4MzUxNCAyNDo4YTowNzo4 ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCANCj4gPiA+ID4gPiBldGhlcnR5cGUNCj4gPiA+ ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBv ZmZzZXQgMCwgDQo+ID4gPiA+ID4gZmxhZ3MgWytdLCBwcm90byBPcHRpb25zICgwKSwgbGVuZ3Ro IDUyNCkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6ICBp cC1wcm90by0wIDUwNA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMTU6NDU6MjkuMTE1MjY2IDI0Ojhh OjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsIA0KPiA+ID4gPiA+IGV0aGVydHlwZQ0K PiA+ID4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0dGwgNjQsIGlk IDEsIG9mZnNldCA1MDQsIA0KPiA+ID4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCks IGxlbmd0aCA1MjQpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3LjAu MC4xOiBpcC1wcm90by0wDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAxNTo0NToyOS4xNDcyNTggMjQ6 OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgDQo+ID4gPiA+ID4gZXRoZXJ0eXBl DQo+ID4gPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDQ5MjogKHRvcyAweDAsIHR0bCA2NCwg aWQgMSwgb2Zmc2V0IA0KPiA+ID4gPiA+IDEwMDgsIGZsYWdzIFtub25lXSwgcHJvdG8gT3B0aW9u cyAoMCksIGxlbmd0aCA0NzgpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgMTI3LjAuMC4xID4g MTI3LjAuMC4xOiBpcC1wcm90by0wDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gI3RjcGR1bXAgLWkgZW5zOSDigJN2dnZlbiAgLy8vIGhlcmUgd2lsbCBiZSByZWNl aXZlZCB0aGUgDQo+ID4gPiA+ID4gZm9yd2FyZGVkIHBhY2tldHMgZnJvbQ0KPiA+ID4gPiA+IHRl c3RwbWQ6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAxNTo0NToyOS4wODM5OTYgMjQ6OGE6MDc6ODg6 MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgDQo+ID4gPiA+ID4gZXRoZXJ0eXBlDQo+ID4gPiA+ ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDUzODogKHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zm c2V0IDAsIA0KPiA+ID4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1 MjQpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3LjAuMC4xOiAgaXAt cHJvdG8tMCA1MDQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IDE1OjQ1OjI5LjExNTQyNSAyNDo4YTow Nzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCANCj4gPiA+ID4gPiBldGhlcnR5cGUNCj4g PiA+ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAx LCBvZmZzZXQgNTA0LCANCj4gPiA+ID4gPiBmbGFncyBbK10sIHByb3RvIE9wdGlvbnMgKDApLCBs ZW5ndGggNTI0KQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAu MTogaXAtcHJvdG8tMA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMTU6NDU6MjkuMTQ3NDkyIDI0Ojhh OjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsIA0KPiA+ID4gPiA+IGV0aGVydHlwZQ0K PiA+ID4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA0OTI6ICh0b3MgMHgwLCB0dGwgNjQsIGlk IDEsIG9mZnNldCANCj4gPiA+ID4gPiAxMDA4LCBmbGFncyBbbm9uZV0sIHByb3RvIE9wdGlvbnMg KDApLCBsZW5ndGggNDc4KQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEy Ny4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBBbSBJIGRvaW5nIHNvbWV0aGluZyB3cm9uZz8h IE9yIGl0IGlzIGEgYnVnLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gw6ggQXMgeW91IHNlZSB0aGUg dGNwZHVtcCBzaG93cyB0aGUgb2Zmc2V0IG9mIGVhY2ggZnJhZ21lbnQsIA0KPiA+ID4gPiA+IGFu ZCB0ZXN0cG1kIHByaW50cyBMNF9GUkFHLCBzbyB0aGUgYm90aCBhcmUgcmVjb2duaXppbmcgdGhh dCANCj4gPiA+ID4gPiB0aGlzIGlzIGENCj4gPiA+ID4gZnJhZ21lbnRlZCBwYWNrZXQuDQo+ID4g PiA+DQo+ID4gPiA+IEdSTyBsaWJyYXJ5IG1lcmdlcyBUU09lZC9HU09lZCBwYWNrZXRzLCB3aG9z ZSBJUCBJRHMgYW5kIFRDUA0KPiA+ID4gc2VxdWVuY2VzDQo+ID4gPiA+IGFyZSBib3RoIGNvbnNl Y3V0aXZlLiBJZiBpbnB1dCBwYWNrZXRzIGhhdmUgc2FtZSBJUCBJRHMsIG5vIA0KPiA+ID4gPiBw YWNrZXRzIHdpbGwgYmUgbWVyZ2VkLg0KPiA+ID4gPg0KPiA+ID4gPiBCVFcsIHlvdSBjYW4gdXNl IGlwZXJmIHRvIHRlc3QgR1JPIGZlYXR1cmUuDQo+ID4gPiA+DQo+ID4gPiA+IEJlc3QgUmVnYXJk cywNCj4gPiA+ID4gSmlheXUNCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBXaXNhbSBK YWRkbw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0K