From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mga05.intel.com ([192.55.52.43]:8710 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725790AbeITEiQ (ORCPT ); Thu, 20 Sep 2018 00:38:16 -0400 From: "Zhi, Yong" To: Tomasz Figa CC: Linux Media Mailing List , Sakari Ailus , "Mani, Rajmohan" , "Toivonen, Tuukka" , "Hu, Jerry W" , "Zheng, Jian Xu" Subject: RE: [PATCH v6 06/12] intel-ipu3: css: Add support for firmware management Date: Wed, 19 Sep 2018 22:57:55 +0000 Message-ID: References: <1522376100-22098-1-git-send-email-yong.zhi@intel.com> <1522376100-22098-7-git-send-email-yong.zhi@intel.com> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org List-ID: SGksIFRvbWFzeiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBsaW51 eC1tZWRpYS1vd25lckB2Z2VyLmtlcm5lbC5vcmcgW21haWx0bzpsaW51eC1tZWRpYS0NCj4gb3du ZXJAdmdlci5rZXJuZWwub3JnXSBPbiBCZWhhbGYgT2YgVG9tYXN6IEZpZ2ENCj4gU2VudDogTW9u ZGF5LCBKdWx5IDIsIDIwMTggMjowNSBBTQ0KPiBUbzogWmhpLCBZb25nIDx5b25nLnpoaUBpbnRl bC5jb20+DQo+IENjOiBMaW51eCBNZWRpYSBNYWlsaW5nIExpc3QgPGxpbnV4LW1lZGlhQHZnZXIu a2VybmVsLm9yZz47IFNha2FyaSBBaWx1cw0KPiA8c2FrYXJpLmFpbHVzQGxpbnV4LmludGVsLmNv bT47IE1hbmksIFJham1vaGFuDQo+IDxyYWptb2hhbi5tYW5pQGludGVsLmNvbT47IFRvaXZvbmVu LCBUdXVra2ENCj4gPHR1dWtrYS50b2l2b25lbkBpbnRlbC5jb20+OyBIdSwgSmVycnkgVyA8amVy cnkudy5odUBpbnRlbC5jb20+OyBaaGVuZywNCj4gSmlhbiBYdSA8amlhbi54dS56aGVuZ0BpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjYgMDYvMTJdIGludGVsLWlwdTM6IGNzczog QWRkIHN1cHBvcnQgZm9yIGZpcm13YXJlDQo+IG1hbmFnZW1lbnQNCj4gDQo+ICBIaSBZb25nLA0K PiANCj4gQ29udGludWluZyBteSByZXZpZXcuIFNvcnJ5IGZvciB0aGUgZGVsYXkuDQo+IA0KPiBP biBGcmksIE1hciAzMCwgMjAxOCBhdCAxMToxNSBBTSBZb25nIFpoaSA8eW9uZy56aGlAaW50ZWwu Y29tPiB3cm90ZToNCj4gPg0KPiA+IEludHJvZHVjZSBmdW5jdGlvbnMgdG8gbG9hZCBhbmQgaW5z dGFsbCBJbWdVIEZXIGJsb2JzLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogWW9uZyBaaGkgPHlv bmcuemhpQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9tZWRpYS9wY2kvaW50ZWwv aXB1My9pcHUzLWFiaS5oICAgIHwgMTg4OA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+ID4gIGRyaXZlcnMvbWVkaWEvcGNpL2ludGVsL2lwdTMvaXB1My1jc3MtZncuYyB8ICAyNjEg KysrKw0KPiA+IGRyaXZlcnMvbWVkaWEvcGNpL2ludGVsL2lwdTMvaXB1My1jc3MtZncuaCB8ICAx OTggKysrDQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMjM0NyBpbnNlcnRpb25zKCspDQo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21lZGlhL3BjaS9pbnRlbC9pcHUzL2lwdTMtYWJpLmgN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWVkaWEvcGNpL2ludGVsL2lwdTMvaXB1 My1jc3MtZncuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRpYS9wY2kvaW50 ZWwvaXB1My9pcHUzLWNzcy1mdy5oDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRp YS9wY2kvaW50ZWwvaXB1My9pcHUzLWFiaS5oDQo+ID4gYi9kcml2ZXJzL21lZGlhL3BjaS9pbnRl bC9pcHUzL2lwdTMtYWJpLmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAw MDAwMDAwMDAwMC4uMjQxMDI2NDdhODllDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2Ry aXZlcnMvbWVkaWEvcGNpL2ludGVsL2lwdTMvaXB1My1hYmkuaA0KPiBbc25pcF0NCj4gPiArLyog U1lTVEVNX1JFUV8wXzVfMF9JTUdITU1BRFIgKi8NCj4gPiArI2RlZmluZSBJTUdVX1JFR19TWVNU RU1fUkVRICAgICAgICAgICAgICAgICAgICAweDE4DQo+ID4gKyNkZWZpbmUgSU1HVV9TWVNURU1f UkVRX0ZSRVFfTUFTSyAgICAgICAgICAgICAgMHgzZg0KPiA+ICsjZGVmaW5lIElNR1VfU1lTVEVN X1JFUV9GUkVRX0RJVklERVIgICAgICAgICAgIDI1DQo+ID4gKyNkZWZpbmUgSU1HVV9SRUdfSU5U X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgMHgzMA0KPiA+ICsjZGVmaW5lIElNR1VfUkVHX0lO VF9FTkFCTEUgICAgICAgICAgICAgICAgICAgIDB4MzQNCj4gPiArI2RlZmluZSBJTUdVX1JFR19J TlRfQ1NTX0lSUSAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkNCj4gDQo+IEJJVCgzMSkNCj4g DQoNCkFjay4NCg0KPiBbc25pcF0NCj4gPiArICAgICAgIElNR1VfQUJJX0ZSQU1FX0ZPUk1BVF9D U0lfTUlQSV9MRUdBQ1lfWVVWNDIwXzgsIC8qDQo+IExlZ2FjeSBZVVY0MjAuDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBVWSBv ZGQgbGluZTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqIFZZIGV2ZW4gbGluZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ID4gKyAgICAgICBJTUdVX0FC SV9GUkFNRV9GT1JNQVRfQ1NJX01JUElfWVVWNDIwXzEwLC8qIDEwIGJpdCBwZXINCj4gWS9VL1Yu IFkgb2RkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqIGxpbmU7IFVZVlkgaW50ZXJsZWF2ZWQNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZXZlbiBsaW5lDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgSU1H VV9BQklfRlJBTUVfRk9STUFUX1lDZ0NvNDQ0XzE2LCAvKiBJbnRlcm5hbCBmb3JtYXQgZm9yDQo+ ID4gKyBJU1AyLjcsDQo+IA0KPiBNYWNyb3MgYW5kIGVudW1zIHNob3VsZCBiZSB1cHBlcmNhc2Uu DQo+IA0KDQpBY2suDQoNCj4gW3NuaXBdDQo+ID4gK3N0cnVjdCBpbWd1X2FiaV9zaGRfaW50cmFf ZnJhbWVfb3BlcmF0aW9uc19kYXRhIHsNCj4gPiArICAgICAgIHN0cnVjdCBpbWd1X2FiaV9hY2Nf b3BlcmF0aW9uDQo+ID4gKyAgICAgICAgICAgICAgIG9wZXJhdGlvbl9saXN0W0lNR1VfQUJJX1NI RF9NQVhfT1BFUkFUSU9OU10NCj4gSVBVM19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBpbWd1 X2FiaV9hY2NfcHJvY2Vzc19saW5lc19jbWRfZGF0YQ0KPiA+ICsgICAgICAgICAgICAgICBwcm9j ZXNzX2xpbmVzX2RhdGFbSU1HVV9BQklfU0hEX01BWF9QUk9DRVNTX0xJTkVTXQ0KPiBJUFUzX0FM SUdOOw0KPiA+ICsgICAgICAgc3RydWN0IGltZ3VfYWJpX3NoZF90cmFuc2Zlcl9sdXRzX3NldF9k YXRhDQo+ID4gKyAgICAgICAgICAgICAgIHRyYW5zZmVyX2RhdGFbSU1HVV9BQklfU0hEX01BWF9U UkFOU0ZFUlNdIElQVTNfQUxJR047DQo+ID4gK30gX19wYWNrZWQ7DQo+ID4gKw0KPiA+ICtzdHJ1 Y3QgaW1ndV9hYmlfc2hkX2NvbmZpZyB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgaXB1M191YXBpX3No ZF9jb25maWdfc3RhdGljIHNoZCBJTUdVX0FCSV9QQUQ7DQo+ID4gKyAgICAgICBzdHJ1Y3QgaW1n dV9hYmlfc2hkX2ludHJhX2ZyYW1lX29wZXJhdGlvbnNfZGF0YSBzaGRfb3BzDQo+IElNR1VfQUJJ X1BBRDsNCj4gPiArICAgICAgIHN0cnVjdCBpcHUzX3VhcGlfc2hkX2x1dCBzaGRfbHV0IElNR1Vf QUJJX1BBRDsNCj4gDQo+IERlZmluaXRpb25zIG9mIGJvdGggSVBVM19BTElHTiBhbmQgSU1HVV9B QklfUEFEIHNlZW0gdG8gYmUgZXF1aXZhbGVudC4NCj4gQ291bGQgd2UgcmVtb3ZlIG9uZSBhbmQg dXNlIHRoZSBvdGhlciBldmVyeXdoZXJlPw0KPiANCg0KQWdyZWUsIHdpbGwgcmVtb3ZlIElNR1Vf QUJJX1BBRC4NCg0KPiBbc25pcF0NCj4gPiArc3RydWN0IGltZ3VfYWJpX29zeXNfc2NhbGVyX3Bh cmFtcyB7DQo+ID4gKyAgICAgICBfX3UzMiBpbnBfYnVmX3lfc3RfYWRkcjsNCj4gPiArICAgICAg IF9fdTMyIGlucF9idWZfeV9saW5lX3N0cmlkZTsNCj4gPiArICAgICAgIF9fdTMyIGlucF9idWZf eV9idWZmZXJfc3RyaWRlOw0KPiA+ICsgICAgICAgX191MzIgaW5wX2J1Zl91X3N0X2FkZHI7DQo+ ID4gKyAgICAgICBfX3UzMiBpbnBfYnVmX3Zfc3RfYWRkcjsNCj4gPiArICAgICAgIF9fdTMyIGlu cF9idWZfdXZfbGluZV9zdHJpZGU7DQo+ID4gKyAgICAgICBfX3UzMiBpbnBfYnVmX3V2X2J1ZmZl cl9zdHJpZGU7DQo+ID4gKyAgICAgICBfX3UzMiBpbnBfYnVmX2NodW5rX3dpZHRoOw0KPiA+ICsg ICAgICAgX191MzIgaW5wX2J1Zl9ucl9idWZmZXJzOw0KPiA+ICsgICAgICAgLyogT3V0cHV0IGJ1 ZmZlcnMgKi8NCj4gPiArICAgICAgIF9fdTMyIG91dF9idWZfeV9zdF9hZGRyOw0KPiA+ICsgICAg ICAgX191MzIgb3V0X2J1Zl95X2xpbmVfc3RyaWRlOw0KPiA+ICsgICAgICAgX191MzIgb3V0X2J1 Zl95X2J1ZmZlcl9zdHJpZGU7DQo+ID4gKyAgICAgICBfX3UzMiBvdXRfYnVmX3Vfc3RfYWRkcjsN Cj4gPiArICAgICAgIF9fdTMyIG91dF9idWZfdl9zdF9hZGRyOw0KPiA+ICsgICAgICAgX191MzIg b3V0X2J1Zl91dl9saW5lX3N0cmlkZTsNCj4gPiArICAgICAgIF9fdTMyIG91dF9idWZfdXZfYnVm ZmVyX3N0cmlkZTsNCj4gPiArICAgICAgIF9fdTMyIG91dF9idWZfbnJfYnVmZmVyczsNCj4gPiAr ICAgICAgIC8qIEludGVybWVkaWF0ZSBidWZmZXJzICovDQo+ID4gKyAgICAgICBfX3UzMiBpbnRf YnVmX3lfc3RfYWRkcjsNCj4gPiArICAgICAgIF9fdTMyIGludF9idWZfeV9saW5lX3N0cmlkZTsN Cj4gPiArICAgICAgIF9fdTMyIGludF9idWZfdV9zdF9hZGRyOw0KPiA+ICsgICAgICAgX191MzIg aW50X2J1Zl92X3N0X2FkZHI7DQo+ID4gKyAgICAgICBfX3UzMiBpbnRfYnVmX3V2X2xpbmVfc3Ry aWRlOw0KPiA+ICsgICAgICAgX191MzIgaW50X2J1Zl9oZWlnaHQ7DQo+ID4gKyAgICAgICBfX3Uz MiBpbnRfYnVmX2NodW5rX3dpZHRoOw0KPiA+ICsgICAgICAgX191MzIgaW50X2J1Zl9jaHVua19o ZWlnaHQ7DQo+ID4gKyAgICAgICAvKiBDb250ZXh0IGJ1ZmZlcnMgKi8NCj4gPiArICAgICAgIF9f dTMyIGN0eF9idWZfaG9yX3lfc3RfYWRkcjsNCj4gPiArICAgICAgIF9fdTMyIGN0eF9idWZfaG9y X3Vfc3RfYWRkcjsNCj4gPiArICAgICAgIF9fdTMyIGN0eF9idWZfaG9yX3Zfc3RfYWRkcjsNCj4g PiArICAgICAgIF9fdTMyIGN0eF9idWZfdmVyX3lfc3RfYWRkcjsNCj4gPiArICAgICAgIF9fdTMy IGN0eF9idWZfdmVyX3Vfc3RfYWRkcjsNCj4gPiArICAgICAgIF9fdTMyIGN0eF9idWZfdmVyX3Zf c3RfYWRkcjsNCj4gPiArICAgICAgIC8qIEFkZHJlc3NlcyBmb3IgcmVsZWFzZS1pbnB1dCBhbmQg cHJvY2Vzcy1vdXRwdXQgdG9rZW5zICovDQo+ID4gKyAgICAgICBfX3UzMiByZWxlYXNlX2lucF9i dWZfYWRkcjsNCj4gPiArICAgICAgIF9fdTMyIHJlbGVhc2VfaW5wX2J1Zl9lbjsNCj4gPiArICAg ICAgIF9fdTMyIHJlbGVhc2Vfb3V0X2J1Zl9lbjsNCj4gPiArICAgICAgIF9fdTMyIHByb2Nlc3Nf b3V0X2J1Zl9hZGRyOw0KPiA+ICsgICAgICAgLyogU2V0dGluZ3MgZGltZW5zaW9ucywgcGFkZGlu ZywgY3JvcHBpbmcgKi8NCj4gPiArICAgICAgIF9fdTMyIGlucHV0X2ltYWdlX3lfd2lkdGg7DQo+ ID4gKyAgICAgICBfX3UzMiBpbnB1dF9pbWFnZV95X2hlaWdodDsNCj4gPiArICAgICAgIF9fdTMy IGlucHV0X2ltYWdlX3lfc3RhcnRfY29sdW1uOw0KPiA+ICsgICAgICAgX191MzIgaW5wdXRfaW1h Z2VfdXZfc3RhcnRfY29sdW1uOw0KPiA+ICsgICAgICAgX191MzIgaW5wdXRfaW1hZ2VfeV9sZWZ0 X3BhZDsNCj4gPiArICAgICAgIF9fdTMyIGlucHV0X2ltYWdlX3V2X2xlZnRfcGFkOw0KPiA+ICsg ICAgICAgX191MzIgaW5wdXRfaW1hZ2VfeV9yaWdodF9wYWQ7DQo+ID4gKyAgICAgICBfX3UzMiBp bnB1dF9pbWFnZV91dl9yaWdodF9wYWQ7DQo+ID4gKyAgICAgICBfX3UzMiBpbnB1dF9pbWFnZV95 X3RvcF9wYWQ7DQo+ID4gKyAgICAgICBfX3UzMiBpbnB1dF9pbWFnZV91dl90b3BfcGFkOw0KPiA+ ICsgICAgICAgX191MzIgaW5wdXRfaW1hZ2VfeV9ib3R0b21fcGFkOw0KPiA+ICsgICAgICAgX191 MzIgaW5wdXRfaW1hZ2VfdXZfYm90dG9tX3BhZDsNCj4gPiArICAgICAgIF9fdTMyIHByb2Nlc3Np bmdfbW9kZTsNCj4gPiArI2RlZmluZSBJTUdVX0FCSV9PU1lTX1BST0NNT0RFX0JZUEFTUyAgICAg ICAgICAwDQo+ID4gKyNkZWZpbmUgSU1HVV9BQklfT1NZU19QUk9DTU9ERV9VUFNDQUxFICAgICAg ICAgMQ0KPiA+ICsjZGVmaW5lIElNR1VfQUJJX09TWVNfUFJPQ01PREVfRE9XTlNDQUxFICAgICAg IDINCj4gDQo+IENvdWxkIHdlIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSBlbnVtLCB0byBiZSBjb25z aXN0ZW50IHdpdGggb3RoZXIgc3RydWN0cz8NCj4gKGUuZy4gaW1ndV9hYmlfb3N5c19mcmFtZV9w YXJhbXM6OmZvcm1hdCkNCj4gDQoNCkFjaywgd2lsbCBjaGFuZ2UgYWxsIHNpbWlsYXIgcGxhY2Vz IGFzIHdlbGwuIA0KDQo+ID4gKyAgICAgICBfX3UzMiBzY2FsaW5nX3JhdGlvOw0KPiA+ICsgICAg ICAgX191MzIgeV9sZWZ0X3BoYXNlX2luaXQ7DQo+ID4gKyAgICAgICBfX3UzMiB1dl9sZWZ0X3Bo YXNlX2luaXQ7DQo+ID4gKyAgICAgICBfX3UzMiB5X3RvcF9waGFzZV9pbml0Ow0KPiA+ICsgICAg ICAgX191MzIgdXZfdG9wX3BoYXNlX2luaXQ7DQo+ID4gKyAgICAgICBfX3UzMiBjb2VmZnNfZXhw X3NoaWZ0Ow0KPiA+ICsgICAgICAgX191MzIgb3V0X3lfbGVmdF9jcm9wOw0KPiA+ICsgICAgICAg X191MzIgb3V0X3V2X2xlZnRfY3JvcDsNCj4gPiArICAgICAgIF9fdTMyIG91dF95X3RvcF9jcm9w Ow0KPiA+ICsgICAgICAgX191MzIgb3V0X3V2X3RvcF9jcm9wOw0KPiA+ICt9IF9fcGFja2VkOw0K PiA+ICsNCj4gPiArc3RydWN0IGltZ3VfYWJpX29zeXNfc2NhbGVyIHsNCj4gPiArICAgICAgIHN0 cnVjdCBpbWd1X2FiaV9vc3lzX3NjYWxlcl9wYXJhbXMgcGFyYW0gSVBVM19BTElHTjsgfQ0KPiA+ ICtfX3BhY2tlZDsNCj4gPiArDQo+ID4gK3N0cnVjdCBpbWd1X2FiaV9vc3lzX2ZyYW1lX3BhcmFt cyB7DQo+ID4gKyAgICAgICAvKiBPdXRwdXQgcGlucyAqLw0KPiA+ICsgICAgICAgX191MzIgZW5h YmxlOw0KPiA+ICsgICAgICAgX191MzIgZm9ybWF0OyAgICAgICAgICAgLyogZW51bSBpbWd1X2Fi aV9vc3lzX2Zvcm1hdCAqLw0KPiA+ICsgICAgICAgX191MzIgZmxpcDsNCj4gPiArICAgICAgIF9f dTMyIG1pcnJvcjsNCj4gPiArICAgICAgIF9fdTMyIHRpbGluZzsgICAgICAgICAgIC8qIGVudW0g aW1ndV9hYmlfb3N5c190aWxpbmcgKi8NCj4gPiArICAgICAgIF9fdTMyIHdpZHRoOw0KPiA+ICsg ICAgICAgX191MzIgaGVpZ2h0Ow0KPiA+ICsgICAgICAgX191MzIgc3RyaWRlOw0KPiA+ICsgICAg ICAgX191MzIgc2NhbGVkOw0KPiA+ICt9IF9fcGFja2VkOw0KPiBbc25pcF0NCj4gPiArLyogRGVm ZWN0IHBpeGVsIGNvcnJlY3Rpb24gKi8NCj4gPiArDQo+ID4gK3N0cnVjdCBpbWd1X2FiaV9kcGNf Y29uZmlnIHsNCj4gPiArICAgICAgIF9fdTggX19yZXNlcnZlZFsyNDA4MzJdOw0KPiA+ICt9IF9f cGFja2VkOw0KPiANCj4gRG8gd2UgbmVlZCB0aGlzIHN0cnVjdHVyZT8gT25lIGNvdWxkIGp1c3Qg YWRkIGEgcmVzZXJ2ZWQgZmllbGQgaW4gdGhlIHBhcmVudA0KPiBzdHJ1Y3R1cmUuIEFsc28sIGp1 c3QgdG8gY29uZmlybSwgaXMgMjQwODMyIHJlYWxseSB0aGUgcmlnaHQgdmFsdWUgaGVyZT8NCj4g V2hlcmUgZG9lcyBpdCBjb21lIGZyb20/IFBsZWFzZSBjcmVhdGUgYSBtYWNybyBmb3IgaXQsIHBv c3NpYmx5IGZ1cnRoZXINCj4gYnJlYWtpbmcgaXQgZG93biBpbnRvIHRoZSB2YWx1ZXMgdXNlZCB0 byBjb21wdXRlIHRoaXMgbnVtYmVyLg0KPiANCg0KV2UgY2FuIGFkZCBhIHJlc2VydmVkIGZpZWxk IGluIHRoZSBwYXJlbnQgc3RydWN0dXJlLCB0aGUgc2l6ZSBpcyBiYXNlZCBvbiBvcmlnaW5hbCBk ZWZpbml0aW9uIG9mIGRwYyBjb25maWcgd2hpY2ggd2FzIHJlbW92ZWQgc2luY2UgaXQncyBub3Qg ZW5hYmxlZC91c2VkLg0KDQo+IFtzbmlwXQ0KPiA+ICtzdHJ1Y3QgaW1ndV9hYmlfYWNjX3BhcmFt IHsNCj4gPiArICAgICAgIHN0cnVjdCBpbWd1X2FiaV9zdHJpcGVfZGF0YSBzdHJpcGU7DQo+ID4g KyAgICAgICBfX3U4IHBhZGRpbmdbOF07DQo+ID4gKyAgICAgICBzdHJ1Y3QgaW1ndV9hYmlfaW5w dXRfZmVlZGVyX2NvbmZpZyBpbnB1dF9mZWVkZXI7DQo+ID4gKyAgICAgICBzdHJ1Y3QgaXB1M191 YXBpX2Jucl9zdGF0aWNfY29uZmlnIGJucjsNCj4gPiArICAgICAgIHN0cnVjdCBpcHUzX3VhcGlf Ym5yX3N0YXRpY19jb25maWdfZ3JlZW5fZGlzcGFyaXR5IGdyZWVuX2Rpc3Bhcml0eQ0KPiA+ICsg ICAgICAgICAgICAgICBJUFUzX0FMSUdOOw0KPiA+ICsgICAgICAgc3RydWN0IGlwdTNfdWFwaV9k bV9jb25maWcgZG0gSVBVM19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBpcHUzX3VhcGlfY2Nt X21hdF9jb25maWcgY2NtIElQVTNfQUxJR047DQo+ID4gKyAgICAgICBzdHJ1Y3QgaXB1M191YXBp X2dhbW1hX2NvbmZpZyBnYW1tYSBJUFUzX0FMSUdOOw0KPiA+ICsgICAgICAgc3RydWN0IGlwdTNf dWFwaV9jc2NfbWF0X2NvbmZpZyBjc2MgSVBVM19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBp cHUzX3VhcGlfY2RzX3BhcmFtcyBjZHMgSVBVM19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBp bWd1X2FiaV9zaGRfY29uZmlnIHNoZCBJUFUzX0FMSUdOOw0KPiA+ICsgICAgICAgc3RydWN0IGlt Z3VfYWJpX2R2c19zdGF0X2NvbmZpZyBkdnNfc3RhdDsNCj4gPiArICAgICAgIF9fdTggcGFkZGlu ZzFbMjI0XTsgICAgIC8qIHJlc2VydmVkIGZvciBsYWNlX3N0YXQgKi8NCj4gPiArICAgICAgIHN0 cnVjdCBpcHUzX3VhcGlfeXV2cDFfaWVmZF9jb25maWcgaWVmZCBJUFUzX0FMSUdOOw0KPiA+ICsg ICAgICAgc3RydWN0IGlwdTNfdWFwaV95dXZwMV95ZHNfY29uZmlnIHlkc19jMCBJUFUzX0FMSUdO Ow0KPiA+ICsgICAgICAgc3RydWN0IGlwdTNfdWFwaV95dXZwMV9jaG5yX2NvbmZpZyBjaG5yX2Mw IElQVTNfQUxJR047DQo+ID4gKyAgICAgICBzdHJ1Y3QgaXB1M191YXBpX3l1dnAxX3lfZWVfbnJf Y29uZmlnIHlfZWVfbnIgSVBVM19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBpcHUzX3VhcGlf eXV2cDFfeWRzX2NvbmZpZyB5ZHMgSVBVM19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBpcHUz X3VhcGlfeXV2cDFfY2hucl9jb25maWcgY2huciBJUFUzX0FMSUdOOw0KPiA+ICsgICAgICAgc3Ry dWN0IGlwdTNfdWFwaV95dXZwMl95X3RtX2x1dF9zdGF0aWNfY29uZmlnIHl0bSBJUFUzX0FMSUdO Ow0KPiA+ICsgICAgICAgc3RydWN0IGlwdTNfdWFwaV95dXZwMV95ZHNfY29uZmlnIHlkczIgSVBV M19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBpcHUzX3VhcGlfeXV2cDJfdGNjX3N0YXRpY19j b25maWcgdGNjIElQVTNfQUxJR047DQo+ID4gKyAgICAgICBzdHJ1Y3QgaW1ndV9hYmlfZHBjX2Nv bmZpZyBkcGMgSVBVM19BTElHTjsNCj4gPiArICAgICAgIHN0cnVjdCBpbWd1X2FiaV9iZHNfY29u ZmlnIGJkczsNCj4gPiArICAgICAgIHN0cnVjdCBpcHUzX3VhcGlfYW5yX2NvbmZpZyBhbnI7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgaW1ndV9hYmlfYXdiX2ZyX2NvbmZpZyBhd2JfZnI7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgaW1ndV9hYmlfYWVfY29uZmlnIGFlOw0KPiA+ICsgICAgICAgc3RydWN0IGlt Z3VfYWJpX2FmX2NvbmZpZyBhZjsNCj4gPiArICAgICAgIHN0cnVjdCBpbWd1X2FiaV9hd2JfY29u ZmlnIGF3YjsNCj4gPiArICAgICAgIHN0cnVjdCBpbWd1X2FiaV9vc3lzX2NvbmZpZyBvc3lzOw0K PiANCj4gV2h5IHNvbWUgZmllbGRzIGhlcmUgbmVlZCBhbmQgc29tZSBkb24ndCBuZWVkIHRoZSBJ UFUzX0FMSUdOIHNwZWNpZmllcj8NCj4gDQoNCk9yaWdpbmFsbHkgYWxsIHRoZSBmaWVsZHMgaGFk IElQVTNfQUxJR04gc3BlY2lmaWVyLiBEdXJpbmcgdGhlIGVhcmx5IHJldmlld3MsIFNha2FyaSB3 YW50ZWQgdG8gc2VlIGlmIHRoZSBJUFUzX0FMSUdOIHNwZWNpZmllcnMgY2FuIGJlIHJlbW92ZWQs IHdoZXJlIG5vdCBuZWVkZWQgKHByZXN1bWFibHkgdG8gaW5jcmVhc2UgcmVhZGFiaWxpdHkgb2Yg dGhlIGNvZGUpLiBUbyBhZGRyZXNzIHRoYXQsIFdlIHJlbW92ZWQgdGhlc2Ugc3BlY2lmaWVycyBm b3IgY2FzZXMsIHdoZXJlIDMyIGJ5dGUgYWxpZ25tZW50IHdhcyBhbHJlYWR5IHRoZXJlLg0KDQo+ IFtzbmlwXQ0KPiA+ICsvKg0KPiA+ICsgKiBGcmFtZSBpbmZvIHN0cnVjdC4gVGhpcyBkZXNjcmli ZXMgdGhlIGNvbnRlbnRzIG9mIGFuIGltYWdlIGZyYW1lDQo+IGJ1ZmZlci4NCj4gPiArICovDQo+ ID4gK3N0cnVjdCBpbWd1X2FiaV9mcmFtZV9zcF9pbmZvIHsNCj4gPiArICAgICAgIHN0cnVjdCBp bWd1X2FiaV9zcF9yZXNvbHV0aW9uIHJlczsNCj4gPiArICAgICAgIHUxNiBwYWRkZWRfd2lkdGg7 ICAgICAgICAgICAgICAgLyogc3RyaWRlIG9mIGxpbmUgaW4gbWVtb3J5DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChpbiBwaXhlbHMpDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgdTggZm9y bWF0OyAgICAgICAgICAgICAgICAgICAgICAvKiBmb3JtYXQgb2YgdGhlIGZyYW1lIGRhdGEgKi8N Cj4gPiArICAgICAgIHU4IHJhd19iaXRfZGVwdGg7ICAgICAgICAgICAgICAgLyogbnVtYmVyIG9m IHZhbGlkIGJpdHMgcGVyIHBpeGVsLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKiBvbmx5IHZhbGlkIGZvciBSQVcgYmF5ZXIgZnJhbWVzDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgdTggcmF3 X2JheWVyX29yZGVyOyAgICAgICAgICAgICAvKiBiYXllciBvcmRlciwgb25seSB2YWxpZA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBmb3IgUkFXIGJheWVy IGZyYW1lcw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8N Cj4gPiArICAgICAgIHU4IHJhd190eXBlOyAgICAgICAgICAgIC8qIFRvIGNob29zZSB0aGUgcHJv cGVyIHJhdyBmcmFtZSB0eXBlLiBmb3INCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqIExlZ2FjeSBTS0MgcGlwZXMvRGVmYXVsdCBpcyBzZXQgdG8NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqIElNR1VfQUJJX1JBV19UWVBFX0JBWUVSLiBGb3IgUkdC IElSIHNlbnNvciAtDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBkcml2 ZXIgc2hvdWxkIHNldCBpdCB0bzoNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqIElyb25HciBjYXNlIC0gSU1HVV9BQklfUkFXX1RZUEVfSVJfT05fR1INCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqIElyb25HYiBjYXNlIC0gSU1HVV9BQklfUkFXX1RZ UEVfSVJfT05fR0INCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiA+ ICsjZGVmaW5lIElNR1VfQUJJX1JBV19UWVBFX0JBWUVSICAgICAgICAgICAgICAgIDANCj4gPiAr I2RlZmluZSBJTUdVX0FCSV9SQVdfVFlQRV9JUl9PTl9HUiAgICAgMQ0KPiA+ICsjZGVmaW5lIElN R1VfQUJJX1JBV19UWVBFX0lSX09OX0dCICAgICAyDQo+IA0KPiBDYW4gd2UgaGF2ZSBhIHNlcGFy YXRlIGVudW0gZm9yIHRoaXMsIGNvbnNpc3RlbnRseSB3aXRoIG90aGVyIHN0cnVjdHMNCj4gZGVm aW5lZCBlYXJsaWVyPw0KPiANCg0KWWVzLg0KDQo+IFtzbmlwXQ0KPiA+ICsvKiBJbmZvcm1hdGlv biBmb3IgYSBzaW5nbGUgcGlwZWxpbmUgc3RhZ2UgKi8gc3RydWN0DQo+ID4gK2ltZ3VfYWJpX3Nw X3N0YWdlIHsNCj4gPiArICAgICAgIC8qIE11bHRpcGxlIGJvb2xlYW4gZmxhZ3MgY2FuIGJlIHN0 b3JlZCBpbiBhbiBpbnRlZ2VyICovDQo+ID4gKyAgICAgICB1OCBudW07ICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIFN0YWdlIG51bWJlciAqLw0KPiA+ICsgICAgICAgdTggaXNwX29ubGluZTsN Cj4gPiArICAgICAgIHU4IGlzcF9jb3B5X3ZmOw0KPiA+ICsgICAgICAgdTggaXNwX2NvcHlfb3V0 cHV0Ow0KPiA+ICsgICAgICAgdTggc3BfZW5hYmxlX3hucjsNCj4gPiArICAgICAgIHU4IGlzcF9k ZWNpX2xvZ19mYWN0b3I7DQo+ID4gKyAgICAgICB1OCBpc3BfdmZfZG93bnNjYWxlX2JpdHM7DQo+ ID4gKyAgICAgICB1OCBkZWludGVybGVhdmVkOw0KPiA+ICsgICAgICAgLyoNCj4gPiArICAgICAg ICAqIE5PVEU6IFByb2dyYW1taW5nIHRoZSBpbnB1dCBjaXJjdWl0IGNhbiBvbmx5IGJlIGRvbmUg YXQgdGhlDQo+ID4gKyAgICAgICAgKiBzdGFydCBvZiBhIHNlc3Npb24uIEl0IGlzIGlsbGVnYWwg dG8gcHJvZ3JhbSBpdCBkdXJpbmcgZXhlY3V0aW9uDQo+ID4gKyAgICAgICAgKiBUaGUgaW5wdXQg Y2lyY3VpdCBkZWZpbmVzIHRoZSBjb25uZWN0aXZpdHkNCj4gPiArICAgICAgICAqLw0KPiA+ICsg ICAgICAgdTggcHJvZ3JhbV9pbnB1dF9jaXJjdWl0Ow0KPiA+ICsgICAgICAgdTggZnVuYzsNCj4g PiArI2RlZmluZSBJTUdVX0FCSV9TVEFHRV9GVU5DX1JBV19DT1BZICAgMA0KPiA+ICsjZGVmaW5l IElNR1VfQUJJX1NUQUdFX0ZVTkNfQklOX0NPUFkgICAxDQo+ID4gKyNkZWZpbmUgSU1HVV9BQklf U1RBR0VfRlVOQ19JU1lTX0NPUFkgIDINCj4gPiArI2RlZmluZSBJTUdVX0FCSV9TVEFHRV9GVU5D X05PX0ZVTkMgICAgMw0KPiANCj4gRW51bSBwbGVhc2UuDQo+IA0KDQpBY2suDQoNCj4gPiArICAg ICAgIHU4IHN0YWdlX3R5cGU7ICAgICAgICAgICAgICAgICAgLyogVGhlIHR5cGUgb2YgdGhlIHBp cGUtc3RhZ2UgKi8NCj4gPiArI2RlZmluZSBJTUdVX0FCSV9TVEFHRV9UWVBFX1NQICAgICAgICAg MA0KPiA+ICsjZGVmaW5lIElNR1VfQUJJX1NUQUdFX1RZUEVfSVNQICAgICAgICAgICAgICAgIDEN Cj4gDQo+IEVudW0gcGxlYXNlLg0KPiANCkFjay4NCg0KPiBbc25pcF0NCj4gPiArLyoNCj4gPiAr ICogQmxvYiBkZXNjcmlwdG9yLg0KPiA+ICsgKiBUaGlzIHN0cnVjdHVyZSBkZXNjcmliZXMgYW4g U1Agb3IgSVNQIGJsb2IuDQo+ID4gKyAqIEl0IGRlc2NyaWJlcyB0aGUgdGVzdCwgZGF0YSBhbmQg YnNzIHNlY3Rpb25zIGFzIHdlbGwgYXMgcG9zaXRpb24NCj4gPiAraW4gYQ0KPiA+ICsgKiBmaXJt d2FyZSBmaWxlLg0KPiA+ICsgKiBGb3IgY29udmVuaWVuY2UsIGl0IGNvbnRhaW5zIGR5bmFtaWMg ZGF0YSBhZnRlciBsb2FkaW5nLg0KPiA+ICsgKi8NCj4gPiArc3RydWN0IGltZ3VfYWJpX2Jsb2Jf aW5mbyB7DQo+ID4gKyAgICAgICAvKiBTdGF0aWMgYmxvYiBkYXRhICovDQo+ID4gKyAgICAgICB1 MzIgb2Zmc2V0OyAgICAgICAgICAgICAgICAgICAgIC8qIEJsb2Igb2Zmc2V0IGluIGZ3IGZpbGUg Ki8NCj4gPiArICAgICAgIHN0cnVjdCBpbWd1X2FiaV9pc3BfcGFyYW1fbWVtb3J5X29mZnNldHMg bWVtb3J5X29mZnNldHM7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIG9mZnNldCB3cnQgaGRyIGluIGJ5dGVzICovDQo+ID4gKyAgICAgICB1MzIgcHJvZ19u YW1lX29mZnNldDsgICAgICAgICAgIC8qIG9mZnNldCB3cnQgaGRyIGluIGJ5dGVzICovDQo+ID4g KyAgICAgICB1MzIgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgIC8qIFNpemUgb2YgYmxvYiAq Lw0KPiA+ICsgICAgICAgdTMyIHBhZGRpbmdfc2l6ZTsgICAgICAgICAgICAgICAvKiB0b3RhbCBj dW1tdWxhdGl2ZSBvZiBieXRlcyBhZGRlZA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKiBkdWUgdG8gc2VjdGlvbiBhbGlnbm1lbnQNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ID4gKyAgICAgICB1MzIgaWNhY2hl X3NvdXJjZTsgICAgICAgICAgICAgIC8qIFBvc2l0aW9uIG9mIGljYWNoZSBpbiBibG9iICovDQo+ ID4gKyAgICAgICB1MzIgaWNhY2hlX3NpemU7ICAgICAgICAgICAgICAgIC8qIFNpemUgb2YgaWNh Y2hlIHNlY3Rpb24gKi8NCj4gPiArICAgICAgIHUzMiBpY2FjaGVfcGFkZGluZzsgICAgIC8qIGFk ZGVkIGR1ZSB0byBpY2FjaGUgc2VjdGlvbiBhbGlnbm1lbnQgKi8NCj4gPiArICAgICAgIHUzMiB0 ZXh0X3NvdXJjZTsgICAgICAgICAgICAgICAgLyogUG9zaXRpb24gb2YgdGV4dCBpbiBibG9iICov DQo+ID4gKyAgICAgICB1MzIgdGV4dF9zaXplOyAgICAgICAgICAgICAgICAgIC8qIFNpemUgb2Yg dGV4dCBzZWN0aW9uICovDQo+ID4gKyAgICAgICB1MzIgdGV4dF9wYWRkaW5nOyAgICAgICAvKiBi eXRlcyBhZGRlZCBkdWUgdG8gdGV4dCBzZWN0aW9uIGFsaWdubWVudA0KPiAqLw0KPiA+ICsgICAg ICAgdTMyIGRhdGFfc291cmNlOyAgICAgICAgICAgICAgICAvKiBQb3NpdGlvbiBvZiBkYXRhIGlu IGJsb2IgKi8NCj4gPiArICAgICAgIHUzMiBkYXRhX3RhcmdldDsgICAgICAgICAgICAgICAgLyog U3RhcnQgb2YgZGF0YSBpbiBTUCBkbWVtICovDQo+ID4gKyAgICAgICB1MzIgZGF0YV9zaXplOyAg ICAgICAgICAgICAgICAgIC8qIFNpemUgb2YgdGV4dCBzZWN0aW9uICovDQo+ID4gKyAgICAgICB1 MzIgZGF0YV9wYWRkaW5nOyAgICAgICAvKiBieXRlcyBhZGRlZCBkdWUgdG8gZGF0YSBzZWN0aW9u IGFsaWdubWVudA0KPiAqLw0KPiA+ICsgICAgICAgdTMyIGJzc190YXJnZXQ7ICAgICAgICAgLyog U3RhcnQgcG9zaXRpb24gb2YgYnNzIGluIFNQIGRtZW0gKi8NCj4gPiArICAgICAgIHUzMiBic3Nf c2l6ZTsgICAgICAgICAgICAgICAgICAgLyogU2l6ZSBvZiBic3Mgc2VjdGlvbg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBEeW5hbWljIGRhdGEgZmlsbGVk IGJ5IGxvYWRlcg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8NCj4gPiArICAgICAgIGNvbnN0IHZvaWQgKmNvZGUgX19hbGlnbmVkKDgpOyAgLyogQ29kZSBz ZWN0aW9uIGFic29sdXRlIHBvaW50ZXIgKi8NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogd2l0aGluIGZ3LCBjb2RlID0gaWNhY2hlICsgdGV4dCAqLw0KPiA+ ICsgICAgICAgY29uc3Qgdm9pZCAqZGF0YSBfX2FsaWduZWQoOCk7ICAvKiBEYXRhIHNlY3Rpb24g YWJzb2x1dGUgcG9pbnRlciAqLw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiB3aXRoaW4gZncsIGRhdGEgPSBkYXRhICsNCj4gPiArYnNzICovDQo+IA0KPiBI b3cgYXJlIHRoZXNlIHBvaW50ZXJzIHVzZWQ/IEkgY291bGRuJ3QgZmluZCBhbnkgY29kZSByZWZl cmVuY2luZyB0aGVtLiBBcmUNCj4geW91IHN1cmUgdGhlc2UgYXJlIGtlcm5lbCBwb2ludGVycyAo ZS5nLiBub3QganVzdCBzb21lIG9mZnNldHMpPw0KPiANCg0KV2lsbCBjaGFuZ2UgcG9pbnRlciB0 byB1NjQsIG5vdCBjbGVhciBob3cgdGhleSBhcmUgdXNlZCwgd2lsbCBjaGVjayB3aXRoIG91ciBS JkQuDQoNCj4gW3NuaXBdDQo+ID4gK3N0cnVjdCBpbWd1X2FiaV9iaW5hcnlfaW5wdXRfaW5mbyB7 DQo+ID4gKyAgICAgICB1MzIgbWluX3dpZHRoOw0KPiA+ICsgICAgICAgdTMyIG1pbl9oZWlnaHQ7 DQo+ID4gKyAgICAgICB1MzIgbWF4X3dpZHRoOw0KPiA+ICsgICAgICAgdTMyIG1heF9oZWlnaHQ7 DQo+ID4gKyAgICAgICB1MzIgc291cmNlOyAgICAgICAgICAgICAgICAgICAgIC8qIG1lbW9yeSwg c2Vuc29yLCB2YXJpYWJsZSAqLw0KPiA+ICsjZGVmaW5lIElNR1VfQUJJX0JJTkFSWV9JTlBVVF9T T1VSQ0VfU0VOU09SICAgIDANCj4gPiArI2RlZmluZSBJTUdVX0FCSV9CSU5BUllfSU5QVVRfU09V UkNFX01FTU9SWSAgICAxDQo+ID4gKyNkZWZpbmUgSU1HVV9BQklfQklOQVJZX0lOUFVUX1NPVVJD RV9WQVJJQUJMRSAgMg0KPiANCj4gRW51bSBwbGVhc2UuDQo+IA0KDQpBY2suDQoNCj4gW3NuaXBd DQo+ID4gKy8qIEluZm9ybWF0aW9uIGZvciBhIHBpcGVsaW5lICovDQo+ID4gK3N0cnVjdCBpbWd1 X2FiaV9zcF9waXBlbGluZSB7DQo+ID4gKyAgICAgICB1MzIgcGlwZV9pZDsgICAgICAgICAgICAg ICAgICAgIC8qIHRoZSBwaXBlIElEICovDQo+ID4gKyAgICAgICB1MzIgcGlwZV9udW07ICAgICAg ICAgICAgICAgICAgIC8qIHRoZSBkeW5hbWljIHBpcGUgbnVtYmVyICovDQo+ID4gKyAgICAgICB1 MzIgdGhyZWFkX2lkOyAgICAgICAgICAgICAgICAgIC8qIHRoZSBzcCB0aHJlYWQgSUQgKi8NCj4g PiArICAgICAgIHUzMiBwaXBlX2NvbmZpZzsgICAgICAgICAgICAgICAgLyogdGhlIHBpcGUgY29u ZmlnICovDQo+ID4gKyNkZWZpbmUgSU1HVV9BQklfUElQRV9DT05GSUdfQUNRVUlSRV9JU1AgICAg ICAgKDEgPDwgMzEpDQo+ID4gKyAgICAgICB1MzIgcGlwZV9xb3NfY29uZmlnOyAgICAgICAgICAg IC8qIEJpdG1hcCBvZiBtdWx0aXBsZSBRT1MgZXh0ZW5zaW9uIGZ3DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHN0YXRlLCAweGZmZmZmZmZmIGluZGljYXRl cyBub24NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogUU9T IHBpcGUuDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0K PiA+ICsgICAgICAgdTMyIGlub3V0X3BvcnRfY29uZmlnOw0KPiA+ICsjZGVmaW5lIElNR1VfQUJJ X1BPUlRfQ09ORklHX1RZUEVfSU5QVVRfSE9TVCAgICAgICAgICAgKDEgPDwgMCkNCj4gPiArI2Rl ZmluZSBJTUdVX0FCSV9QT1JUX0NPTkZJR19UWVBFX0lOUFVUX0NPUFlTSU5LICAgICAgICgxIDw8 IDEpDQo+ID4gKyNkZWZpbmUgSU1HVV9BQklfUE9SVF9DT05GSUdfVFlQRV9JTlBVVF9UQUdHRVJT SU5LICAgICAoMSA8PCAyKQ0KPiA+ICsjZGVmaW5lIElNR1VfQUJJX1BPUlRfQ09ORklHX1RZUEVf T1VUUFVUX0hPU1QgICAgICAgICAgKDEgPDwgNCkNCj4gPiArI2RlZmluZSBJTUdVX0FCSV9QT1JU X0NPTkZJR19UWVBFX09VVFBVVF9DT1BZU0lOSyAgICAgICgxIDw8IDUpDQo+ID4gKyNkZWZpbmUg SU1HVV9BQklfUE9SVF9DT05GSUdfVFlQRV9PVVRQVVRfVEFHR0VSU0lOSyAgICAoMSA8PA0KPiA2 KQ0KPiA+ICsgICAgICAgdTMyIHJlcXVpcmVkX2Jkc19mYWN0b3I7DQo+ID4gKyAgICAgICB1MzIg ZHZzX2ZyYW1lX2RlbGF5Ow0KPiA+ICsgICAgICAgdTMyIG51bV9zdGFnZXM7ICAgICAgICAgLyog dGhlIHBpcGUgY29uZmlnICovDQo+ID4gKyAgICAgICB1MzIgcnVubmluZzsgICAgICAgICAgICAg ICAgICAgIC8qIG5lZWRlZCBmb3IgcGlwZSB0ZXJtaW5hdGlvbiAqLw0KPiA+ICsgICAgICAgaW1n dV9hZGRyX3Qgc3Bfc3RhZ2VfYWRkcltJTUdVX0FCSV9NQVhfU1RBR0VTXTsNCj4gPiArICAgICAg IGltZ3VfYWRkcl90IHNjYWxlcl9wcF9sdXQ7ICAgICAgLyogRWFybHkgYm91bmQgTFVUICovDQo+ ID4gKyAgICAgICB1MzIgc3RhZ2U7ICAgICAgICAgICAgICAgICAgICAgIC8qIHN0YWdlIHB0ciBp cyBvbmx5IHVzZWQgb24gc3AgKi8NCj4gPiArICAgICAgIHMzMiBudW1fZXhlY3M7ICAgICAgICAg ICAgICAgICAgLyogbnVtYmVyIG9mIHRpbWVzIHRvIHJ1biBpZiB0aGlzIGlzDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFuIGFjY2VsZXJhdGlvbiBwaXBl Lg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gPiAr ICAgICAgIHVuaW9uIHsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IHsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICB1MzIgYnl0ZXNfYXZhaWxhYmxlOw0KPiA+ICsNCj4gDQo+IFRoZSBt ZXNzYWdlIGlzIGN1dCBvZmYgaGVyZSBmb3IgbWUuIFBsZWFzZSBzcGxpdCB0aGlzIHBhdGNoIGZv ciBuZXh0IHJlc3Bpbi4NCj4gUG9zc2libHkgMSBwYXRjaCBmb3IgcmVnaXN0ZXJzIGFuZCBlbnVt cyBhdCB0aGUgdG9wLCB0aGVuIDEgcGF0Y2ggZm9yIHN0cnVjdHMNCj4gYW5kIDEgbW9yZSBwYXRj aCBmb3IgdGhlIGNvZGUgYmVpbmcgYWRkZWQgaW4gdGhpcyBwYXRjaC4NCj4gDQoNCkFjaywgd2ls bCBicmVhayB0aGUgZmlsZSBpbnRvIDMgcGF0Y2hlcyBhcyBzdWdnZXN0ZWQuDQoNCkFnYWluLCB0 aGFua3MgYSBsb3QgZm9yIHRoZSB0aW1lIHNwZW50IHRvIHJldmlldyB0aGlzIGxvbmcgZmlsZS4N Cg0KPiBCZXN0IHJlZ2FyZHMsDQo+IFRvbWFzeg0K