From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S264650AbTGBDTV (ORCPT ); Tue, 1 Jul 2003 23:19:21 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264651AbTGBDTV (ORCPT ); Tue, 1 Jul 2003 23:19:21 -0400 Received: from mta05-svc.ntlworld.com ([62.253.162.45]:35261 "EHLO mta05-svc.ntlworld.com") by vger.kernel.org with ESMTP id S264650AbTGBDTD (ORCPT ); Tue, 1 Jul 2003 23:19:03 -0400 X-Originating-IP: [62.254.0.11] From: To: linux-kernel@vger.kernel.org Subject: [PATCH] BadRAM for 2.5.73-mm2 Date: Wed, 2 Jul 2003 3:33:26 +0000 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=____1057116806141_'LYfspAbZW" Message-Id: <20030702033326.HNID28183.mta05-svc.ntlworld.com@[10.137.100.64]> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. ------=____1057116806141_'LYfspAbZW Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Arghhhh! Third attempt. Yahoo!Mail has currupted the patch twice previously so I have given up with it. :-( I have ported the BadRAM patch to 2.5.73-mm2. It will probably apply cleanly to 2.5.73 as well but I haven't checked it yet... I am running it now, it seems to work for me. It is based it on http://rick.vanrein.org/linux/badram/software/BadRAM-2.4.20.1.patch ------=____1057116806141_'LYfspAbZW Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="BadRAM-2.5.73-mm2.diff" Content-Disposition: inline; filename="BadRAM-2.5.73-mm2.diff" ZGlmZiAtdXJOIGxpbnV4LTIuNS43My1tbTIvQ1JFRElUUyBsaW51eC0yLjUvQ1JFRElUUwot LS0gbGludXgtMi41LjczLW1tMi9DUkVESVRTCTIwMDMtMDYtMTcgMDU6MjA6MDcuMDAwMDAw MDAwICswMTAwCisrKyBsaW51eC0yLjUvQ1JFRElUUwkyMDAzLTA3LTAyIDAxOjU4OjUyLjE0 NjE5Nzk3MCArMDEwMApAQCAtMjM2NSw2ICsyMzY1LDEyIEBACiBTOiA1NTEyNyBNYWluegog UzogR2VybWFueQogCitOOiBTdGV2ZW4gTmV3YnVyeQorRTogc19qX25ld2J1cnlAeWFob28u Y28udWsKK0Q6IEZvcndhcmQgcG9ydGVkIEJhZFJBTSBwYXRjaCB0byAyLjUuNzMgZnJvbSAy LjQuMjAKK1M6IERlcmJ5CitTOiBVbml0ZWQgS2luZ2RvbQorCiBOOiBEYXZpZCBDLiBOaWVt aQogRTogbmllbWlAdHV4Lm9yZwogVzogaHR0cDovL3d3dy50dXgub3JnL35uaWVtaS8KQEAg LTI2MDEsNiArMjYwNywxNCBAQAogUzogTWFsdmVybiwgUGVubnN5bHZhbmlhIDE5MzU1CiBT OiBVU0EKIAorTjogUmljayB2YW4gUmVpbgorRTogdmFucmVpbkBjcy51dHdlbnRlLm5sCitX OiBodHRwOi8vd3d3LmNzLnV0d2VudGUubmwvfnZhbnJlaW4KK0Q6IE1lbW9yeSwgdGhlIEJh ZFJBTSBzdWJzeXN0ZW0gZGVhbGluZyB3aXRoIHN0YXRpY2FsbHkgY2hhbGxhbmdlZCBSQU0g bW9kdWxlcy4KK1M6IEJpbm5lbmVzIDY3CitTOiA5NDA3IENYIEFzc2VuCitTOiBUaGUgTmV0 aGVybGFuZHMKKwogTjogU3RlZmFuIFJlaW5hdWVyCiBFOiBzdGVwYW5AbGludXguZGUKIFc6 IGh0dHA6Ly93d3cuZnJlaWJ1cmcubGludXguZGUvfnN0ZXBhbi8KQEAgLTI4MTksNiArMjgz MywxMyBAQAogRToKIEQ6IE1hY2ludG9zaCBJREUgRHJpdmVyCiAKK046IE5pY28gU2NobW9p Z2wKK0U6IG5pY29Ad3JpdGVtYWlsLmNvbQorVzogaHR0cDovL3dlYnJ1bS51bmktbWFubmhl aW0uZGUvbWF0aC9zY2htb2lnbC9saW51eC8KK0Q6IE1pZ3JhdGlvbiBvZiBCYWRSQU0gcGF0 Y2ggdG8gMi40LjQgc2VyaWVzICh3aXRoIFJpY2sgdmFuIFJlaW4pCitTOiBNYW5uaGVpbSwg QlcsIEdlcm1hbnkKK1A6IDIwNDcvMzhGQzlFMDMgIDVEIERCIDA5IEU0IDNGIEYzIENEIDA5 IDc1IDU5IC0gMTEgMTcgOUMgMDMgNDYgRTMgMzggRkMgOUUgMDMKKwogTjogUGV0ZXIgRGUg U2NocmlqdmVyCiBFOiBzdHVkMTFAY2M0Lmt1bGV1dmVuLmFjLmJlCiBEOiBNaXRzdW1pIENE LVJPTSBkcml2ZXIgcGF0Y2hlcyBNYXJjaCB2ZXJzaW9uCmRpZmYgLXVyTiBsaW51eC0yLjUu NzMtbW0yL0RvY3VtZW50YXRpb24vYmFkcmFtLnR4dCBsaW51eC0yLjUvRG9jdW1lbnRhdGlv bi9iYWRyYW0udHh0Ci0tLSBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50YXRpb24vYmFkcmFt LnR4dAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi41 L0RvY3VtZW50YXRpb24vYmFkcmFtLnR4dAkyMDAzLTA3LTAxIDIwOjAyOjI3LjAwMDAwMDAw MCArMDEwMApAQCAtMCwwICsxLDI2NiBAQAorSU5GT1JNQVRJT04gT04gVVNJTkcgQkFEIFJB TSBNT0RVTEVTCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSW50 cm9kdWN0aW9uCisJUkFNIGlzIGdldHRpbmcgc21hbGxlciBhbmQgc21hbGxlciwgYW5kIGFz IGEgcmVzdWx0LCBhbHNvIG1vcmUgYW5kIG1vcmUKKwl2dWxuZXJhYmxlLiBUaGlzIG1ha2Vz IHRoZSBtYW51ZmFjdHVyaW5nIG9mIGhhcmR3YXJlIG1vcmUgZXhwZW5zaXZlLAorCXNpbmNl IGFuIGV4Y2Vzc2l2ZSBhbW91bnQgb2YgUkFNIGNoaXBzIG11c3QgYmUgZGlzY2FyZGVkIG9u IGFjY291bnQgb2YKKwlhIHNpbmdsZSBjZWxsIHRoYXQgaXMgd3JvbmcuIFNpbWlsYXJseSwg c3RhdGljIGRpc2NoYXJnZSBtYXkgZGFtYWdlIGEKKwlSQU0gbW9kdWxlIGZvcmV2ZXIsIHdo aWNoIGlzIHVzdWFsbHkgcmVtZWRpZWQgYnkgcmVwbGFjaW5nIGl0CisJZW50aXJlbHkuCisK KwlUaGlzIGlzIG5vdCBuZWNlc3NhcnksIGFzIHRoZSBCYWRSQU0gY29kZSBzaG93czogQnkg aW5mb3JtaW5nIHRoZSBMaW51eAorCWtlcm5lbCB3aGljaCBhZGRyZXNzZXMgaW4gYSBSQU0g YXJlIGRhbWFnZWQsIHRoZSBrZXJuZWwgc2ltcGx5IGF2b2lkcworCWV2ZXIgYWxsb2NhdGlu ZyBzdWNoIGFkZHJlc3NlcyBidXQgbWFrZXMgYWxsIHRoZSByZXN0IGF2YWlsYWJsZS4KKwor UmVhc29ucyBmb3IgdGhpcyBmZWF0dXJlCisJVGhlcmUgYXJlIG1hbnkgcmVhc29ucyB3aHkg dGhpcyBrZXJuZWwgZmVhdHVyZSBpcyB1c2VmdWw6CisJLSBDaGlwIG1hbnVmYWN0dXJlIGlz IHJlc291cmNlIGludGVuc2l2ZTsgd2FzdGUgbGVzcyBhbmQgc2xlZXAgYmV0dGVyCisJLSBJ dCdzIGFub3RoZXIgY2hhbmNlIHRvIHByb21vdGUgTGludXggYXMgInRoZSBmbGV4aWJsZSBP UyIKKwktIFNvbWUgbGFwdG9wcyBoYXZlIHRoZWlyIFJBTSBzb2xkZXJlZCBpbi4uLiBhbmQg dGhlbiBpdCBmYWlscyEKKwktIEl0J3MgcGxhaW4gY29vbCA7LSkKKworUnVubmluZyBleGFt cGxlCisJVG8gcnVuIHRoaXMgcHJvamVjdCwgSSB3YXMgZ2l2ZW4gdHdvIERJTU1zLCAzMiBN QiBlYWNoLiBPbmUsIHRoYXQgd2UKKwlzaGFsbCB1c2UgYXMgYSBydW5uaW5nIGV4YW1wbGUg aW4gdGhpcyB0ZXh0LCBjb250YWluZWQgNTEyIGZhdWx0eSBiaXRzLAorCXNwcmVhZCBvdmVy IDEvNCBvZiB0aGUgYWRkcmVzcyByYW5nZSBpbiBhIHJlZ3VsYXIgcGF0dGVybi4gU29tZSB0 cmlja3MKKwl3aXRoIGEgUkFNIHRlc3RlciBhbmQgYSBmZXcgYmluYXJ5IGNhbGN1bGF0aW9u cyB3ZXJlIHN1ZmZpY2llbnQgdG8KKwl3cml0ZSB0aGVzZSBmYXVsdHMgZG93biBpbiAyIGxv bmd3b3JkIG51bWJlcnMuCisKKwlUaGUga2VybmVsIHJlY29nbmlzZWQgdGhlIGNvcnJlY3Qg bnVtYmVyIG9mIHBhZ2VzIHdpdGggZmF1bHRzIGFuZCBkaWQKKwlub3QgZ2l2ZSB0aGVtIG91 dCBmb3IgYWxsb2NhdGlvbi4gVGhlIGFsbG9jYXRpb24gcm91dGluZXMgY291bGQKKwl0aGVy ZWZvcmUgcHJvZ3Jlc3MgYXMgbm9ybWFsbHksIHdpdGhvdXQgYW55IGFkYXB0aW9uLgorCVNv LCBJIGdhaW5lZCAzMCBNQiBvZiBESU1NIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBoYXZlIGJl ZW4gdGhyb3duCisJYXdheS4gQWZ0ZXIgYm9vdGluZyB0aGUga2VybmVsLCB0aGUga2VybmVs IGJlaGF2ZWQgZXhhY3RseSBhcyBpdAorCWFsd2F5cyBoYWQuCisKK0luaXRpYWwgY2hlY2tz CisJSWYgeW91IGV4cGVyaWVuY2UgUkFNIHRyb3VibGUsIGZpcnN0IHJlYWQgL3Vzci9zcmMv bGludXgvbWVtb3J5LnR4dAorCWFuZCB0cnkgb3V0IHRoZSBtZW09NE0gdHJpY2sgdG8gc2Vl IGlmIGF0IGxlYXN0IHNvbWUgaW5pdGlhbCBwYXJ0cworCW9mIHlvdXIgUkFNIHdvcmsgd2Vs bC4gVGhlIEJhZFJBTSByb3V0aW5lcyBoYWx0IHRoZSBrZXJuZWwgaW4gcGFuaWMKKwlpZiB0 aGUgcmVzZXJ2ZWQgYXJlYSBvZiBtZW1vcnkgKGNvbnRhaW5pbmcga2VybmVsIHN0dWZmKSBj b250YWlucworCWEgZmF1bHR5IGFkZHJlc3MuCisKK1J1bm5pbmcgYSBSQU0gY2hlY2tlcgor CVRoZSBtZW1vcnkgY2hlY2tlciBpcyBub3QgYnVpbHQgaW50byB0aGUga2VybmVsLCB0byBh dm9pZCBkZWxheXMgYXQKKwlydW50aW1lLiBJZiB5b3UgZXhwZXJpZW5jZSBwcm9ibGVtcyB0 aGF0IG1heSBiZSBjYXVzZWQgYnkgUkFNLCBydW4KKwlhIGdvb2QgUkFNIGNoZWNrZXIsIHN1 Y2ggYXMKKwkJaHR0cDovL3JlYWxpdHkuc2dpLmNvbS9jYnJhZHlfZGVudmVyL21lbXRlc3Q4 NgorCVRoZSBvdXRwdXQgb2YgYSBSQU0gY2hlY2tlciBwcm92aWRlcyBhZGRyZXNzZXMgdGhh dCB3ZW50IHdyb25nLiBJbgorCXRoZSAzMiBNQiBjaGlwIHdpdGggNTEyIGZhdWx0eSBiaXRz IG1lbnRpb25lZCBhYm92ZSwgdGhlIGVycm9ycyB3ZXJlCisJZm91bmQgaW4gdGhlIDhNQi0x Nk1CIHJhbmdlICh0aGUgRElNTSB3YXMgaW4gc2xvdCAjMCkgYXQgYWRkcmVzc2VzCisJCXh4 eDQyZjQKKwkJeHh4NjJmNAorCQl4eHhjMmY0CisJCXh4eGUyZjQKKwlhbmQgdGhlIGVycm9y IHdhcyBhICJzdGlja3kgMSBiaXQiLCBhIG1lbW9yeSBiaXQgdGhhdCBzdGF5ZWQgIjEiIG5v CisJbWF0dGVyIHdoYXQgd2FzIHdyaXR0ZW4gdG8gaXQuIFRoZSByZWd1bGFyaXR5IG9mIHRo aXMgcGF0dGVybgorCXN1Z2dlc3RzIHRoZSBkZWF0aCBvZiBhIGJ1ZmZlciBhdCB0aGUgb3V0 cHV0IHN0YWdlcyBvZiBhIHJvdyBvbiBvbmUgb2YKKwl0aGUgY2hpcHMuIEkgZXhwZWN0IHN1 Y2ggcmVndWxhcml0eSB0byBiZSBjb21tb25wbGFjZS4gRmluZGluZyB0aGlzCisJcmVndWxh cml0eSBjdXJyZW50bHkgaXMgaHVtYW4gZWZmb3J0LCBidXQgaXQgc2hvdWxkIG5vdCBiZSBo YXJkIHRvCisJYWx0ZXIgYSBSQU0gY2hlY2tlciB0byBjYXB0dXJlIGl0IGluIHNvbWUgc29y dCBvZiBwYXR0ZXJuLCBwb3NzaWJseQorCXRoZSBCYWRSQU0gcGF0dGVybnMgZGVzY3JpYmVk IGJlbG93LgorCisJQnkgdGhlIHdheSwgaWYgeW91IG1hbmFnZSB0byBnZXQgaG9sZCBvZiBt ZW10ZXN0ODYgdmVyc2lvbiAyLjMgb3IKKwliZXlvbmQsIHlvdSBjYW4gY29uZmlndXJlIHRo ZSBwcmludGluZyBtb2RlIHRvIHByb2R1Y2UgQmFkUkFNIHBhdHRlcm5zLAorCXdoaWNoIGZp bmQgb3V0IGV4YWN0bHkgd2hhdCB5b3UgbXVzdCBlbnRlciBvbiB0aGUgTElMTzogY29tbWFu ZGxpbmUsCisJZXhjZXB0IHRoYXQgeW91IHNob3VsZG4ndCBtZW50aW9uIHRoZSBhZGRlZCBz cGFjaW5nLiBUaGF0IG1lYW5zIHRoYXQKKwl5b3UgY2FuIHNraXAgdGhlIGZvbGxvd2luZyBz dGVwLCB3aGljaCBzYXZlcyB5b3UgYSAqbG90KiBvZiB3b3JrLgorCisJQWxzbyBieSB0aGUg d2F5LCBpZiB5b3VyIG1hY2hpbmUgaGFzIHRoZSBJU0EgbWVtb3J5IGdhcCBpbiB0aGUgMTVN LTE2TQorCXJhbmdlIHVuc3RvcHBhYmxlLCBMaW51eCBjYW4gZ2V0IGluIHRyb3VibGUuIE9u ZSB3YXkgb2YgaGFuZGxpbmcgdGhhdAorCXNpdHVhdGlvbiBpcyBieSBzcGVjaWZ5aW5nIHRo ZSB0b3RhbCBtZW1vcnkgc2l6ZSB0byBMaW51eCB3aXRoIGEgYm9vdAorCXBhcmFtZXRlciBt ZW09Li4uIGFuZCB0aGVuIHRvIHRlbGwgaXQgdG8gdHJlYXQgdGhlIDE1TS0xNk0gcmFuZ2Ug YXMKKwlmYXVsdHkgd2l0aCBhbiBhZGRpdGlvbmFsIGJvb3QgcGFyYW1ldGVyLCBmb3IgaW5z dGFuY2U6CisJCW1lbT0yNE0gYmFkcmFtPTB4MDBmMDAwMDAsMHhmZmYwMDAwMAorCWlmIHlv dSBpbnN0YWxsZWQgMjRNQiBvZiBSQU0gaW4gdG90YWwuCisKK0NhcHR1cmluZyBlcnJvcnMg aW4gYSBwYXR0ZXJuCisJSW5zdGVhZCBvZiBtYW51YWxseSBwcm92aWRpbmcgYWxsIDUxMiBl cnJvcnMgdG8gdGhlIGtlcm5lbCwgaXQncyBuaWNlcgorCXRvIGdlbmVyYXRlIGEgcGF0dGVy bi4gU2luY2UgdGhlIHJlZ3VsYXJpdHkgaXMgYmFzZWQgb24gYWRkcmVzcyBkZWNvZGluZwor CXNvZnR3YXJlLCB3aGljaCBnZW5lcmFsbHkgdGFrZXMgY2VydGFpbiBiaXRzIGludG8gYWNj b3VudCBhbmQgaWdub3JlcworCW90aGVycywgd2Ugc2hhbGwgcHJvdmlkZSBhIGZhdWx0eSBh ZGRyZXNzIEYsIHRvZ2V0aGVyIHdpdGggYSBiaXQgbWFzayBNCisJdGhhdCBzcGVjaWZpZXMg d2hpY2ggYml0cyBtdXN0IGJlIGVxdWFsIHRvIEYuIEluIEMgY29kZSwgYW4gYWRkcmVzcyBB CisJaXMgZmF1bHR5IGlmIGFuZCBvbmx5IGlmCisJCShGICYgTSkgPT0gKEEgJiBNKQorCW9y IGFsdGVybmF0ZWx5IChjbG9zZXIgdG8gYSBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbik6CisJ CX4oKEYgXiBBKSAmIE0pCisJSW4gdGhlIGV4YW1wbGUgMzIgTUIgY2hpcCwgd2UgaGFkIHRo ZSBmYXVsdHkgYWRkcmVzc2VzIGluIDhNQi0xNk1COgorCQl4eHg0MmY0ICAgICAgICAgLi4u LjAxMDAuLi4uCisJCXh4eDYyZjQgICAgICAgICAuLi4uMDExMC4uLi4KKwkJeHh4YzJmNCAg ICAgICAgIC4uLi4xMTAwLi4uLgorCQl4eHhlMmY0ICAgICAgICAgLi4uLjExMTAuLi4uCisJ VGhlIHNlY29uZCBjb2x1bW4gcmVwcmVzZW50cyB0aGUgYWx0ZXJuYXRpbmcgaGV4IGRpZ2l0 IGluIGJpbmFyeSBmb3JtLgorCUFwcGVyYW50bHksIHRoZSBmaXJzdCBhbmQgb25lLWJ1dCBs YXN0IGJpbmFyeSBkaWdpdCBjYW4gYmUgYW55dGhpbmcsCisJc28gdGhlIGJpbmFyeSBtYXNr IGZvciB0aGF0IHBhcnQgaXMgMDEwMS4gVGhlIG1hc2sgZm9yIHRoZSBwYXJ0IGFmdGVyCisJ dGhpcyBpcyAweGZmZiwgYW5kIHRoZSBwYXJ0IGJlZm9yZSBzaG91bGQgc2VsZWN0IGFueXRo aW5nIGluIHRoZSByYW5nZQorCThNQi0xNk1CLCBvciAweDAwODAwMDAwLTB4MDEwMDAwMDA7 IHRoaXMgaXMgZG9uZSB3aXRoIGEgYml0bWFzaworCTB4ZmY4MHh4eHguIENvbWJpbmluZyB0 aGVzZSBwYXJ0aWFsIG1hc2tzLCB3ZSBnZXQ6CisJCUY9MHgwMDgwNDJmNCAgICBNPTB4ZmY4 MDVmZmYKKwlUaGF0IGNvdmVycyBldmVyeXRoaW5nIGZvciB0aGlzIERJTU07IGZvciBtb3Jl IGNvbXBsaWNhdGVkIGZhaWxpbmcKKwlESU1Ncywgb3IgZm9yIGEgY29tYmluYXRpb24gb2Yg bXVsdGlwbGUgZmFpbGluZyBESU1NcywgaXQgY2FuIGJlCisJbmVjZXNzYXJ5IHRvIHNldCB1 cCBhIG51bWJlciBvZiBzdWNoIEYvTSBwYWlycy4KKworUmVib290aW5nIExpbnV4CisJTm93 IHRoYXQgdGhlc2UgcGF0dGVybnMgYXJlIGtub3duIChhbmQgZG91YmxlLWNoZWNrZWQsIHRo ZSBjYWxjdWxhdGlvbnMKKwlhcmUgaGlnaGx5IGVycm9yLXByb25lLi4uIGl0IHdvdWxkIGJl IG5lYXQgdG8gdGVzdCB0aGVtIGluIHRoZSBSQU0KKwljaGVja2VyLi4uKSB3ZSBzaW1wbHkg cmVzdGFydCBMaW51eCB3aXRoIHRoZXNlIEYvTSBwYWlycyBhcyBhIHBhcmFtZXRlci4KKwlJ ZiB5b3Ugbm9ybWFsbHkgYm9vdCBhcyBmb2xsb3dzOgorCSAgICAgICBMSUxPOiBsaW51eAor CXlvdSBzaG91bGQgbm93IGJvb3Qgd2l0aAorCSAgICAgICBMSUxPOiBsaW51eCBiYWRyYW09 MHgwMDgwNDJmNCwweGZmODA1ZmZmCisJb3IgcGVyaGFwcyBieSBtZW50aW9uaW5nIG1vcmUg Ri9NIHBhaXJzIGluIGFuIG9yZGVyIEYwLE0wLEYxLE0xLC4uLgorCVdoZW4geW91IHByb3Zp ZGUgYW4gb2RkIG51bWJlciBvZiBhcmd1bWVudHMgdG8gYmFkcmFtLCB0aGUgZGVmYXVsdCBt YXNrCisJMHhmZmZmZmZmZiAob25seSBvbmUgYWRkcmVzcyBtYXRjaGVkKSBpcyBhcHBsaWVk IHRvIHRoZSBwYXR0ZXJuLgorCisJQmV3YXJlIG9mIHRoZSBjb21tYW5kbGluZSBsZW5ndGgu IEF0IGxlYXN0IHVwIHRvIExJTE8gdmVyc2lvbiAwLjIxLAorCXRoZSBjb21tYW5kbGluZSBp cyBjdXQgb2ZmIGFmdGVyIHRoZSA3OHRoIGNoYXJhY3RlcjsgbGF0ZXIgdmVyc2lvbnMKKwlt YXkgZ28gYXMgZmFyIGFzIHRoZSBrZXJuZWwgZ29lcywgbmFtZWx5IDI1NSBjaGFyYWN0ZXJz LiBJbiBubyB3YXkgaXMKKwlpdCBwb3NzaWJsZSB0byBlbnRlciBtb3JlIHRoYW4gMTAgbnVt YmVycyB0byB0aGUgYmFkcmFtIGJvb3Qgb3B0aW9uLgorCisJV2hlbiB0aGUga2VybmVsIG5v dyBib290cywgaXQgc2hvdWxkIG5vdCBnaXZlIGFueSB0cm91YmxlIHdpdGggUkFNLgorCU1p bmQgeW91LCB0aGlzIGlzIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGtlcm5lbCBh bmQgaXRzIGRhdGEKKwlzdG9yYWdlIGRvIG5vdCBvdmVybGFwIGFuIGVycm9uZW91cyBwYXJ0 LiBJZiB0aGlzIGhhcHBlbnMsIGFuZCB0aGUKKwlrZXJuZWwgZG9lcyBub3QgY2hva2Ugb24g aXQgcmlnaHQgYXdheSwgaXQgd2lsbCBzdG9wIHdpdGggYSBwYW5pYy4KKwlZb3Ugd2lsbCBu ZWVkIHRvIHByb3ZpZGUgYSBSQU0gd2hlcmUgdGhlIGluaXRpYWwsIHNheSAyTUIsIGlzIGZh dWx0bGVzcy4KKworCU5vdyBsb29rIHVwIHlvdXIgbWVtb3J5IHN0YXR1cyB3aXRoCisJICAg ICAgIGRtZXNnIHwgZ3JlcCBeTWVtb3J5OgorCXdoaWNoIHByaW50cyBhIHNpbmdsZSBsaW5l IHdpdGggaW5mb3JtYXRpb24gbGlrZQorCQlNZW1vcnk6IDE1ODUyNGsvMTYzODQwayBhdmFp bGFibGUKKwkJCSg5NDBrIGtlcm5lbCBjb2RlLAorCQkJNDEyayByZXNlcnZlZCwKKwkJCTE4 NTZrIGRhdGEsCisJCQk2MGsgaW5pdCwKKwkJCTBrIGhpZ2htZW0sCisJCQkyMDQ4ayBCYWRS QU0pCisJVGhlIGxhdHRlciBlbnRyeSwgdGhlIGJhZHJhbSwgaXMgMjA0OGsgdG8gcmVwcmVz ZW50IHRoZSBsb3NzIG9mIDJNQgorCW9mIGdlbmVyYWwgcHVycG9zZSBSQU0gZHVlIHRvIHRo ZSBlcnJvcnMuIE9yLCBwb3NpdGl2ZWx5IHJlcGhyYXNlZCwKKwlpbnN0ZWFkIG9mIHRocm93 aW5nIG91dCAzMk1CIGFzIHVzZWxlc3MsIHlvdSBvbmx5IHRocm93IG91dCAyTUIuCisKKwlJ ZiB0aGUgc3lzdGVtIGlzIHN0YWJsZSAodHJ5IGNvbXBpbGluZyBhIGZldyBrZXJuZWxzLCBh bmQgZG8gYSBmZXcKKwlmaW5kcyBpbiAvIG9yIHNvKSB5b3UgbWF5IGFkZCB0aGUgYm9vdCBw YXJhbWV0ZXIgdG8gL2V0Yy9saWxvLmNvbmYKKwlhcyBhIGxpbmUgdG8gX2FsbF8gdGhlIGtl cm5lbHMgdGhhdCBoYW5kbGUgdGhpcyB0cm91YmxlIHdpdGggYSBsaW5lCisJCWFwcGVuZD0i YmFkcmFtPTB4MDA4MDQyZjQsMHhmZjgwNWZmZiIKKwlhZnRlciB3aGljaCB5b3UgcnVuICJs aWxvIi4KKwlXYXJuaW5nOiBEb24ndCBleHBlcmltZW50IHdpdGggdGhlc2Ugc2V0dGluZ3Mg b24geW91ciBvbmx5IGJvb3QgaW1hZ2UuCisJSWYgdGhlIEJhZFJBTSBvdmVybGF5cyBrZXJu ZWwgY29kZSwgZGF0YSwgaW5pdCwgb3Igb3RoZXIgcmVzZXJ2ZWQKKwltZW1vcnksIHRoZSBr ZXJuZWwgd2lsbCBoYWx0IGluIHBhbmljLiBUcnkgc2V0dGluZ3Mgb24gYSB0ZXN0IGJvb3QK KwlpbWFnZSBmaXJzdCwgYW5kIGlmIHlvdSBnZXQgYSBwYW5pYyB5b3Ugc2hvdWxkIGNoYW5n ZSB0aGUgb3JkZXIgb2YKKwl5b3VyIERJTU1zIFt3aGljaCBtYXkgaW52b2x2ZSBidXlpbmcg YSBuZXcgb25lIGp1c3QgdG8gYmUgYWJsZSB0bworCWNoYW5nZSB0aGUgb3JkZXJdLgorCisJ WW91IGFyZSBhbGxvd2VkIHRvIGVudGVyIGFueSBudW1iZXIgb2YgQmFkUkFNIHBhdHRlcm5z IGluIGFsbCB0aGUKKwlwbGFjZXMgZG9jdW1lbnRlZCBpbiB0aGlzIGZpbGUuIFRoZXkgd2ls bCBhbGwgYXBwbHkuIEl0IGlzIGV2ZW4KKwlwb3NzaWJsZSB0byBtZW50aW9uIHNldmVyYWwg QmFkUkFNIHBhdHRlcm5zIGluIGEgc2luZ2xlIHBsYWNlLiBUaGUKKwljb21wbGV0aW9uIG9m IGFuIG9kZCBudW1iZXIgb2YgYXJndW1lbnRzIHdpdGggdGhlIGRlZmF1bHQgbWFzayBpcwor CWRvbmUgc2VwYXJhdGVseSBmb3IgZWFjaCBiYWRyYW09Li4uIG9wdGlvbi4KKworS2VybmVs IEN1c3RvbWlzYXRpb24KKwlTb21lIHBlb3BsZSBwcmVmZXIgdG8gZW50ZXIgdGhlaXIgYmFk cmFtIHBhdHRlcm5zIGluIHRoZSBrZXJuZWwsIGFuZAorCXRoaXMgaXMgYWxzbyBwb3NzaWJs ZS4gSW4gbW0vcGFnZV9hbGxvYy5jIHRoZXJlIGlzIGFuIGFycmF5IG9mIHVuc2lnbmVkCisJ bG9uZyBpbnRlZ2VycyBpbnRvIHdoaWNoIHRoZSBwYXJhbWV0ZXJzIGNhbiBiZSBlbnRlcmVk LCBwcmVmaXhlZCB3aXRoCisJdGhlIG51bWJlciBvZiBpbnRlZ2VycyAodHdpY2UgdGhlIG51 bWJlciBvZiBwYXR0ZXJucykuIFRoZSBhcnJheSBpcworCW5hbWVkIGJhZHJhbV9jdXN0b20g YW5kIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIEJhZFJBTSBsaXN0IHdoZW5ldmVyIGFuCisJ b3B0aW9uICdiYWRyYW0nIGlzIHByb3ZpZGVkIG9uIHRoZSBjb21tYW5kbGluZSB3aGVuIGJv b3RpbmcsIGVpdGhlcgorCXdpdGggb3Igd2l0aG91dCBhZGRpdGlvbmFsIHBhdHRlcm5zLgor CisJRm9yIHRoZSBwcmV2aW91cyBleGFtcGxlLCB0aGUgY29kZSB3b3VsZCBiZWNvbWUKKwor CXN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBiYWRyYW1fY3VzdG9tW10gPSB7CisJCTIs CS8vIE51bWJlciBvZiBsb25nd29yZHMgdGhhdCBmb2xsb3csIGFzIEYvTSBwYWlycworCQkw eDAwODA0MmY0TCwgMHhmZjgwNWZmZkwsCisJfTsKKworCUV2ZW4gb24gdGhpcyBwbGFjZSB5 b3UgbWF5IGFzc3VtZSB0aGUgZGVmYXVsdCBtYXNrIHRvIGJlIGZpbGxlZCBpbgorCXdoZW4g eW91IGVudGVyIGFuIG9kZCBudW1iZXIgb2YgbG9uZ3dvcmRzLiBTcGVjaWZ5IHRoZSBudW1i ZXIgb2YKKwlsb25nd29yZHMgdG8gYmUgMCB0byBhdm9pZCBpbmZsdWVuY2Ugb2YgdGhpcyBj dXN0b20gQmFkUkFNIGxpc3QuCisKK0JhZFJBTSBjbGFzc2lmaWNhdGlvbgorCVRoaXMgdGVj aG5pcXVlIG1heSBzdGFydCBhIGxpdmVseSBtYXJrZXQgZm9yICJkZWFkIiBSQU0uIEl0IGlz IGltcG9ydGFudAorCXRvIHJlYWxpc2UgdGhhdCBzb21lIFJBTXMgYXJlIG1vcmUgZGVhZCB0 aGFuIG90aGVycy4gU28sIGluc3RlYWQgb2YKKwlqdXN0IHByb3ZpZGluZyBhIFJBTSBzaXpl LCBpdCBpcyBhbHNvIGltcG9ydGFudCB0byBrbm93IHRoZSBCYWRSQU0KKwljbGFzcywgd2hp Y2ggaXMgZGVmaW5lZCBhcyBmb2xsb3dzOgorCisJCUEgQmFkUkFNIGNsYXNzIE4gbWVhbnMg dGhhdCBhdCBtb3N0IDJeTiBieXRlcyBoYXZlIGEgcHJvYmxlbSwKKwkJYW5kIHRoYXQgYWxs IHByb2JsZW1zIHdpdGggdGhlIFJBTXMgYXJlIHBlcnNpc3RlbnQ6IFRoZXkKKwkJYXJlIHBy ZWRpY3RhYmxlIGFuZCBhbHdheXMgc2hvdyB1cC4KKworCVRoZSBESU1NIHRoYXQgc2VydmVz IGFzIGFuIGV4YW1wbGUgaGVyZSB3YXMgb2YgY2xhc3MgOSwgc2luY2UgNTEyPTJeOQorCWVy cm9ycyB3ZXJlIGZvdW5kLiBIaWdoZXIgY2xhc3NlcyBhcmUgd29yc2UsICJjb3JyZWN0IiBS QU0gaXMgb2YgY2xhc3MKKwktMSAob3IgZXZlbiBsZXNzLCBhdCB5b3VyIGNob2ljZSkuCisJ Q2xhc3MgTiBhbHNvIG1lYW5zIHRoYXQgdGhlIGJpdG1hc2sgZm9yIHlvdXIgY2hpcCAoaWYg dGhlcmUncyBqdXN0IG9uZSwKKwl0aGF0IGlzKSBjb3VudHMgTiBiaXRzICIwIiBhbmQgaXQg bWVhbnMgdGhhdCAoaWYgbm8gZmF1bHRzIGZhbGwgaW4gdGhlCisJc2FtZSBwYWdlKSBhbiBh bW91bnQgb2YgMl5OKlBBR0VTSVpFIG1lbW9yeSBpcyBsb3N0LCBpbiB0aGUgZXhhbXBsZSBv bgorCWFuIGkzODYgYXJjaGl0ZWN0dXJlIHRoYXQgd291bGQgYmUgMl45KjRrPTJNQiwgd2hp Y2ggYWNjb3VudHMgZm9yIHRoZQorCWluaXRpYWwgY2xhaW0gb2YgMzBNQiBSQU0gZ2FpbmVk IHdpdGggdGhpcyBESU1NLgorCisJTm90ZSB0aGF0IHRoaXMgc2NoZW1lIGhhcyBkZWxpYmVy YXRlbHkgYmVlbiBkZWZpbmVkIHRvIGJlIGluZGVwZW5kZW50CisJb2YgbWVtb3J5IHRlY2hu b2xvZ3kgYW5kIG9mIGNvbXB1dGVyIGFyY2hpdGVjdHVyZS4KKworS25vd24gQnVncworCUxJ TE8gaXMga25vd24gdG8gY3V0IG9mZiBjb21tYW5kbGluZXMgd2hpY2ggYXJlIHRvbyBsb25n LiBGb3IgdGhlCisJbGlsby0wLjIxIGRpc3RyaWJ1dGlvbiwgYSBjb21tYW5kbGluZSBtYXkg bm90IGV4Y2VlZCA3OCBjaGFyYWN0ZXJzLAorCXdoaWxlIGFjdHVhbGx5LCAyNTUgd291bGQg YmUgcG9zc2libGUgW29uIGkzODYsIGtlcm5lbCAyLjIuMTZdLgorCUxJTE8gZG9lcyBfbm90 XyByZXBvcnQgdG9vLWxvbmcgY29tbWFuZGxpbmVzLCBidXQgdGhlIGVycm9yIHdpbGwKKwlz aG93IHVwIGFzIGVpdGhlciBhIHBhbmljIGF0IGJvb3QgdGltZSwgc3RhdGluZworCQlwYW5p YzogQmFkUkFNIHBhZ2UgaW4gaW5pdGlhbCBhcmVhCisJb3IgdGhlIGRtZXNnIGxpbmUgc3Rh cnRpbmcgd2l0aCBNZW1vcnk6IHdpbGwgbWVudGlvbiBhbiB1bnByZWRpY3RlZAorCW51bWJl ciBvZiBraWxvYnl0ZXMuIChOb3RlIHRoYXQgdGhlIGxhdHRlciBudW1iZXIgb25seSBpbmNs dWRlcworCWVycm9ycyBpbiBhY2Nlc3NlZCBtZW1vcnkuKQorCitGdXR1cmUgUG9zc2liaWxp dGllcworCUl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBldmVuIG1vcmUgb2YgdGhlIGZh dWx0eSBSQU1zIGJ5IGVtcGxveWluZworCXRoZW0gZm9yIHNsYWJzLiBUaGUgc21hbGxlciBh bGxvY2F0aW9uIGdyYW51bGFyaXR5IG9mIHNsYWJzIG1ha2VzIGl0CisJcG9zc2libGUgdG8g dGhyb3cgb3V0IGp1c3QsIHNheSwgMzIgYnl0ZXMgc3Vycm91bmRpbmcgYW4gZXJyb3IuIFRo aXMKKwl3b3VsZCBtZWFuIHRoYXQgdGhlIGV4YW1wbGUgRElNTSBvbmx5IGxvb3NlcyAxNmtC IGluc3RlYWQgb2YgMk1CLgorCUl0IG1pZ2h0IGV2ZW4gYmUgcG9zc2libGUgdG8gYWxsb2Nh dGUgdGhlIHNsYWJzIGluIHN1Y2ggYSB3YXkgdGhhdCwKKwl3aGVyZSBwb3NzaWJsZSwgdGhl IHJlbWFpbmluZyBieXRlcyBpbiBhIHNsYWIgc3RydWN0dXJlIGFyZSBhbGxvY2F0ZWQKKwlh cm91bmQgdGhlIGVycm9yLCByZWR1Y2luZyB0aGUgUkFNIGxvc3MgdG8gMCBpbiB0aGUgb3B0 aW1hbCBzaXR1YXRpb24hCisKKwlIb3dldmVyLCB0aGlzIHlpZWxkIGlzIHNvbWV3aGF0IGZh a2VkOiBJdCBpcyBwb3NzaWJsZSB0byBwcm92aWRlIDUxMgorCXBhZ2VzIG9mIDMyLWJ5dGUg c2xhYnMsIGJ1dCBpdCBpcyBub3QgY2VydGFpbiB0aGF0IGFueW9uZSB3b3VsZCB1c2UKKwl0 aGF0IG1hbnkgMzItYnl0ZSBzbGFicyBhdCBhbnkgdGltZS4KKworCUEgYmV0dGVyIHNvbHV0 aW9uIG1pZ2h0IGJlIHRvIGFsdGVyIHRoZSBwYWdlIGFsbG9jYXRpb24gZm9yIGEgc2xhYiB0 bworCWhhdmUgYSBwcmVmZXJlbmNlIGZvciBCYWRSQU0gcGFnZXMsIGFuZCBnaXZlbiB0aG9z ZSBhIHNwZWNpYWwgdHJlYXRtZW50LgorCVRoaXMgd2F5LCB0aGUgQmFkUkFNIHdvdWxkIGJl IHNwcmVhZCBvdmVyIGFsbCB0aGUgc2xhYnMsIHdoaWNoIHNlZW1zCisJbW9yZSBsaWtlbHkg dG8gYmUgYSBgdHJ1ZScgcGF5LW9mZi4gVGhpcyB3b3VsZCB5aWVsZCBtb3JlIG92ZXJoZWFk IGF0CisJc2xhYiBhbGxvY2F0aW9uIHRpbWUsIGJ1dCBvbiB0aGUgb3RoZXIgaGFuZCwgYnkg dGhlIG5hdHVyZSBvZiBzbGFicywKKwlzdWNoIGFsbG9jYXRpb25zIGFyZSBtYWRlIGFzIHJh cmUgYXMgcG9zc2libGUsIHNvIGl0IG1pZ2h0IG5vdCBtYXR0ZXIKKwl0aGF0IG11Y2guIEkg YW0gdW5jZXJ0YWluIHdoZXJlIHRvIGdvLgorCisJTWFueSBzdWdnZXN0aW9ucyBoYXZlIGJl ZW4gbWFkZSB0byBpbnNlcnQgYSBSQU0gY2hlY2tlciBhdCBib290IHRpbWU7CisJc2luY2Ug dGhpcyB3b3VsZCBsZWF2ZSB0aGUgdGltZSB0byBkbyBvbmx5IHZlcnkgbWVhZ2VyIGNoZWNr aW5nLCBpdAorCWlzIG5vdCBhIHJlYXNvbmFibGUgb3B0aW9uOyB3ZSBhbHJlYWR5IGhhdmUg YSBCSU9TIGRvaW5nIHRoYXQgaW4gbW9zdAorCXN5c3RlbXMhCisKKwlJdCB3b3VsZCBiZSBp bnRlcmVzdGluZyB0byBpbnRlZ3JhdGUgdGhpcyBmdW5jdGlvbmFsaXR5IHdpdGggdGhlCisJ c2VsZi12ZXJpZnlpbmcgbmF0dXJlIG9mIEVDQyBSQU0uIFRoZXNlIG1lbW9yaWVzIGNhbiBl dmVuIGRpc3Rpbmd1aXNoCisJYmV0d2VlbiByZWNvcmFibGUgYW5kIHVucmVjb3ZlcmFibGUg ZXJyb3JzISBTdWNoIG1lbW9yeSBoYXMgYmVlbgorCWhhbmRsZWQgaW4gb2xkZXIgb3BlcmF0 aW5nIHN5c3RlbXMgYnkgYHRlc3RpbmcnIG9uY2UtZmFpbGVkIG1lbW9yeQorCWJsb2NrcyBm b3IgYSB3aGlsZSwgYnkgcGxhY2luZyBvbmx5IChyZWxvYWRhYmxlKSBwcm9ncmFtIGNvZGUg aW4gaXQuCisJVW5mb3J0dW5hdGVseSwgSSBwb3NzZXNzIG5vIGZhdWx0eSBFQ0MgbW9kdWxl cyB0byB3b3JrIHRoaXMgb3V0LgorCitOYW1lcyBhbmQgUGxhY2VzCisJVGhlIGhvbWUgcGFn ZSBvZiB0aGlzIHByb2plY3QgaXMgb24KKwkJaHR0cDovL3JpY2sudmFucmVpbi5vcmcvbGlu dXgvYmFkcmFtCisJVGhpcyBwYWdlIGFsc28gbGlua3MgdG8gTmljbyBTY2htb2lnbCdzIGV4 cGVyaW1lbnRhbCBleHRlbnNpb25zIHRvCisJdGhpcyBwYXRjaCAod2l0aCBkZWJ1Z2dpbmcg YW5kIGEgZmV3IG90aGVyIGZhbmN5IHRoaW5ncykuCisKKwlJbiBjYXNlIHlvdSBoYXZlIGV4 cGVyaWVuY2VzIHdpdGggdGhlIEJhZFJBTSBzb2Z0d2FyZSB3aGljaCBkaWZmZXIgZnJvbQor CXRoZSB0ZXN0IHJlcG9ydGluZ3Mgb24gdGhhdCBzaXRlLCBJIGhvcGUgeW91IHdpbGwgbWFp bCBtZSB3aXRoIHRoYXQKKwluZXcgaW5mb3JtYXRpb24uCisKKwlUaGUgQmFkUkFNIHByb2pl Y3QgaXMgYW4gaWRlYSBhbmQgaW1wbGVtZW50YXRpb24gYnkKKwkJUmljayB2YW4gUmVpbgor CQlCaW5uZW5lcyA2NworCQk5NDA3IENYIEFzc2VuCisJCVRoZSBOZXRoZXJsYW5kcworCQl2 YW5yZWluQGNzLnV0d2VudGUubmwKKwlJZiB5b3UgbGlrZSBpdCwgYSBwb3N0Y2FyZCB3b3Vs ZCBiZSBtdWNoIGFwcHJlY2lhdGVkIDstKQorCisKKwkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5qb3ksCisJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtUmljay4KKwpk aWZmIC11ck4gbGludXgtMi41LjczLW1tMi9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0 ZXJzLnR4dCBsaW51eC0yLjUvRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQK LS0tIGxpbnV4LTIuNS43My1tbTIvRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50 eHQJMjAwMy0wNy0wMSAxOTo1OTo0MC4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNS9E b2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAkyMDAzLTA3LTAyIDAxOjUyOjEw LjkyMTY5ODk4NSArMDEwMApAQCAtMTUsNiArMTUsNyBAQAogCUFQSUMJQVBJQyBzdXBwb3J0 IGlzIGVuYWJsZWQuCiAJQVBNCUFkdmFuY2VkIFBvd2VyIE1hbmFnZW1lbnQgc3VwcG9ydCBp cyBlbmFibGVkLgogCUFYMjUJQXBwcm9wcmlhdGUgQVguMjUgc3VwcG9ydCBpcyBlbmFibGVk LgorCUJBRFJBTQlTdXBwb3J0IGZvciBmYXVsdHkgUkFNIGNoaXBzIGlzIGVuYWJsZWQuCiAJ Q0QJQXBwcm9wcmlhdGUgQ0Qgc3VwcG9ydCBpcyBlbmFibGVkLgogCURFVkZTCWRldmZzIHN1 cHBvcnQgaXMgZW5hYmxlZC4gCiAJRFJNCURpcmVjdCBSZW5kZXJpbmcgTWFuYWdlbWVudCBz dXBwb3J0IGlzIGVuYWJsZWQuIApAQCAtMTYyLDYgKzE2Myw5IEBACiAJYXp0Y2Q9CQlbSFcs Q0RdIEF6dGVjaCBDRDI2OCBDRFJPTSBkcml2ZXIKIAkJCUZvcm1hdDogPGlvPiwweDc5ICg/ KQogCisJYmFkcmFtPQkJW0JBRFJBTV0gQXZvaWQgYWxsb2NhdGluZyBmYXVsdHkgUkFNIGFk ZHJlc3Nlcy4KKworCiAJYmF5Y29tX2VwcD0JW0hXLEFYMjVdCiAJCQlGb3JtYXQ6IDxpbz4s PG1vZGU+CiAgCmRpZmYgLXVyTiBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50YXRpb24vbWVt b3J5LnR4dCBsaW51eC0yLjUvRG9jdW1lbnRhdGlvbi9tZW1vcnkudHh0Ci0tLSBsaW51eC0y LjUuNzMtbW0yL0RvY3VtZW50YXRpb24vbWVtb3J5LnR4dAkyMDAzLTA2LTE3IDA1OjIwOjI4 LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi41L0RvY3VtZW50YXRpb24vbWVtb3J5LnR4 dAkyMDAzLTA3LTAxIDIwOjAyOjI3LjAwMDAwMDAwMCArMDEwMApAQCAtMTgsNiArMTgsMTQg QEAKIAkgICBhcyB5b3UgYWRkIG1vcmUgbWVtb3J5LiAgQ29uc2lkZXIgZXhjaGFuZ2luZyB5 b3VyIAogICAgICAgICAgICBtb3RoZXJib2FyZC4KIAorCTQpIEEgc3RhdGljIGRpc2NoYXJn ZSBvciBwcm9kdWN0aW9uIGZhdWx0IGNhdXNlcyBhIFJBTSBtb2R1bGUKKwkgICB0byBoYXZl IChwcmVkaWN0YWJsZSkgZXJyb3JzLCB1c3VhbGx5IG1lYW5pbmcgdGhhdCBjZXJ0YWluCisJ ICAgYml0cyBjYW5ub3QgYmUgc2V0IG9yIHJlc2V0LiBJbnN0ZWFkIG9mIHRocm93aW5nIGF3 YXkgeW91cgorCSAgIFJBTSBtb2R1bGUsIHlvdSBtYXkgcmVhZCAvdXNyL3NyYy9saW51eC9E b2N1bWVudGF0aW9uL2JhZHJhbS50eHQKKwkgICB0byBsZWFybiBob3cgdG8gZGV0ZWN0LCBs b2NhdGUgYW5kIGNpcmN1aW12ZW50IHN1Y2ggZXJyb3JzCisJICAgaW4geW91ciBSQU0gbW9k dWxlLgorCisKIEFsbCBvZiB0aGVzZSBwcm9ibGVtcyBjYW4gYmUgYWRkcmVzc2VkIHdpdGgg dGhlICJtZW09WFhYTSIgYm9vdCBvcHRpb24KICh3aGVyZSBYWFggaXMgdGhlIHNpemUgb2Yg UkFNIHRvIHVzZSBpbiBtZWdhYnl0ZXMpLiAgCiBJdCBjYW4gYWxzbyB0ZWxsIExpbnV4IHRv IHVzZSBsZXNzIG1lbW9yeSB0aGFuIGlzIGFjdHVhbGx5IGluc3RhbGxlZC4KQEAgLTQ1LDYg KzUzLDggQEAKIAogCSogVHJ5IHBhc3NpbmcgdGhlICJtZW09NE0iIG9wdGlvbiB0byB0aGUg a2VybmVsIHRvIGxpbWl0CiAJICBMaW51eCB0byB1c2luZyBhIHZlcnkgc21hbGwgYW1vdW50 IG9mIG1lbW9yeS4KKwkgIElmIHRoaXMgaGVscHMsIHJlYWQgL3Vzci9zcmMvbGludXgvRG9j dW1lbnRhdGlvbi9iYWRyYW0udHh0CisJICB0byBsZWFybiBob3cgdG8gZmluZCBhbmQgY2ly Y3VpbXZlbnQgbWVtb3J5IGVycm9ycy4KIAogCiBPdGhlciB0cmlja3M6CmRpZmYgLXVyTiBs aW51eC0yLjUuNzMtbW0yL2FyY2gvaTM4Ni9kZWZjb25maWcgbGludXgtMi41L2FyY2gvaTM4 Ni9kZWZjb25maWcKLS0tIGxpbnV4LTIuNS43My1tbTIvYXJjaC9pMzg2L2RlZmNvbmZpZwky MDAzLTA2LTE3IDA1OjIwOjA3LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi41L2FyY2gv aTM4Ni9kZWZjb25maWcJMjAwMy0wNy0wMSAyMDowMjoyOC4wMDAwMDAwMDAgKzAxMDAKQEAg LTEzMiw2ICsxMzIsNyBAQAogIyBDT05GSUdfRUlTQSBpcyBub3Qgc2V0CiAjIENPTkZJR19N Q0EgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX0JBRFJBTT15CiAKICMK ICMgUENNQ0lBL0NhcmRCdXMgc3VwcG9ydApkaWZmIC11ck4gbGludXgtMi41LjczLW1tMi9h cmNoL2kzODYvbW0vaW5pdC5jIGxpbnV4LTIuNS9hcmNoL2kzODYvbW0vaW5pdC5jCi0tLSBs aW51eC0yLjUuNzMtbW0yL2FyY2gvaTM4Ni9tbS9pbml0LmMJMjAwMy0wNy0wMSAxOTo1OToy OC4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNS9hcmNoL2kzODYvbW0vaW5pdC5jCTIw MDMtMDctMDIgMDA6NDA6MzEuMDAwMDAwMDAwICswMTAwCkBAIC0yMjMsMTMgKzIyMywyNCBA QAogCXBrbWFwX3BhZ2VfdGFibGUgPSBwdGU7CQogfQogCi12b2lkIF9faW5pdCBvbmVfaGln aHBhZ2VfaW5pdChzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IHBmbiwgaW50IGJhZF9wcHJvKQor LyoqCisgKiBAcGFyYW0gYmFkCXNldCBvbiByZXR1cm4gdG8gd2hldGhlciB0aGUgcGFnZSBp cyBiYWQgUkFNCisgKi8KK3ZvaWQgX19pbml0IG9uZV9oaWdocGFnZV9pbml0KHN0cnVjdCBw YWdlICpwYWdlLCBpbnQgcGZuLCBpbnQgYmFkX3Bwcm8sCisJCQkJX0Jvb2wgKmJhZCkKIHsK KwkqYmFkID0gMDsKIAlpZiAocGFnZV9pc19yYW0ocGZuKSAmJiAhKGJhZF9wcHJvICYmIHBh Z2Vfa2lsbHNfcHBybyhwZm4pKSkgewogCQlDbGVhclBhZ2VSZXNlcnZlZChwYWdlKTsKIAkJ c2V0X2JpdChQR19oaWdobWVtLCAmcGFnZS0+ZmxhZ3MpOwogCQlzZXRfcGFnZV9jb3VudChw YWdlLCAxKTsKLQkJX19mcmVlX3BhZ2UocGFnZSk7CisjaWZkZWYgQ09ORklHX0JBRFJBTQor CQlpZiAoUGFnZUJhZChwYWdlKSkKKwkJCSpiYWQgPSAxOworCQllbHNlCisjZWxzZQorCSAJ CV9fZnJlZV9wYWdlKHBhZ2UpOworI2VuZGlmCiAJCXRvdGFsaGlnaF9wYWdlcysrOwogCX0g ZWxzZQogCQlTZXRQYWdlUmVzZXJ2ZWQocGFnZSk7CkBAIC0yMzksOCArMjUwLDEwIEBACiB2 b2lkIF9faW5pdCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KGludCBiYWRfcHBybykgCiB7CiAJ aW50IHBmbjsKLQlmb3IgKHBmbiA9IGhpZ2hzdGFydF9wZm47IHBmbiA8IGhpZ2hlbmRfcGZu OyBwZm4rKykKLQkJb25lX2hpZ2hwYWdlX2luaXQocGZuX3RvX3BhZ2UocGZuKSwgcGZuLCBi YWRfcHBybyk7CisJZm9yIChwZm4gPSBoaWdoc3RhcnRfcGZuOyBwZm4gPCBoaWdoZW5kX3Bm bjsgcGZuKyspIHsKKwkJb25lX2hpZ2hwYWdlX2luaXQocGZuX3RvX3BhZ2UocGZuKSwgcGZu LCBiYWRfcHBybywgJmJhZCk7CisJCWlmIChiYWQpIGJhZHBhZ2VzKys7CisJfQogCXRvdGFs cmFtX3BhZ2VzICs9IHRvdGFsaGlnaF9wYWdlczsKIH0KICNlbHNlCkBAIC00MzEsNyArNDQ0 LDcgQEAKIHZvaWQgX19pbml0IG1lbV9pbml0KHZvaWQpCiB7CiAJZXh0ZXJuIGludCBwcHJv X3dpdGhfcmFtX2J1Zyh2b2lkKTsKLQlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGRh dGFzaXplLCBpbml0c2l6ZTsKKwlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGJhZHBh Z2VzLCBkYXRhc2l6ZSwgaW5pdHNpemU7CiAJaW50IHRtcDsKIAlpbnQgYmFkX3Bwcm87CiAK QEAgLTQ2NywxMyArNDgwLDE3IEBACiAJdG90YWxyYW1fcGFnZXMgKz0gX19mcmVlX2FsbF9i b290bWVtKCk7CiAKIAlyZXNlcnZlZHBhZ2VzID0gMDsKKwliYWRwYWdlcyA9IDA7CiAJZm9y ICh0bXAgPSAwOyB0bXAgPCBtYXhfbG93X3BmbjsgdG1wKyspCiAJCS8qCi0JCSAqIE9ubHkg Y291bnQgcmVzZXJ2ZWQgUkFNIHBhZ2VzCisJCSAqIE9ubHkgY291bnQgcmVzZXJ2ZWQgYW5k IGJhZCBSQU0gcGFnZXMKIAkJICovCiAJCWlmIChwYWdlX2lzX3JhbSh0bXApICYmIFBhZ2VS ZXNlcnZlZChwZm5fdG9fcGFnZSh0bXApKSkKIAkJCXJlc2VydmVkcGFnZXMrKzsKLQorI2lm ZGVmIENPTkZJR19CQURSQU0KKwkJaWYgKHBhZ2VfaXNfcmFtKHRtcCkgJiYgUGFnZUJhZChw Zm5fdG9fcGFnZSh0bXApKSkKKwkJCWJhZHBhZ2VzKys7CisjZW5kaWYKIAlzZXRfaGlnaG1l bV9wYWdlc19pbml0KGJhZF9wcHJvKTsKIAogCWNvZGVzaXplID0gICh1bnNpZ25lZCBsb25n KSAmX2V0ZXh0IC0gKHVuc2lnbmVkIGxvbmcpICZfdGV4dDsKQEAgLTQ4NCw2ICs1MDEsMTgg QEAKIAlrY2xpc3RfYWRkKCZrY29yZV92bWFsbG9jLCAodm9pZCAqKVZNQUxMT0NfU1RBKTsK IAlyZXR1cm4gMDsKIH0KKworCisjaWZkZWYgQ09ORklHX0JBRFJBTQorCisvKiBHaXZlbiBh IHBvaW50ZWQtYXQgYWRkcmVzcyBhbmQgYSBtYXNrLCBpbmNyZW1lbnQgdGhlIHBhZ2Ugc28g dGhhdCB0aGUKKyAqIG1hc2sgaGlkZXMgdGhlIGluY3JlbWVudC4gUmV0dXJuIDAgaWYgbm8g aW5jcmVtZW50IGlzIHBvc3NpYmxlLgorICovCitzdGF0aWMgaW50IF9faW5pdCBuZXh0X21h c2tlZF9hZGRyZXNzICh1bnNpZ25lZCBsb25nICphZGRycCwgdW5zaWduZWQgbG9uZyBtYXNr KQoreworICAgICAgICB1bnNpZ25lZCBsb25nIGluYz0xOworICAgICAgICB1bnNpZ25lZCBs b25nIG5ld3ZhbCA9ICphZGRycDsKKwl3aGlsZSAoaW5jICYgbWFzaykKKwkJaW5jICs9IGlu YzsKKyAgICAgICAgd2hpbGUgKGluYyAhPSAwKSB7CisJCW5ld3ZhbCArPSBpbmM7CisJCW5l d3ZhbCAmPSB+bWFzazsKKwkJbmV3dmFsIHw9ICgoKmFkZHJwKSAmIG1hc2spOworCQlpZiAo bmV3dmFsID4gKmFkZHJwKSB7CisJCQkqYWRkcnAgPSBuZXd2YWw7CisJCQlyZXR1cm4gMTsK KwkJfQorCQlkbyB7CisJCQlpbmMgKz0gaW5jOworCQl9IHdoaWxlIChpbmMgJiB+bWFzayk7 CisJCXdoaWxlIChpbmMgJiBtYXNrKQorCQkJaW5jICs9IGluYzsKKyAgICAgICAgfQorICAg ICAgICByZXR1cm4gMDsKK30KKworCit2b2lkIF9faW5pdCBiYWRyYW1fbWFya3BhZ2VzIChp bnQgYXJnYywgdW5zaWduZWQgbG9uZyAqYXJndikgeworCXVuc2lnbmVkIGxvbmcgYWRkciwg bWFzazsKKyAgICAgICAgd2hpbGUgKGFyZ2MtLSA+IDApIHsKKyAgICAgICAgICAgICAgICBh ZGRyID0gKmFyZ3YrKzsKKyAgICAgICAgICAgICAgICBtYXNrID0gKGFyZ2MtLSA+IDApID8g KmFyZ3YrKyA6IH4wTDsKKyAgICAgICAgICAgICAgICBtYXNrIHw9IH5QQUdFX01BU0s7CS8v IE9wdGltYWxpc2F0aW9uCisJCWFkZHIgJj0gbWFzazsJCS8vICBOb3JtYWxpc2F0aW9uCisg ICAgICAgICAgICAgICAgZG8geworCQkJc3RydWN0IHBhZ2UgKnBnID0gcGh5c190b19wYWdl KGFkZHIpOworcHJpbnRrICgiJTA1bHggIiwgX19wYShfX3ZhKGFkZHIpKSA+PiBQQUdFX1NI SUZUKTsKK3ByaW50ayAoIj0lMDVseC8lMDVseCAiLCBwZy1tZW1fbWFwLCBtYXhfbWFwbnIp OworCQkJLy8gaWYgKFZBTElEX1BBR0UocGcpKSB7CisJCQkJaWYgKFBhZ2VUZXN0YW5kU2V0 QmFkIChwZykpIHsKKwkJCQkJcmVzZXJ2ZV9ib290bWVtIChhZGRyLCBQQUdFX1NJWkUpOwor cHJpbnRrICgiQkFEICIpOworCQkJCX0KK2Vsc2UgcHJpbnRrICgiQkZSICIpOworCQkJLy8g fQorLy8gZWxzZSBwcmludGsgKCJJTlYgIik7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAo bmV4dF9tYXNrZWRfYWRkcmVzcyAoJmFkZHIsbWFzaykpOworICAgICAgICB9Cit9CisKKwor CisvKioqKnJOIGxpbnV4LTIuNS43My1tbTIvbW0vYm9vdG1lbS5jIGwpOwogCXJldHVybiAw OwogfQorCisKKyNpZmRlZiBDT05GSUdfQkFEUkFNCisKKy8qIEdpdmVuIGEgcG9pbnRlZC1h dCBhZGRyZXNzIGFuZCBhIG1hc2ssIGluY3JlbWVudCB0aGUgcGFnZSBzbyB0aGF0IHRoZQor ICogbWFzayBoaWRlcyB0aGUgaW5jcmVtZW50LiBSZXR1cm4gMCBpZiBubyBpbmNyZW1lbnQg aXMgcG9zc2libGUuCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IG5leHRfbWFza2VkX2FkZHJl c3MgKHVuc2lnbmVkIGxvbmcgKmFkZHJwLCB1bnNpZ25lZCBsb25nIG1hc2spCit7CisgICAg ICAgIHVuc2lnbmVkIGxvbmcgaW5jPTE7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3dmFs ID0gKmFkZHJwOworCXdoaWxlIChpbmMgJiBtYXNrKQorCQlpbmMgKz0gaW5jOworICAgICAg ICB3aGlsZSAoaW5jICE9IDApIHsKKwkJbmV3dmFsICs9IGluYzsKKwkJbmV3dmFsICY9IH5t YXNrOworCQluZXd2YWwgfD0gKCgqYWRkcnApICYgbWFzayk7CisJCWlmIChuZXd2YWwgPiAq YWRkcnApIHsKKwkJCSphZGRycCA9IG5ld3ZhbDsKKwkJCXJldHVybiAxOworCQl9CisJCWRv IHsKKwkJCWluYyArPSBpbmM7CisJCX0gd2hpbGUgKGluYyAmIH5tYXNrKTsKKwkJd2hpbGUg KGluYyAmIG1hc2spCisJCQlpbmMgKz0gaW5jOworICAgICAgICB9CisgICAgICAgIHJldHVy biAwOworfQorCisKK3ZvaWQgX19pbml0IGJhZHJhbV9tYXJrcGFnZXMgKGludCBhcmdjLCB1 bnNpZ25lZCBsb25nICphcmd2KSB7CisJdW5zaWduZWQgbG9uZyBhZGRyLCBtYXNrOworICAg ICAgICB3aGlsZSAoYXJnYy0tID4gMCkgeworICAgICAgICAgICAgICAgIGFkZHIgPSAqYXJn disrOworICAgICAgICAgICAgICAgIG1hc2sgPSAoYXJnYy0tID4gMCkgPyAqYXJndisrIDog fjBMOworICAgICAgICAgICAgICAgIG1hc2sgfD0gflBBR0VfTUFTSzsJLy8gT3B0aW1hbGlz YXRpb24KKwkJYWRkciAmPSBtYXNrOwkJLy8gIE5vcm1hbGlzYXRpb24KKyAgICAgICAgICAg ICAgICBkbyB7CisJCQlzdHJ1Y3QgcGFnZSAqcGcgPSBwaHlzX3RvX3BhZ2UoYWRkcik7Citw cmludGsgKCIlMDVseCAiLCBfX3BhKF9fdmEoYWRkcikpID4+IFBBR0VfU0hJRlQpOworcHJp bnRrICgiPSUwNWx4LyUwNWx4ICIsIHBnLW1lbV9tYXAsIG1heF9tYXBucik7CisJCQkvLyBp ZiAoVkFMSURfUEFHRShwZykpIHsKKwkJCQlpZiAoUGFnZVRlc3RhbmRTZXRCYWQgKHBnKSkg eworCQkJCQlyZXNlcnZlX2Jvb3RtZW0gKGFkZHIsIFBBR0VfU0laRSk7CitwcmludGsgKCJC QUQgIik7CisJCQkJfQorZWxzZSBwcmludGsgKCJCRlIgIik7CisJCQkvLyB9CisvLyBlbHNl IHByaW50ayAoIklOViAiKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChuZXh0X21hc2tl ZF9hZGRyZXNzICgmYWRkcixtYXNrKSk7CisgICAgICAgIH0KK30KKworCisKKy8qKioqLDk2 IEBACiAJc2V0dXBfcGVyX3pvbmVfcGFnZXNfbWluKCk7CiAJcmV0dXJuIDA7CiB9CisKKwor I2lmZGVmIENPTkZJR19CQURSQU0KKworLyogR2l2ZW4gYSBwb2ludGVkLWF0IGFkZHJlc3Mg YW5kIGEgbWFzaywgaW5jcmVtZW50IHRoZSBwYWdlIHNvIHRoYXQgdGhlCisgKiBtYXNrIGhp ZGVzIHRoZSBpbmNyZW1lbnQuIFJldHVybiAwIGlmIG5vIGluY3JlbWVudCBpcyBwb3NzaWJs ZS4KKyAqLworc3RhdGljIGludCBfX2luaXQgbmV4dF9tYXNrZWRfYWRkcmVzcyAodW5zaWdu ZWQgbG9uZyAqYWRkcnAsIHVuc2lnbmVkIGxvbmcgbWFzaykKK3sKKyAgICAgICAgdW5zaWdu ZWQgbG9uZyBpbmM9MTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBuZXd2YWwgPSAqYWRkcnA7 CisJd2hpbGUgKGluYyAmIG1hc2spCisJCWluYyArPSBpbmM7CisgICAgICAgIHdoaWxlIChp bmMgIT0gMCkgeworCQluZXd2YWwgKz0gaW5jOworCQluZXd2YWwgJj0gfm1hc2s7CisJCW5l d3ZhbCB8PSAoKCphZGRycCkgJiBtYXNrKTsKKwkJaWYgKG5ld3ZhbCA+ICphZGRycCkgewor CQkJKmFkZHJwID0gbmV3dmFsOworCQkJcmV0dXJuIDE7CisJCX0KKwkJZG8geworCQkJaW5j ICs9IGluYzsKKwkJfSB3aGlsZSAoaW5jICYgfm1hc2spOworCQl3aGlsZSAoaW5jICYgbWFz aykKKwkJCWluYyArPSBpbmM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7Cit9CisK Kwordm9pZCBfX2luaXQgYmFkcmFtX21hcmtwYWdlcyAoaW50IGFyZ2MsIHVuc2lnbmVkIGxv bmcgKmFyZ3YpIHsKKwl1bnNpZ25lZCBsb25nIGFkZHIsIG1hc2s7CisgICAgICAgIHdoaWxl IChhcmdjLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgYWRkciA9ICphcmd2Kys7CisgICAg ICAgICAgICAgICAgbWFzayA9IChhcmdjLS0gPiAwKSA/ICphcmd2KysgOiB+MEw7CisgICAg ICAgICAgICAgICAgbWFzayB8PSB+UEFHRV9NQVNLOwkvLyBPcHRpbWFsaXNhdGlvbgorCQlh ZGRyICY9IG1hc2s7CQkvLyAgTm9ybWFsaXNhdGlvbgorICAgICAgICAgICAgICAgIGRvIHsK KwkJCXN0cnVjdCBwYWdlICpwZyA9IHBoeXNfdG9fcGFnZShhZGRyKTsKK3ByaW50ayAoIiUw NWx4ICIsIF9fcGEoX192YShhZGRyKSkgPj4gUEFHRV9TSElGVCk7CitwcmludGsgKCI9JTA1 bHgvJTA1bHggIiwgcGctbWVtX21hcCwgbWF4X21hcG5yKTsKKwkJCS8vIGlmIChWQUxJRF9Q QUdFKHBnKSkgeworCQkJCWlmIChQYWdlVGVzdGFuZFNldEJhZCAocGcpKSB7CisJCQkJCXJl c2VydmVfYm9vdG1lbSAoYWRkciwgUEFHRV9TSVpFKTsKK3ByaW50ayAoIkJBRCAiKTsKKwkJ CQl9CitlbHNlIHByaW50ayAoIkJGUiAiKTsKKwkJCS8vIH0KKy8vIGVsc2UgcHJpbnRrICgi SU5WICIpOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5leHRfbWFza2VkX2FkZHJlc3Mg KCZhZGRyLG1hc2spKTsKKyAgICAgICAgfQorfQorCisKKworLyoqKioqKioqKioqIENPTkZJ R19CQURSQU06IENVU1RPTUlTQUJMRSBTRUNUSU9OIFNUQVJUUyBIRVJFICoqKioqKioqKioq KioqKioqKi8KKworCisvLyBFbnRlciB5b3VyIGN1c3RvbSBCYWRSQU0gcGF0dGVybnMgaGVy ZSBhcyBwYWlycyBvZiB1bnNpZ25lZCBsb25nIGludGVnZXJzLgorLy8gRm9yIG1vcmUgaW5m b3JtYXRpb24gb24gdGhlc2UgRi9NIHBhaXJzLCByZWZlciB0byBEb2N1bWVudGF0aW9uL2Jh ZHJhbS50eHQKKworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2RldmluaXRkYXRhIGJhZHJh bV9jdXN0b21bXSA9IHsKKwkwLAkvLyBOdW1iZXIgb2YgbG9uZ3dvcmRzIHRoYXQgZm9sbG93 LCBhcyBGL00gcGFpcnMKK307CisKKworLyoqKioqKioqKioqIENPTkZJR19CQURSQU06IENV U1RPTUlTQUJMRSBTRUNUSU9OIEVORFMgSEVSRSAqKioqKioqKioqKioqKioqKioqKi8KKwor CisKK3N0YXRpYyBpbnQgX19pbml0IGJhZHJhbV9zZXR1cCAoY2hhciAqc3RyKQoreworCXVu c2lnbmVkIGxvbmcgb3B0c1szXTsKKwlpZiAoIW1lbV9tYXApIEJVRygpOworcHJpbnRrICgi UEFHRV9PRkZTRVQ9MHglMDhseFxuIiwgUEFHRV9PRkZTRVQpOworcHJpbnRrICgiQmFkUkFN IG9wdGlvbiBpcyAlc1xuIiwgc3RyKTsKKwlpZiAoKnN0cisrID09ICc9JykKKwkJd2hpbGUg KHN0cj1nZXRfb3B0aW9ucyAoc3RyLCAzLCAoaW50ICopIG9wdHMpLCAqb3B0cykgeworcHJp bnRrICgiICAgLS0+IG1hcmtpbmcgMHglMDhseCwgMHglMDhseCAgWyVsZF1cbiIsIG9wdHNb MV0sIG9wdHNbMl0sIG9wdHNbMF0pOworCQkJYmFkcmFtX21hcmtwYWdlcyAoKm9wdHMsIG9w dHMrMSk7CisJCQlpZiAoKm9wdHM9PTEpCisJCQkJYnJlYWs7CisJCX07CisJYmFkcmFtX21h cmtwYWdlcyAoKmJhZHJhbV9jdXN0b20sIGJhZHJhbV9jdXN0b20rMSk7CisJcmV0dXJuIDA7 Cit9CisKK19fc2V0dXAoImJhZHJhbSIsIGJhZHJhbV9zZXR1cCk7CisKKyNlbmRpZiAvKiBD T05GSUdfQkFEUkFNICovCisK ------=____1057116806141_'LYfspAbZW--