From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S269510AbTGJRqE (ORCPT ); Thu, 10 Jul 2003 13:46:04 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S269509AbTGJRqE (ORCPT ); Thu, 10 Jul 2003 13:46:04 -0400 Received: from perninha.conectiva.com.br ([200.250.58.156]:62179 "EHLO perninha.conectiva.com.br") by vger.kernel.org with ESMTP id S269467AbTGJRp1 (ORCPT ); Thu, 10 Jul 2003 13:45:27 -0400 Date: Thu, 10 Jul 2003 14:57:34 -0300 (BRT) From: Marcelo Tosatti X-X-Sender: marcelo@freak.distro.conectiva To: Stephan von Krawczynski Cc: green@namesys.com, Chris Mason , lkml Subject: Re: 2.4.22-pre3 and reiserfs boot problem In-Reply-To: Message-ID: References: <20030710180633.2c7085d9.skraw@ithnet.com> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="681489-956230482-1057859854=:25229" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --681489-956230482-1057859854=:25229 Content-Type: TEXT/PLAIN; charset=US-ASCII I forgot to attach the patch. Now its attached, duh. On Thu, 10 Jul 2003, Marcelo Tosatti wrote: > > > On Thu, 10 Jul 2003, Stephan von Krawczynski wrote: > > > On Thu, 10 Jul 2003 19:49:20 +0400 > > "Peter Lojkin" wrote: > > > > > Hello, > > > > > > I am not on the list so please CC me if replying... > > > > > > I've found the problem, it's patch with description: > > > > > > Fix potential IO hangs and increase interactiveness during heavy IO > > > > > > http://linux.bkbits.net:8080/linux-2.4/user=mason/cset@1.1024?nav=!-|index.html|stats|!+|index.html|ChangeSet@-7d > > > > > > After removing all changes from this cset, a had no problems > > > mounting big reiserfs volumes... > > > > Hello Marcelo, > > > > can you please send me a separated patch for reversal to verify this. > > Its attached (iostalls). Use patch -R. > > Also, when the hang happens, sysrq works right? > > If so get us the tasks backtraces with sysrq, ok? > > --681489-956230482-1057859854=:25229 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=iostalls Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=iostalls IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBwYXRjaCBmb3IgdGhl IGZvbGxvd2luZyBwcm9qZWN0Og0KIyBQcm9qZWN0IE5hbWU6IExpbnV4IGtl cm5lbCB0cmVlDQojIFRoaXMgcGF0Y2ggZm9ybWF0IGlzIGludGVuZGVkIGZv ciBHTlUgcGF0Y2ggY29tbWFuZCB2ZXJzaW9uIDIuNSBvciBoaWdoZXIuDQoj IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBkZWx0YXM6DQoj CSAgICAgICAgICAgQ2hhbmdlU2V0CTEuMTAyMyAgLT4gMS4xMDI0IA0KIwlk cml2ZXJzL2lkZS9pZGUtcHJvYmUuYwkxLjE3ICAgIC0+IDEuMTggICANCiMJ aW5jbHVkZS9saW51eC9wYWdlbWFwLmgJMS4xOSAgICAtPiAxLjIwICAgDQoj CSAgICAgIGtlcm5lbC9rc3ltcy5jCTEuNzIgICAgLT4gMS43MyAgIA0KIwlp bmNsdWRlL2xpbnV4L2VsZXZhdG9yLmgJMS41ICAgICAtPiAxLjYgICAgDQoj CWRyaXZlcnMvYmxvY2svbGxfcndfYmxrLmMJMS40NSAgICAtPiAxLjQ2ICAg DQojCWluY2x1ZGUvbGludXgvYmxrZGV2LmgJMS4yMyAgICAtPiAxLjI0ICAg DQojCSBmcy9yZWlzZXJmcy9pbm9kZS5jCTEuNDcgICAgLT4gMS40OCAgIA0K IwkgICAgICAgIG1tL2ZpbGVtYXAuYwkxLjgxICAgIC0+IDEuODIgICANCiMJ ZHJpdmVycy9zY3NpL3Njc2lfbGliLmMJMS4xNiAgICAtPiAxLjE3ICAgDQoj CSBkcml2ZXJzL3Njc2kvc2NzaS5jCTEuMTcgICAgLT4gMS4xOCAgIA0KIwkg ICAgICAgICBmcy9idWZmZXIuYwkxLjg2ICAgIC0+IDEuODcgICANCiMNCiMg VGhlIGZvbGxvd2luZyBpcyB0aGUgQml0S2VlcGVyIENoYW5nZVNldCBMb2cN CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiMgMDMvMDcvMDUJbWFzb25Ac3VzZS5jb20JMS4xMDI0DQojIFtQQVRD SF0gRml4IHBvdGVudGlhbCBJTyBoYW5ncyBhbmQgaW5jcmVhc2UgaW50ZXJh Y3RpdmVuZXNzIGR1cmluZyBoZWF2eSBJTw0KIyANCiMgaW8tc3RhbGxzLTEw Og0KIyANCiMgDQojID09PT09IGRyaXZlcnMvYmxvY2svbGxfcndfYmxrLmMg MS40NSB2cyBlZGl0ZWQgPT09PT0NCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCmRpZmYgLU5ydSBhL2RyaXZl cnMvYmxvY2svbGxfcndfYmxrLmMgYi9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Js ay5jDQotLS0gYS9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Jsay5jCVRodSBKdWwg MTAgMTQ6NTI6MzggMjAwMw0KKysrIGIvZHJpdmVycy9ibG9jay9sbF9yd19i bGsuYwlUaHUgSnVsIDEwIDE0OjUyOjM4IDIwMDMNCkBAIC0xNzYsMTEgKzE3 NiwxMiBAQA0KIHsNCiAJaW50IGNvdW50ID0gcS0+bnJfcmVxdWVzdHM7DQog DQotCWNvdW50IC09IF9fYmxrX2NsZWFudXBfcXVldWUoJnEtPnJxW1JFQURd KTsNCi0JY291bnQgLT0gX19ibGtfY2xlYW51cF9xdWV1ZSgmcS0+cnFbV1JJ VEVdKTsNCisJY291bnQgLT0gX19ibGtfY2xlYW51cF9xdWV1ZSgmcS0+cnEp Ow0KIA0KIAlpZiAoY291bnQpDQogCQlwcmludGsoImJsa19jbGVhbnVwX3F1 ZXVlOiBsZWFrZWQgcmVxdWVzdHMgKCVkKVxuIiwgY291bnQpOw0KKwlpZiAo YXRvbWljX3JlYWQoJnEtPm5yX3NlY3RvcnMpKQ0KKwkJcHJpbnRrKCJibGtf Y2xlYW51cF9xdWV1ZTogbGVha2VkIHNlY3RvcnMgKCVkKVxuIiwgYXRvbWlj X3JlYWQoJnEtPm5yX3NlY3RvcnMpKTsNCiANCiAJbWVtc2V0KHEsIDAsIHNp emVvZigqcSkpOw0KIH0NCkBAIC0yMTUsNiArMjE2LDI0IEBADQogfQ0KIA0K IC8qKg0KKyAqIGJsa19xdWV1ZV90aHJvdHRsZV9zZWN0b3JzIC0gaW5kaWNh dGVzIHlvdSB3aWxsIGNhbGwgc2VjdG9yIHRocm90dGxpbmcgZnVuY3MNCisg KiBAcTogICAgICAgVGhlIHF1ZXVlIHdoaWNoIHRoaXMgYXBwbGllcyB0by4N CisgKiBAYWN0aXZlOiAgQSBmbGFnIGluZGljYXRpb24gaWYgeW91IHdhbnQg c2VjdG9yIHRocm90dGxpbmcgb24NCisgKg0KKyAqIERlc2NyaXB0aW9uOg0K KyAqIFRoZSBzZWN0b3IgdGhyb3R0bGluZyBjb2RlIGFsbG93cyB1cyB0byBw dXQgYSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mDQorICogc2VjdG9ycyBwZW5k aW5nIGlvIHRvIHRoZSBkaXNrIGF0IGEgZ2l2ZW4gdGltZSwgc2VuZGluZyBA YWN0aXZlIG5vbnplcm8NCisgKiBpbmRpY2F0ZXMgeW91IHdpbGwgY2FsbCBi bGtfc3RhcnRlZF9zZWN0b3JzIGFuZCBibGtfZmluaXNoZWRfc2VjdG9ycyBp bg0KKyAqIGFkZGl0aW9uIHRvIGNhbGxpbmcgYmxrX3N0YXJ0ZWRfaW8gYW5k IGJsa19maW5pc2hlZF9pbyBpbiBvcmRlciB0bw0KKyAqIGtlZXAgdHJhY2sg b2YgdGhlIG51bWJlciBvZiBzZWN0b3JzIGluIGZsaWdodC4NCisgKiovDQor IA0KK3ZvaWQgYmxrX3F1ZXVlX3Rocm90dGxlX3NlY3RvcnMocmVxdWVzdF9x dWV1ZV90ICogcSwgaW50IGFjdGl2ZSkNCit7DQorCXEtPmNhbl90aHJvdHRs ZSA9IGFjdGl2ZTsNCit9DQorDQorLyoqDQogICogYmxrX3F1ZXVlX21ha2Vf cmVxdWVzdCAtIGRlZmluZSBhbiBhbHRlcm5hdGUgbWFrZV9yZXF1ZXN0IGZ1 bmN0aW9uIGZvciBhIGRldmljZQ0KICAqIEBxOiAgdGhlIHJlcXVlc3QgcXVl dWUgZm9yIHRoZSBkZXZpY2UgdG8gYmUgYWZmZWN0ZWQNCiAgKiBAbWZuOiB0 aGUgYWx0ZXJuYXRlIG1ha2VfcmVxdWVzdCBmdW5jdGlvbg0KQEAgLTM4OSw3 ICs0MDgsNyBAQA0KICAqDQogICogUmV0dXJucyB0aGUgKG5ldykgbnVtYmVy IG9mIHJlcXVlc3RzIHdoaWNoIHRoZSBxdWV1ZSBoYXMgYXZhaWxhYmxlLg0K ICAqLw0KLWludCBibGtfZ3Jvd19yZXF1ZXN0X2xpc3QocmVxdWVzdF9xdWV1 ZV90ICpxLCBpbnQgbnJfcmVxdWVzdHMpDQoraW50IGJsa19ncm93X3JlcXVl c3RfbGlzdChyZXF1ZXN0X3F1ZXVlX3QgKnEsIGludCBucl9yZXF1ZXN0cywg aW50IG1heF9xdWV1ZV9zZWN0b3JzKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyBm bGFnczsNCiAJLyogU2V2ZXJhbCBicm9rZW4gZHJpdmVycyBhc3N1bWUgdGhh dCB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3Qgc2xlZXAsDQpAQCAtMzk5LDIxICs0 MTgsMzQgQEANCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmlvX3JlcXVlc3RfbG9j aywgZmxhZ3MpOw0KIAl3aGlsZSAocS0+bnJfcmVxdWVzdHMgPCBucl9yZXF1 ZXN0cykgew0KIAkJc3RydWN0IHJlcXVlc3QgKnJxOw0KLQkJaW50IHJ3Ow0K IA0KIAkJcnEgPSBrbWVtX2NhY2hlX2FsbG9jKHJlcXVlc3RfY2FjaGVwLCBT TEFCX0FUT01JQyk7DQogCQlpZiAocnEgPT0gTlVMTCkNCiAJCQlicmVhazsN CiAJCW1lbXNldChycSwgMCwgc2l6ZW9mKCpycSkpOw0KIAkJcnEtPnJxX3N0 YXR1cyA9IFJRX0lOQUNUSVZFOw0KLQkJcncgPSBxLT5ucl9yZXF1ZXN0cyAm IDE7DQotCQlsaXN0X2FkZCgmcnEtPnF1ZXVlLCAmcS0+cnFbcnddLmZyZWUp Ow0KLQkJcS0+cnFbcnddLmNvdW50Kys7DQorIAkJbGlzdF9hZGQoJnJxLT5x dWV1ZSwgJnEtPnJxLmZyZWUpOw0KKyAJCXEtPnJxLmNvdW50Kys7DQorDQog CQlxLT5ucl9yZXF1ZXN0cysrOw0KIAl9DQorDQorIAkvKg0KKyAJICogV2Fr ZXVwIHdhaXRlcnMgYWZ0ZXIgYm90aCBvbmUgcXVhcnRlciBvZiB0aGUNCisg CSAqIG1heC1pbi1mbGlnaCBxdWV1ZSBhbmQgb25lIHF1YXJ0ZXIgb2YgdGhl IHJlcXVlc3RzDQorIAkgKiBhcmUgYXZhaWxhYmxlIGFnYWluLg0KKyAJICov DQorDQogCXEtPmJhdGNoX3JlcXVlc3RzID0gcS0+bnJfcmVxdWVzdHMgLyA0 Ow0KIAlpZiAocS0+YmF0Y2hfcmVxdWVzdHMgPiAzMikNCiAJCXEtPmJhdGNo X3JlcXVlc3RzID0gMzI7DQorIAlxLT5iYXRjaF9zZWN0b3JzID0gbWF4X3F1 ZXVlX3NlY3RvcnMgLyA0Ow0KKyANCisgCXEtPm1heF9xdWV1ZV9zZWN0b3Jz ID0gbWF4X3F1ZXVlX3NlY3RvcnM7DQorIA0KKyAJQlVHX09OKCFxLT5iYXRj aF9zZWN0b3JzKTsNCisgCWF0b21pY19zZXQoJnEtPm5yX3NlY3RvcnMsIDAp Ow0KKw0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb19yZXF1ZXN0X2xv Y2ssIGZsYWdzKTsNCiAJcmV0dXJuIHEtPm5yX3JlcXVlc3RzOw0KIH0NCkBA IC00MjIsMjMgKzQ1NCwyNyBAQA0KIHsNCiAJc3RydWN0IHN5c2luZm8gc2k7 DQogCWludCBtZWdzOwkJLyogVG90YWwgbWVtb3J5LCBpbiBtZWdhYnl0ZXMg Ki8NCi0JaW50IG5yX3JlcXVlc3RzOw0KLQ0KLQlJTklUX0xJU1RfSEVBRCgm cS0+cnFbUkVBRF0uZnJlZSk7DQotCUlOSVRfTElTVF9IRUFEKCZxLT5ycVtX UklURV0uZnJlZSk7DQotCXEtPnJxW1JFQURdLmNvdW50ID0gMDsNCi0JcS0+ cnFbV1JJVEVdLmNvdW50ID0gMDsNCisgCWludCBucl9yZXF1ZXN0cywgbWF4 X3F1ZXVlX3NlY3RvcnMgPSBNQVhfUVVFVUVfU0VDVE9SUzsNCisgIA0KKyAJ SU5JVF9MSVNUX0hFQUQoJnEtPnJxLmZyZWUpOw0KKwlxLT5ycS5jb3VudCA9 IDA7DQogCXEtPm5yX3JlcXVlc3RzID0gMDsNCiANCiAJc2lfbWVtaW5mbygm c2kpOw0KIAltZWdzID0gc2kudG90YWxyYW0gPj4gKDIwIC0gUEFHRV9TSElG VCk7DQotCW5yX3JlcXVlc3RzID0gMTI4Ow0KLQlpZiAobWVncyA8IDMyKQ0K LQkJbnJfcmVxdWVzdHMgLz0gMjsNCi0JYmxrX2dyb3dfcmVxdWVzdF9saXN0 KHEsIG5yX3JlcXVlc3RzKTsNCisgCW5yX3JlcXVlc3RzID0gTUFYX05SX1JF UVVFU1RTOw0KKyAJaWYgKG1lZ3MgPCAzMCkgew0KKyAgCQlucl9yZXF1ZXN0 cyAvPSAyOw0KKyAJCW1heF9xdWV1ZV9zZWN0b3JzIC89IDI7DQorIAl9DQor IAkvKiBub3RpY2UgZWFybHkgaWYgYW55Ym9keSBzY3Jld2VkIHRoZSBkZWZh dWx0cyAqLw0KKyAJQlVHX09OKCFucl9yZXF1ZXN0cyk7DQorIAlCVUdfT04o IW1heF9xdWV1ZV9zZWN0b3JzKTsNCisgDQorIAlibGtfZ3Jvd19yZXF1ZXN0 X2xpc3QocSwgbnJfcmVxdWVzdHMsIG1heF9xdWV1ZV9zZWN0b3JzKTsNCisN CisgCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnEtPndhaXRfZm9yX3JlcXVlc3Rz KTsNCiANCi0JaW5pdF93YWl0cXVldWVfaGVhZCgmcS0+d2FpdF9mb3JfcmVx dWVzdHNbMF0pOw0KLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZxLT53YWl0X2Zv cl9yZXF1ZXN0c1sxXSk7DQogCXNwaW5fbG9ja19pbml0KCZxLT5xdWV1ZV9s b2NrKTsNCiB9DQogDQpAQCAtNDkxLDYgKzUyNyw4IEBADQogCXEtPnBsdWdf dHEucm91dGluZQk9ICZnZW5lcmljX3VucGx1Z19kZXZpY2U7DQogCXEtPnBs dWdfdHEuZGF0YQkJPSBxOw0KIAlxLT5wbHVnZ2VkICAgICAgICAJPSAwOw0K KwlxLT5jYW5fdGhyb3R0bGUJCT0gMDsNCisNCiAJLyoNCiAJICogVGhlc2Ug Ym9vbGVhbnMgZGVzY3JpYmUgdGhlIHF1ZXVlIHByb3BlcnRpZXMuICBXZSBz ZXQgdGhlDQogCSAqIGRlZmF1bHQgKGFuZCBtb3N0IGNvbW1vbikgdmFsdWVz IGhlcmUuICBPdGhlciBkcml2ZXJzIGNhbg0KQEAgLTUxMSw5ICs1NDksMTAg QEANCiBzdGF0aWMgc3RydWN0IHJlcXVlc3QgKmdldF9yZXF1ZXN0KHJlcXVl c3RfcXVldWVfdCAqcSwgaW50IHJ3KQ0KIHsNCiAJc3RydWN0IHJlcXVlc3Qg KnJxID0gTlVMTDsNCi0Jc3RydWN0IHJlcXVlc3RfbGlzdCAqcmwgPSBxLT5y cSArIHJ3Ow0KKwlzdHJ1Y3QgcmVxdWVzdF9saXN0ICpybDsNCiANCi0JaWYg KCFsaXN0X2VtcHR5KCZybC0+ZnJlZSkpIHsNCisJcmwgPSAmcS0+cnE7DQor CWlmICghbGlzdF9lbXB0eSgmcmwtPmZyZWUpICYmICFibGtfb3ZlcnNpemVk X3F1ZXVlKHEpKSB7DQogCQlycSA9IGJsa2Rldl9mcmVlX3JxKCZybC0+ZnJl ZSk7DQogCQlsaXN0X2RlbCgmcnEtPnF1ZXVlKTsNCiAJCXJsLT5jb3VudC0t Ow0KQEAgLTUyMiwzNCArNTYxLDIzIEBADQogCQlycS0+c3BlY2lhbCA9IE5V TEw7DQogCQlycS0+cSA9IHE7DQogCX0NCi0NCiAJcmV0dXJuIHJxOw0KIH0N CiANCiAvKg0KLSAqIEhlcmUncyB0aGUgcmVxdWVzdCBhbGxvY2F0aW9uIGRl c2lnbjoNCisgKiBIZXJlJ3MgdGhlIHJlcXVlc3QgYWxsb2NhdGlvbiBkZXNp Z24sIGxvdyBsYXRlbmN5IHZlcnNpb246DQogICoNCiAgKiAxOiBCbG9ja2lu ZyBvbiByZXF1ZXN0IGV4aGF1c3Rpb24gaXMgYSBrZXkgcGFydCBvZiBJL08g dGhyb3R0bGluZy4NCiAgKiANCiAgKiAyOiBXZSB3YW50IHRvIGJlIGBmYWly JyB0byBhbGwgcmVxdWVzdGVycy4gIFdlIG11c3QgYXZvaWQgc3RhcnZhdGlv biwgYW5kDQogICogICAgYXR0ZW1wdCB0byBlbnN1cmUgdGhhdCBhbGwgcmVx dWVzdGVycyBzbGVlcCBmb3IgYSBzaW1pbGFyIGR1cmF0aW9uLiAgSGVuY2UN CiAgKiAgICBubyBzdGVhbGluZyByZXF1ZXN0cyB3aGVuIHRoZXJlIGFyZSBv dGhlciBwcm9jZXNzZXMgd2FpdGluZy4NCi0gKiANCi0gKiAzOiBXZSBhbHNv IHdpc2ggdG8gc3VwcG9ydCBgYmF0Y2hpbmcnIG9mIHJlcXVlc3RzLiAgU28g d2hlbiBhIHByb2Nlc3MgaXMNCi0gKiAgICB3b2tlbiwgd2Ugd2FudCB0byBh bGxvdyBpdCB0byBhbGxvY2F0ZSBhIGRlY2VudCBudW1iZXIgb2YgcmVxdWVz dHMNCi0gKiAgICBiZWZvcmUgaXQgYmxvY2tzIGFnYWluLCBzbyB0aGV5IGNh biBiZSBuaWNlbHkgbWVyZ2VkICh0aGlzIG9ubHkgcmVhbGx5DQotICogICAg bWF0dGVycyBpZiB0aGUgcHJvY2VzcyBoYXBwZW5zIHRvIGJlIGFkZGluZyBy ZXF1ZXN0cyBuZWFyIHRoZSBoZWFkIG9mDQotICogICAgdGhlIHF1ZXVlKS4N Ci0gKiANCi0gKiA0OiBXZSB3YW50IHRvIGF2b2lkIHNjaGVkdWxpbmcgc3Rv cm1zLiAgVGhpcyBpc24ndCByZWFsbHkgaW1wb3J0YW50LCBiZWNhdXNlDQot ICogICAgdGhlIHN5c3RlbSB3aWxsIGJlIEkvTyBib3VuZCBhbnl3YXkuICBC dXQgaXQncyBlYXN5Lg0KLSAqIA0KLSAqICAgIFRoZXJlIGlzIHRlbnNpb24g YmV0d2VlbiByZXF1aXJlbWVudHMgMiBhbmQgMy4gIE9uY2UgYSB0YXNrIGhh cyB3b2tlbiwNCi0gKiAgICB3ZSBkb24ndCB3YW50IHRvIGFsbG93IGl0IHRv IHNsZWVwIGFzIHNvb24gYXMgaXQgdGFrZXMgaXRzIHNlY29uZCByZXF1ZXN0 Lg0KLSAqICAgIEJ1dCB3ZSBkb24ndCB3YW50IGN1cnJlbnRseS1ydW5uaW5n IHRhc2tzIHRvIHN0ZWFsIGFsbCB0aGUgcmVxdWVzdHMNCi0gKiAgICBmcm9t IHRoZSBzbGVlcGVycy4gIFdlIGhhbmRsZSB0aGlzIHdpdGggd2FrZXVwIGh5 c3RlcmVzaXMgYXJvdW5kDQotICogICAgMCAuLiBiYXRjaF9yZXF1ZXN0cyBh bmQgd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IHJlcXVlc3QgdGFraW5nIGlz IG11Y2gsDQotICogICAgbXVjaCBmYXN0ZXIgdGhhbiByZXF1ZXN0IGZyZWVp bmcuDQorICoNCisgKiBUaGVyZSB1c2VkIHRvIGJlIG1vcmUgaGVyZSwgYXR0 ZW1wdGluZyB0byBhbGxvdyBhIHByb2Nlc3MgdG8gc2VuZCBpbiBhDQorICog bnVtYmVyIG9mIHJlcXVlc3RzIG9uY2UgaXQgaGFzIHdva2VuIHVwLiAgQnV0 LCB0aGVyZSdzIG5vIHdheSB0byANCisgKiB0ZWxsIGlmIGEgcHJvY2VzcyBo YXMganVzdCBiZWVuIHdva2VuIHVwLCBvciBpZiBpdCBpcyBhIG5ldyBwcm9j ZXNzDQorICogY29taW5nIGluIHRvIHN0ZWFsIHJlcXVlc3RzIGZyb20gdGhl IHdhaXRlcnMuICBTbywgd2UgZ2l2ZSB1cCBhbmQgZm9yY2UNCisgKiBldmVy eW9uZSB0byB3YWl0IGZhaXJseS4NCiAgKiANCiAgKiBTbyBoZXJlJ3Mgd2hh dCB3ZSBkbzoNCiAgKiANCkBAIC01NjEsMjggKzU4OSwyMyBAQA0KICAqIA0K ICAqICBXaGVuIGEgcHJvY2VzcyB3YW50cyBhIG5ldyByZXF1ZXN0Og0KICAq IA0KLSAqICAgIGIpIElmIGZyZWVfcmVxdWVzdHMgPT0gMCwgdGhlIHJlcXVl c3RlciBzbGVlcHMgaW4gRklGTyBtYW5uZXIuDQotICogDQotICogICAgYikg SWYgMCA8ICBmcmVlX3JlcXVlc3RzIDwgYmF0Y2hfcmVxdWVzdHMgYW5kIHRo ZXJlIGFyZSB3YWl0ZXJzLA0KLSAqICAgICAgIHdlIHN0aWxsIHRha2UgYSBy ZXF1ZXN0IG5vbi1ibG9ja2luZ2x5LiAgVGhpcyBwcm92aWRlcyBiYXRjaGlu Zy4NCi0gKg0KLSAqICAgIGMpIElmIGZyZWVfcmVxdWVzdHMgPj0gYmF0Y2hf cmVxdWVzdHMsIHRoZSBjYWxsZXIgaXMgaW1tZWRpYXRlbHkNCi0gKiAgICAg ICBncmFudGVkIGEgbmV3IHJlcXVlc3QuDQorICogICAgYikgSWYgZnJlZV9y ZXF1ZXN0cyA9PSAwLCB0aGUgcmVxdWVzdGVyIHNsZWVwcyBpbiBGSUZPIG1h bm5lciwgYW5kDQorICogICAgICAgdGhlIHF1ZXVlIGZ1bGwgY29uZGl0aW9u IGlzIHNldC4gIFRoZSBmdWxsIGNvbmRpdGlvbiBpcyBub3QNCisgKiAgICAg ICBjbGVhcmVkIHVudGlsIHRoZXJlIGFyZSBubyBsb25nZXIgYW55IHdhaXRl cnMuICBPbmNlIHRoZSBmdWxsDQorICogICAgICAgY29uZGl0aW9uIGlzIHNl dCwgYWxsIG5ldyBpbyBtdXN0IHdhaXQsIGhvcGVmdWxseSBmb3IgYSB2ZXJ5 DQorICogICAgICAgc2hvcnQgcGVyaW9kIG9mIHRpbWUuDQogICogDQogICog IFdoZW4gYSByZXF1ZXN0IGlzIHJlbGVhc2VkOg0KICAqIA0KLSAqICAgIGQp IElmIGZyZWVfcmVxdWVzdHMgPCBiYXRjaF9yZXF1ZXN0cywgZG8gbm90aGlu Zy4NCi0gKiANCi0gKiAgICBmKSBJZiBmcmVlX3JlcXVlc3RzID49IGJhdGNo X3JlcXVlc3RzLCB3YWtlIHVwIGEgc2luZ2xlIHdhaXRlci4NCisgKiAgICBj KSBJZiBmcmVlX3JlcXVlc3RzIDwgYmF0Y2hfcmVxdWVzdHMsIGRvIG5vdGhp bmcuDQogICogDQotICogICBUaGUgbmV0IGVmZmVjdCBpcyB0aGF0IHdoZW4g YSBwcm9jZXNzIGlzIHdva2VuIGF0IHRoZSBiYXRjaF9yZXF1ZXN0cyBsZXZl bCwNCi0gKiAgIGl0IHdpbGwgYmUgYWJsZSB0byB0YWtlIGFwcHJveGltYXRl bHkgKGJhdGNoX3JlcXVlc3RzKSByZXF1ZXN0cyBiZWZvcmUNCi0gKiAgIGJs b2NraW5nIGFnYWluIChhdCB0aGUgdGFpbCBvZiB0aGUgcXVldWUpLg0KLSAq IA0KLSAqICAgVGhpcyBhbGwgYXNzdW1lcyB0aGF0IHRoZSByYXRlIG9mIHRh a2luZyByZXF1ZXN0cyBpcyBtdWNoLCBtdWNoIGhpZ2hlcg0KLSAqICAgdGhh biB0aGUgcmF0ZSBvZiByZWxlYXNpbmcgdGhlbS4gIFdoaWNoIGlzIHZlcnkg dHJ1ZS4NCisgKiAgICBkKSBJZiBmcmVlX3JlcXVlc3RzID49IGJhdGNoX3Jl cXVlc3RzLCB3YWtlIHVwIGEgc2luZ2xlIHdhaXRlci4NCiAgKg0KLSAqIC1h a3BtLCBGZWIgMjAwMi4NCisgKiAgIEFzIGVhY2ggd2FpdGVyIGdldHMgYSBy ZXF1ZXN0LCBoZSB3YWtlcyBhbm90aGVyIHdhaXRlci4gIFdlIGRvIHRoaXMN CisgKiAgIHRvIHByZXZlbnQgYSByYWNlIHdoZXJlIGFuIHVucGx1ZyBtaWdo dCBnZXQgcnVuIGJlZm9yZSBhIHJlcXVlc3QgbWFrZXMNCisgKiAgIGl0J3Mg d2F5IG9udG8gdGhlIHF1ZXVlLiAgVGhlIHJlc3VsdCBpcyBhIGNhc2NhZGUg b2Ygd2FrZXVwcywgc28gZGVsYXlpbmcNCisgKiAgIHRoZSBpbml0aWFsIHdh a2V1cCB1bnRpbCB3ZSd2ZSBnb3QgYmF0Y2hfcmVxdWVzdHMgYXZhaWxhYmxl IGhlbHBzIGF2b2lkDQorICogICB3YWtldXBzIHdoZXJlIHRoZXJlIGFyZW4n dCBhbnkgcmVxdWVzdHMgYXZhaWxhYmxlIHlldC4NCiAgKi8NCiANCiBzdGF0 aWMgc3RydWN0IHJlcXVlc3QgKl9fZ2V0X3JlcXVlc3Rfd2FpdChyZXF1ZXN0 X3F1ZXVlX3QgKnEsIGludCBydykNCkBAIC01OTAsMjEgKzYxMywzNyBAQA0K IAlyZWdpc3RlciBzdHJ1Y3QgcmVxdWVzdCAqcnE7DQogCURFQ0xBUkVfV0FJ VFFVRVVFKHdhaXQsIGN1cnJlbnQpOw0KIA0KLQlhZGRfd2FpdF9xdWV1ZSgm cS0+d2FpdF9mb3JfcmVxdWVzdHNbcnddLCAmd2FpdCk7DQorCWFkZF93YWl0 X3F1ZXVlX2V4Y2x1c2l2ZSgmcS0+d2FpdF9mb3JfcmVxdWVzdHMsICZ3YWl0 KTsNCisNCiAJZG8gew0KIAkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19VTklO VEVSUlVQVElCTEUpOw0KLQkJZ2VuZXJpY191bnBsdWdfZGV2aWNlKHEpOw0K LQkJaWYgKHEtPnJxW3J3XS5jb3VudCA9PSAwKQ0KLQkJCXNjaGVkdWxlKCk7 DQogCQlzcGluX2xvY2tfaXJxKCZpb19yZXF1ZXN0X2xvY2spOw0KKwkJaWYg KGJsa19vdmVyc2l6ZWRfcXVldWUocSkpIHsNCisJCQlfX2dlbmVyaWNfdW5w bHVnX2RldmljZShxKTsNCisJCQlzcGluX3VubG9ja19pcnEoJmlvX3JlcXVl c3RfbG9jayk7DQorCQkJc2NoZWR1bGUoKTsNCisJCQlzcGluX2xvY2tfaXJx KCZpb19yZXF1ZXN0X2xvY2spOw0KKwkJfQ0KIAkJcnEgPSBnZXRfcmVxdWVz dChxLCBydyk7DQogCQlzcGluX3VubG9ja19pcnEoJmlvX3JlcXVlc3RfbG9j ayk7DQogCX0gd2hpbGUgKHJxID09IE5VTEwpOw0KLQlyZW1vdmVfd2FpdF9x dWV1ZSgmcS0+d2FpdF9mb3JfcmVxdWVzdHNbcnddLCAmd2FpdCk7DQorCXJl bW92ZV93YWl0X3F1ZXVlKCZxLT53YWl0X2Zvcl9yZXF1ZXN0cywgJndhaXQp Ow0KIAljdXJyZW50LT5zdGF0ZSA9IFRBU0tfUlVOTklORzsNCisNCiAJcmV0 dXJuIHJxOw0KIH0NCiANCitzdGF0aWMgdm9pZCBnZXRfcmVxdWVzdF93YWl0 X3dha2V1cChyZXF1ZXN0X3F1ZXVlX3QgKnEsIGludCBydykNCit7DQorCS8q DQorCSAqIGF2b2lkIGxvc2luZyBhbiB1bnBsdWcgaWYgYSBzZWNvbmQgX19n ZXRfcmVxdWVzdF93YWl0IGRpZCB0aGUNCisJICogZ2VuZXJpY191bnBsdWdf ZGV2aWNlIHdoaWxlIG91ciBfX2dldF9yZXF1ZXN0X3dhaXQgd2FzIHJ1bm5p bmcNCisJICogdy9vIHRoZSBxdWV1ZV9sb2NrIGhlbGQgYW5kIHcvIG91ciBy ZXF1ZXN0IG91dCBvZiB0aGUgcXVldWUuDQorCSAqLwkNCisJaWYgKHdhaXRx dWV1ZV9hY3RpdmUoJnEtPndhaXRfZm9yX3JlcXVlc3RzKSkNCisJCXdha2Vf dXAoJnEtPndhaXRfZm9yX3JlcXVlc3RzKTsNCit9DQorDQogLyogUk8gZmFp bCBzYWZlIG1lY2hhbmlzbSAqLw0KIA0KIHN0YXRpYyBsb25nIHJvX2JpdHNb TUFYX0JMS0RFVl1bOF07DQpAQCAtODE4LDcgKzg1Nyw2IEBADQogdm9pZCBi bGtkZXZfcmVsZWFzZV9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICpyZXEpDQog ew0KIAlyZXF1ZXN0X3F1ZXVlX3QgKnEgPSByZXEtPnE7DQotCWludCBydyA9 IHJlcS0+Y21kOw0KIA0KIAlyZXEtPnJxX3N0YXR1cyA9IFJRX0lOQUNUSVZF Ow0KIAlyZXEtPnEgPSBOVUxMOw0KQEAgLTgyOCw5ICs4NjYsMTcgQEANCiAJ ICogYXNzdW1lIGl0IGhhcyBmcmVlIGJ1ZmZlcnMgYW5kIGNoZWNrIHdhaXRl cnMNCiAJICovDQogCWlmIChxKSB7DQotCQlsaXN0X2FkZCgmcmVxLT5xdWV1 ZSwgJnEtPnJxW3J3XS5mcmVlKTsNCi0JCWlmICgrK3EtPnJxW3J3XS5jb3Vu dCA+PSBxLT5iYXRjaF9yZXF1ZXN0cykNCi0JCQl3YWtlX3VwKCZxLT53YWl0 X2Zvcl9yZXF1ZXN0c1tyd10pOw0KKwkJaW50IG92ZXJzaXplZF9iYXRjaCA9 IDA7DQorDQorCQlpZiAocS0+Y2FuX3Rocm90dGxlKQ0KKwkJCW92ZXJzaXpl ZF9iYXRjaCA9IGJsa19vdmVyc2l6ZWRfcXVldWVfYmF0Y2gocSk7DQorCQlx LT5ycS5jb3VudCsrOw0KKwkJbGlzdF9hZGQoJnJlcS0+cXVldWUsICZxLT5y cS5mcmVlKTsNCisJCWlmIChxLT5ycS5jb3VudCA+PSBxLT5iYXRjaF9yZXF1 ZXN0cyAmJiAhb3ZlcnNpemVkX2JhdGNoKSB7DQorCQkJc21wX21iKCk7DQor CQkJaWYgKHdhaXRxdWV1ZV9hY3RpdmUoJnEtPndhaXRfZm9yX3JlcXVlc3Rz KSkNCisJCQkJd2FrZV91cCgmcS0+d2FpdF9mb3JfcmVxdWVzdHMpOw0KKwkJ fQ0KIAl9DQogfQ0KIA0KQEAgLTkwOCw2ICs5NTQsNyBAQA0KIAlzdHJ1Y3Qg bGlzdF9oZWFkICpoZWFkLCAqaW5zZXJ0X2hlcmU7DQogCWludCBsYXRlbmN5 Ow0KIAllbGV2YXRvcl90ICplbGV2YXRvciA9ICZxLT5lbGV2YXRvcjsNCisJ aW50IHNob3VsZF93YWtlID0gMDsNCiANCiAJY291bnQgPSBiaC0+Yl9zaXpl ID4+IDk7DQogCXNlY3RvciA9IGJoLT5iX3JzZWN0b3I7DQpAQCAtOTQ4LDcg Kzk5NSw2IEBADQogCSAqLw0KIAltYXhfc2VjdG9ycyA9IGdldF9tYXhfc2Vj dG9ycyhiaC0+Yl9yZGV2KTsNCiANCi1hZ2FpbjoNCiAJcmVxID0gTlVMTDsN CiAJaGVhZCA9ICZxLT5xdWV1ZV9oZWFkOw0KIAkvKg0KQEAgLTk1Nyw3ICsx MDAzLDkgQEANCiAJICovDQogCXNwaW5fbG9ja19pcnEoJmlvX3JlcXVlc3Rf bG9jayk7DQogDQorYWdhaW46DQogCWluc2VydF9oZXJlID0gaGVhZC0+cHJl djsNCisNCiAJaWYgKGxpc3RfZW1wdHkoaGVhZCkpIHsNCiAJCXEtPnBsdWdf ZGV2aWNlX2ZuKHEsIGJoLT5iX3JkZXYpOyAvKiBpcyBhdG9taWMgKi8NCiAJ CWdvdG8gZ2V0X3JxOw0KQEAgLTk3Niw2ICsxMDI0LDcgQEANCiAJCQlyZXEt PmJodGFpbCA9IGJoOw0KIAkJCXJlcS0+bnJfc2VjdG9ycyA9IHJlcS0+aGFy ZF9ucl9zZWN0b3JzICs9IGNvdW50Ow0KIAkJCWJsa19zdGFydGVkX2lvKGNv dW50KTsNCisJCQlibGtfc3RhcnRlZF9zZWN0b3JzKHJlcSwgY291bnQpOw0K IAkJCWRyaXZlX3N0YXRfYWNjdChyZXEtPnJxX2RldiwgcmVxLT5jbWQsIGNv dW50LCAwKTsNCiAJCQlyZXFfbmV3X2lvKHJlcSwgMSwgY291bnQpOw0KIAkJ CWF0dGVtcHRfYmFja19tZXJnZShxLCByZXEsIG1heF9zZWN0b3JzLCBtYXhf c2VnbWVudHMpOw0KQEAgLTk5OCw2ICsxMDQ3LDcgQEANCiAJCQlyZXEtPnNl Y3RvciA9IHJlcS0+aGFyZF9zZWN0b3IgPSBzZWN0b3I7DQogCQkJcmVxLT5u cl9zZWN0b3JzID0gcmVxLT5oYXJkX25yX3NlY3RvcnMgKz0gY291bnQ7DQog CQkJYmxrX3N0YXJ0ZWRfaW8oY291bnQpOw0KKwkJCWJsa19zdGFydGVkX3Nl Y3RvcnMocmVxLCBjb3VudCk7DQogCQkJZHJpdmVfc3RhdF9hY2N0KHJlcS0+ cnFfZGV2LCByZXEtPmNtZCwgY291bnQsIDApOw0KIAkJCXJlcV9uZXdfaW8o cmVxLCAxLCBjb3VudCk7DQogCQkJYXR0ZW1wdF9mcm9udF9tZXJnZShxLCBo ZWFkLCByZXEsIG1heF9zZWN0b3JzLCBtYXhfc2VnbWVudHMpOw0KQEAgLTEw MzAsNyArMTA4MCw3IEBADQogCQkgKiBTZWUgZGVzY3JpcHRpb24gYWJvdmUg X19nZXRfcmVxdWVzdF93YWl0KCkNCiAJCSAqLw0KIAkJaWYgKHJ3X2FoZWFk KSB7DQotCQkJaWYgKHEtPnJxW3J3XS5jb3VudCA8IHEtPmJhdGNoX3JlcXVl c3RzKSB7DQorCQkJaWYgKHEtPnJxLmNvdW50IDwgcS0+YmF0Y2hfcmVxdWVz dHMgfHwgYmxrX292ZXJzaXplZF9xdWV1ZV9iYXRjaChxKSkgew0KIAkJCQlz cGluX3VubG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jayk7DQogCQkJCWdvdG8g ZW5kX2lvOw0KIAkJCX0NCkBAIC0xMDQyLDYgKzEwOTIsOSBAQA0KIAkJCWlm IChyZXEgPT0gTlVMTCkgew0KIAkJCQlzcGluX3VubG9ja19pcnEoJmlvX3Jl cXVlc3RfbG9jayk7DQogCQkJCWZyZWVyZXEgPSBfX2dldF9yZXF1ZXN0X3dh aXQocSwgcncpOw0KKwkJCQloZWFkID0gJnEtPnF1ZXVlX2hlYWQ7DQorCQkJ CXNwaW5fbG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jayk7DQorCQkJCXNob3Vs ZF93YWtlID0gMTsNCiAJCQkJZ290byBhZ2FpbjsNCiAJCQl9DQogCQl9DQpA QCAtMTA2NCwxMCArMTExNywxMyBAQA0KIAlyZXEtPnN0YXJ0X3RpbWUgPSBq aWZmaWVzOw0KIAlyZXFfbmV3X2lvKHJlcSwgMCwgY291bnQpOw0KIAlibGtf c3RhcnRlZF9pbyhjb3VudCk7DQorCWJsa19zdGFydGVkX3NlY3RvcnMocmVx LCBjb3VudCk7DQogCWFkZF9yZXF1ZXN0KHEsIHJlcSwgaW5zZXJ0X2hlcmUp Ow0KIG91dDoNCiAJaWYgKGZyZWVyZXEpDQogCQlibGtkZXZfcmVsZWFzZV9y ZXF1ZXN0KGZyZWVyZXEpOw0KKwlpZiAoc2hvdWxkX3dha2UpDQorCQlnZXRf cmVxdWVzdF93YWl0X3dha2V1cChxLCBydyk7DQogCXNwaW5fdW5sb2NrX2ly cSgmaW9fcmVxdWVzdF9sb2NrKTsNCiAJcmV0dXJuIDA7DQogZW5kX2lvOg0K QEAgLTExOTYsOCArMTI1MiwxNSBAQA0KIAliaC0+Yl9yZGV2ID0gYmgtPmJf ZGV2Ow0KIAliaC0+Yl9yc2VjdG9yID0gYmgtPmJfYmxvY2tuciAqIGNvdW50 Ow0KIA0KKwlnZXRfYmgoYmgpOw0KIAlnZW5lcmljX21ha2VfcmVxdWVzdChy dywgYmgpOw0KIA0KKwkvKiBmaXggcmFjZSBjb25kaXRpb24gd2l0aCB3YWl0 X29uX2J1ZmZlcigpICovDQorCXNtcF9tYigpOyAvKiBzcGluX3VubG9jayBt YXkgaGF2ZSBpbmNsdXNpdmUgc2VtYW50aWNzICovDQorCWlmICh3YWl0cXVl dWVfYWN0aXZlKCZiaC0+Yl93YWl0KSkNCisJCXdha2VfdXAoJmJoLT5iX3dh aXQpOw0KKw0KKwlwdXRfYmgoYmgpOw0KIAlzd2l0Y2ggKHJ3KSB7DQogCQlj YXNlIFdSSVRFOg0KIAkJCWtzdGF0LnBncGdvdXQgKz0gY291bnQ7DQpAQCAt MTM1MCw2ICsxNDEzLDcgQEANCiAJaWYgKChiaCA9IHJlcS0+YmgpICE9IE5V TEwpIHsNCiAJCW5zZWN0ID0gYmgtPmJfc2l6ZSA+PiA5Ow0KIAkJYmxrX2Zp bmlzaGVkX2lvKG5zZWN0KTsNCisJCWJsa19maW5pc2hlZF9zZWN0b3JzKHJl cSwgbnNlY3QpOw0KIAkJcmVxLT5iaCA9IGJoLT5iX3JlcW5leHQ7DQogCQli aC0+Yl9yZXFuZXh0ID0gTlVMTDsNCiAJCWJoLT5iX2VuZF9pbyhiaCwgdXB0 b2RhdGUpOw0KQEAgLTE1MDksNiArMTU3Myw3IEBADQogRVhQT1JUX1NZTUJP TChibGtfZ2V0X3F1ZXVlKTsNCiBFWFBPUlRfU1lNQk9MKGJsa19jbGVhbnVw X3F1ZXVlKTsNCiBFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV9oZWFkYWN0aXZl KTsNCitFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV90aHJvdHRsZV9zZWN0b3Jz KTsNCiBFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV9tYWtlX3JlcXVlc3QpOw0K IEVYUE9SVF9TWU1CT0woZ2VuZXJpY19tYWtlX3JlcXVlc3QpOw0KIEVYUE9S VF9TWU1CT0woYmxrZGV2X3JlbGVhc2VfcmVxdWVzdCk7DQpkaWZmIC1OcnUg YS9kcml2ZXJzL2lkZS9pZGUtcHJvYmUuYyBiL2RyaXZlcnMvaWRlL2lkZS1w cm9iZS5jDQotLS0gYS9kcml2ZXJzL2lkZS9pZGUtcHJvYmUuYwlUaHUgSnVs IDEwIDE0OjUyOjM4IDIwMDMNCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1wcm9i ZS5jCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAgLTk3MSw2ICs5NzEs NyBAQA0KIA0KIAlxLT5xdWV1ZWRhdGEgPSBIV0dST1VQKGRyaXZlKTsNCiAJ YmxrX2luaXRfcXVldWUocSwgZG9faWRlX3JlcXVlc3QpOw0KKwlibGtfcXVl dWVfdGhyb3R0bGVfc2VjdG9ycyhxLCAxKTsNCiB9DQogDQogI3VuZGVmIF9f SVJRX0hFTExfU1BJTg0KZGlmZiAtTnJ1IGEvZHJpdmVycy9zY3NpL3Njc2ku YyBiL2RyaXZlcnMvc2NzaS9zY3NpLmMNCi0tLSBhL2RyaXZlcnMvc2NzaS9z Y3NpLmMJVGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQorKysgYi9kcml2ZXJz L3Njc2kvc2NzaS5jCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAgLTE5 Nyw2ICsxOTcsNyBAQA0KIA0KIAlibGtfaW5pdF9xdWV1ZShxLCBzY3NpX3Jl cXVlc3RfZm4pOw0KIAlibGtfcXVldWVfaGVhZGFjdGl2ZShxLCAwKTsNCisJ YmxrX3F1ZXVlX3Rocm90dGxlX3NlY3RvcnMocSwgMSk7DQogCXEtPnF1ZXVl ZGF0YSA9ICh2b2lkICopIFNEcG50Ow0KIH0NCiANCmRpZmYgLU5ydSBhL2Ry aXZlcnMvc2NzaS9zY3NpX2xpYi5jIGIvZHJpdmVycy9zY3NpL3Njc2lfbGli LmMNCi0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jCVRodSBKdWwgMTAg MTQ6NTI6MzggMjAwMw0KKysrIGIvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMJ VGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQpAQCAtMzc4LDYgKzM3OCw3IEBA DQogCQlpZiAoKGJoID0gcmVxLT5iaCkgIT0gTlVMTCkgew0KIAkJCW5zZWN0 ID0gYmgtPmJfc2l6ZSA+PiA5Ow0KIAkJCWJsa19maW5pc2hlZF9pbyhuc2Vj dCk7DQorCQkJYmxrX2ZpbmlzaGVkX3NlY3RvcnMocmVxLCBuc2VjdCk7DQog CQkJcmVxLT5iaCA9IGJoLT5iX3JlcW5leHQ7DQogCQkJYmgtPmJfcmVxbmV4 dCA9IE5VTEw7DQogCQkJc2VjdG9ycyAtPSBuc2VjdDsNCmRpZmYgLU5ydSBh L2ZzL2J1ZmZlci5jIGIvZnMvYnVmZmVyLmMNCi0tLSBhL2ZzL2J1ZmZlci5j CVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KKysrIGIvZnMvYnVmZmVyLmMJ VGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQpAQCAtMTUzLDEwICsxNTMsMjMg QEANCiAJZ2V0X2JoKGJoKTsNCiAJYWRkX3dhaXRfcXVldWUoJmJoLT5iX3dh aXQsICZ3YWl0KTsNCiAJZG8gew0KLQkJcnVuX3Rhc2tfcXVldWUoJnRxX2Rp c2spOw0KIAkJc2V0X3Rhc2tfc3RhdGUodHNrLCBUQVNLX1VOSU5URVJSVVBU SUJMRSk7DQogCQlpZiAoIWJ1ZmZlcl9sb2NrZWQoYmgpKQ0KIAkJCWJyZWFr Ow0KKwkJLyoNCisJCSAqIFdlIG11c3QgcmVhZCB0cV9kaXNrIGluIFRRX0FD VElWRSBhZnRlciB0aGUNCisJCSAqIGFkZF93YWl0X3F1ZXVlIGVmZmVjdCBp cyB2aXNpYmxlIHRvIG90aGVyIGNwdXMuDQorCQkgKiBXZSBjb3VsZCB1bnBs dWcgc29tZSBsaW5lIGFib3ZlIGl0IHdvdWxkbid0IG1hdHRlcg0KKwkJICog YnV0IHdlIGNhbid0IGRvIHRoYXQgcmlnaHQgYWZ0ZXIgYWRkX3dhaXRfcXVl dWUNCisJCSAqIHdpdGhvdXQgYW4gc21wX21iKCkgaW4gYmV0d2VlbiBiZWNh dXNlIHNwaW5fdW5sb2NrDQorCQkgKiBoYXMgaW5jbHVzaXZlIHNlbWFudGlj cy4NCisJCSAqIERvaW5nIGl0IGhlcmUgaXMgdGhlIG1vc3QgZWZmaWNpZW50 IHBsYWNlIHNvIHdlDQorCQkgKiBkb24ndCBkbyBhIHN1cHJpb3VzIHVucGx1 ZyBpZiB3ZSBnZXQgYSByYWN5DQorCQkgKiB3YWtldXAgdGhhdCBtYWtlIGJ1 ZmZlcl9sb2NrZWQgdG8gcmV0dXJuIDAsIGFuZA0KKwkJICogZG9pbmcgaXQg aGVyZSBhdm9pZHMgYW4gZXhwbGljaXQgc21wX21iKCkgd2UNCisJCSAqIHJl bHkgb24gdGhlIGltcGxpY2l0IG9uZSBpbiBzZXRfdGFza19zdGF0ZS4NCisJ CSAqLw0KKwkJcnVuX3Rhc2tfcXVldWUoJnRxX2Rpc2spOw0KIAkJc2NoZWR1 bGUoKTsNCiAJfSB3aGlsZSAoYnVmZmVyX2xvY2tlZChiaCkpOw0KIAl0c2st PnN0YXRlID0gVEFTS19SVU5OSU5HOw0KQEAgLTE1MTYsNiArMTUyOSw5IEBA DQogDQogCS8qIERvbmUgLSBlbmRfYnVmZmVyX2lvX2FzeW5jIHdpbGwgdW5s b2NrICovDQogCVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsNCisNCisJd2FrZXVw X3BhZ2Vfd2FpdGVycyhwYWdlKTsNCisNCiAJcmV0dXJuIDA7DQogDQogb3V0 Og0KQEAgLTE1NDcsNiArMTU2Myw3IEBADQogCX0gd2hpbGUgKGJoICE9IGhl YWQpOw0KIAlpZiAobmVlZF91bmxvY2spDQogCQlVbmxvY2tQYWdlKHBhZ2Up Ow0KKwl3YWtldXBfcGFnZV93YWl0ZXJzKHBhZ2UpOw0KIAlyZXR1cm4gZXJy Ow0KIH0NCiANCkBAIC0xNzc0LDYgKzE3OTEsOCBAQA0KIAkJZWxzZQ0KIAkJ CXN1Ym1pdF9iaChSRUFELCBiaCk7DQogCX0NCisNCisJd2FrZXVwX3BhZ2Vf d2FpdGVycyhwYWdlKTsNCiAJDQogCXJldHVybiAwOw0KIH0NCkBAIC0yNDAw LDYgKzI0MTksNyBAQA0KIAkJc3VibWl0X2JoKHJ3LCBiaCk7DQogCQliaCA9 IG5leHQ7DQogCX0gd2hpbGUgKGJoICE9IGhlYWQpOw0KKwl3YWtldXBfcGFn ZV93YWl0ZXJzKHBhZ2UpOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpkaWZmIC1O cnUgYS9mcy9yZWlzZXJmcy9pbm9kZS5jIGIvZnMvcmVpc2VyZnMvaW5vZGUu Yw0KLS0tIGEvZnMvcmVpc2VyZnMvaW5vZGUuYwlUaHUgSnVsIDEwIDE0OjUy OjM4IDIwMDMNCisrKyBiL2ZzL3JlaXNlcmZzL2lub2RlLmMJVGh1IEp1bCAx MCAxNDo1MjozOCAyMDAzDQpAQCAtMjA4MCw2ICsyMDgwLDcgQEANCiAgICAg Ki8NCiAgICAgaWYgKG5yKSB7DQogICAgICAgICBzdWJtaXRfYmhfZm9yX3dy aXRlcGFnZShhcnIsIG5yKSA7DQorCXdha2V1cF9wYWdlX3dhaXRlcnMocGFn ZSk7DQogICAgIH0gZWxzZSB7DQogICAgICAgICBVbmxvY2tQYWdlKHBhZ2Up IDsNCiAgICAgfQ0KZGlmZiAtTnJ1IGEvaW5jbHVkZS9saW51eC9ibGtkZXYu aCBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgNCi0tLSBhL2luY2x1ZGUvbGlu dXgvYmxrZGV2LmgJVGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQorKysgYi9p bmNsdWRlL2xpbnV4L2Jsa2Rldi5oCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAw Mw0KQEAgLTY0LDEyICs2NCw2IEBADQogdHlwZWRlZiB2b2lkIChwbHVnX2Rl dmljZV9mbikgKHJlcXVlc3RfcXVldWVfdCAqcSwga2Rldl90IGRldmljZSk7 DQogdHlwZWRlZiB2b2lkICh1bnBsdWdfZGV2aWNlX2ZuKSAodm9pZCAqcSk7 DQogDQotLyoNCi0gKiBEZWZhdWx0IG5yIGZyZWUgcmVxdWVzdHMgcGVyIHF1 ZXVlLCBsbF9yd19ibGsgd2lsbCBzY2FsZSBpdCBkb3duDQotICogYWNjb3Jk aW5nIHRvIGF2YWlsYWJsZSBSQU0gYXQgaW5pdCB0aW1lDQotICovDQotI2Rl ZmluZSBRVUVVRV9OUl9SRVFVRVNUUwk4MTkyDQotDQogc3RydWN0IHJlcXVl c3RfbGlzdCB7DQogCXVuc2lnbmVkIGludCBjb3VudDsNCiAJc3RydWN0IGxp c3RfaGVhZCBmcmVlOw0KQEAgLTgwLDcgKzc0LDcgQEANCiAJLyoNCiAJICog dGhlIHF1ZXVlIHJlcXVlc3QgZnJlZWxpc3QsIG9uZSBmb3IgcmVhZHMgYW5k IG9uZSBmb3Igd3JpdGVzDQogCSAqLw0KLQlzdHJ1Y3QgcmVxdWVzdF9saXN0 CXJxWzJdOw0KKwlzdHJ1Y3QgcmVxdWVzdF9saXN0CXJxOw0KIA0KIAkvKg0K IAkgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlcXVlc3RzIG9uIGVhY2ggcXVl dWUNCkBAIC05Myw2ICs4NywyMSBAQA0KIAlpbnQgYmF0Y2hfcmVxdWVzdHM7 DQogDQogCS8qDQorCSAqIFRoZSB0b3RhbCBudW1iZXIgb2YgNTEyYnl0ZSBi bG9ja3Mgb24gZWFjaCBxdWV1ZQ0KKwkgKi8NCisJYXRvbWljX3QgbnJfc2Vj dG9yczsNCisNCisJLyoNCisJICogQmF0Y2hpbmcgdGhyZXNob2xkIGZvciBz bGVlcC93YWtldXAgZGVjaXNpb25zDQorCSAqLw0KKwlpbnQgYmF0Y2hfc2Vj dG9yczsNCisNCisJLyoNCisJICogVGhlIG1heCBudW1iZXIgb2YgNTEyYnl0 ZSBibG9ja3Mgb24gZWFjaCBxdWV1ZQ0KKwkgKi8NCisJaW50IG1heF9xdWV1 ZV9zZWN0b3JzOw0KKw0KKwkvKg0KIAkgKiBUb2dldGhlciB3aXRoIHF1ZXVl X2hlYWQgZm9yIGNhY2hlbGluZSBzaGFyaW5nDQogCSAqLw0KIAlzdHJ1Y3Qg bGlzdF9oZWFkCXF1ZXVlX2hlYWQ7DQpAQCAtMTE4LDEzICsxMjcsMjEgQEAN CiAJLyoNCiAJICogQm9vbGVhbiB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRo aXMgcXVldWUgaXMgcGx1Z2dlZCBvciBub3QuDQogCSAqLw0KLQljaGFyCQkJ cGx1Z2dlZDsNCisJaW50CQkJcGx1Z2dlZDoxOw0KIA0KIAkvKg0KIAkgKiBC b29sZWFuIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgY3VycmVudF9yZXF1ZXN0 IGlzIGFjdGl2ZSBvcg0KIAkgKiBub3QuDQogCSAqLw0KLQljaGFyCQkJaGVh ZF9hY3RpdmU7DQorCWludAkJCWhlYWRfYWN0aXZlOjE7DQorDQorCS8qDQor CSAqIEJvb2xlYW4gdGhhdCBpbmRpY2F0ZXMgeW91IHdpbGwgdXNlIGJsa19z dGFydGVkX3NlY3RvcnMNCisJICogYW5kIGJsa19maW5pc2hlZF9zZWN0b3Jz IGluIGFkZGl0aW9uIHRvIGJsa19zdGFydGVkX2lvDQorCSAqIGFuZCBibGtf ZmluaXNoZWRfaW8uICBJdCBlbmFibGVzIHRoZSB0aHJvdHRsaW5nIGNvZGUg dG8gDQorCSAqIGhlbHAga2VlcCB0aGUgc2VjdG9ycyBpbiBmbGlnaHQgdG8g YSByZWFzb25hYmxlIHZhbHVlDQorCSAqLw0KKwlpbnQJCQljYW5fdGhyb3R0 bGU6MTsNCiANCiAJdW5zaWduZWQgbG9uZwkJYm91bmNlX3BmbjsNCiANCkBA IC0xMzcsNyArMTU0LDcgQEANCiAJLyoNCiAJICogVGFza3Mgd2FpdCBoZXJl IGZvciBmcmVlIHJlYWQgYW5kIHdyaXRlIHJlcXVlc3RzDQogCSAqLw0KLQl3 YWl0X3F1ZXVlX2hlYWRfdAl3YWl0X2Zvcl9yZXF1ZXN0c1syXTsNCisJd2Fp dF9xdWV1ZV9oZWFkX3QJd2FpdF9mb3JfcmVxdWVzdHM7DQogfTsNCiANCiAj ZGVmaW5lIGJsa19xdWV1ZV9wbHVnZ2VkKHEpCShxKS0+cGx1Z2dlZA0KQEAg LTIyMSwxMCArMjM4LDExIEBADQogLyoNCiAgKiBBY2Nlc3MgZnVuY3Rpb25z IGZvciBtYW5pcHVsYXRpbmcgcXVldWUgcHJvcGVydGllcw0KICAqLw0KLWV4 dGVybiBpbnQgYmxrX2dyb3dfcmVxdWVzdF9saXN0KHJlcXVlc3RfcXVldWVf dCAqcSwgaW50IG5yX3JlcXVlc3RzKTsNCitleHRlcm4gaW50IGJsa19ncm93 X3JlcXVlc3RfbGlzdChyZXF1ZXN0X3F1ZXVlX3QgKnEsIGludCBucl9yZXF1 ZXN0cywgaW50IG1heF9xdWV1ZV9zZWN0b3JzKTsNCiBleHRlcm4gdm9pZCBi bGtfaW5pdF9xdWV1ZShyZXF1ZXN0X3F1ZXVlX3QgKiwgcmVxdWVzdF9mbl9w cm9jICopOw0KIGV4dGVybiB2b2lkIGJsa19jbGVhbnVwX3F1ZXVlKHJlcXVl c3RfcXVldWVfdCAqKTsNCiBleHRlcm4gdm9pZCBibGtfcXVldWVfaGVhZGFj dGl2ZShyZXF1ZXN0X3F1ZXVlX3QgKiwgaW50KTsNCitleHRlcm4gdm9pZCBi bGtfcXVldWVfdGhyb3R0bGVfc2VjdG9ycyhyZXF1ZXN0X3F1ZXVlX3QgKiwg aW50KTsNCiBleHRlcm4gdm9pZCBibGtfcXVldWVfbWFrZV9yZXF1ZXN0KHJl cXVlc3RfcXVldWVfdCAqLCBtYWtlX3JlcXVlc3RfZm4gKik7DQogZXh0ZXJu IHZvaWQgZ2VuZXJpY191bnBsdWdfZGV2aWNlKHZvaWQgKik7DQogZXh0ZXJu IGlubGluZSBpbnQgYmxrX3NlZ19tZXJnZV9vayhzdHJ1Y3QgYnVmZmVyX2hl YWQgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICopOw0KQEAgLTI0Myw2ICsyNjEs OCBAQA0KIA0KICNkZWZpbmUgTUFYX1NFR01FTlRTIDEyOA0KICNkZWZpbmUg TUFYX1NFQ1RPUlMgMjU1DQorI2RlZmluZSBNQVhfUVVFVUVfU0VDVE9SUyAo NCA8PCAoMjAgLSA5KSkgLyogNCBtYnl0ZXMgd2hlbiBmdWxsIHNpemVkICov DQorI2RlZmluZSBNQVhfTlJfUkVRVUVTVFMgMTAyNCAvKiAxMDI0ayB3aGVu IGluIDUxMiB1bml0cywgbm9ybWFsbHkgbWluIGlzIDFNIGluIDFrIHVuaXRz ICovDQogDQogI2RlZmluZSBQYWdlQWxpZ25TaXplKHNpemUpICgoKHNpemUp ICsgUEFHRV9TSVpFIC0xKSAmIFBBR0VfTUFTSykNCiANCkBAIC0yNjgsOCAr Mjg4LDUwIEBADQogCXJldHVybiByZXR2YWw7DQogfQ0KIA0KK3N0YXRpYyBp bmxpbmUgaW50IGJsa19vdmVyc2l6ZWRfcXVldWUocmVxdWVzdF9xdWV1ZV90 ICogcSkNCit7DQorCWlmIChxLT5jYW5fdGhyb3R0bGUpDQorCQlyZXR1cm4g YXRvbWljX3JlYWQoJnEtPm5yX3NlY3RvcnMpID4gcS0+bWF4X3F1ZXVlX3Nl Y3RvcnM7DQorCXJldHVybiBxLT5ycS5jb3VudCA9PSAwOw0KK30NCisNCitz dGF0aWMgaW5saW5lIGludCBibGtfb3ZlcnNpemVkX3F1ZXVlX2JhdGNoKHJl cXVlc3RfcXVldWVfdCAqIHEpDQorew0KKwlyZXR1cm4gYXRvbWljX3JlYWQo JnEtPm5yX3NlY3RvcnMpID4gcS0+bWF4X3F1ZXVlX3NlY3RvcnMgLSBxLT5i YXRjaF9zZWN0b3JzOw0KK30NCisNCiAjZGVmaW5lIGJsa19maW5pc2hlZF9p byhuc2VjdHMpCWRvIHsgfSB3aGlsZSAoMCkNCiAjZGVmaW5lIGJsa19zdGFy dGVkX2lvKG5zZWN0cykJZG8geyB9IHdoaWxlICgwKQ0KKw0KK3N0YXRpYyBp bmxpbmUgdm9pZCBibGtfc3RhcnRlZF9zZWN0b3JzKHN0cnVjdCByZXF1ZXN0 ICpycSwgaW50IGNvdW50KQ0KK3sNCisJcmVxdWVzdF9xdWV1ZV90ICpxID0g cnEtPnE7DQorCWlmIChxICYmIHEtPmNhbl90aHJvdHRsZSkgew0KKwkJYXRv bWljX2FkZChjb3VudCwgJnEtPm5yX3NlY3RvcnMpOw0KKwkJaWYgKGF0b21p Y19yZWFkKCZxLT5ucl9zZWN0b3JzKSA8IDApIHsNCisJCQlwcmludGsoIm5y X3NlY3RvcnMgaXMgJWRcbiIsIGF0b21pY19yZWFkKCZxLT5ucl9zZWN0b3Jz KSk7DQorCQkJQlVHKCk7DQorCQl9DQorCX0NCit9DQorDQorc3RhdGljIGlu bGluZSB2b2lkIGJsa19maW5pc2hlZF9zZWN0b3JzKHN0cnVjdCByZXF1ZXN0 ICpycSwgaW50IGNvdW50KQ0KK3sNCisJcmVxdWVzdF9xdWV1ZV90ICpxID0g cnEtPnE7DQorCWlmIChxICYmIHEtPmNhbl90aHJvdHRsZSkgew0KKwkJYXRv bWljX3N1Yihjb3VudCwgJnEtPm5yX3NlY3RvcnMpOw0KKwkJDQorCQlzbXBf bWIoKTsNCisJCWlmIChxLT5ycS5jb3VudCA+PSBxLT5iYXRjaF9yZXF1ZXN0 cyAmJiAhYmxrX292ZXJzaXplZF9xdWV1ZV9iYXRjaChxKSkgew0KKwkJCWlm ICh3YWl0cXVldWVfYWN0aXZlKCZxLT53YWl0X2Zvcl9yZXF1ZXN0cykpDQor CQkJCXdha2VfdXAoJnEtPndhaXRfZm9yX3JlcXVlc3RzKTsNCisJCX0NCisJ CWlmIChhdG9taWNfcmVhZCgmcS0+bnJfc2VjdG9ycykgPCAwKSB7DQorCQkJ cHJpbnRrKCJucl9zZWN0b3JzIGlzICVkXG4iLCBhdG9taWNfcmVhZCgmcS0+ bnJfc2VjdG9ycykpOw0KKwkJCUJVRygpOw0KKwkJfQ0KKwl9DQorfQ0KIA0K IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJsa3NpemVfYml0cyh1bnNp Z25lZCBpbnQgc2l6ZSkNCiB7DQpkaWZmIC1OcnUgYS9pbmNsdWRlL2xpbnV4 L2VsZXZhdG9yLmggYi9pbmNsdWRlL2xpbnV4L2VsZXZhdG9yLmgNCi0tLSBh L2luY2x1ZGUvbGludXgvZWxldmF0b3IuaAlUaHUgSnVsIDEwIDE0OjUyOjM4 IDIwMDMNCisrKyBiL2luY2x1ZGUvbGludXgvZWxldmF0b3IuaAlUaHUgSnVs IDEwIDE0OjUyOjM4IDIwMDMNCkBAIC04MCw3ICs4MCw3IEBADQogCXJldHVy biBsYXRlbmN5Ow0KIH0NCiANCi0jZGVmaW5lIEVMVl9MSU5VU19TRUVLX0NP U1QJMTYNCisjZGVmaW5lIEVMVl9MSU5VU19TRUVLX0NPU1QJMQ0KIA0KICNk ZWZpbmUgRUxFVkFUT1JfTk9PUAkJCQkJCQlcDQogKChlbGV2YXRvcl90KSB7 CQkJCQkJCQlcDQpAQCAtOTMsOCArOTMsOCBAQA0KIA0KICNkZWZpbmUgRUxF VkFUT1JfTElOVVMJCQkJCQkJXA0KICgoZWxldmF0b3JfdCkgewkJCQkJCQkJ XA0KLQkyMDQ4LAkJCQkvKiByZWFkIHBhc3NvdmVycyAqLwkJXA0KLQk4MTky LAkJCQkvKiB3cml0ZSBwYXNzb3ZlcnMgKi8JCVwNCisJMTI4LAkJCQkvKiBy ZWFkIHBhc3NvdmVycyAqLwkJXA0KKwk1MTIsCQkJCS8qIHdyaXRlIHBhc3Nv dmVycyAqLwkJXA0KIAkJCQkJCQkJCVwNCiAJZWxldmF0b3JfbGludXNfbWVy Z2UsCQkvKiBlbGV2YXRvcl9tZXJnZV9mbiAqLwkJXA0KIAllbGV2YXRvcl9s aW51c19tZXJnZV9yZXEsCS8qIGVsZXZhdG9yX21lcmdlX3JlcV9mbiAqLwlc DQpkaWZmIC1OcnUgYS9pbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaCBiL2luY2x1 ZGUvbGludXgvcGFnZW1hcC5oDQotLS0gYS9pbmNsdWRlL2xpbnV4L3BhZ2Vt YXAuaAlUaHUgSnVsIDEwIDE0OjUyOjM4IDIwMDMNCisrKyBiL2luY2x1ZGUv bGludXgvcGFnZW1hcC5oCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAg LTk3LDYgKzk3LDggQEANCiAJCV9fX3dhaXRfb25fcGFnZShwYWdlKTsNCiB9 DQogDQorZXh0ZXJuIHZvaWQgRkFTVENBTEwod2FrZXVwX3BhZ2Vfd2FpdGVy cyhzdHJ1Y3QgcGFnZSAqIHBhZ2UpKTsNCisNCiAvKg0KICAqIFJldHVybnMg bG9ja2VkIHBhZ2UgYXQgZ2l2ZW4gaW5kZXggaW4gZ2l2ZW4gY2FjaGUsIGNy ZWF0aW5nIGl0IGlmIG5lZWRlZC4NCiAgKi8NCmRpZmYgLU5ydSBhL2tlcm5l bC9rc3ltcy5jIGIva2VybmVsL2tzeW1zLmMNCi0tLSBhL2tlcm5lbC9rc3lt cy5jCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KKysrIGIva2VybmVsL2tz eW1zLmMJVGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQpAQCAtMjk2LDYgKzI5 Niw3IEBADQogRVhQT1JUX1NZTUJPTChmaWxlbWFwX2ZkYXRhd2FpdCk7DQog RVhQT1JUX1NZTUJPTChsb2NrX3BhZ2UpOw0KIEVYUE9SVF9TWU1CT0wodW5s b2NrX3BhZ2UpOw0KK0VYUE9SVF9TWU1CT0wod2FrZXVwX3BhZ2Vfd2FpdGVy cyk7DQogDQogLyogZGV2aWNlIHJlZ2lzdHJhdGlvbiAqLw0KIEVYUE9SVF9T WU1CT0wocmVnaXN0ZXJfY2hyZGV2KTsNCmRpZmYgLU5ydSBhL21tL2ZpbGVt YXAuYyBiL21tL2ZpbGVtYXAuYw0KLS0tIGEvbW0vZmlsZW1hcC5jCVRodSBK dWwgMTAgMTQ6NTI6MzggMjAwMw0KKysrIGIvbW0vZmlsZW1hcC5jCVRodSBK dWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAgLTgxMCw2ICs4MTAsMjAgQEANCiAJ cmV0dXJuICZ3YWl0W2hhc2hdOw0KIH0NCiANCisvKg0KKyAqIFRoaXMgbXVz dCBiZSBjYWxsZWQgYWZ0ZXIgZXZlcnkgc3VibWl0X2JoIHdpdGggZW5kX2lv DQorICogY2FsbGJhY2tzIHRoYXQgd291bGQgcmVzdWx0IGludG8gdGhlIGJs a2RldiBsYXllciB3YWtpbmcNCisgKiB1cCB0aGUgcGFnZSBhZnRlciBhIHF1 ZXVlIHVucGx1Zy4NCisgKi8NCit2b2lkIHdha2V1cF9wYWdlX3dhaXRlcnMo c3RydWN0IHBhZ2UgKiBwYWdlKQ0KK3sNCisJd2FpdF9xdWV1ZV9oZWFkX3Qg KiBoZWFkOw0KKw0KKwloZWFkID0gcGFnZV93YWl0cXVldWUocGFnZSk7DQor CWlmICh3YWl0cXVldWVfYWN0aXZlKGhlYWQpKQ0KKwkJd2FrZV91cChoZWFk KTsNCit9DQorDQogLyogDQogICogV2FpdCBmb3IgYSBwYWdlIHRvIGdldCB1 bmxvY2tlZC4NCiAgKg0K --681489-956230482-1057859854=:25229--