From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id C2DEA16829 for ; Thu, 7 Sep 2017 11:03:58 +0200 (CEST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Sep 2017 02:03:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,357,1500966000"; d="scan'208";a="148548816" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga005.fm.intel.com with ESMTP; 07 Sep 2017 02:03:57 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 7 Sep 2017 02:02:02 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Thu, 7 Sep 2017 17:02:01 +0800 From: "Hu, Jiayu" To: Wisam Monther CC: "users@dpdk.org" , Raslan Darawsheh , Shahaf Shuler Thread-Topic: Unable to merge packets using GRO feature Thread-Index: AdMaTiF+8CYSsq4aQZ+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosADMAwaAACXOZZAAC76hwAGa1cBQABz64GAADFFDsAAB9LoAAADl2aAAALoY0AAAU8cwAAA7FkA= Date: Thu, 7 Sep 2017 09:01:59 +0000 Message-ID: References: <20170821091347.GA94297@dpdk15.sh.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNzk0YjFmMzgtZjVkNS00N2M3LTg5MzEtYzFhNmQ0N2FjYjhiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6ImN0OWt2VkNzN3cwWFg4TDMyRDdPY1dqYWNUTFwvb3hRUlkzcGQ2RzZ0b1k4PSJ9 x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 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 09:04:00 -0000 U29ycnkgZm9yIGxvdHMgb2YgdHlwby4NCg0KVGhlIEdSTyBvbmx5IG1lcmdlcyBUQ1AvSVB2NCBw YWNrZXRzIHdob3NlIFRDUCBmbGFncyBhcmUNCidBQ0snLiBCdXQgdGhlIFRDUCBmbGFnIG9mIHlv dXIgVENQIHBhY2tldCBpcyAnU1lOJy4gU28gdGhlIEdSTw0KZG9lc24ndCBtZXJnZSB0aG9zZSB0 aHJlZSBwYWNrZXRzLg0KDQpCVFcsIHRoZSBUQ1AgcGFja2V0cyB3aGljaCBoYXZlICdTWU4nIGZs YWdzIGFuZCBoYXZlIGRhdGEgYXJlIGlsbGVnYWwuDQpUaGUgcGFja2V0IHBheWxvYWQgbGVuZ3Ro IG9mIHRoZSAnU1lOJyBwYWNrZXQgc2hvdWxkIGJlIDAuDQoNClRoYW5rcywNCkppYXl1DQoNCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSHUsIEppYXl1DQo+IFNlbnQ6IFRo dXJzZGF5LCBTZXB0ZW1iZXIgNywgMjAxNyA0OjU1IFBNDQo+IFRvOiAnV2lzYW0gTW9udGhlcicg PHdpc2FtbUBtZWxsYW5veC5jb20+DQo+IENjOiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3 c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYNCj4gU2h1bGVyIDxzaGFoYWZzQG1l bGxhbm94LmNvbT4NCj4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5n IEdSTyBmZWF0dXJlDQo+IA0KPiBPbmUgdGhpbmcgdG8gbm90aWNlOiB0aGUgVENQIGZsYWcgaW4g dGhlIFRDUCBwYWNrZXQgaXMgJ1NZTicuIEJ1dCB0aGUgR1JPDQo+IGxpYnJhcnkgZG9lc24ndCBt ZXJnZSBwYWNrZXRzIHdob3NlIGZsYWcgaXMgbm90ICdBQ0snLiBUaGlzIGlzIGJlY2F1c2Ugb25s eQ0KPiAnQUNLJyBwYWNrZXRzIGhhdmUgdmFsaWQgZGF0YSBpbiB0b2RheSdzIG5ldHdvcmsuDQo+ IA0KPiBJIHRoaW5rIHRoaXMgaXMgdGhlIHJvb3QgY2F1c2Ugb2YgdGhlIEdSTyBkb2Vzbid0IHdv cmsuDQo+IA0KPiBUaGFua3MsDQo+IEppYXl1DQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gRnJvbTogV2lzYW0gTW9udGhlciBbbWFpbHRvOndpc2FtbUBtZWxsYW5veC5j b21dDQo+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDE3IDQ6NDggUE0NCj4gPiBU bzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+ID4gQ2M6IHVzZXJzQGRwZGsub3Jn OyBSYXNsYW4gRGFyYXdzaGVoIDxyYXNsYW5kQG1lbGxhbm94LmNvbT47IFNoYWhhZg0KPiA+IFNo dWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBt ZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4NCj4gPiBTb3JyeSBJIGZvcmdldCB0 byBhdHRhY2ggdGhlIHBjYXAgZmlsZS4NCj4gPiBTZWUgYXR0YWNoZWQgcGxlYXNlIFt0aGUgb3V0 cHV0IG9mIFRTTyBhbmQgdGhlIGlucHV0IG9mIEdST10NCj4gPg0KPiA+IEJScywNCj4gPiBXaXNh bSBKYWRkbw0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBX aXNhbSBNb250aGVyDQo+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDE3IDExOjI0 IEFNDQo+ID4gVG86ICdIdSwgSmlheXUnDQo+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4g RGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJn ZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4NCj4gPiBZZXMgc3VyZSwNCj4gPg0KPiA+ IFRoaXMgaXMgdGhlIHBhY2tldCBJIHNlbnQgZm9yIHRoZSB0ZXN0cG1kICJ0aGUgb25lIHRoYXQg ZW5hYmxlZCB0c28iDQo+ID4gIiINCj4gPiBwPUV0aGVyKHNyYz1nZXRfaWZfaHdhZGRyKCdlbnMx MCcpLCBkc3Q9ICdmZjpmZjpmZjpmZjpmZjpmZicpDQo+ID4gcC5hZGRfcGF5bG9hZChEb3QxUSh2 bGFuPTEpKQ0KPiA+IHAuYWRkX3BheWxvYWQoSVAoZHN0PScxMS4xMC4xMC4yMScsIHNyYz0nMTEu MTAuMTAuMjAnKSkNCj4gPiBwLmFkZF9wYXlsb2FkKFRDUChzcG9ydD0yMDAwLCBkcG9ydD0zMDAw KSkNCj4gPiBwLmFkZF9wYXlsb2FkKCcwJyooMTUwMCAtIGxlbihwKSkpDQo+ID4gc2VuZHAocCwg aWZhY2U9J2VuczEwJywgY291bnQ9MSApDQo+ID4gIiIiDQo+ID4NCj4gPiBBbmQgdGhpcyBpcyB0 aGUgb3V0cHV0IGZyb20gVFNPICJ0aGUgaW5wdXQgZm9yIEdSTyINCj4gPg0KPiA+ICIiIg0KPiA+ ICMgdGNwZHVtcCAtaSBlbnM5IC12dnZlbiAtdmxhbg0KPiA+IHRjcGR1bXA6IGxpc3RlbmluZyBv biBlbnM5LCBsaW5rLXR5cGUgRU4xME1CIChFdGhlcm5ldCksIGNhcHR1cmUgc2l6ZQ0KPiA+IDI2 MjE0NCBieXRlcw0KPiA+DQo+ID4gMTE6MjA6NTEuNDk0NjUxIDI0OjhhOjA3Ojg4OjI2OjZhID4g MjQ6OGE6MDc6ODg6MjY6NWEsIGV0aGVydHlwZSBJUHY0DQo+ID4gKDB4MDgwMCksIGxlbmd0aCA1 NTQ6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDEsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3Rv IFRDUA0KPiA+ICg2KSwgbGVuZ3RoIDU0MCkNCj4gPiAgICAgMTEuMTAuMTAuMjAuMjAwMCA+IDEx LjEwLjEwLjIxLjMwMDA6IEZsYWdzIFtTXSwgY2tzdW0gMHg0MTFiIChjb3JyZWN0KSwNCj4gPiBz ZXEgMDo1MDAsIHdpbiA4MTkyLCBsZW5ndGggNTAwDQo+ID4gMTE6MjA6NTEuNDk0NjYwIDI0Ojhh OjA3Ojg4OjI2OjZhID4gMjQ6OGE6MDc6ODg6MjY6NWEsIGV0aGVydHlwZSBJUHY0DQo+ID4gKDB4 MDgwMCksIGxlbmd0aCA1NTQ6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDIsIG9mZnNldCAwLCBmbGFn cyBbbm9uZV0sIHByb3RvIFRDUA0KPiA+ICg2KSwgbGVuZ3RoIDU0MCkNCj4gPiAgICAgMTEuMTAu MTAuMjAuMjAwMCA+IDExLjEwLjEwLjIxLjMwMDA6IEZsYWdzIFtTXSwgY2tzdW0gMHgzZjI3IChj b3JyZWN0KSwNCj4gPiBzZXEgNTAwOjEwMDAsIHdpbiA4MTkyLCBsZW5ndGggNTAwDQo+ID4gMTE6 MjA6NTEuNDk0NjYyIDI0OjhhOjA3Ojg4OjI2OjZhID4gMjQ6OGE6MDc6ODg6MjY6NWEsIGV0aGVy dHlwZSBJUHY0DQo+ID4gKDB4MDgwMCksIGxlbmd0aCA0OTY6ICh0b3MgMHgwLCB0dGwgNjQsIGlk IDMsIG9mZnNldCAwLCBmbGFncyBbbm9uZV0sIHByb3RvIFRDUA0KPiA+ICg2KSwgbGVuZ3RoIDQ4 MikNCj4gPiAgICAgMTEuMTAuMTAuMjAuMjAwMCA+IDExLjEwLjEwLjIxLjMwMDA6IEZsYWdzIFtT XSwgY2tzdW0gMHhiMmUyIChjb3JyZWN0KSwNCj4gPiBzZXEgMTAwMDoxNDQyLCB3aW4gODE5Miwg bGVuZ3RoIDQ0MiAiIiINCj4gPg0KPiA+IEJScywNCj4gPiBXaXNhbSBKYWRkbw0KPiA+DQo+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBIdSwgSmlheXUgW21haWx0bzpq aWF5dS5odUBpbnRlbC5jb21dDQo+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDE3 IDEwOjU4IEFNDQo+ID4gVG86IFdpc2FtIE1vbnRoZXINCj4gPiBDYzogdXNlcnNAZHBkay5vcmc7 IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiBTdWJqZWN0OiBSRTogVW5hYmxl IHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IEhpIFdpc2FtLA0K PiA+DQo+ID4gQ2FuIHlvdSBzZW5kIG1lIHRoZSBwY2FwIGZpbGUgb2YgdGhlIFRTT2VkIHBhY2tl dHM/IEkgd2FudCB0byBzZWUgd2hhdA0KPiB0aGUNCj4gPiBwYWNrZXRzIHRoYXQgdGhlIEdSTyBl bmFibGVkIHBvcnQgcmVjZWl2ZXMgbG9vayBsaWtlLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEpp YXl1DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBX aXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1lbGxhbm94LmNvbV0NCj4gPiA+IFNlbnQ6IFRo dXJzZGF5LCBTZXB0ZW1iZXIgNywgMjAxNyAzOjE5IFBNDQo+ID4gPiBUbzogSHUsIEppYXl1IDxq aWF5dS5odUBpbnRlbC5jb20+DQo+ID4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJh d3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsNCj4gU2hhaGFmDQo+ID4gPiBTaHVsZXIgPHNo YWhhZnNAbWVsbGFub3guY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBw YWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4gPg0KPiA+ID4gSGkgSmlheXUsDQo+ID4gPg0K PiA+ID4gRmlyc3Qgb2YgYWxsLCBJIGFwcHJlY2lhdGUgeW91ciBlZmZvcnRzIHdpdGggbWUgOikg VGhlIHRoaW5nIHRoYXQgdGhlDQo+ID4gPiBwYWNrZXRzIGRpZG4ndCBkcm9wcGVkIHdoZW4gSSB1 c2VkIGEgcGFja2V0IHdpdGggMTUwMCBpbiB0b3RhbCBhcyBhDQo+ID4gPiB0aHJlZSBzZWdtZW50 cyBvZiA1MDAsIFNvLCBldmVuIHdoZW4gZW5hYmxlIGdybywgdGVzdHBtZCB3aWxsIGZ3ZCB0aGUN Cj4gPiA+IHJlY2VpdmVkIHNlZ21lbnRzIGFzIGl0Lg0KPiA+ID4gIlNvIGFjY29yZGluZyB0byB0 aGlzIGJlaGF2aW9yIHdlIGNvbmNsdWRlIHRoYXQgaXQncyBkaWRuJ3QgcmVhY2ggdGhlDQo+ID4g PiBsaW1pdCwgYW5kIGFsc28gdGhlIEdSTyBkaWRuJ3Qgd29yayINCj4gPiA+DQo+ID4gPiBDb3Vs ZCBiZSB0aGVyZSBzb21lIGNvbnN0cmFpbnRzIGZvciBNTFggZHJpdmVyIG9yIE1MWCBOSUNzIHJl Z2FyZHMgR1JPPw0KPiA+ID4NCj4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+IFdpc2FtIEphZGRv DQo+ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEh1 LCBKaWF5dSBbbWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbV0NCj4gPiA+IFNlbnQ6IFRodXJzZGF5 LCBTZXB0ZW1iZXIgNywgMjAxNyA0OjE1IEFNDQo+ID4gPiBUbzogV2lzYW0gTW9udGhlcg0KPiA+ ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+ ID4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1 cmUNCj4gPiA+DQo+ID4gPiBIaSBXaXNhbSwNCj4gPiA+DQo+ID4gPiBXaGVuIHdlIHBlcmZvcm0g YSBzaW1pbGFyIHRlc3Qgb24gaTQwZSwgd2UgZmluZCBhbiBpbXBvcnRhbnQgdGhpbmc6DQo+ID4g PiB0aGVyZSBpcyBhIG1heCBudW1iZXIgbGltaXQgZm9yIG1idWYtPm5iX3NlZ3MuIFdoZW4gdGhl IG51bWJlciBvZg0KPiBNQlVGDQo+ID4gPiBzZWdtZW50cyBvZiB0aGUgcGFja2V0IGlzIGxhcmdl ciB0aGFuIHRoaXMgbGltaXQsIHRoZSBwYWNrZXQgd2lsbCBiZSBkcm9wcGVkLg0KPiA+ID4NCj4g PiA+IFRoZSBHUk9lZCBwYWNrZXQgaGFzIG11bHRpcGxlIE1CVUYgc2VnbWVudHMuIEZvciB2aG9z dC1kcGRrLCBpdA0KPiA+ID4gZG9lc24ndCBoYXZlIGxpbWl0IGZvciB0aGUgbnVtYmVyIG9mIHNl Z21lbnRzLiBCdXQgaXQncyBub3QgdGhlIHNhbWUNCj4gPiA+IGZvciBhbGwgTklDIGRyaXZlcnMu IFNvIEkgc3VnZ2VzdCB5b3UgdG8gY2hlY2sgaWYgdGhlIE1MWCBkcml2ZXIgaGFzIHRoaXMNCj4g bGltaXQNCj4gPiB0b28uDQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gSmlheXUNCj4gPiA+ DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IFdpc2Ft IE1vbnRoZXIgW21haWx0bzp3aXNhbW1AbWVsbGFub3guY29tXQ0KPiA+ID4gPiBTZW50OiBXZWRu ZXNkYXksIFNlcHRlbWJlciA2LCAyMDE3IDc6MTggUE0NCj4gPiA+ID4gVG86IEh1LCBKaWF5dSA8 amlheXUuaHVAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBE YXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsNCj4gPiBTaGFoYWYNCj4gPiA+ID4gU2h1 bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gPiA+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0 byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4gPiA+DQo+ID4gPiA+IEhpIEpp YXl1LA0KPiA+ID4gPg0KPiA+ID4gPiBBbnkgY29tbWVudCByZWdhcmQgd2hhdCBJIGRlc2NyaWJl ZD8NCj4gPiA+ID4NCj4gPiA+ID4gQlJzLA0KPiA+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ID4gPg0K PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBXaXNhbSBN b250aGVyDQo+ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyOSwgMjAxNyAxMDo0OSBBTQ0K PiA+ID4gPiBUbzogJ0h1LCBKaWF5dScNCj4gPiA+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNs YW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBVbmFibGUg dG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4gPg0KPiA+ID4gPiBIaSBK aWF5dSwNCj4gPiA+ID4NCj4gPiA+ID4gTGV0IG1lIHJlLWRlc2NyaWJlIG15IHRvcG9sb2d5IGlu IGEgYmV0dGVyIHdheSwgc2VlIGF0dGFjaGVkIGltYWdlLg0KPiA+ID4gPiBBbmQgaXQgaXMgY29u bmVjdGVkIHBoeXNpY2FsbHkgYXMgZGVzY3JpYmVkLCBhbmQgSSdtIHVzaW5nIGl0IHdpdGgNCj4g PiA+ID4gTVRVDQo+ID4gPiA+IHNpemU9MTUwMCBpbiBvcmRlciB0byBtYWtlIHN1cmUgRXZlcnkg cG9ydCBjYW4gaGFuZGxlIGl0Lg0KPiA+ID4gPg0KPiA+ID4gPiBBbmQgdGhpcyBpcyB0aGUgZXhh Y3QgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBpbnRlcmZhY2VzLCBzbyBJJ20gc3VyZQ0KPiA+ID4g PiB0aGUgcGFja2V0cyByZWNlaXZlZCBpbiBOSUMgQiBtYWNoaW5lIEIgaXMgY29taW5nIGZyb20g dGhlIHRlc3RwbWQNCj4gPiA+ID4gd2l0aCBHUk8gZW5hYmxlZC4NCj4gPiA+ID4NCj4gPiA+ID4g QnV0IGV2ZW4gc28sIEkgaW50ZW50aW9uYWxseSBtYWRlIHRoZSBwYWNrZXQgc2l6ZSAxNTAwLCB0 byBiZQ0KPiA+ID4gPiBkaXZpZGVkIGludG8gMyAqICggNTAwKSBmcmFnbWVudHMgdXNpbmcgdGhl IFRTTywgYW5kIHRoZW4gbWVyZ2VkDQo+ID4gPiA+IGludG8gMTUwMCBwYWNrZXQgYWdhaW4gaW4g dGhlIEdSTy4NCj4gPiA+ID4gU28gdGhlIGV2ZXJ5IG1hY2hpbmUgY2FuIG1hbmFnZSB0aGlzIG10 dSBzaXplLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgdGhpbmcgdGhhdCBJIG5lZWQgdG8gdGVzdCBH Uk8gd2l0aCBlYWNoIHNldHVwcyB0eXBlcywgIlZNcyB3aXRoDQo+ID4gPiA+IEJhcmVtZXRhbCB3 aXRoIHBhc3MgdGhyb3VnaCB3aXRoIFZGcyBldGMuLi4iLg0KPiA+ID4gPiBTbyBJIG5lZWQgdG8g c2VlIHRoZSBmZWF0dXJlIHdvcmtzIG9uIGxlYXN0IHdvcmssIGl0IHdvdWxkIGJlIG5pY2UNCj4g PiA+ID4gdG8gc2VuZCBJUFY0X1RDUCBmcmFnbWVudGVkIHBhY2tldCB1c2luZyAic2NhcHksIElw ZXJmIg0KPiA+ID4gPiBBbmQgY2hlY2sgdGhlIGZ3ZCBwYWNrZXQgZnJvbSBHUk8gZGlyZWN0bHku DQo+ID4gPiA+DQo+ID4gPiA+IEJScywNCj4gPiA+ID4gV2lzYW0gSmFkZG8NCj4gPiA+ID4NCj4g PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogSHUsIEppYXl1 IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1 c3QgMjksIDIwMTcgNDo1MSBBTQ0KPiA+ID4gPiBUbzogV2lzYW0gTW9udGhlcg0KPiA+ID4gPiBD YzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiA+ ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJl DQo+ID4gPiA+DQo+ID4gPiA+IEhpIFdpc2FtLA0KPiA+ID4gPg0KPiA+ID4gPiBJbiB0aGUgcGlj dHVyZSBvZiB5b3VyIGV4cGVyaW1lbnQgdG9wb2xvZ3ksIEkgZ3Vlc3MgTklDIEIgaW4gdGhlDQo+ ID4gPiA+IG1hY2hpbmUgQiBpcyBjb25uZWN0ZWQgd2l0aCBhbm90aGVyIGludGVyZmFjZSBwaHlz aWNhbGx5LiBJZiBzbywgdGhlDQo+ID4gPiA+IHBhY2tldHMgdGhhdCB0Y3BkdW1wIGNhcHR1cmVz IGFyZSBmcm9tIHRoZSBwaHlzaWNhbCBsaW5rLiBIb3dldmVyLA0KPiA+ID4gPiBwYWNrZXRzIGFm dGVyIEdST2VkIGFyZSBtdWx0aS0gc2VnbWVudCBsYXJnZSBwYWNrZXRzLCB3aGljaCBhcmUNCj4g PiA+ID4gbGFyZ2VyIHRoYW4gTVRVLiBJIGFtIG5vdCBzdXJlIGlmIHlvdSBoYXZlIG1ha2Ugb3Ro ZXIgY29uZmlndXJhdGlvbnMNCj4gPiA+ID4gdG8gZW5hYmxlIHRoZXNlIGxhcmdlIHBhY2tldHMg dG8gcGFzcyB0aGUgcGh5c2ljYWwgbGluaywgYW5kIHRoZXJlDQo+ID4gPiA+IGlzIGp1bWJvIGZy YW1lIHNpemUgbGltaXQgZm9yIGRpZmZlcmVudCBOSUNzLiBTbyB3b3VsZCB5b3UgcGxlYXNlIHRv DQo+ID4gPiA+IGNoZWNrIHRoaXM/IEJUVywgeW91IGNhbiB1c2UgdGhlIFZNIHRvIHRlc3QgdGhp cyBHUk8gZmVhdHVyZSwgc2luY2UNCj4gPiA+ID4gbGFyZ2UNCj4gPiA+IHBhY2tldHMgY2FuIGFs d2F5cyBwYXNzIHRvIHRoZSBWTS4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBK aWF5dQ0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiA+ID4gRnJvbTogV2lzYW0gTW9udGhlciBbbWFpbHRvOndpc2FtbUBtZWxsYW5veC5jb21dDQo+ ID4gPiA+ID4gU2VudDogTW9uZGF5LCBBdWd1c3QgMjgsIDIwMTcgMzozNyBQTQ0KPiA+ID4gPiA+ IFRvOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT4NCj4gPiA+ID4gPiBDYzogdXNlcnNA ZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsNCj4gPiA+ IFNoYWhhZg0KPiA+ID4gPiA+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gPiA+ ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJl DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIaSBKaWF5dSwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkn bSBzb3JyeSBmb3IgYm90aGVyaW5nIHlvdSwgYnV0IGNvdWxkIHlvdSBjb25mb3JtIHRoYXQgdGhl DQo+ID4gPiA+ID4gZmVhdHVyZSBpcyB3b3JraW5nIHByb2JhYmx5IEJlY2F1c2UsIHdoYXQgSSBl dmVyICBkaWQsIEkgY291bGRuJ3QNCj4gPiA+ID4gPiBnZXQgdGhlIG1lcmdlZCBwYWNrZXRzLg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gQlJzLA0KPiA+ID4gPiA+IFdpc2FtIEphZGRvDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206 IFdpc2FtIE1vbnRoZXINCj4gPiA+ID4gPiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDI0LCAyMDE3 IDk6MTUgQU0NCj4gPiA+ID4gPiBUbzogJ0h1LCBKaWF5dScNCj4gPiA+ID4gPiBDYzogdXNlcnNA ZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiA+ID4gPiBTdWJq ZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEhpLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSdtIHVzaW5nIE1lbGxh bm94IE5JQ3MsIGFuZCBpdCBpcyBzdXBwb3J0aW5nIHBhcnNlIHBhY2tldCB0eXBlcy4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBG cm9tOiBIdSwgSmlheXUgW21haWx0bzpqaWF5dS5odUBpbnRlbC5jb21dDQo+ID4gPiA+ID4gU2Vu dDogVGh1cnNkYXksIEF1Z3VzdCAyNCwgMjAxNyA4OjQ3IEFNDQo+ID4gPiA+ID4gVG86IFdpc2Ft IE1vbnRoZXINCj4gPiA+ID4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7 IFNoYWhhZiBTaHVsZXINCj4gPiA+ID4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBh Y2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhpLA0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gQ2FuIHlvdSB0ZWxsIG1lIHdoYXQncyB0aGUgTklDIHR5cGUgb2YgdGhl IEdSTy1lbmFibGVkIHBvcnQ/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTaW5jZSBHUk8gbGlicmFy eSB1c2VzIG1idWYtPnBhY2tldF90eXBlIHRvIHBhcnNlIHBhY2tldCBoZWFkZXJzLA0KPiA+ID4g PiA+IGFwcGxpY2F0aW9ucyBuZWVkIHRvIGZpbGwgdGhpcyB2YWx1ZSBiZWZvcmUgY2FsbGluZyBH Uk8gcmVhc3NlbWJseSBBUElzLg0KPiA+ID4gPiA+IE90aGVyd2lzZSwgdGhlIEdSTyBjYW4ndCB3 b3JrIGNvcnJlY3RseS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEluIGNzdW0gZm9yd2FyZGluZyBl bmdpbmUgb2YgdGVzdHBtZCwgcGFja2V0X3R5cGUgaXMgZmlsbGVkIGJ5IE5JQw0KPiA+IGRyaXZl cnMuDQo+ID4gPiA+ID4gVGhlIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgd29uJ3Qgc2V0IHRoaXMg dmFsdWUuIFNvIGlmIHlvdXIgTklDDQo+ID4gPiA+ID4gZG9lc27igJl0IHN1cHBvcnQgdG8gcGFy c2UgcGFja2V0IHR5cGVzLCB0aGUgdmFsdWUgb2YgcGFja2V0X3R5cGUgaXMNCj4gPiA+ID4gPiAw IGFuZCBHUk8gY2FuJ3Qgd29yayBjb3JyZWN0bHkuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBCUnMs DQo+ID4gPiA+ID4gSmlheXUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZyb206IFdpc2FtIE1vbnRoZXIgW21haWx0bzp3aXNh bW1AbWVsbGFub3guY29tXQ0KPiA+ID4gPiA+ID4gU2VudDogVHVlc2RheSwgQXVndXN0IDIyLCAy MDE3IDk6MjUgUE0NCj4gPiA+ID4gPiA+IFRvOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNv bT4NCj4gPiA+ID4gPiA+IENjOiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFz bGFuZEBtZWxsYW5veC5jb20+Ow0KPiA+ID4gPiBTaGFoYWYNCj4gPiA+ID4gPiA+IFNodWxlciA8 c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRv IG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiBZZXMgaXQgaXMsDQo+ID4gPiA+ID4gPiBUaGUgZnJhZ21lbnRlZCBwYWNrZXRzIGNvbWVzIGZy b20gcG9ydDEgLyBOSUMgYiBmcm9tIG1hY2hpbmUgQQ0KPiA+ID4gPiA+ID4gdG8gcG9ydA0KPiA+ ID4gPiA+ID4gMSBpbiBOSUMgQSBmb3IgbWFjaGluZSBiIFNvIGl0J3MgcmVjZWl2ZWQgb24gdGhl IHBvcnQgJzEnLCB3aGljaA0KPiA+ID4gPiA+ID4gaXMgY29uZmlndXJlZCBncm8gYWN0aXZlIG9u IHRoaXMgcG9ydC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4g PiA+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBIdSwgSmlheXUgW21haWx0bzpqaWF5 dS5odUBpbnRlbC5jb21dDQo+ID4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIsIDIw MTcgNDoyMSBQTQ0KPiA+ID4gPiA+ID4gVG86IFdpc2FtIE1vbnRoZXINCj4gPiA+ID4gPiA+IENj OiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaDsgU2hhaGFmIFNodWxlcg0KPiA+ID4g PiA+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0 dXJlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGksDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gPiBGcm9tOiBXaXNh bSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1lbGxhbm94LmNvbV0NCj4gPiA+ID4gPiA+ID4gU2Vu dDogVHVlc2RheSwgQXVndXN0IDIyLCAyMDE3IDc6MDcgUE0NCj4gPiA+ID4gPiA+ID4gVG86IEh1 LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiBDYzogdXNlcnNAZHBk ay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsNCj4gPiA+ID4g PiBTaGFoYWYNCj4gPiA+ID4gPiA+ID4gU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4g PiA+ID4gPiA+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdS TyBmZWF0dXJlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEhleSBKaWF5dSwNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhhbmsgeW91IGZvciB5b3VyIHJlcGx5Lg0KPiA+ID4g PiA+ID4gPiBJIHRyaWVkIHdoYXQgeW91IHNhaWQgd2l0aCB0aGUgY3N1bSBhdCBmd2QgbW9kZS4N Cj4gPiA+ID4gPiA+ID4gRXZlbiBzbyB0aGUgR1JPIGRpZG4ndCB3b3JrcyBmaW5lLg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJIGV2ZW4gdGVzdGVkIHdpdGggYSBuZXcgbWV0aG9kb2xv Z3kuDQo+ID4gPiA+ID4gPiA+IFR3byBtYWNoaW5lcyB3aXRoIHR3byBkaWZmZXJlbnQgbmljIGZv ciBlYWNoLg0KPiA+ID4gPiA+ID4gPiBUaGUgbWV0aG9kb2xvZ3kgdGhhdCBJIHVzZWQgdG8gdGVz dCBpdCBpcyBkZXNjcmliZWQgaW4gdGhlIGF0dGFjaGVkDQo+ID4gZmlsZS4NCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gV2hhdCBJIGRpZCBmcm9tIGdybyBzaWRlOg0KPiA+ID4gPiA+ID4g PiAiIiINCj4gPiA+ID4gPiA+ID4gdGVzdHBtZD5ncm8gb24gMQ0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+IERvZXMgdGhlIHBvcnQgbnVtYmVyIG9mIE5JQyBBIGluIG1hY2hpbmUgQiBpcyAnMSc/ IFdoZW4geW91DQo+ID4gPiA+ID4gPiBlbmFibGUgR1JPIGZvciBwb3J0ICcxJywgVGVzdHBtZCBv bmx5IHRyaWVzIHRvIG1lcmdlIHBhY2tldHMNCj4gPiA+ID4gPiA+IHJlY2VpdmVkIGZyb20gcG9y dA0KPiA+ID4gPiAnMScuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQlJzLA0KPiA+ID4gPiA+ ID4gSmlheXUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRlc3RwbWQ+c2V0IGZ3ZCBjc3Vt DQo+ID4gPiA+ID4gPiA+IFRlc3RwbWQ+c3RhcnQNCj4gPiA+ID4gPiA+ID4gIiIiDQo+ID4gPiA+ ID4gPiA+IEFuZCB0aGUgcGFja2V0IHdpdGggY29ycmVjdCBkc3QgbWFjLg0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+IFdpc2FtIEphZGRv DQo+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ IEZyb206IEppYXl1IEh1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiA+ID4gPiA+ID4g PiBTZW50OiBNb25kYXksIEF1Z3VzdCAyMSwgMjAxNyAxMjoxNCBQTQ0KPiA+ID4gPiA+ID4gPiBU bzogV2lzYW0gTW9udGhlcg0KPiA+ID4gPiA+ID4gPiBDYzogVGhvbWFzIE1vbmphbG9uOyB1c2Vy c0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaDsNCj4gU2hhaGFmDQo+ID4gPiA+ID4gPiA+IFNo dWxlcg0KPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMg dXNpbmcgR1JPIGZlYXR1cmUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSGksDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE9uIE1vbiwgQXVnIDIxLCAyMDE3IGF0IDA3OjI1OjIz QU0gKzAwMDAsIFdpc2FtIE1vbnRoZXINCj4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gSGVsbG8g R3V5cywNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gPiBJIGhvcGUgdGhpcyBmaW5kcyB5b3Ugd2VsbCwgSeKAmW0gdHJ5aW5n IHRvIHRlc3QgdGhlIEdSTyBmZWF0dXJlLg0KPiA+ID4gPiA+ID4gPiA+IEJ1dCBJ4oCZbSBzdHVj ayB3aXRoIHRoaXMgc2NlbmFyaW8uDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBB cyB5b3Uga25vdywgR1JPIGlzIG9ubHkgc3VwcG9ydCBUQ1BfSVBWNCBwYWNrZXQgdW50aWwgbm93 Lg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gU28gSeKAmW0gdHJ5aW5nIHRvIHRl c3QgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgdGhlDQo+ID4gPiA+ID4gPiA+ID4gZmVhdHVy ZSwgYXMNCj4gPiA+ID4gZm9sbG93aW5nOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gU3RhcnQgdGVzdHBtZDoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IOKAnOKA neKAnQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLi94ODZfNjQtbmF0aXZlLWxp bnV4YXBwLWdjYy9idWlsZC9hcHAvdGVzdC1wbWQvdGVzdHBtZCAtbiA0DQo+ID4gPiA+ID4gPiA+ ID4gLXcNCj4gPiA+ID4gPiA+ID4gPiAwMDowYS4wICAtdw0KPiA+ID4gPiA+ID4gPiA+IDAwOjA5 LjAgLS0gIC0tYnVyc3Q9NjQgLS1tYmNhY2hlPTUxMiAtLXBvcnRtYXNrIDB4ZiAtaQ0KPiA+ID4g PiA+ID4gPiA+IC0tdHhkPTUxMg0KPiA+ID4gPiA+ID4gPiA+IC0tcnhkPTUxMg0KPiA+ID4gPiA+ ID4gPiA+IC0tbmItY29yZXM9OSAgLS1yeHE9MiAtLXR4cT0yIC0tdHhxZmxhZ3M9MA0KPiA+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhlbiBlbmFi bGUgR1JPIGF0IHRoZSB0d28gcG9ydHM6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiDigJzigJ3igJ0NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRlc3RwbWQ+Z3Jv IG9uIDANCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRlc3RwbWQ+Z3JvIG9uIDEN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gV2hlbiB1c2UgR1JPIGluIHRlc3RwbWQsIHRo ZXJlIGFyZSBmb2xsb3dpbmcgdGhpbmdzIHRvIG5vdGljZToNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gMS4gSW4gdGVzdHBtZCwgR1JPIGlzIHN1cHBvcnRlZCBieSBjc3VtIGZvcndhcmRp bmcgZW5naW5lLg0KPiA+ID4gPiA+ID4gPiBUaGVyZWZvcmUsIHBsZWFzZSB1c2UgJ3NldCBmd2Qg Y3N1bScgdG8gc3dpdGNoIGZvcndhcmRpbmcgZW5naW5lLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiAyLiBCeSBkZWZhdWx0LCBjc3VtIGZvcndhcmRpbmcgZW5naW5lIGNvbXB1bHNvcmls eSBjaGFuZ2VzDQo+ID4gPiA+ID4gPiA+IGV0aGVybmV0IGFkZHJlc3Nlcy4gU28gcGxlYXNlIG1h a2Ugc3VyZSB0aGF0IE1BQyBhZGRyZXNzZXMgYXJlDQo+ID4gPiA+IGNvcnJlY3QuDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+IDMuIFdoZW4gZW5hYmxlIEdSTyBmb3IgcG9ydDAsIGNzdW0g Zm9yd2FyZGluZyBlbmdpbmUgd2lsbA0KPiA+ID4gPiA+ID4gPiBtZXJnZSBwYWNrZXRzIHJlY2Vp dmVkIGZyb20gcG9ydDAuIElmIHRoZXJlIGFyZSBubyBwYWNrZXRzDQo+ID4gPiA+ID4gPiA+IGZy b20gcG9ydDEgdG8gcG9ydDAsIHlvdSBkb24ndCBuZWVkIHRvIGVuYWJsZSBHUk8gZm9yIHBvcnQx Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA0LiBHUk8gbGlicmFyeSBkb2Vzbid0IHJl LWNhbGN1bGF0ZSBjaGVja3N1bXMgZm9yIG1lcmdlZCBwYWNrZXRzLg0KPiA+ID4gPiA+ID4gPiBJ ZiB5b3Ugd2FudCBtZXJnZWQgcGFja2V0cyBoYXZlIGNvcnJlY3QgY2hlY2tzdW0sIHBsZWFzZQ0K PiA+ID4gPiA+ID4gPiBzZWxlY3QgSFcgSVAgYW5kIEhXIFRDUCBjaGVja3N1bSBjYWxjdWxhdGlv biBmb3IgdGhlIHBvcnQNCj4gPiA+ID4gPiA+ID4gd2hpY2ggdGhlIG1lcmdlZCBwYWNrZXRzIGFy ZSB0cmFuc21pdHRlZCB0byBpbiBjc3VtIGZvcndhcmRpbmcNCj4gPiBlbmdpbmUuDQo+ID4gPiA+ ID4gPiA+IFRoaXMgaXMgYmVjYXVzZSB0aGUgbWVyZ2VkIHBhY2tldHMgYXJlIG11bHRpLXNlZ21l bnQgbWJ1ZnMsDQo+ID4gPiA+ID4gPiA+IGJ1dCBjc3VtIGZvcndhcmRpbmcgZW5naW5lIGRvZXNu J3Qgc3VwcG9ydCB0byBjYWxjdWxhdGUNCj4gPiA+ID4gPiA+ID4gY2hlY2tzdW1zIGZvciBtdWx0 aS1zZWdtZW50IG1idWZzIGluIFNXLiBTbyB3ZSBuZWVkIHRvIHNlbGVjdA0KPiA+ID4gPiA+ID4g PiBIVyBjaGVja3N1bQ0KPiA+ID4gPiA+IG9mZmxvYWRpbmcuDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IGUuZy4gSWYgZGF0YSBmbG93IGlzICJwYWNrZXRzIC0+IHBvcnQwIC0+IHBvcnQx IiwgY29tbWFuZHMNCj4gPiA+ID4gPiA+ID4gdXNlZCBpbg0KPiA+ID4gPiA+IHRlc3RwbWQ6DQo+ ID4gPiA+ID4gPiA+IAlncm8gb24gcG9ydDANCj4gPiA+ID4gPiA+ID4gCXNldCBmd2QgY3N1bQ0K PiA+ID4gPiA+ID4gPiAJY3N1bSBzZXQgaXAgaHcgcG9ydDENCj4gPiA+ID4gPiA+ID4gCWNzdW0g c2V0IHRjcCBodyBwb3J0MQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiBCZXNpZGVzLCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB5b3VyIFBNRCBkcml2ZXIg ZG9lc24ndA0KPiA+ID4gPiA+ID4gPiB1c2UgdmVjdG9yIFRYIGZ1bmN0aW9uLCBzaW5jZSB2ZWN0 b3IgZnVuY3Rpb24gZG9lc24ndCBzdXBwb3J0DQo+ID4gPiA+ID4gPiA+IGNoZWNrc3VtDQo+ID4g PiA+ID4gb2ZmbG9hZGluZy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEFuZCB0cnlpbmcgdG8gc2VuZCBUQ1BfSVBW NCBmcmFnbWVudGVkIHBhY2tldCDigJxwYWNrZXQgd2l0aA0KPiA+ID4gPiA+ID4gPiA+IGxlbmd0 aA0KPiA+ID4gPiA+ID4gPiA+IDE1MDAgZnJhZ21lbnRlZCB0byB0aHJlZSBwYWNrZXRzIG9mIDUw MOKAnQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBwPUV0aGVyKHNyYz1nZXRfaWZfaHdhZGRyKCdlbnMx MCcpLCBkc3Q9DQo+ID4gPiA+ID4gPiA+ID4gJzI0OjhBOjA3Ojg4OjI2OjZCJykvSVAoKS9UQ1Ao KQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gcC5hZGRfcGF5bG9hZCgnRicqKDE1 MDAgLSBsZW4ocCkpKQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZnJhZ3M9ZnJh Z21lbnQocCxmcmFnc2l6ZT01MDApDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBm b3IgZnJhZ21lbnQgaW4gZnJhZ3M6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAg ICAgIHNlbmRwKGZyYWdtZW50LCBpZmFjZT0nZW5zMTAnKQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQnV0IHRoZSB0ZXN0cG1kIGZvcndhcmQg dGhlIHBhY2tldHMgYXMgaXQgaXMsIOKAnCBkb2VzbuKAmXQgZG8gYW55DQo+ID4gbWVyZ2XigJ0N Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiBUY3BkdW1wIGF0IHRoZSBURyBzaWRlLA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gVGhlIHNlbmRpbmcgZnJhZ21ldHMgdXNpbmcgZW5zMTA6DQo+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAjdGNwZHVtcCDigJNJIGVuczEwIOKAk3Z2dmVuDQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAxNTo0NToyOS4wODM1MTQgMjQ6OGE6MDc6ODg6 MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwNCj4gPiA+ID4gPiA+ID4gPiBldGhlcnR5cGUNCj4g PiA+ID4gPiA+ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0 LCBpZCAxLCBvZmZzZXQgMCwNCj4gPiA+ID4gPiA+ID4gPiBmbGFncyBbK10sIHByb3RvIE9wdGlv bnMgKDApLCBsZW5ndGggNTI0KQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAg IDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogIGlwLXByb3RvLTAgNTA0DQo+ID4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gPiAxNTo0NToyOS4xMTUyNjYgMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4 YTowNzo4ODoyNjo2YiwNCj4gPiA+ID4gPiA+ID4gPiBldGhlcnR5cGUNCj4gPiA+ID4gPiA+ID4g PiBJUHY0ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZz ZXQNCj4gPiA+ID4gPiA+ID4gPiA1MDQsIGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxl bmd0aCA1MjQpDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgMTI3LjAuMC4x ID4gMTI3LjAuMC4xOiBpcC1wcm90by0wDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiAxNTo0NToyOS4xNDcyNTggMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwN Cj4gPiA+ID4gPiA+ID4gPiBldGhlcnR5cGUNCj4gPiA+ID4gPiA+ID4gPiBJUHY0ICgweDA4MDAp LCBsZW5ndGggNDkyOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQNCj4gPiA+ID4gPiA+ ID4gPiAxMDA4LCBmbGFncyBbbm9uZV0sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5ndGggNDc4KQ0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAu MTogaXAtcHJvdG8tMA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICN0Y3BkdW1wIC1pIGVuczkg4oCTdnZ2ZW4gIC8vLyBo ZXJlIHdpbGwgYmUgcmVjZWl2ZWQgdGhlDQo+ID4gPiA+ID4gPiA+ID4gZm9yd2FyZGVkIHBhY2tl dHMgZnJvbQ0KPiA+ID4gPiA+ID4gPiA+IHRlc3RwbWQ6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiAxNTo0NToyOS4wODM5OTYgMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4 ODoyNjo2YiwNCj4gPiA+ID4gPiA+ID4gPiBldGhlcnR5cGUNCj4gPiA+ID4gPiA+ID4gPiBJUHY0 ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgMCwN Cj4gPiA+ID4gPiA+ID4gPiBmbGFncyBbK10sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5ndGggNTI0 KQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4w LjAuMTogIGlwLXByb3RvLTAgNTA0DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAx NTo0NToyOS4xMTU0MjUgMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwNCj4g PiA+ID4gPiA+ID4gPiBldGhlcnR5cGUNCj4gPiA+ID4gPiA+ID4gPiBJUHY0ICgweDA4MDApLCBs ZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQNCj4gPiA+ID4gPiA+ID4g PiA1MDQsIGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3LjAuMC4xOiBpcC1w cm90by0wDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAxNTo0NToyOS4xNDc0OTIg MjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwNCj4gPiA+ID4gPiA+ID4gPiBl dGhlcnR5cGUNCj4gPiA+ID4gPiA+ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNDkyOiAodG9z IDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQNCj4gPiA+ID4gPiA+ID4gPiAxMDA4LCBmbGFncyBb bm9uZV0sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5ndGggNDc4KQ0KPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBBbSBJIGRvaW5nIHNvbWV0 aGluZyB3cm9uZz8hIE9yIGl0IGlzIGEgYnVnLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gw6ggQXMgeW91IHNlZSB0aGUgdGNwZHVtcCBzaG93cyB0aGUgb2Zmc2V0IG9mIGVhY2gg ZnJhZ21lbnQsDQo+ID4gPiA+ID4gPiA+ID4gYW5kIHRlc3RwbWQgcHJpbnRzIEw0X0ZSQUcsIHNv IHRoZSBib3RoIGFyZSByZWNvZ25pemluZyB0aGF0DQo+ID4gPiA+ID4gPiA+ID4gdGhpcyBpcyBh DQo+ID4gPiA+ID4gPiA+IGZyYWdtZW50ZWQgcGFja2V0Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiBHUk8gbGlicmFyeSBtZXJnZXMgVFNPZWQvR1NPZWQgcGFja2V0cywgd2hvc2UgSVAg SURzIGFuZCBUQ1ANCj4gPiA+ID4gPiA+IHNlcXVlbmNlcw0KPiA+ID4gPiA+ID4gPiBhcmUgYm90 aCBjb25zZWN1dGl2ZS4gSWYgaW5wdXQgcGFja2V0cyBoYXZlIHNhbWUgSVAgSURzLCBubw0KPiA+ ID4gPiA+ID4gPiBwYWNrZXRzIHdpbGwgYmUgbWVyZ2VkLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiBCVFcsIHlvdSBjYW4gdXNlIGlwZXJmIHRvIHRlc3QgR1JPIGZlYXR1cmUuDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEJlc3QgUmVnYXJkcywNCj4gPiA+ID4gPiA+ID4gSmlh eXUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0K