From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 92EA25A9D for ; Mon, 20 Apr 2015 15:30:56 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP; 20 Apr 2015 06:30:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,609,1422950400"; d="scan'208";a="558785748" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by orsmga003.jf.intel.com with ESMTP; 20 Apr 2015 06:30:55 -0700 Received: from orsmsx159.amr.corp.intel.com (10.22.240.24) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.224.2; Mon, 20 Apr 2015 06:30:54 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by ORSMSX159.amr.corp.intel.com (10.22.240.24) with Microsoft SMTP Server (TLS) id 14.3.224.2; Mon, 20 Apr 2015 06:30:53 -0700 Received: from fmsmsx113.amr.corp.intel.com ([169.254.13.111]) by FMSMSX109.amr.corp.intel.com ([169.254.15.189]) with mapi id 14.03.0224.002; Mon, 20 Apr 2015 06:30:53 -0700 From: "Wiles, Keith" To: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [RFC PATCH 0/4] pktdev Thread-Index: AQHQeSGOY2k7fEOqoka6ZDQfPgLfO51SAZ6A//+9MwCABDEcAIAAGJEAgAADNYA= Date: Mon, 20 Apr 2015 13:30:53 +0000 Message-ID: References: <1428954274-26944-1-git-send-email-keith.wiles@intel.com> <1429283804-28087-1-git-send-email-bruce.richardson@intel.com> <553155C7.3000106@bisdn.de> <5534A1EE.4060905@bisdn.de> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.14.220] Content-Type: text/plain; charset="euc-kr" Content-ID: <6A804F1C62C31D4580B2D2C39AD0EC31@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC PATCH 0/4] pktdev X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Apr 2015 13:30:57 -0000 DQoNCk9uIDQvMjAvMTUsIDg6MTkgQU0sICJXaWxlcywgS2VpdGgiIDxrZWl0aC53aWxlc0BpbnRl bC5jb20+IHdyb3RlOg0KDQo+DQo+DQo+RnJvbTogTWFyYyBTdW5lIDxtYXJjLnN1bmVAYmlzZG4u ZGU8bWFpbHRvOm1hcmMuc3VuZUBiaXNkbi5kZT4+DQo+RGF0ZTogTW9uZGF5LCBBcHJpbCAyMCwg MjAxNSBhdCAxOjUxIEFNDQo+VG86IEtlaXRoIFdpbGVzIDxrZWl0aC53aWxlc0BpbnRlbC5jb208 bWFpbHRvOmtlaXRoLndpbGVzQGludGVsLmNvbT4+LA0KPiJkZXZAZHBkay5vcmc8bWFpbHRvOmRl dkBkcGRrLm9yZz4iIDxkZXZAZHBkay5vcmc8bWFpbHRvOmRldkBkcGRrLm9yZz4+DQo+U3ViamVj dDogUmU6IFtkcGRrLWRldl0gW1JGQyBQQVRDSCAwLzRdIHBrdGRldg0KPg0KPg0KPg0KPk9uIDE3 LzA0LzE1IDIxOjUwLCBXaWxlcywgS2VpdGggd3JvdGU6DQo+DQo+SGkgTWFyYyBhbmQgQnJ1Y2Us DQo+DQo+SGkgS2VpdGgsIEJydWNlLA0KPg0KPg0KPk9uIDQvMTcvMTUsIDE6NDkgUE0sICJNYXJj IFN1bmUiDQo+PG1hcmMuc3VuZUBiaXNkbi5kZT48bWFpbHRvOm1hcmMuc3VuZUBiaXNkbi5kZT4g d3JvdGU6DQo+DQo+DQo+DQo+T24gMTcvMDQvMTUgMTc6MTYsIEJydWNlIFJpY2hhcmRzb24gd3Jv dGU6DQo+DQo+DQo+SGkgYWxsLA0KPg0KPnRvIGNvbnRpbnVlIHRoaXMgZGlzY3Vzc2lvbiBhIGJp dCBtb3JlLCBoZXJlIGlzIG15LCBzbGlnaHRseSBkaWZmZXJlbnQsDQo+c2xhbnQNCj5vbiB3aGF0 IGEgcGt0ZGV2IGFic3RyYWN0aW9uIG1heSBsb29rIGxpa2UuDQo+DQo+VGhlIHByaW1hcnkgb2Jq ZWN0aXZlIEkgaGFkIGluIG1pbmQgd2hlbiBkcmFmdGluZyB0aGlzIGlzIHRvIHByb3ZpZGUgdGhl DQo+bWluaW1hbCBhYnN0cmFjdGlvbiB0aGF0IGNhbiBiZSAqZWFzaWx5KiB1c2VkIGFzIGEgY29t bW9uIGRldmljZQ0KPmFic3RyYWN0aW9uIGZvcg0KPmV4aXN0aW5nIChhbmQgZnV0dXJlKSBkZXZp Y2UgdHlwZXMgdG8gYmUgcGFzc2VkIHRvIGRhdGFwbGFuZSBjb2RlLiBUaGUNCj5wYXRjaHNldA0K PmRlbW9uc3RyYXRlcyB0aGlzIGJ5IGRlZmluaW5nIGEgbWluaW1hbCBpbnRlcmZhY2UgZm9yIHBr dGRldiAtIHNpbmNlIEkNCj5maXJtbHkNCj5iZWxpZXZlIHRoZSBpbnRlcmZhY2Ugc2hvdWxkIGJl IGFzIHNtYWxsIGFzIHBvc3NpYmxlIC0gYW5kIHRoZW4gc2hvd2luZw0KPmhvdyB0aGF0DQo+Y29t bW9uIGludGVyZmFjZSBjYW4gYmUgdXNlZCB0byB1bmlmeSByaW5ncyBhbmQgZXRoZGV2cyB1bmRl ciBhIGNvbW1vbg0KPkFQSSBmb3IgdGhlDQo+ZGF0YXBhdGguIEkgYmVsaWV2ZSBhbnkgYXR0ZW1w dCB0byB1bmlmeSB0aGluZ3MgbXVjaCBiZXlvbmQgdGhpcyB0byB0aGUNCj5jb250cm9sDQo+cGxh bmUgb3Igc2V0dXAgcGhhc2UgaXMgbm90IHdvcnRoIGRvaW5nIC0gYXQgbGVhc3Qgbm90IGluaXRp YWxseSAtIGFzIGF0DQo+aW5pdCB0aW1lIHRoZSBjb2RlIGFsd2F5cyBuZWVkcyB0byBiZSBhd2Fy ZSBvZiB0aGUgdW5kZXJseWluZyByZXNvdXJjZQ0KPnR5cGUgaW4NCj5vcmRlciB0byBjb25maWd1 cmUgaXQgcHJvcGVybHkgZm9yIGRhdGFwbGFuZSB1c2UuDQo+DQo+VGhlIG92ZXJhbGwgb2JqZWN0 aXZlIEkgbG9vayB0byBhY2hpZXZlIGlzIGlsbHVzdHJhdGVkIGJ5IHRoZSBmaW5hbA0KPnBhdGNo IGluDQo+dGhlIHNlcmllcywgd2hpY2ggaXMgYSBzYW1wbGUgYXBwIHdoZXJlIHRoZSBzYW1lIGNv ZGUgaXMgdXNlZCBmb3IgYWxsDQo+Y29yZXMsDQo+aXJyZXNwZWN0aXZlIG9mIHRoZSB1bmRlcmx5 aW5nIGRldmljZSB0eXBlLg0KPg0KPlRvIGdldCB0byB0aGF0IHBvaW50LCBwYXRjaCAxIGRlZmlu ZXMgdGhlIG1pbmltYWwgQVBJIC0ganVzdCBSWCBhbmQgVFguDQo+VGhlIC5jDQo+ZmlsZSBpbiB0 aGUgbGlicmFyeSBpcyBlbXB0eSBmb3Igc2ltcGxpY2l0eSwgdGhvdWdoIEkgd291bGQgc2VlIHNv bWUNCj5mdW5jdGlvbmFsaXR5IG1vdmluZyB0aGVyZSB3aGVuL2lmIGl0IG1ha2VzIHNlbnNlIGUu Zy4gdGhlIGNhbGxiYWNrDQo+c3VwcG9ydA0KPmZyb20gZXRoZGV2LCBhcyBpcyBkb25lIGluIEtl aXRoJ3MgcGF0Y2hzZXQuDQo+UGF0Y2ggMiB0aGVuIG1ha2VzIHZlcnkgbWluaW1hbCBjaGFuZ2Vz IHRvIGV0aGRldiB0byBhbGxvdyBldGhkZXZzIHRvDQo+YmUgdXNlZA0KPmFzIHBrdGRldnMsIGFu ZCB0byBtYWtlIHVzZSBvZiB0aGUgcGt0ZGV2IGZ1bmN0aW9ucyB3aGVuIGFwcHJvcHJpYXRlDQo+ UGF0Y2ggMyB3YXMsIGZvciBtZSwgdGhlIGtleSB0ZXN0IGZvciB0aGlzIGltcGxlbWVudGF0aW9u IC0gaG93IGhhcmQNCj53YXMgaXQgdG8NCj5tYWtlIGFuIHJ0ZV9yaW5nIHVzYWJsZSBhcyBhIHBr dGRldiB0b28uIFR3byBzaW5nbGUtbGluZSBmdW5jdGlvbnMgZm9yDQo+UlgvVFgNCj5hbmQgYSBz ZXBhcmF0ZSAiY29udmVydGVyIiBmdW5jdGlvbiBwcm92ZWQgdG8gYmUgYWxsIHRoYXQgd2FzIG5l Y2Vzc2FyeQ0KPmhlcmUgLQ0KPmFuZCBJIGJlbGlldmUgc2ltcGxlciBzb2x1dGlvbnMgbWF5IGJl IHBvc3NpYmxlIHRvbywgYXMgdGhlIGV4dHJhDQo+c3RydWN0dXJlcw0KPmFsbG9jYXRlZCBvbiBj b252ZXJzaW9uIGNvdWxkIGJlIG1lcmdlZCBpbnRvIHRoZSBydGVfcmluZyBzdHJ1Y3R1cmUNCj5p dHNlbGYgYW5kDQo+aW5pdGlhbGl6ZWQgb24gcmluZyBjcmVhdGlvbiBpZiB3ZSBwcmVmZXIgdGhh dCBvcHRpb24uIEl0IGlzDQo+aG9wZWQvcHJlc3VtZWQgdGhhdA0KPndyYXBwaW5nIG90aGVyIHN0 cnVjdHVyZXMsIHN1Y2ggYXMgS05JLCBtYXkgcHJvdmUgdG8gYmUganVzdCBhcyBlYXNpbHkNCj5k b25lLg0KPltOb3QgYXR0ZW1wdGVkIHlldCAtIGxlZnQgYXMgYW4gZXhlcmNpc2UgZm9yIHRoZSBy ZWFkZXIgOi0pXS4NCj4NCj5Ob3csIGluIHRlcm1zIG9mIHBrdGRldiB2cyBldGhkZXYsIHRoZXJl IGlzIG5vdGhpbmcgaW4gdGhpcyBwcm9wb3NhbA0KPnRoYXQNCj5jYW5ub3QgYWxzbyBiZSBkb25l IHVzaW5nIGV0aGRldiBBRkFJSy4gSG93ZXZlciwgcGt0ZGV2IGFzIG91dGxpbmVkIGhlcmUNCj5z aG91bGQgbWFrZSB0aGUgcHJvY2VzcyBmYXIgZWFzaWVyIHRoYW4gdHJ5aW5nIHRvIGNyZWF0ZSBh IGZ1bGwgUE1EIGZvcg0KPnNvbWV0aGluZy4NCj5BbGwgTklDIHNwZWNpZmljIGZ1bmN0aW9ucywg aW5jbHVkaW5nIHRoaW5ncyBsaWtlIHN0b3Avc3RhcnQsIGFyZQ0KPnN0cmlwcGVkIG91dCwNCj5h cyB0aGV5IGRvbid0IG1ha2Ugc2Vuc2UgZm9yIGFuIHJ0ZV9yaW5nIG9yIG90aGVyIHNvZnR3YXJl IG9iamVjdHMuDQo+QWxzbywgdGhlIG90aGVyIHRoaW5nIHRoaXMgcHJvdmlkZXMgaXMgdGhhdCB3 ZSBjYW4gbW92ZSBhd2F5IGZyb20ganVzdA0KPnVzaW5nDQo+cG9ydCBpZHMuIEluc3RlYWQgaW4g dGhlIHNhbWUgd2F5IGFzIHdlIG5vdyByZWZlcmVuY2UNCj5yaW5ncy9tZW1wb29scy9LTklzIGV0 Yw0KPnZpYSBwb2ludGVyLCB3ZSBjYW4gZG8gdGhlIHNhbWUgd2l0aCBldGhlcm5ldCBwb3J0cyBh cyBwa3RkZXZzIG9uIHRoZQ0KPmRhdGEgcGF0aC4NCj5UaGVyZSB3YXMgZGlzY3Vzc2lvbiBwcmV2 aW91c2x5IG9uIG1vdmluZyBiZXlvbmQgOC1iaXQgcG9ydCBpZHMuIElmIHdlDQo+bG9vayB0bw0K PnVzZSBldGhkZXYgYXMgYSBjb21tb24gYWJzdHJhY3Rpb24sIEkgZmVlbCB0aGF0IGNoYW5nZSB3 aWxsIHNvb24gaGF2ZQ0KPnRvIGJlIG1hZGUNCj5jYXVzaW5nIGEgbGFyZ2UgYW1vdW50IG9mIGNv ZGUgY2h1cm4uDQo+DQo+DQo+SGkgUmljaGFyZCwNCj4NCj5GaXJzdCB0aGFuayB5b3UgYm90aCBm b3IgdGFraW5nIHRoZSB0aW1lIHRvIGxvb2sgYXQgdGhpcy4gSSBkaWQgbm90IG5vdA0KPnJlcGx5 IHRvIEtlaXRoIGJlY2F1c2UgeW91IFJpY2hhcmQgc3VtbWFyaXplZCBtb3N0IG9mIG15IGNvbmNl cm5zLg0KPg0KPkkgaGFkIGEgYnJpZWYgbG9vayB0byB0aGlzIHNlY29uZCBwcm9wb3NhbC4gSXQg aXMgbW9yZSBhbGlnbmVkIHRvIHdoYXQgSQ0KPmhhZCBpbiBtaW5kLiBCdXQgc3RpbGwgSSBmZWVs IGl0IGlzIHNsaWdodGx5IHRvbyBjb21wbGljYXRlZC4gSSBkb24ndA0KPmxpa2UgbXVjaCB0aGUg bmVjZXNzYXJ5IChpbiB5b3VyIGFwcHJvYWNoKSBNQUNSTy1saWtlIHBrdF9kZXZfZGF0YQ0KPnN0 cnVjdC4gSXQgaXMgYWxzbyBzbGlnaHRseSBpbmNvbnZlbmllbnQgdGhhdCB0aGUgdXNlciBoYXMg dG8gZG86DQo+DQo+KyAgICAgICBzdHJ1Y3QgcnRlX3BrdF9kZXYgKmluID0gcnRlX2V0aF9nZXRf ZGV2KDApOw0KPg0KPisgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX3BrdF9kZXYgKm91dCA9IHJ0 ZV9yaW5nX2dldF9kZXYoDQo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydGVfcmlu Z19jcmVhdGUobmFtZSwgNDA5NiwNCj5ydGVfc29ja2V0X2lkKCksIDApKTsNCj4NCj4NCj4NCj5X aGF0IGFib3V0IHNvbWV0aGluZyBsaWtlICh+cHNldWRvLWNvZGUpOg0KPg0KPnJ0ZV9wa3RfZGV2 X2RhdGEuaDoNCj4NCj4gICBlbnVtIHJ0ZV9wa3RfZGV2X3R5cGV7DQo+ICAgICAgICBSVEVfUEtU X0RFVl9FVEgsDQo+ICAgICAgICBSVEVfUEtUX0RFVl9SSU5HLA0KPiAgICAgICAgUlRFX1BLVF9E RVZfS05JLA0KPiAgICAgICAgLy9LZWVwIGFkZGluZyBhcyBtb3JlIFBNRHMgYXJlIHN1cHBvcnRl ZA0KPiAgIH07DQo+DQo+DQo+ICAgLy9UaGlzIHN0cnVjdCBtYXkgYmUgcmVkdW5kYW50IGlmIHRo ZXJlIGlzIG5vdGhpbmcgbW9yZQ0KPiAgIHN0cnVjdCBydGVfcGt0X2Rldl9kYXRhew0KPiAgICAg ICAgZW51bSBydGVfcGt0X2Rldl90eXBlOw0KPiAgICAgICAgLy9QbGFjZWhvbGRlciwgbWF5YmUg d2UgbmVlZCBtb3JlLi4uDQo+ICAgfTsNCj4NCj4gICAvL01ha2UgUlgvVFggcGt0ZGV2IEFQSXMg bW9yZSByZWFkYWJsZSwgYnV0IG5vdCByZWFsbHkgbmVlZGVkDQo+ICAgdHlwZWRlZiB2b2lkIHBr dF9kZXZfdDsNCj4NCj4oSW4gYWxsIFBNRHMgYW5kIGUuZy4gS05JIGFuZCBSSU5Hcyk6DQo+DQo+ IHN0cnVjdCBydGVfZXRoX2RldiB7DQo+ICAgIHN0cnVjdCBydGVfcGt0X2Rldl9kYXRhIHBrdF9k ZXY7Ly8NCj48KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgICBldGhfcnhf YnVyc3RfdCByeF9wa3RfYnVyc3Q7IC8qKjwgUG9pbnRlciB0byBQTUQgcmVjZWl2ZSBmdW5jdGlv bi4gKi8NCj4gICAgZXRoX3R4X2J1cnN0X3QgdHhfcGt0X2J1cnN0OyAvKio8IFBvaW50ZXIgdG8g UE1EIHRyYW5zbWl0IGZ1bmN0aW9uLg0KPiovDQo+ICAgIHN0cnVjdCBydGVfZXRoX2Rldl9kYXRh ICpkYXRhOyAgLyoqPCBQb2ludGVyIHRvIGRldmljZSBkYXRhICovDQo+ICAgIC8uLi4NCj4NCj5y dGVfcGt0X2Rldi5oOg0KPg0KPiAgICAgICNpbmNsdWRlIDxydGVfZXRoZGV2Lmg+DQo+ICAgICAg Ly9JbmNsdWRlIFBNRCAoYW5kIG5vbi1QTUQpIFRYL1JYIGhlYWRlcnMuLi4NCj4NCj4gICBzdGF0 aWMgaW5saW5lIHVpbnQxNl90DQo+ICAgcnRlX3BrdF90eF9idXJzdChwa3RfZGV2X3QqIGRldiwg dWludDE2X3QgcXVldWVfaWQsDQo+ICAgICAgICAgICAgIHN0cnVjdCBydGVfbWJ1ZiAqKnR4X3Br dHMsIHVpbnQxNl90IG5iX3BrdHMpDQo+ICAgew0KPiAgICAgICAgc3dpdGNoICgoKHN0cnVjdCBy dGVfcGt0X2Rldl9kYXRhKilkZXYpLT50eXBlKXsNCj4gICAgICAgICAgICBjYXNlICBSVEVfUEtU X0RFVl9FVEg6DQo+ICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZXRoX2RldiogZXRoX2RldiA9 IChzdHJ1Y3QNCj5ydGVfZXRoX2RldiopcGt0X2RldjsNCj4gICAgICAgICAgICAgICAgcnRlX3Br dF90eF9idXJzdChldGhfZGV2LCBxdWV1ZV9pZCwgdHhfcGt0cywgbmJfcGt0cyk7DQo+ICAgICAg ICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgICAgIGNhc2UgUlRFX1BLVF9ERVZfUklORzoNCj4g ICAgICAgICAgICAgICAgLy8uLi4NCj4gICAgICAgIH0NCj4gICB9DQo+DQo+ICAgLy8uLi4NCj4N Cj4NCj5JIGRvIG5vdCBzZWUgdGhlIGZ1bmN0aW9uYWwgZGlmZmVyZW50IGZyb20gbXkgcHJvcG9z YWwgb3RoZXIgdGhlbiBhIGJpdA0KPm1vcmUgc2VhcmNoL3JlcGxhY2UsIHdoaWNoIGRvZXMgZWZm ZWN0IHNvbWUgb2YgdGhlIFBNRKn2cy4gVGhlIGNoYW5nZXMgdG8NCj50aGUgUE1EIGlzIGp1c3Qg dG8gdXNlIHRoZSBtYWNyb3MgYXMgd2Ugbm93IGhhdmUgYSBuZXN0ZWQgc3RydWN0dXJlLg0KPg0K PkkgdGhpbmsgd2hhdCBJIGFtIHByb3Bvc2luZyBpcyBkaWZmZXJlbnQuIFNlZSBiZWxvdy4NCj4N ClN0YXJ0IG9mIEtlaXRoJ3MgY29tbWVudC4NCj4NCj5UaGUgbmVzdGluZyBhbmQgbW92ZW1lbnQg c29tZSBzdHJ1Y3R1cmVzIGFuZCBjb2RlIHRvIGEgY29tbW9uIGxvY2F0aW9uIGlzDQo+dG8gcHJv dmlkZSBhIGJldHRlciB3YXkgdG8gYWRkIG90aGVyIGRldmljZXMuIE1vdmluZyBjb2RlIGludG8g YSBjb21tb24NCj5zZXQgb2Ygc3RydWN0dXJlcyBhbmQgQVBJcyBzaG91bGQgb25seSBpbXByb3Zl IHRoZSBjb2RlIGFzIHdlIGdldCBtb3JlDQo+ZGV2aWNlcyBhZGRlZCB0byBEUERLLiBUaGUgYmFz aWMgZmxvdyBhbmQgZGVzaWduIGlzIHRoZSBzYW1lLg0KRW5kIG9mIEtlaXRooa9zIGNvbW1lbnQu DQo+DQo+SW4geW91ciBwcm9wb3NhbCB5b3UgYXJlIG1vdmlnIFRYL1JYIHF1ZXVlcyBhcyB3ZWxs IGFzIHNvbWUgc2hhcmVkIHN0dWZmDQo+YW5kLCBtb3N0IGltcG9ydGFudGx5LCB5b3UgYXJlIHVz aW5nIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIGV4ZWN1dGUgdGhlDQo+UlgvVFggcm91dGluZXMuDQo+ DQo+V2hhdCBJIHdhcyBwcm9wb3NpbmcgaXMgdG8gdHJ5IHRvIGFkZCB0aGUgbWluaW11bSBjb21t b24gc2hhcmVkIHN0YXRlIGluDQo+b3JkZXIgdG8gcHJvcGVybHkgZGVtdWx0aXBsZXggdGhlIFJY L1RYIGNhbGwgYW5kIGhhdmUgYSBjb21tb24gc2V0IG9mDQo+YWJzdHJhY3QgY2FsbHMgKHRoZSBw a3RfZGV2IHR5cGUpLiBJbiBhIHdheSwgSSB3YXMgcHJvcG9zaW5nIHRvDQo+ZGVsaWJlcmF0ZWx5 IG5vdCBoYXZlIGEgc2hhcmVkIHN0cnVjdCBydGVfZGV2X2RhdGEgYmVjYXVzZSBJIHRoaW5rIHRo ZQ0KPmludGVybmFscyBvZiB0aGUgInBrdF9kZXYiIGNhbiBiZSB2ZXJ5IGRpZmZlcmVudCBhY3Jv c3MgZGV2aWNlcyAoZS5nLg0KPnF1ZXVlcyBpbiBrbmkgdnMgZXRoIHBvcnQgdnMuIGNyeXB0bz8p LiBJIHRyZWF0IHRoZSBwa3RfZGV2IGFzIGEgImJsYWNrDQo+Ym94IiB0aGF0IGNvbmZvcm1zIHRv IFRYL1JYIEFQSSwgbGVhdmluZyB0aGUgZGV2ZWxvcGVyIG9mIHRoYXQgZGV2aWNlIHRvDQo+ZGVm aW5lIGl0cyBpbnRlcm5hbCBzdHJ1Y3R1cmVzIGFzIGl0IGJldHRlciBzdWl0ZXMgdGhlIG5lZWRz LiBJIG9ubHkgdXNlDQo+ZWFjaCBvZiB0aGUgc3BlY2lmaWMgZGV2aWNlIHR5cGUgVFgvUlggQVBJ cyAoZXh0ZXJuYWwgdG8gdXMsIHBrdF9kZXYNCj5saWJyYXJ5KSBpbiBydGVfcGt0X2Rldi5oLiBU aGlzIGFsc28gc2ltcGxpZmllcyB0aGUgcmVmYWN0b3IgcmVxdWlyZWQgdG8NCj5ldmVudHVhbGx5 IGludGVncmF0ZSB0aGUgcnRlX3BrdF9kZXYgbGlicmFyeSBhbmQgYnVpbGRzIGl0ICJvbiB0b3Ai IG9mDQo+dGhlIGV4aXN0aW5nIEFQSXMuDQo+DQo+VGhlIG90aGVyIGltcG9ydGFudCBkaWZmZXJl bmNlIHdpdGggYm90aCwgQnJ1Y2UgYW5kIHlvdXIgYXBwcm9hY2gsIGFuZA0KPm1pbmUgaXMgdGhl IHVzZSBvZiBmdW5jdGlvbiBwb2ludGVycyBmb3IgUlgvVFguIEkgZG9uJ3QgdXNlIHRoZW0sIHdo aWNoDQo+bWFrZXMgdGhlIGVudGlyZSBhYnN0cmFjdGVkIFRYL1JYIChpbmNsdWRpbmcgdGhlIGZp bmFsIFJYL1RYIHJvdXRpbmVzDQo+aXRzZWxmKSBmdW5jdGlvbnMgYmUgImlubGluYWJsZSIuDQoN Ck1ha2luZyBzb21ldGhpbmcgaW5saW5hYmxlIGlzIG5vdCBiYXNlZCBvbiB1c2luZyBhIHBvaW50 ZXIgb3Igbm90LCBpcyB0aGF0DQp3aGF0IHlvdSBtZWFuPw0KPg0KPkJ0dywgSSBmb3Jnb3QgdG8g YWRkIHNvbWV0aGluZyBiYXNpYyBpbiB0aGUgcHJldmlvdXMgcHNldWRvLWNvZGUuIFRoZQ0KPmRp ZmZlcmVudCB0eXBlcyBoYXZlIHRvIGJlIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgYWNjb3JkaW5n IHRvDQo+Y29tcGlsZWQtaW4gRFBESyBsaWJzOg0KPg0KPnJ0ZV9wa3RfZGV2Lmg6DQo+DQo+ICAg ICNpbmNsdWRlIDxydGVfY29uZmlnLmg+DQo+DQo+ICAgIC8vRXRoIGRldmljZXMNCj4gICAgI2lm ZGVmIFJURV9MSUJSVEVfRVRIRVINCj4gICAgI2luY2x1ZGUgPHJ0ZV9ldGhkZXYuaD4NCj4gICAg I2VuZGlmDQo+DQo+ICAgIC8vS05JDQo+ICAgICNpZmRlZiBSVEVfTElCUlRFX0tOSQ0KPiAgICAj aW5jbHVkZSA8cnRlX2tuaS5oPg0KPiAgICAjZW5kaWYNCj4NCj4gICAgLy8uLi4NCj4gICAgLy9J bmNsdWRlIFBNRCAoYW5kIG5vbi1QTUQpIFRYL1JYIGhlYWRlcnMuLi4NCj4NCj4gICBzdGF0aWMg aW5saW5lIHVpbnQxNl90DQo+ICAgcnRlX3BrdF90eF9idXJzdChwa3RfZGV2X3QqIGRldiwgdWlu dDE2X3QgcXVldWVfaWQsDQo+ICAgICAgICAgICAgIHN0cnVjdCBydGVfbWJ1ZiAqKnR4X3BrdHMs IHVpbnQxNl90IG5iX3BrdHMpDQo+ICAgew0KPiAgICAgICAgc3dpdGNoICgoKHN0cnVjdCBydGVf cGt0X2Rldl9kYXRhKilkZXYpLT50eXBlKXsNCj4gICAgICAgICAgICAjaWZkZWYgUlRFX0xJQlJU RV9FVEhFUg0KPiAgICAgICAgICAgIGNhc2UgIFJURV9QS1RfREVWX0VUSDoNCj4gICAgICAgICAg ICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2KiBldGhfZGV2ID0gKHN0cnVjdA0KPnJ0ZV9ldGhfZGV2 Kilwa3RfZGV2Ow0KPiAgICAgICAgICAgICAgICBydGVfcGt0X3R4X2J1cnN0KGV0aF9kZXYsIHF1 ZXVlX2lkLCB0eF9wa3RzLCBuYl9wa3RzKTsNCj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAg ICAgICAgICAgI2VuZGlmDQo+DQo+ICAgICAgICAgICAgI2lmZGVmIFJURV9MSUJSVEVfS05JDQo+ ICAgICAgICAgICAgY2FzZSBSVEVfUEtUX0RFVl9LTkk6DQo+ICAgICAgICAgICAgICAgIC8vLi4u DQo+ICAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgICAgICNlbmRpZg0KPg0KPiAgICAg ICAgICAgIGRlZmF1bHQ6DQo+ICAgICAgICAgICAgICAgICAgICAvL0NvcnJ1cHRlZCB0eXBlIG9y IHVuc3VwcG9ydGVkICh3aXRob3V0IGNvbXBpbGVkDQo+c3VwcG9ydCkNCj4gICAgICAgICAgICAg ICAgICAgIC8vSWdub3JlIG9yIGZhaWwoZmF0YWwgZXJyb3IpPw0KPiAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQo+ICAgICAgICB9DQo+ICAgfQ0KPg0KPiAgIC8vLi4uDQo+DQo+VGhpcyBhZGRz IGEgc3dpdGNoIGludG8gdGhlIHBlcmZvcm1hbmNlIHBhdGgsIG5vdCBhIGdyZWF0IHNvbHV0aW9u IElNTy4NCj4NCj4NCj5Gcm9tIHJ0ZV9jb21tb25fZGV2aWNlLmggKGZvcm1hdCBzY3Jld2VkIHdp dGggY3V0L3Bhc3RlIGFuZCBub3QgYWxsIG9mIHRoZQ0KPmNvZGUpDQo+DQo+DQo+c3RydWN0IHJ0 ZV9kZXZfZGF0YSB7DQo+ICAgICAgICBjaGFyIG5hbWVbUlRFX0RFVl9OQU1FX01BWF9MRU5dOyAv Kio8IFVuaXF1ZSBpZGVudGlmaWVyIG5hbWUgKi8NCj4NCj4gICAgICAgIHZvaWQgICAgKipyeF9x dWV1ZXM7ICAgICAgICAgICAgLyoqPCBBcnJheSBvZiBwb2ludGVycyB0byBSWA0KPnF1ZXVlcy4g Ki8NCj4gICAgICAgIHZvaWQgICAgKip0eF9xdWV1ZXM7ICAgICAgICAgICAgLyoqPCBBcnJheSBv ZiBwb2ludGVycyB0byBUWA0KPnF1ZXVlcy4gKi8NCj4NCj4gICAgICAgIHVpbnQxNl90IG5iX3J4 X3F1ZXVlczsgICAgICAgICAgLyoqPCBOdW1iZXIgb2YgUlggcXVldWVzLiAqLw0KPiAgICAgICAg dWludDE2X3QgbmJfdHhfcXVldWVzOyAgICAgICAgICAvKio8IE51bWJlciBvZiBUWCBxdWV1ZXMu ICovDQo+DQo+ICAgICAgICB1aW50MTZfdCBtdHU7ICAgICAgICAgICAgICAgICAgIC8qKjwgTWF4 aW11bSBUcmFuc21pc3Npb24gVW5pdC4gKi8NCj4gICAgICAgIHVpbnQ4X3QgIHVuaXRfaWQ7ICAg ICAgICAgICAgICAgLyoqPCBVbml0L1BvcnQgSUQgZm9yIHRoaXMNCj5pbnN0YW5jZSAqLw0KPiAg ICAgICAgdWludDhfdCAgX3BhZDA7ICAgICAgICAgICAgICAgICAvKiBhbGlnbm1lbnQgZmlsbGVy ICovDQo+DQo+ICAgICAgICB2b2lkICAgICpkZXZfcHJpdmF0ZTsgICAgICAgICAgIC8qKjwgUE1E LXNwZWNpZmljIHByaXZhdGUgZGF0YSAqLw0KPiAgICAgICAgdWludDY0X3QgcnhfbWJ1Zl9hbGxv Y19mYWlsZWQ7ICAvKio8IFJYIHJpbmcgbWJ1ZiBhbGxvY2F0aW9uDQo+ZmFpbHVyZXMuICovDQo+ ICAgICAgICB1aW50MzJfdCBtaW5fcnhfYnVmX3NpemU7ICAgICAgIC8qKjwgQ29tbW9uIHJ4IGJ1 ZmZlciBzaXplDQo+aGFuZGxlZCBieSBhbGwNCj5xdWV1ZXMgKi8NCj59Ow0KPg0KPnN0cnVjdCBy dGVfZGV2X2luZm8gew0KPiAgICAgICAgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICAgKnBjaV9kZXY7 ICAgLyoqPCBEZXZpY2UgUENJIGluZm9ybWF0aW9uLg0KPiovDQo+ICAgICAgICBjb25zdCBjaGFy ICAgICAgKmRyaXZlcl9uYW1lOyAgICAgICAgICAgLyoqPCBEZXZpY2UgRHJpdmVyIG5hbWUuDQo+ Ki8NCj4gICAgICAgIHVuc2lnbmVkIGludCAgICBpZl9pbmRleDsgICAgICAgICAgICAgICAvKio8 IEluZGV4IHRvIGJvdW5kIGhvc3QNCj5pbnRlcmZhY2UsIG9yIDANCj5pZiBub25lLiAqLw0KPiAg ICAgICAgLyogVXNlIGlmX2luZGV4dG9uYW1lKCkgdG8gdHJhbnNsYXRlIGludG8gYW4gaW50ZXJm YWNlIG5hbWUuICovDQo+ICAgICAgICB1bnNpZ25lZCBpbnQgICAgX3BhZDA7DQo+fTsNCj4NCj4N Cj4NCj5zdHJ1Y3QgcnRlX2RldiB7DQo+ICAgICAgICBkZXZfcnhfYnVyc3RfdCAgICAgICAgICBy eF9wa3RfYnVyc3Q7ICAgLyoqPCBQb2ludGVyIHRvIFBNRA0KPnJlY2VpdmUNCj5mdW5jdGlvbi4g Ki8NCj4gICAgICAgIGRldl90eF9idXJzdF90ICAgICAgICAgIHR4X3BrdF9idXJzdDsgICAvKio8 IFBvaW50ZXIgdG8gUE1EDQo+dHJhbnNtaXQNCj5mdW5jdGlvbi4gKi8NCj4gICAgICAgIHZvaWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZGF0YTsgICAgICAgICAgLyoqPA0K PlBvaW50ZXIgdG8gZGV2aWNlIGRhdGEgKi8NCj4gICAgICAgIHN0cnVjdCBydGVfZGV2X2dsb2Jh bCAgICpnYmxfZGF0YTsgICAgICAvKio8IFBvaW50ZXIgdG8gZGV2aWNlDQo+Z2xvYmFsIGRhdGEN Cj4qLw0KPiAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9kZXZfZHJ2ICpkcml2ZXI7ICAgICAgIC8q KjwgRHJpdmVyIGZvciB0aGlzDQo+ZGV2aWNlICovDQo+ICAgICAgICB2b2lkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKmRldl9vcHM7ICAgICAgIC8qKjwNCj5GdW5jdGlvbnMg ZXhwb3J0ZWQgYnkgUE1EICovDQo+ICAgICAgICBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgICAqcGNp X2RldjsgICAgICAgLyoqPCBQQ0kgaW5mby4gc3VwcGxpZWQgYnkNCj5wcm9iaW5nICovDQo+ICAg ICAgICBzdHJ1Y3QgcnRlX2Rldl9pbmZvICAgICAgICAgICAgICpkZXZfaW5mbzsgICAgICAgICAg ICAgIC8qKjwNCj5Qb2ludGVyIHRvIHRoZSBkZXZpY2UgaW5mbw0KPnN0cnVjdHVyZSAqLw0KPg0K PiAgICAgICAgLyoqIFVzZXIgYXBwbGljYXRpb24gY2FsbGJhY2sgZm9yIGludGVycnVwdHMgaWYg cHJlc2VudCAqLw0KPiAgICAgICAgc3RydWN0IHJ0ZV9kZXZfY2JfbGlzdCAgbGlua19pbnRyX2Ni czsNCj4gICAgICAgIC8qKg0KPiAgICAgICAgKiBVc2VyLXN1cHBsaWVkIGZ1bmN0aW9ucyBjYWxs ZWQgZnJvbSByeF9idXJzdCB0byBwb3N0LXByb2Nlc3MNCj4gICAgICAgICogcmVjZWl2ZWQgcGFj a2V0cyBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZSB1c2VyDQo+ICAgICAgICAqLw0KPiAgICAg ICAgc3RydWN0IHJ0ZV9kZXZfcnh0eF9jYWxsYmFjayAqKnBvc3RfcnhfYnVyc3RfY2JzOw0KPiAg ICAgICAgLyoqDQo+ICAgICAgICAqIFVzZXItc3VwcGxpZWQgZnVuY3Rpb25zIGNhbGxlZCBmcm9t IHR4X2J1cnN0IHRvIHByZS1wcm9jZXNzDQo+ICAgICAgICAqIHJlY2VpdmVkIHBhY2tldHMgYmVm b3JlIHBhc3NpbmcgdGhlbSB0byB0aGUgZHJpdmVyIGZvcg0KPnRyYW5zbWlzc2lvbi4NCj4gICAg ICAgICovDQo+ICAgICAgICBzdHJ1Y3QgcnRlX2Rldl9yeHR4X2NhbGxiYWNrICoqcHJlX3R4X2J1 cnN0X2NiczsNCj4NCj5XaGF0IGlzIHRoZSBpbmRlbmRlZCB1c2Ugb2YgdGhlc2UgY2FsbGJhY2tz IGFuZCB3aGF0IGlzIHRoZSBiZW5lZml0PyBJZg0KPnRoZSB1c2VyIGlzIHN1cHBseWluZyB0aGUg Y2FsbGJhY2ssIHdoeSBub3QgcHV0dGluZyBpdCBkaXJlY3RseSBhZnRlciB0aGUNCj5SWCBhbmQg YmVmb3JlIHRoZSBUWCBjYWxsIGluIHVzZXIncyBjb2RlIChhbnl3YXkpPw0KDQpLZWl0aKGvcyBD b21tZW50Lg0KPg0KPkp1c3QgbW92aW5nIHRoZSBjYWxsYmFjayByb3V0aW5lcyBuZXh0IHRvIHRo ZSBSeC9UeCByb3V0aW5lIHBvaW50ZXJzIGRvZXMNCj5ub3QgbWFrZSBhIGxvdCBvZiBkaWZmZXJl bnQgaW4gdGhpcyBzdHJ1Y3R1cmUsIHJpZ2h0Pw0KS2VpdGihr3MgY29tbWVudCBlbmQuDQo+DQo+ DQo+DQo+ICAgICAgICBlbnVtIHJ0ZV9kZXZfdHlwZSAgICAgICAgICAgICAgIGRldl90eXBlOyAg ICAgICAvKio8IEZsYWcNCj5pbmRpY2F0aW5nIHRoZSBkZXZpY2UgdHlwZSAqLw0KPiAgICAgICAg dWludDhfdCAgICAgICAgICAgICAgICAgYXR0YWNoZWQ7ICAgICAgICAvKio8IEZsYWcgaW5kaWNh dGluZyB0aGUNCj5wb3J0IGlzDQo+YXR0YWNoZWQgKi8NCj59Ow0KPg0KPkZyb20gcnRlX2V0aGRl di5oDQo+DQo+c3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gew0KPiAgICAgICAgc3RydWN0IHJ0ZV9k ZXZfaW5mbyAgICAgZGk7ICAgICAvKio8IENvbW1vbiBkZXZpY2UgaW5mb3JtYXRpb24gKi8NCj4N Cj4gICAgICAgIC8qIFJlc3Qgb2Ygc3RydWN0dXJlIGlzIGZvciBwcml2YXRlIGRldmljZSBkYXRh ICovDQo+ICAgICAgICB1aW50MzJfdCBtaW5fcnhfYnVmc2l6ZTsgLyoqPCBNaW5pbXVtIHNpemUg b2YgUlggYnVmZmVyLiAqLw0KPiAgICAgICAgdWludDMyX3QgbWF4X3J4X3BrdGxlbjsgLyoqPCBN YXhpbXVtIGNvbmZpZ3VyYWJsZSBsZW5ndGggb2YgUlgNCj5wa3QuICovDQo+ICAgICAgICB1aW50 MTZfdCBtYXhfcnhfcXVldWVzOyAvKio8IE1heGltdW0gbnVtYmVyIG9mIFJYIHF1ZXVlcy4gKi8N Cj4gICAgICAgIHVpbnQxNl90IG1heF90eF9xdWV1ZXM7IC8qKjwgTWF4aW11bSBudW1iZXIgb2Yg VFggcXVldWVzLiAqLw0KPiAgICAgICAgdWludDMyX3QgbWF4X21hY19hZGRyczsgLyoqPCBNYXhp bXVtIG51bWJlciBvZiBNQUMgYWRkcmVzc2VzLiAqLw0KPiAgICAgICAgdWludDMyX3QgbWF4X2hh c2hfbWFjX2FkZHJzOw0KPiAgICAgICAgLyoqIE1heGltdW0gbnVtYmVyIG9mIGhhc2ggTUFDIGFk ZHJlc3NlcyBmb3IgTVRBIGFuZCBVVEEuICovDQo+ICAgICAgICB1aW50MTZfdCBtYXhfdmZzOyAv Kio8IE1heGltdW0gbnVtYmVyIG9mIFZGcy4gKi8NCj4gICAgICAgIHVpbnQxNl90IG1heF92bWRx X3Bvb2xzOyAvKio8IE1heGltdW0gbnVtYmVyIG9mIFZNRHEgcG9vbHMuICovDQo+ICAgICAgICB1 aW50MzJfdCByeF9vZmZsb2FkX2NhcGE7IC8qKjwgRGV2aWNlIFJYIG9mZmxvYWQgY2FwYWJpbGl0 aWVzLiAqLw0KPiAgICAgICAgdWludDMyX3QgdHhfb2ZmbG9hZF9jYXBhOyAvKio8IERldmljZSBU WCBvZmZsb2FkIGNhcGFiaWxpdGllcy4gKi8NCj4gICAgICAgIHVpbnQxNl90IHJldGFfc2l6ZTsN Cj4gICAgICAgIC8qKjwgRGV2aWNlIHJlZGlyZWN0aW9uIHRhYmxlIHNpemUsIHRoZSB0b3RhbCBu dW1iZXIgb2YgZW50cmllcy4NCj4qLw0KPiAgICAgICAgLyoqIEJpdCBtYXNrIG9mIFJTUyBvZmZs b2FkcywgdGhlIGJpdCBvZmZzZXQgYWxzbyBtZWFucyBmbG93IHR5cGUNCj4qLw0KPiAgICAgICAg dWludDY0X3QgZmxvd190eXBlX3Jzc19vZmZsb2FkczsNCj4gICAgICAgIHN0cnVjdCBydGVfZXRo X3J4Y29uZiBkZWZhdWx0X3J4Y29uZjsgLyoqPCBEZWZhdWx0IFJYDQo+Y29uZmlndXJhdGlvbiAq Lw0KPiAgICAgICAgc3RydWN0IHJ0ZV9ldGhfdHhjb25mIGRlZmF1bHRfdHhjb25mOyAvKio8IERl ZmF1bHQgVFgNCj5jb25maWd1cmF0aW9uICovDQo+ICAgICAgICB1aW50MTZfdCB2bWRxX3F1ZXVl X2Jhc2U7IC8qKjwgRmlyc3QgcXVldWUgSUQgZm9yIFZNRFEgcG9vbHMuICovDQo+ICAgICAgICB1 aW50MTZfdCB2bWRxX3F1ZXVlX251bTsgLyoqPCBRdWV1ZSBudW1iZXIgZm9yIFZNRFEgcG9vbHMu ICovDQo+ICAgICAgICB1aW50MTZfdCB2bWRxX3Bvb2xfYmFzZTsgLyoqPCBGaXJzdCBJRCBvZiBW TURRIHBvb2xzLiAqLw0KPn07DQo+DQo+c3RydWN0IHJ0ZV9ldGhfZGV2X2RhdGEgew0KPiAgICAg ICAgc3RydWN0IHJ0ZV9kZXZfZGF0YSAgICAgICAgICAgICBkZDsgICAgICAgICAgICAgICAgICAg ICAvKio8DQo+Q29tbW9uIGRldmljZSBkYXRhICovDQo+DQo+ICAgICAgICAvKiBSZXN0IG9mIHRo ZSBzdHJ1Y3R1cmUgaXMgcHJpdmF0ZSBkYXRhICovDQo+ICAgICAgICBzdHJ1Y3QgcnRlX2V0aF9k ZXZfc3Jpb3Ygc3Jpb3Y7ICAgIC8qKjwgU1JJT1YgZGF0YSAqLw0KPg0KPiAgICAgICAgc3RydWN0 IHJ0ZV9ldGhfbGluayBkZXZfbGluazsNCj4gICAgICAgIC8qKjwgTGluay1sZXZlbCBpbmZvcm1h dGlvbiAmIHN0YXR1cyAqLw0KPg0KPiAgICAgICAgc3RydWN0IHJ0ZV9ldGhfY29uZiBkZXZfY29u ZjsgICAvKio8IENvbmZpZ3VyYXRpb24gYXBwbGllZCB0bw0KPmRldmljZS4gKi8NCj4gICAgICAg IHN0cnVjdCBldGhlcl9hZGRyKiBtYWNfYWRkcnM7ICAgLyoqPCBEZXZpY2UgRXRoZXJuZXQgTGlu aw0KPmFkZHJlc3MuICovDQo+ICAgICAgICB1aW50NjRfdCBtYWNfcG9vbF9zZWxbRVRIX05VTV9S RUNFSVZFX01BQ19BRERSXTsNCj4gICAgICAgIC8qKiBiaXRtYXAgYXJyYXkgb2YgYXNzb2NpYXRp bmcgRXRoZXJuZXQgTUFDIGFkZHJlc3NlcyB0byBwb29scyAqLw0KPiAgICAgICAgc3RydWN0IGV0 aGVyX2FkZHIqIGhhc2hfbWFjX2FkZHJzOw0KPg0KPiAgICAgICAgLyoqIERldmljZSBFdGhlcm5l dCBNQUMgYWRkcmVzc2VzIG9mIGhhc2ggZmlsdGVyaW5nLiAqLw0KPiAgICAgICAgdWludDhfdCBw cm9taXNjdW91cyAgOiAxLCAgIC8qKjwgUlggcHJvbWlzY3VvdXMgbW9kZSBPTigxKSAvDQo+T0ZG KDApLiAqLw0KPiAgICAgICAgICAgICAgICBzY2F0dGVyZWRfcnggOiAxLCAgICAgICAvKio8IFJY IG9mIHNjYXR0ZXJlZCBwYWNrZXRzIGlzDQo+T04oMSkgLyBPRkYoMCkgKi8NCj4gICAgICAgICAg ICAgICAgYWxsX211bHRpY2FzdDogMSwgICAvKio8IFJYIGFsbCBtdWx0aWNhc3QgbW9kZSBPTigx KSAvDQo+T0ZGKDApLiAqLw0KPiAgICAgICAgICAgICAgICBkZXZfc3RhcnRlZCAgOiAxOyAgIC8q KjwgRGV2aWNlIHN0YXRlOiBTVEFSVEVEKDEpIC8NCj5TVE9QUEVEKDApLiAqLw0KPn07DQo+DQo+ SW4gdGhlIGNhc2Ugb2YgcnRlX2V0aGRldi5oIHRoZSBydGVfZXRoX2RldiB0dXJucyBpbnRvIGEg bWFjcm8gJyNkZWZpbmUNCj5ydGVfZXRoX2RldiBydGVfZGV2JywgaW4gb3RoZXIgZGV2aWNlcyB0 aGV5IG1heSBoYXZlIGEgcnRlX3h5el9kZXYNCj5zdHJ1Y3R1cmUgcnRlX2RldiBhcyB0aGUgZmly c3QgbWVtYmVyIGFuZCB0aGVuIHByaXZhdGUgbWVtYmVycy4gQWxzbyBsYXRlcg0KPmlmIHdlIGZp bmQgc29tZXRoaW5nIHByaXZhdGUgdG8gZXRoZGV2IHRoZW4gYSBzdHJ1Y3R1cmUgY2FuIGJlIGNy ZWF0ZWQuDQo+DQo+DQo+TW9zdCBvZiB0aGUgY29kZSBjaGFuZ2VzIG91dHNpZGUgb2YgdGhlc2Ug Y2hhbmdlcyBhcmUgYmVjYXVzZSB1c2luZyBhDQo+bWFjcm8gdG8gZml4IHRoZSBjb2RlIHdhcyBl YXNpZXIuIFJld3JpdGluZyB0aGUgZnVuY3Rpb25zIHRvIHVzZSByZWFsDQo+dmFyaWFibGVzIGlu c3RlYWQgb2YgY2FzdGluZyB2b2lkIHBvaW50ZXIgY291bGQgeWllbGQgd2l0aG91dCB0aGUgbWFj cm9zLg0KPk5vdCBzdXJlIGFzIHRoZSBwZXJmb3JtYW5jZSBpbXBhY3QgaW4gcmV3cml0aW5nIHNv bWUgb2YgdGhlc2UgZnVuY3Rpb25zIHRvDQo+ZWxpbWluYXRlIHRoZSBtYWNyb3MuDQo+DQo+VGhp cyBpcyB0aGUgaGVhcnQgb2Ygd2hhdCBJIGFtIHByb3Bvc2luZyBhbmQgaXQganVzdCBzbyBoYXBw ZW5zIHRvIGFsbG93DQo+QnJ1Y2Wp9iBpZGVhcyBhcyB3ZWxsLiBJIGhhdmUgYW5vdGhlciBwYXRj aCBJIGhhdmUgbm90IHNlbnQgdGhhdCBpbmNsdWRlcw0KPkJydWNlqfZzIGlkZWFzIHVzaW5nIG15 IHN1Z2dlc3Rpb25zLg0KPg0KPkJlaW5nIGFibGUgdG8gdXNlIGEgc2luZ2xlIEFQSSBmb3IgYWxs IGRldmljZXMgZG9lcyBoYXZlIGl0cyBiZW5lZml0cyBJTU8sDQo+YnV0IEkgd2FudCB0byBjbGVh bnVwIGV0aGRldiB0byBhbGxvdyBmb3Igb3RoZXIgZGV2aWNlcyB0byBiZSBhZGRlZCB0byB0aGUN Cj5zeXN0ZW0uDQo+DQo+QXQgc29tZSBwb2ludCAod2hlbiB0aGUgY3J5cHRvZGV2IGlzIGRvbmUp IEkgd2FudCB0byBhZGQgaXQgdG8gdGhpcw0KPmZyYW1ld29yaywgcGx1cyBhZGQgbW9yZSBBUElz IGZvciBjcnlwdG8gc2ltaWxhciB0byBMaW51eCBDcnlwdG8gQVBJIG9yDQo+c29tZXRoaW5nIHdl IGNhbiBhZ3JlZSBpcyBhIHJlYXNvbmFibGUgc2V0IG9mIEFQSXMgZm9yIERQREsuDQo+DQo+SSBj dXJyZW50bHkgZG9uJ3Qgc2VlIHRoZSBiZW5lZml0IG9mIGFic3RyYWN0aW5nIGJleW9uZCB0aGUg UlgvVFgNCj5mdW5jdGlvbnMsIGFuZCBJIHNlZSBtb3JlIGNvbnMgdGhhbiBwcm9zLiBEb2luZyBz byB3ZSB3aWxsIGFsc28gbWFrZQ0KPmxpYnJ0ZV9wa3RfZGV2IHNvcnQgb2YgbWFuZGF0b3J5LCBl dmVuIGlmIHlvdSBhcmUgbm90IHVzaW5nIGl0IG91cg0KPmFic3RyYWN0ZWQgUlgvVFggZnVuY3Rp b25zIGF0IGFsbC4NCg0KS2VpdGggQ29tbWVudC4NCj4NCj5JIGRvIG5vdCBzZWUgd2h5IHdlIHdv dWxkIG5vdCBwdWxsIHRoZXNlIGNvbW1vbiBpdGVtcyBvdXQuIENhbiB5b3UgbGlzdA0KPnlvdXIg Y29ucyBhcyBJIGRvIG5vdCBzZWUgeW91ciBwb2ludCBoZXJlLg0KS2VpdGggQ29tbWVudA0KPg0K Pg0KPnJlZ2FyZHMNCj5tYXJjDQo+DQo+DQo+DQo+UmVnYXJkcywNCj4NCj4rK0tlaXRoDQo+DQo+ DQo+TWF5YmUgaXQgaXMgb3ZlcnNpbXBsaWZpZWQ/IFdpdGggdGhpcyBhcHByb2FjaCB0b3VnaCwg d2Ugd291bGQgYmFyZWx5DQo+dG91Y2ggdGhlIFBNRHMgYW5kIHRoZSBmdW5jdGlvbmFsaXR5IGNh biBiZSBidWlsdCBvbiB0b3Agb2YgdGhlIGV4aXN0aW5nDQo+UE1Ecy4NCj4NCj5UaG91Z2h0cz8N Cj5NYXJjDQo+DQo+DQo+DQo+DQo+QnJ1Y2UgUmljaGFyZHNvbiAoNCk6DQo+ICAgQWRkIGV4YW1w bGUgcGt0ZGV2IGltcGxlbWVudGF0aW9uDQo+ICAgTWFrZSBldGhkZXYgZXhwbGljaXRseSBhIHN1 YmNsYXNzIG9mIHBrdGRldg0KPiAgIGFkZCBzdXBwb3J0IGZvciBhIHJpbmcgdG8gYmUgYSBwa3Rk ZXYNCj4gICBleGFtcGxlIGFwcCBzaG93aW5nIHBrdGRldnMgdXNlZCBpbiBhIGNoYWluDQo+DQo+ ICBjb25maWcvY29tbW9uX2JzZGFwcCAgICAgICAgICAgfCAgIDUgKw0KPiAgY29uZmlnL2NvbW1v bl9saW51eGFwcCAgICAgICAgIHwgICA1ICsNCj4gIGV4YW1wbGVzL3BrdGRldi9NYWtlZmlsZSAg ICAgICB8ICA1NyArKysrKysrKysrKw0KPiAgZXhhbXBsZXMvcGt0ZGV2L2Jhc2ljZndkLmMgICAg IHwgMjIyDQo+KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxp Yi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ICBsaWIvbGlicnRlX2V0aGVy L3J0ZV9ldGhkZXYuaCAgfCAgMjYgKystLS0NCj4gIGxpYi9saWJydGVfcGt0ZGV2L01ha2VmaWxl ICAgICB8ICA1NiArKysrKysrKysrKw0KPiAgbGliL2xpYnJ0ZV9wa3RkZXYvcnRlX3BrdGRldi5j IHwgIDM1ICsrKysrKysNCj4gIGxpYi9saWJydGVfcGt0ZGV2L3J0ZV9wa3RkZXYuaCB8IDE0NCAr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nLmMg ICAgIHwgIDQxICsrKysrKysrDQo+ICBsaWIvbGlicnRlX3JpbmcvcnRlX3JpbmcuaCAgICAgfCAg IDMgKw0KPiAgMTEgZmlsZXMgY2hhbmdlZCwgNTgyIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9u cygtKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4YW1wbGVzL3BrdGRldi9NYWtlZmlsZQ0KPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGV4YW1wbGVzL3BrdGRldi9iYXNpY2Z3ZC5jDQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9wa3RkZXYvTWFrZWZpbGUNCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBsaWIvbGlicnRlX3BrdGRldi9ydGVfcGt0ZGV2LmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBsaWIvbGlicnRlX3BrdGRldi9ydGVfcGt0ZGV2LmgNCj4NCj4NCj4NCg0K