From owner-freebsd-bugs@FreeBSD.ORG Thu Jul 5 00:25:12 2012 Return-Path: Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AF650106564A for ; Thu, 5 Jul 2012 00:25:12 +0000 (UTC) (envelope-from pfg@freebsd.org) Received: from nm40-vm5.bullet.mail.ne1.yahoo.com (nm40-vm5.bullet.mail.ne1.yahoo.com [98.138.229.181]) by mx1.freebsd.org (Postfix) with SMTP id 561A68FC0A for ; Thu, 5 Jul 2012 00:25:12 +0000 (UTC) Received: from [98.138.90.50] by nm40.bullet.mail.ne1.yahoo.com with NNFMP; 05 Jul 2012 00:25:06 -0000 Received: from [98.138.87.8] by tm3.bullet.mail.ne1.yahoo.com with NNFMP; 05 Jul 2012 00:25:06 -0000 Received: from [127.0.0.1] by omp1008.mail.ne1.yahoo.com with NNFMP; 05 Jul 2012 00:25:06 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 2564.39099.bm@omp1008.mail.ne1.yahoo.com Received: (qmail 94937 invoked by uid 60001); 5 Jul 2012 00:25:05 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1341447905; bh=KjycmtlavvAImjsr/hFMFlZu7HFp0i5dQJx4TAUIHHw=; h=X-YMail-OSG:Received:X-RocketYMMF:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:Cc:MIME-Version:Content-Type; b=ZO80CwJE5OsXRe0MxAM/4Iu4J1RE262waJrvQnfITu26ODoJVzTM+tWYuafzpi+UoKkkor2A8T9EqT+ONFKPGgT3TIIMPDny6SyLgEwUiCduaxvGMr9wFUrJAuA/KHKKEmhyGNI0Zq7qdJLDoQKnWZCfb1hJcHsGzt0pPWI39Tk= X-YMail-OSG: wKkvQWIVM1ltKD6OCRkxnPOX1vnbYDRH9w9a_x0n6fn8xwk 8YcKrfAQ82wSQ_NF0Nb6sD6SQD4vm47LXzbg7IFytFZx08ID86JAEQm.t78y c3GFvHzPHsXvj3TXw3fEH3bmVDvB58KfYM71pEGXMu8Kh_hCVAvAUWzPNK9K 0izvc89JbvCNiB1db96CP6_wJ5xScKCxu4Fslzn_TiQQ7BthmI4GQG_1bSUg Q9Qh7e5cufSrmsWFj0KAa7JXvLZd91WxoAgFVuZViW92uADwZ8L37X3liiJb O.A66Qtgrskjk26QS98FbLIpN2Xpn6vYEo4JqL.MttLRxzZC8qb7O_tcdRBo D_kaz0M2MkZcc.mUA2NWsdbgg2H9pvBTQGRZ8NFwpnH6rEyussBpR9Q5IloO qblC.2NJA5GOfHuazDw6bRe7ypzhciiXN_RmRvOJ6ECCInZovmcOhqwVPKMP nE3fY Received: from [200.118.157.7] by web113506.mail.gq1.yahoo.com via HTTP; Wed, 04 Jul 2012 17:25:05 PDT X-RocketYMMF: giffunip X-Mailer: YahooMailClassic/15.0.8 YahooMailWebService/0.8.120.356233 Message-ID: <1341447905.65270.YahooMailClassic@web113506.mail.gq1.yahoo.com> Date: Wed, 4 Jul 2012 17:25:05 -0700 (PDT) From: Pedro Giffuni To: freebsd-bugs@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="770692889-285587537-1341447905=:65270" Cc: Peter Jeremy Subject: Re: kern/169603: Possible r237738 libedit regression resizing windows in terminal programs X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: pfg@freebsd.org List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jul 2012 00:25:12 -0000 --770692889-285587537-1341447905=:65270 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi again;=0A=0AThis may be somewhat unrelated but I would like to fix some= =0Ainconsistencies before starting to revert stuff.=0A=0ATesting is welcome= .=0A=0APedro. --770692889-285587537-1341447905=:65270 Content-Type: application/octet-stream; name=patch-libedit Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=patch-libedit SW5kZXg6IGxpYmVkaXQvcmVhZGxpbmUuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBsaWJlZGl0L3JlYWRsaW5lLmMJKHJldmlzaW9uIDIzODA5MCkK KysrIGxpYmVkaXQvcmVhZGxpbmUuYwkod29ya2luZyBjb3B5KQpAQCAtMSw0 ICsxLDQgQEAKLS8qCSROZXRCU0Q6IHJlYWRsaW5lLmMsdiAxLjkwIDIwMTAv MDgvMDQgMjA6Mjk6MTggY2hyaXN0b3MgRXhwICQJKi8KKy8qCSROZXRCU0Q6 IHJlYWRsaW5lLmMsdiAxLjg1IDIwMDkvMDkvMDcgMjE6MjQ6MzMgY2hyaXN0 b3MgRXhwICQJKi8KIAogLyotCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTcgVGhl IE5ldEJTRCBGb3VuZGF0aW9uLCBJbmMuCkBAIC0xMTgsMTAgKzExOCw2IEBA CiBWRnVuY3Rpb24gKnJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uID0gKFZGdW5j dGlvbiAqKXJsX2RlcHJlcF90ZXJtaW5hbDsKIEtFWU1BUF9FTlRSWV9BUlJB WSBlbWFjc19tZXRhX2tleW1hcDsKIAotI2lmZGVmIFdJREVDSEFSCi1zdGF0 aWMgY3RfYnVmZmVyX3QgY29udjsKLSNlbmRpZgotCiAvKgogICogVGhlIGN1 cnJlbnQgcHJvbXB0IHN0cmluZy4KICAqLwpAQCAtMTU0LDcgKzE1MCw3IEBA CiAKIC8qIHN0dWZmIGJlbG93IGlzIHVzZWQgaW50ZXJuYWxseSBieSBsaWJl ZGl0IGZvciByZWFkbGluZSBlbXVsYXRpb24gKi8KIAotc3RhdGljIFRZUEUo SGlzdG9yeSkgKmggPSBOVUxMOworc3RhdGljIEhpc3RvcnkgKmggPSBOVUxM Owogc3RhdGljIEVkaXRMaW5lICplID0gTlVMTDsKIHN0YXRpYyBGdW5jdGlv biAqbWFwWzI1Nl07CiBzdGF0aWMgam1wX2J1ZiB0b3BidWY7CkBAIC0xODgs MTMgKzE4NCwxMyBAQAogc3RhdGljIEhJU1RfRU5UUlkgKgogX21vdmVfaGlz dG9yeShpbnQgb3ApCiB7Ci0JVFlQRShIaXN0RXZlbnQpIGV2OworCUhpc3RF dmVudCBldjsKIAlzdGF0aWMgSElTVF9FTlRSWSBybF9oZTsKIAotCWlmIChG VU5XKGhpc3RvcnkpKGgsICZldiwgb3ApICE9IDApCisJaWYgKGhpc3Rvcnko aCwgJmV2LCBvcCkgIT0gMCkKIAkJcmV0dXJuIChISVNUX0VOVFJZICopIE5V TEw7CiAKLQlybF9oZS5saW5lID0gY3RfZW5jb2RlX3N0cmluZyhldi5zdHIs ICZjb252KTsKKwlybF9oZS5saW5lID0gZXYuc3RyOwogCXJsX2hlLmRhdGEg PSBOVUxMOwogCiAJcmV0dXJuICgmcmxfaGUpOwpAQCAtMjY4LDcgKzI2NCw3 IEBACiBpbnQKIHJsX2luaXRpYWxpemUodm9pZCkKIHsKLQlUWVBFKEhpc3RF dmVudCkgZXY7CisJSGlzdEV2ZW50IGV2OwogCWNvbnN0IExpbmVJbmZvICps aTsKIAlpbnQgZWRpdG1vZGUgPSAxOwogCXN0cnVjdCB0ZXJtaW9zIHQ7CkBA IC0yNzYsNyArMjcyLDcgQEAKIAlpZiAoZSAhPSBOVUxMKQogCQllbF9lbmQo ZSk7CiAJaWYgKGggIT0gTlVMTCkKLQkJRlVOKGhpc3RvcnksZW5kKShoKTsK KwkJaGlzdG9yeV9lbmQoaCk7CiAKIAlpZiAoIXJsX2luc3RyZWFtKQogCQly bF9pbnN0cmVhbSA9IHN0ZGluOwpAQCAtMjkyLDEzICsyODgsMTMgQEAKIAll ID0gZWxfaW5pdChybF9yZWFkbGluZV9uYW1lLCBybF9pbnN0cmVhbSwgcmxf b3V0c3RyZWFtLCBzdGRlcnIpOwogCiAJaWYgKCFlZGl0bW9kZSkKLQkJRlVO KGVsLHNldCkoZSwgRUxfRURJVE1PREUsIDApOworCQllbF9zZXQoZSwgRUxf RURJVE1PREUsIDApOwogCi0JaCA9IEZVTihoaXN0b3J5LGluaXQpKCk7CisJ aCA9IGhpc3RvcnlfaW5pdCgpOwogCWlmICghZSB8fCAhaCkKIAkJcmV0dXJu ICgtMSk7CiAKLQlGVU5XKGhpc3RvcnkpKGgsICZldiwgSF9TRVRTSVpFLCBJ TlRfTUFYKTsJLyogdW5saW1pdGVkICovCisJaGlzdG9yeShoLCAmZXYsIEhf U0VUU0laRSwgSU5UX01BWCk7CS8qIHVubGltaXRlZCAqLwogCWhpc3Rvcnlf bGVuZ3RoID0gMDsKIAltYXhfaW5wdXRfaGlzdG9yeSA9IElOVF9NQVg7CiAJ ZWxfc2V0KGUsIEVMX0hJU1QsIGhpc3RvcnksIGgpOwpAQCAtMzA5LDcgKzMw NSw3IEBACiAKIAkvKiBmb3IgcHJvcGVyIHByb21wdCBwcmludGluZyBpbiBy ZWFkbGluZSgpICovCiAJaWYgKHJsX3NldF9wcm9tcHQoIiIpID09IC0xKSB7 Ci0JCUZVTihoaXN0b3J5LGVuZCkoaCk7CisJCWhpc3RvcnlfZW5kKGgpOwog CQllbF9lbmQoZSk7CiAJCXJldHVybiAtMTsKIAl9CkBAIC0zNjcsNyArMzYz LDcgQEAKIGNoYXIgKgogcmVhZGxpbmUoY29uc3QgY2hhciAqcCkKIHsKLQlU WVBFKEhpc3RFdmVudCkgZXY7CisJSGlzdEV2ZW50IGV2OwogCWNvbnN0IGNo YXIgKiB2b2xhdGlsZSBwcm9tcHQgPSBwOwogCWludCBjb3VudDsKIAljb25z dCBjaGFyICpyZXQ7CkBAIC00MTUsNyArNDExLDcgQEAKIAl9IGVsc2UKIAkJ YnVmID0gTlVMTDsKIAotCUZVTlcoaGlzdG9yeSkoaCwgJmV2LCBIX0dFVFNJ WkUpOworCWhpc3RvcnkoaCwgJmV2LCBIX0dFVFNJWkUpOwogCWhpc3Rvcnlf bGVuZ3RoID0gZXYubnVtOwogCiAJcmV0dXJuIGJ1ZjsKQEAgLTQ5NSw3ICs0 OTEsNyBAQAogCXNpemVfdCBsZW47CiAJY2hhcgkqcGF0OwogCWNvbnN0IGNo YXIgKnJwdHI7Ci0JVFlQRShIaXN0RXZlbnQpIGV2OworCUhpc3RFdmVudCBl djsKIAogCWlkeCA9ICpjaW5kZXg7CiAJaWYgKGNtZFtpZHgrK10gIT0gaGlz dG9yeV9leHBhbnNpb25fY2hhcikKQEAgLTUwMywxMCArNDk5LDEwIEBACiAK IAkvKiBmaW5kIG91dCB3aGljaCBldmVudCB0byB0YWtlICovCiAJaWYgKGNt ZFtpZHhdID09IGhpc3RvcnlfZXhwYW5zaW9uX2NoYXIgfHwgY21kW2lkeF0g PT0gJ1wwJykgewotCQlpZiAoRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfRklS U1QpICE9IDApCisJCWlmIChoaXN0b3J5KGgsICZldiwgSF9GSVJTVCkgIT0g MCkKIAkJCXJldHVybihOVUxMKTsKIAkJKmNpbmRleCA9IGNtZFtpZHhdPyAo aWR4ICsgMSk6aWR4OwotCQlyZXR1cm4gY3RfZW5jb2RlX3N0cmluZyhldi5z dHIsICZjb252KTsKKwkJcmV0dXJuKGV2LnN0cik7CiAJfQogCXNpZ24gPSAw OwogCWlmIChjbWRbaWR4XSA9PSAnLScpIHsKQEAgLTU2MSw3ICs1NTcsNyBA QAogCQlwYXRbbGVuXSA9ICdcMCc7CiAJfQogCi0JaWYgKEZVTlcoaGlzdG9y eSkoaCwgJmV2LCBIX0NVUlIpICE9IDApIHsKKwlpZiAoaGlzdG9yeShoLCAm ZXYsIEhfQ1VSUikgIT0gMCkgewogCQlpZiAocGF0ICE9IGxhc3Rfc2VhcmNo X3BhdCkKIAkJCWZyZWUocGF0KTsKIAkJcmV0dXJuIChOVUxMKTsKQEAgLTU4 MCw3ICs1NzYsNyBAQAogCiAJaWYgKHJldCA9PSAtMSkgewogCQkvKiByZXN0 b3JlIHRvIGVuZCBvZiBsaXN0IG9uIGZhaWxlZCBzZWFyY2ggKi8KLQkJRlVO VyhoaXN0b3J5KShoLCAmZXYsIEhfRklSU1QpOworCQloaXN0b3J5KGgsICZl diwgSF9GSVJTVCk7CiAJCSh2b2lkKWZwcmludGYocmxfb3V0c3RyZWFtLCAi JXM6IEV2ZW50IG5vdCBmb3VuZFxuIiwgcGF0KTsKIAkJaWYgKHBhdCAhPSBs YXN0X3NlYXJjaF9wYXQpCiAJCQlmcmVlKHBhdCk7CkBAIC01OTYsMTMgKzU5 MiwxMyBAQAogCWlmIChwYXQgIT0gbGFzdF9zZWFyY2hfcGF0KQogCQlmcmVl KHBhdCk7CiAKLQlpZiAoRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfQ1VSUikg IT0gMCkKKwlpZiAoaGlzdG9yeShoLCAmZXYsIEhfQ1VSUikgIT0gMCkKIAkJ cmV0dXJuKE5VTEwpOwogCSpjaW5kZXggPSBpZHg7Ci0JcnB0ciA9IGN0X2Vu Y29kZV9zdHJpbmcoZXYuc3RyLCAmY29udik7CisJcnB0ciA9IGV2LnN0cjsK IAogCS8qIHJvbGwgYmFjayB0byBvcmlnaW5hbCBwb3NpdGlvbiAqLwotCSh2 b2lkKUZVTlcoaGlzdG9yeSkoaCwgJmV2LCBIX1NFVCwgbnVtKTsKKwkodm9p ZCloaXN0b3J5KGgsICZldiwgSF9TRVQsIG51bSk7CiAKIAlyZXR1cm4gcnB0 cjsKIH0KQEAgLTExMTIsMTIgKzExMDgsMTIgQEAKIHZvaWQKIHN0aWZsZV9o aXN0b3J5KGludCBtYXgpCiB7Ci0JVFlQRShIaXN0RXZlbnQpIGV2OworCUhp c3RFdmVudCBldjsKIAogCWlmIChoID09IE5VTEwgfHwgZSA9PSBOVUxMKQog CQlybF9pbml0aWFsaXplKCk7CiAKLQlpZiAoRlVOVyhoaXN0b3J5KShoLCAm ZXYsIEhfU0VUU0laRSwgbWF4KSA9PSAwKQorCWlmIChoaXN0b3J5KGgsICZl diwgSF9TRVRTSVpFLCBtYXgpID09IDApCiAJCW1heF9pbnB1dF9oaXN0b3J5 ID0gbWF4OwogfQogCkBAIC0xMTI4LDEwICsxMTI0LDEwIEBACiBpbnQKIHVu c3RpZmxlX2hpc3Rvcnkodm9pZCkKIHsKLQlUWVBFKEhpc3RFdmVudCkgZXY7 CisJSGlzdEV2ZW50IGV2OwogCWludCBvbWF4OwogCi0JRlVOVyhoaXN0b3J5 KShoLCAmZXYsIEhfU0VUU0laRSwgSU5UX01BWCk7CisJaGlzdG9yeShoLCAm ZXYsIEhfU0VUU0laRSwgSU5UX01BWCk7CiAJb21heCA9IG1heF9pbnB1dF9o aXN0b3J5OwogCW1heF9pbnB1dF9oaXN0b3J5ID0gSU5UX01BWDsKIAlyZXR1 cm4gKG9tYXgpOwkJLyogc29tZSB2YWx1ZSBfbXVzdF8gYmUgcmV0dXJuZWQg Ki8KQEAgLTEyODksMTQgKzEyODUsMTMgQEAKIGludAogcmVhZF9oaXN0b3J5 KGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogewotCVRZUEUoSGlzdEV2ZW50KSBl djsKKwlIaXN0RXZlbnQgZXY7CiAKIAlpZiAoaCA9PSBOVUxMIHx8IGUgPT0g TlVMTCkKIAkJcmxfaW5pdGlhbGl6ZSgpOwogCWlmIChmaWxlbmFtZSA9PSBO VUxMICYmIChmaWxlbmFtZSA9IF9kZWZhdWx0X2hpc3RvcnlfZmlsZSgpKSA9 PSBOVUxMKQogCQlyZXR1cm4gZXJybm87Ci0JcmV0dXJuIChGVU5XKGhpc3Rv cnkpKGgsICZldiwgSF9MT0FELCBmaWxlbmFtZSkgPT0gLTEgPwotCSAgICAo ZXJybm8gPyBlcnJubyA6IEVJTlZBTCkgOiAwKTsKKwlyZXR1cm4gKGhpc3Rv cnkoaCwgJmV2LCBIX0xPQUQsIGZpbGVuYW1lKSA9PSAtMSA/IChlcnJubyA/ IGVycm5vIDogRUlOVkFMKSA6IDApOwogfQogCiAKQEAgLTEzMDYsMTQgKzEz MDEsMTMgQEAKIGludAogd3JpdGVfaGlzdG9yeShjb25zdCBjaGFyICpmaWxl bmFtZSkKIHsKLQlUWVBFKEhpc3RFdmVudCkgZXY7CisJSGlzdEV2ZW50IGV2 OwogCiAJaWYgKGggPT0gTlVMTCB8fCBlID09IE5VTEwpCiAJCXJsX2luaXRp YWxpemUoKTsKIAlpZiAoZmlsZW5hbWUgPT0gTlVMTCAmJiAoZmlsZW5hbWUg PSBfZGVmYXVsdF9oaXN0b3J5X2ZpbGUoKSkgPT0gTlVMTCkKIAkJcmV0dXJu IGVycm5vOwotCXJldHVybiAoRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfU0FW RSwgZmlsZW5hbWUpID09IC0xID8KLQkgICAgKGVycm5vID8gZXJybm8gOiBF SU5WQUwpIDogMCk7CisJcmV0dXJuIChoaXN0b3J5KGgsICZldiwgSF9TQVZF LCBmaWxlbmFtZSkgPT0gLTEgPyAoZXJybm8gPyBlcnJubyA6IEVJTlZBTCkg OiAwKTsKIH0KIAogCkBAIC0xMzI2LDI5ICsxMzIwLDI5IEBACiBoaXN0b3J5 X2dldChpbnQgbnVtKQogewogCXN0YXRpYyBISVNUX0VOVFJZIHNoZTsKLQlU WVBFKEhpc3RFdmVudCkgZXY7CisJSGlzdEV2ZW50IGV2OwogCWludCBjdXJy X251bTsKIAogCWlmIChoID09IE5VTEwgfHwgZSA9PSBOVUxMKQogCQlybF9p bml0aWFsaXplKCk7CiAKIAkvKiBzYXZlIGN1cnJlbnQgcG9zaXRpb24gKi8K LQlpZiAoRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfQ1VSUikgIT0gMCkKKwlp ZiAoaGlzdG9yeShoLCAmZXYsIEhfQ1VSUikgIT0gMCkKIAkJcmV0dXJuIChO VUxMKTsKIAljdXJyX251bSA9IGV2Lm51bTsKIAogCS8qIHN0YXJ0IGZyb20g dGhlIG9sZGVzdCAqLwotCWlmIChGVU5XKGhpc3RvcnkpKGgsICZldiwgSF9M QVNUKSAhPSAwKQorCWlmIChoaXN0b3J5KGgsICZldiwgSF9MQVNUKSAhPSAw KQogCQlyZXR1cm4gKE5VTEwpOwkvKiBlcnJvciAqLwogCiAJLyogbG9vayBm b3J3YXJkcyBmb3IgZXZlbnQgbWF0Y2hpbmcgc3BlY2lmaWVkIG9mZnNldCAq LwotCWlmIChGVU5XKGhpc3RvcnkpKGgsICZldiwgSF9ORVhUX0VWREFUQSwg bnVtLCAmc2hlLmRhdGEpKQorCWlmIChoaXN0b3J5KGgsICZldiwgSF9ORVhU X0VWREFUQSwgbnVtLCAmc2hlLmRhdGEpKQogCQlyZXR1cm4gKE5VTEwpOwog Ci0Jc2hlLmxpbmUgPSBjdF9lbmNvZGVfc3RyaW5nKGV2LnN0ciwgJmNvbnYp OworCXNoZS5saW5lID0gZXYuc3RyOwogCiAJLyogcmVzdG9yZSBwb2ludGVy IHRvIHdoZXJlIGl0IHdhcyAqLwotCSh2b2lkKUZVTlcoaGlzdG9yeSkoaCwg JmV2LCBIX1NFVCwgY3Vycl9udW0pOworCSh2b2lkKWhpc3RvcnkoaCwgJmV2 LCBIX1NFVCwgY3Vycl9udW0pOwogCiAJcmV0dXJuICgmc2hlKTsKIH0KQEAg LTEzNjAsMTYgKzEzNTQsMTMgQEAKIGludAogYWRkX2hpc3RvcnkoY29uc3Qg Y2hhciAqbGluZSkKIHsKLQlUWVBFKEhpc3RFdmVudCkgZXY7Ci0JY29uc3Qg Q2hhciAqd2xpbmU7CisJSGlzdEV2ZW50IGV2OwogCiAJaWYgKGggPT0gTlVM TCB8fCBlID09IE5VTEwpCiAJCXJsX2luaXRpYWxpemUoKTsKIAotCXdsaW5l ID0gY3RfZGVjb2RlX3N0cmluZyhsaW5lLCAmY29udik7Ci0KLQkodm9pZClG VU5XKGhpc3RvcnkpKGgsICZldiwgSF9FTlRFUiwgd2xpbmUpOwotCWlmIChG VU5XKGhpc3RvcnkpKGgsICZldiwgSF9HRVRTSVpFKSA9PSAwKQorCSh2b2lk KWhpc3RvcnkoaCwgJmV2LCBIX0VOVEVSLCBsaW5lKTsKKwlpZiAoaGlzdG9y eShoLCAmZXYsIEhfR0VUU0laRSkgPT0gMCkKIAkJaGlzdG9yeV9sZW5ndGgg PSBldi5udW07CiAKIAlyZXR1cm4gKCEoaGlzdG9yeV9sZW5ndGggPiAwKSk7 IC8qIHJldHVybiAwIGlmIGFsbCBpcyBva2F5ICovCkBAIC0xMzgzLDcgKzEz NzQsNyBAQAogcmVtb3ZlX2hpc3RvcnkoaW50IG51bSkKIHsKIAlISVNUX0VO VFJZICpoZTsKLQlUWVBFKEhpc3RFdmVudCkgZXY7CisJSGlzdEV2ZW50IGV2 OwogCiAJaWYgKGggPT0gTlVMTCB8fCBlID09IE5VTEwpCiAJCXJsX2luaXRp YWxpemUoKTsKQEAgLTEzOTEsMTMgKzEzODIsMTMgQEAKIAlpZiAoKGhlID0g bWFsbG9jKHNpemVvZigqaGUpKSkgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CiAKLQlpZiAoRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfREVMREFUQSwgbnVt LCAmaGUtPmRhdGEpICE9IDApIHsKKwlpZiAoaGlzdG9yeShoLCAmZXYsIEhf REVMREFUQSwgbnVtLCAmaGUtPmRhdGEpICE9IDApIHsKIAkJZnJlZShoZSk7 CiAJCXJldHVybiBOVUxMOwogCX0KIAotCWhlLT5saW5lID0gY3RfZW5jb2Rl X3N0cmluZyhldi5zdHIsICZjb252KTsKLQlpZiAoRlVOVyhoaXN0b3J5KSho LCAmZXYsIEhfR0VUU0laRSkgPT0gMCkKKwloZS0+bGluZSA9IGV2LnN0cjsK KwlpZiAoaGlzdG9yeShoLCAmZXYsIEhfR0VUU0laRSkgPT0gMCkKIAkJaGlz dG9yeV9sZW5ndGggPSBldi5udW07CiAKIAlyZXR1cm4gaGU7CkBAIC0xNDEx LDM3ICsxNDAyLDM3IEBACiByZXBsYWNlX2hpc3RvcnlfZW50cnkoaW50IG51 bSwgY29uc3QgY2hhciAqbGluZSwgaGlzdGRhdGFfdCBkYXRhKQogewogCUhJ U1RfRU5UUlkgKmhlOwotCVRZUEUoSGlzdEV2ZW50KSBldjsKKwlIaXN0RXZl bnQgZXY7CiAJaW50IGN1cnJfbnVtOwogCiAJaWYgKGggPT0gTlVMTCB8fCBl ID09IE5VTEwpCiAJCXJsX2luaXRpYWxpemUoKTsKIAogCS8qIHNhdmUgY3Vy cmVudCBwb3NpdGlvbiAqLwotCWlmIChGVU5XKGhpc3RvcnkpKGgsICZldiwg SF9DVVJSKSAhPSAwKQorCWlmIChoaXN0b3J5KGgsICZldiwgSF9DVVJSKSAh PSAwKQogCQlyZXR1cm4gTlVMTDsKIAljdXJyX251bSA9IGV2Lm51bTsKIAog CS8qIHN0YXJ0IGZyb20gdGhlIG9sZGVzdCAqLwotCWlmIChGVU5XKGhpc3Rv cnkpKGgsICZldiwgSF9MQVNUKSAhPSAwKQorCWlmIChoaXN0b3J5KGgsICZl diwgSF9MQVNUKSAhPSAwKQogCQlyZXR1cm4gTlVMTDsJLyogZXJyb3IgKi8K IAogCWlmICgoaGUgPSBtYWxsb2Moc2l6ZW9mKCpoZSkpKSA9PSBOVUxMKQog CQlyZXR1cm4gTlVMTDsKIAogCS8qIGxvb2sgZm9yd2FyZHMgZm9yIGV2ZW50 IG1hdGNoaW5nIHNwZWNpZmllZCBvZmZzZXQgKi8KLQlpZiAoRlVOVyhoaXN0 b3J5KShoLCAmZXYsIEhfTkVYVF9FVkRBVEEsIG51bSwgJmhlLT5kYXRhKSkK KwlpZiAoaGlzdG9yeShoLCAmZXYsIEhfTkVYVF9FVkRBVEEsIG51bSwgJmhl LT5kYXRhKSkKIAkJZ290byBvdXQ7CiAKLQloZS0+bGluZSA9IHN0cmR1cChj dF9lbmNvZGVfc3RyaW5nKGV2LnN0ciwgJmUtPmVsX3NjcmF0Y2gpKTsKKwlo ZS0+bGluZSA9IHN0cmR1cChldi5zdHIpOwogCWlmIChoZS0+bGluZSA9PSBO VUxMKQogCQlnb3RvIG91dDsKIAotCWlmIChGVU5XKGhpc3RvcnkpKGgsICZl diwgSF9SRVBMQUNFLCBsaW5lLCBkYXRhKSkKKwlpZiAoaGlzdG9yeShoLCAm ZXYsIEhfUkVQTEFDRSwgbGluZSwgZGF0YSkpCiAJCWdvdG8gb3V0OwogCiAJ LyogcmVzdG9yZSBwb2ludGVyIHRvIHdoZXJlIGl0IHdhcyAqLwotCWlmIChG VU5XKGhpc3RvcnkpKGgsICZldiwgSF9TRVQsIGN1cnJfbnVtKSkKKwlpZiAo aGlzdG9yeShoLCAmZXYsIEhfU0VULCBjdXJyX251bSkpCiAJCWdvdG8gb3V0 OwogCiAJcmV0dXJuIGhlOwpAQCAtMTQ1Niw5ICsxNDQ3LDkgQEAKIHZvaWQK IGNsZWFyX2hpc3Rvcnkodm9pZCkKIHsKLQlUWVBFKEhpc3RFdmVudCkgZXY7 CisJSGlzdEV2ZW50IGV2OwogCi0JKHZvaWQpRlVOVyhoaXN0b3J5KShoLCAm ZXYsIEhfQ0xFQVIpOworCWhpc3RvcnkoaCwgJmV2LCBIX0NMRUFSKTsKIAlo aXN0b3J5X2xlbmd0aCA9IDA7CiB9CiAKQEAgLTE0NjksMTYgKzE0NjAsMTYg QEAKIGludAogd2hlcmVfaGlzdG9yeSh2b2lkKQogewotCVRZUEUoSGlzdEV2 ZW50KSBldjsKKwlIaXN0RXZlbnQgZXY7CiAJaW50IGN1cnJfbnVtLCBvZmY7 CiAKLQlpZiAoRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfQ1VSUikgIT0gMCkK KwlpZiAoaGlzdG9yeShoLCAmZXYsIEhfQ1VSUikgIT0gMCkKIAkJcmV0dXJu ICgwKTsKIAljdXJyX251bSA9IGV2Lm51bTsKIAotCSh2b2lkKUZVTlcoaGlz dG9yeSkoaCwgJmV2LCBIX0ZJUlNUKTsKKwloaXN0b3J5KGgsICZldiwgSF9G SVJTVCk7CiAJb2ZmID0gMTsKLQl3aGlsZSAoZXYubnVtICE9IGN1cnJfbnVt ICYmIEZVTlcoaGlzdG9yeSkoaCwgJmV2LCBIX05FWFQpID09IDApCisJd2hp bGUgKGV2Lm51bSAhPSBjdXJyX251bSAmJiBoaXN0b3J5KGgsICZldiwgSF9O RVhUKSA9PSAwKQogCQlvZmYrKzsKIAogCXJldHVybiAob2ZmKTsKQEAgLTE1 MDIsMjIgKzE0OTMsMjIgQEAKIGludAogaGlzdG9yeV90b3RhbF9ieXRlcyh2 b2lkKQogewotCVRZUEUoSGlzdEV2ZW50KSBldjsKKwlIaXN0RXZlbnQgZXY7 CiAJaW50IGN1cnJfbnVtOwogCXNpemVfdCBzaXplOwogCi0JaWYgKEZVTlco aGlzdG9yeSkoaCwgJmV2LCBIX0NVUlIpICE9IDApCisJaWYgKGhpc3Rvcnko aCwgJmV2LCBIX0NVUlIpICE9IDApCiAJCXJldHVybiAoLTEpOwogCWN1cnJf bnVtID0gZXYubnVtOwogCi0JKHZvaWQpRlVOVyhoaXN0b3J5KShoLCAmZXYs IEhfRklSU1QpOworCWhpc3RvcnkoaCwgJmV2LCBIX0ZJUlNUKTsKIAlzaXpl ID0gMDsKIAlkbwotCQlzaXplICs9IFN0cmxlbihldi5zdHIpICogc2l6ZW9m KCpldi5zdHIpOwotCXdoaWxlIChGVU5XKGhpc3RvcnkpKGgsICZldiwgSF9O RVhUKSA9PSAwKTsKKwkJc2l6ZSArPSBzdHJsZW4oZXYuc3RyKTsKKwl3aGls ZSAoaGlzdG9yeShoLCAmZXYsIEhfTkVYVCkgPT0gMCk7CiAKIAkvKiBnZXQg dG8gdGhlIHNhbWUgcG9zaXRpb24gYXMgYmVmb3JlICovCi0JRlVOVyhoaXN0 b3J5KShoLCAmZXYsIEhfUFJFVl9FVkVOVCwgY3Vycl9udW0pOworCWhpc3Rv cnkoaCwgJmV2LCBIX1BSRVZfRVZFTlQsIGN1cnJfbnVtKTsKIAogCXJldHVy biAoaW50KShzaXplKTsKIH0KQEAgLTE1MjksMjEgKzE1MjAsMjEgQEAKIGlu dAogaGlzdG9yeV9zZXRfcG9zKGludCBwb3MpCiB7Ci0JVFlQRShIaXN0RXZl bnQpIGV2OworCUhpc3RFdmVudCBldjsKIAlpbnQgY3Vycl9udW07CiAKIAlp ZiAocG9zID49IGhpc3RvcnlfbGVuZ3RoIHx8IHBvcyA8IDApCiAJCXJldHVy biAoLTEpOwogCi0JKHZvaWQpRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfQ1VS Uik7CisJaGlzdG9yeShoLCAmZXYsIEhfQ1VSUik7CiAJY3Vycl9udW0gPSBl di5udW07CiAKIAkvKgogCSAqIHVzZSBIX0RFTERBVEEgdG8gc2V0IHRvIG50 aCBoaXN0b3J5ICh3aXRob3V0IGRlbGV0ZSkgYnkgcGFzc2luZwogCSAqICh2 b2lkICoqKS0xCiAJICovCi0JaWYgKEZVTlcoaGlzdG9yeSkoaCwgJmV2LCBI X0RFTERBVEEsIHBvcywgKHZvaWQgKiopLTEpKSB7Ci0JCSh2b2lkKUZVTlco aGlzdG9yeSkoaCwgJmV2LCBIX1NFVCwgY3Vycl9udW0pOworCWlmIChoaXN0 b3J5KGgsICZldiwgSF9ERUxEQVRBLCBwb3MsICh2b2lkICoqKS0xKSkgewor CQloaXN0b3J5KGgsICZldiwgSF9TRVQsIGN1cnJfbnVtKTsKIAkJcmV0dXJu KC0xKTsKIAl9CiAJcmV0dXJuICgwKTsKQEAgLTE1NzgsMjMgKzE1NjksMjEg QEAKIGludAogaGlzdG9yeV9zZWFyY2goY29uc3QgY2hhciAqc3RyLCBpbnQg ZGlyZWN0aW9uKQogewotCVRZUEUoSGlzdEV2ZW50KSBldjsKLQljb25zdCBD aGFyICpzdHJwOwotCWNvbnN0IENoYXIgKndzdHI7CisJSGlzdEV2ZW50IGV2 OworCWNvbnN0IGNoYXIgKnN0cnA7CiAJaW50IGN1cnJfbnVtOwogCi0JaWYg KEZVTlcoaGlzdG9yeSkoaCwgJmV2LCBIX0NVUlIpICE9IDApCisJaWYgKGhp c3RvcnkoaCwgJmV2LCBIX0NVUlIpICE9IDApCiAJCXJldHVybiAoLTEpOwog CWN1cnJfbnVtID0gZXYubnVtOwogCi0Jd3N0ciA9IGN0X2RlY29kZV9zdHJp bmcoc3RyLCAmY29udik7CiAJZm9yICg7OykgewotCQlpZiAoKHN0cnAgPSBT dHJzdHIoZXYuc3RyLCB3c3RyKSkgIT0gTlVMTCkKKwkJaWYgKChzdHJwID0g c3Ryc3RyKGV2LnN0ciwgc3RyKSkgIT0gTlVMTCkKIAkJCXJldHVybiAoaW50 KSAoc3RycCAtIGV2LnN0cik7Ci0JCWlmIChGVU5XKGhpc3RvcnkpKGgsICZl diwgZGlyZWN0aW9uIDwgMCA/IEhfTkVYVDpIX1BSRVYpICE9IDApCisJCWlm IChoaXN0b3J5KGgsICZldiwgZGlyZWN0aW9uIDwgMCA/IEhfTkVYVDpIX1BS RVYpICE9IDApCiAJCQlicmVhazsKIAl9Ci0JKHZvaWQpRlVOVyhoaXN0b3J5 KShoLCAmZXYsIEhfU0VULCBjdXJyX251bSk7CisJaGlzdG9yeShoLCAmZXYs IEhfU0VULCBjdXJyX251bSk7CiAJcmV0dXJuICgtMSk7CiB9CiAKQEAgLTE2 MDUsMTAgKzE1OTQsOSBAQAogaW50CiBoaXN0b3J5X3NlYXJjaF9wcmVmaXgo Y29uc3QgY2hhciAqc3RyLCBpbnQgZGlyZWN0aW9uKQogewotCVRZUEUoSGlz dEV2ZW50KSBldjsKKwlIaXN0RXZlbnQgZXY7CiAKLQlyZXR1cm4gKEZVTlco aGlzdG9yeSkoaCwgJmV2LCBkaXJlY3Rpb24gPCAwID8KLQkgICAgSF9QUkVW X1NUUiA6IEhfTkVYVF9TVFIsIHN0cikpOworCXJldHVybiAoaGlzdG9yeSho LCAmZXYsIGRpcmVjdGlvbiA8IDA/IEhfUFJFVl9TVFI6SF9ORVhUX1NUUiwg c3RyKSk7CiB9CiAKIApAQCAtMTYyMSwzMSArMTYwOSwyOSBAQAogaGlzdG9y eV9zZWFyY2hfcG9zKGNvbnN0IGNoYXIgKnN0ciwKIAkJICAgaW50IGRpcmVj dGlvbiBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSksIGludCBwb3MpCiB7 Ci0JVFlQRShIaXN0RXZlbnQpIGV2OworCUhpc3RFdmVudCBldjsKIAlpbnQg Y3Vycl9udW0sIG9mZjsKLQljb25zdCBDaGFyICp3c3RyOwogCiAJb2ZmID0g KHBvcyA+IDApID8gcG9zIDogLXBvczsKIAlwb3MgPSAocG9zID4gMCkgPyAx IDogLTE7CiAKLQlpZiAoRlVOVyhoaXN0b3J5KShoLCAmZXYsIEhfQ1VSUikg IT0gMCkKKwlpZiAoaGlzdG9yeShoLCAmZXYsIEhfQ1VSUikgIT0gMCkKIAkJ cmV0dXJuICgtMSk7CiAJY3Vycl9udW0gPSBldi5udW07CiAKLQlpZiAoaGlz dG9yeV9zZXRfcG9zKG9mZikgIT0gMCB8fCBGVU5XKGhpc3RvcnkpKGgsICZl diwgSF9DVVJSKSAhPSAwKQorCWlmIChoaXN0b3J5X3NldF9wb3Mob2ZmKSAh PSAwIHx8IGhpc3RvcnkoaCwgJmV2LCBIX0NVUlIpICE9IDApCiAJCXJldHVy biAoLTEpOwogCi0Jd3N0ciA9IGN0X2RlY29kZV9zdHJpbmcoc3RyLCAmY29u dik7CisKIAlmb3IgKDs7KSB7Ci0JCWlmIChTdHJzdHIoZXYuc3RyLCB3c3Ry KSkKKwkJaWYgKHN0cnN0cihldi5zdHIsIHN0cikpCiAJCQlyZXR1cm4gKG9m Zik7Ci0JCWlmIChGVU5XKGhpc3RvcnkpKGgsICZldiwgKHBvcyA8IDApID8g SF9QUkVWIDogSF9ORVhUKSAhPSAwKQorCQlpZiAoaGlzdG9yeShoLCAmZXYs IChwb3MgPCAwKSA/IEhfUFJFViA6IEhfTkVYVCkgIT0gMCkKIAkJCWJyZWFr OwogCX0KIAogCS8qIHNldCAiY3VycmVudCIgcG9pbnRlciBiYWNrIHRvIHBy ZXZpb3VzIHN0YXRlICovCi0JKHZvaWQpRlVOVyhoaXN0b3J5KShoLCAmZXYs Ci0JICAgIHBvcyA8IDAgPyBIX05FWFRfRVZFTlQgOiBIX1BSRVZfRVZFTlQs IGN1cnJfbnVtKTsKKwloaXN0b3J5KGgsICZldiwgKHBvcyA8IDApID8gSF9O RVhUX0VWRU5UIDogSF9QUkVWX0VWRU5ULCBjdXJyX251bSk7CiAKIAlyZXR1 cm4gKC0xKTsKIH0KQEAgLTE3NDIsMTAgKzE3MjgsNiBAQAogaW50CiBybF9j b21wbGV0ZShpbnQgaWdub3JlIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p KSwgaW50IGludm9raW5nX2tleSkKIHsKLSNpZmRlZiBXSURFQ0hBUgotCXN0 YXRpYyBjdF9idWZmZXJfdCB3YnJlYWtfY29udiwgc3ByZWZpeF9jb252Owot I2VuZGlmCi0KIAlpZiAoaCA9PSBOVUxMIHx8IGUgPT0gTlVMTCkKIAkJcmxf aW5pdGlhbGl6ZSgpOwogCkBAIC0xNzYxLDggKzE3NDMsNyBAQAogCXJldHVy biBmbl9jb21wbGV0ZShlLAogCSAgICAoQ1BGdW5jdGlvbiAqKXJsX2NvbXBs ZXRpb25fZW50cnlfZnVuY3Rpb24sCiAJICAgIHJsX2F0dGVtcHRlZF9jb21w bGV0aW9uX2Z1bmN0aW9uLAotCSAgICBjdF9kZWNvZGVfc3RyaW5nKHJsX2Jh c2ljX3dvcmRfYnJlYWtfY2hhcmFjdGVycywgJndicmVha19jb252KSwKLQkg ICAgY3RfZGVjb2RlX3N0cmluZyhybF9zcGVjaWFsX3ByZWZpeGVzLCAmc3By ZWZpeF9jb252KSwKKwkgICAgcmxfYmFzaWNfd29yZF9icmVha19jaGFyYWN0 ZXJzLCBybF9zcGVjaWFsX3ByZWZpeGVzLAogCSAgICBfcmxfY29tcGxldGlv bl9hcHBlbmRfY2hhcmFjdGVyX2Z1bmN0aW9uLAogCSAgICAoc2l6ZV90KXJs X2NvbXBsZXRpb25fcXVlcnlfaXRlbXMsCiAJICAgICZybF9jb21wbGV0aW9u X3R5cGUsICZybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9vdmVyLApAQCAtMjIz MSw5ICsyMjEyLDMgQEAKIHJsX2NsZWFudXBfYWZ0ZXJfc2lnbmFsKHZvaWQp CiB7CiB9Ci0KLWludAotcmxfb25fbmV3X2xpbmUodm9pZCkKLXsKLQlyZXR1 cm4gMDsKLX0KSW5kZXg6IGxpYmVkaXQvY2hhcmVkLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gbGliZWRpdC9jaGFyZWQuYwkocmV2aXNpb24gMjM4 MDkwKQorKysgbGliZWRpdC9jaGFyZWQuYwkod29ya2luZyBjb3B5KQpAQCAt MjksNyArMjksNyBAQAogICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgog ICogU1VDSCBEQU1BR0UuCiAgKgotICoJJE5ldEJTRDogY2hhcmVkLmMsdiAx LjI1IDIwMDUvMDgvMDggMDE6NDE6MzAgY2hyaXN0b3MgRXhwICQKKyAqCSRO ZXRCU0Q6IGNoYXJlZC5jLHYgMS4yNyAyMDA5LzAyLzE1IDIxOjU1OjIzIGNo cmlzdG9zIEV4cCAkCiAgKi8KIAogI2lmICFkZWZpbmVkKGxpbnQpICYmICFk ZWZpbmVkKFNDQ1NJRCkKQEAgLTU5LDEyICs1OSwxMiBAQAogewogCWNfdW5k b190ICp2dSA9ICZlbC0+ZWxfY2hhcmVkLmNfdW5kbzsKIAljX3JlZG9fdCAq ciA9ICZlbC0+ZWxfY2hhcmVkLmNfcmVkbzsKLQl1bnNpZ25lZCBpbnQgc2l6 ZTsKKwlzaXplX3Qgc2l6ZTsKIAogCS8qIFNhdmUgZW50aXJlIGxpbmUgZm9y IHVuZG8gKi8KIAlzaXplID0gZWwtPmVsX2xpbmUubGFzdGNoYXIgLSBlbC0+ ZWxfbGluZS5idWZmZXI7CiAJdnUtPmxlbiA9IHNpemU7Ci0JdnUtPmN1cnNv ciA9IGVsLT5lbF9saW5lLmN1cnNvciAtIGVsLT5lbF9saW5lLmJ1ZmZlcjsK Kwl2dS0+Y3Vyc29yID0gKGludCkoZWwtPmVsX2xpbmUuY3Vyc29yIC0gZWwt PmVsX2xpbmUuYnVmZmVyKTsKIAltZW1jcHkodnUtPmJ1ZiwgZWwtPmVsX2xp bmUuYnVmZmVyLCBzaXplKTsKIAogCS8qIHNhdmUgY29tbWFuZCBpbmZvIGZv ciByZWRvICovCkBAIC04Myw3ICs4Myw3IEBACiB7CiAJY19raWxsX3QgKmsg PSAmZWwtPmVsX2NoYXJlZC5jX2tpbGw7CiAKLQltZW1jcHkoay0+YnVmLCBw dHIsIHNpemUgKzB1KTsKKwltZW1jcHkoay0+YnVmLCBwdHIsIChzaXplX3Qp c2l6ZSk7CiAJay0+bGFzdCA9IGstPmJ1ZiArIHNpemU7CiB9CiAKQEAgLTk3 LDcgKzk3LDcgQEAKIAljaGFyICpjcDsKIAogCWlmIChlbC0+ZWxfbGluZS5s YXN0Y2hhciArIG51bSA+PSBlbC0+ZWxfbGluZS5saW1pdCkgewotCQlpZiAo IWNoX2VubGFyZ2VidWZzKGVsLCBudW0gKzB1KSkKKwkJaWYgKCFjaF9lbmxh cmdlYnVmcyhlbCwgKHNpemVfdCludW0pKQogCQkJcmV0dXJuOwkJLyogY2Fu J3QgZ28gcGFzdCBlbmQgb2YgYnVmZmVyICovCiAJfQogCkBAIC0xMTgsNyAr MTE4LDcgQEAKIHsKIAogCWlmIChlbC0+ZWxfbGluZS5jdXJzb3IgKyBudW0g PiBlbC0+ZWxfbGluZS5sYXN0Y2hhcikKLQkJbnVtID0gZWwtPmVsX2xpbmUu bGFzdGNoYXIgLSBlbC0+ZWxfbGluZS5jdXJzb3I7CisJCW51bSA9IChpbnQp KGVsLT5lbF9saW5lLmxhc3RjaGFyIC0gZWwtPmVsX2xpbmUuY3Vyc29yKTsK IAogCWlmIChlbC0+ZWxfbWFwLmN1cnJlbnQgIT0gZWwtPmVsX21hcC5lbWFj cykgewogCQljdl91bmRvKGVsKTsKQEAgLTE1OSw3ICsxNTksNyBAQAogewog CiAJaWYgKGVsLT5lbF9saW5lLmN1cnNvciAtIG51bSA8IGVsLT5lbF9saW5l LmJ1ZmZlcikKLQkJbnVtID0gZWwtPmVsX2xpbmUuY3Vyc29yIC0gZWwtPmVs X2xpbmUuYnVmZmVyOworCQludW0gPSAoaW50KShlbC0+ZWxfbGluZS5jdXJz b3IgLSBlbC0+ZWxfbGluZS5idWZmZXIpOwogCiAJaWYgKGVsLT5lbF9tYXAu Y3VycmVudCAhPSBlbC0+ZWxfbWFwLmVtYWNzKSB7CiAJCWN2X3VuZG8oZWwp OwpAQCAtMzc1LDcgKzM3NSw3IEBACiAJCS8qIHNhbml0eSAqLwogCQlyZXR1 cm47CiAKLQlzaXplID0gZWwtPmVsX2xpbmUuY3Vyc29yIC0gZWwtPmVsX2No YXJlZC5jX3ZjbWQucG9zOworCXNpemUgPSAoaW50KShlbC0+ZWxfbGluZS5j dXJzb3IgLSBlbC0+ZWxfY2hhcmVkLmNfdmNtZC5wb3MpOwogCWlmIChzaXpl ID09IDApCiAJCXNpemUgPSAxOwogCWVsLT5lbF9saW5lLmN1cnNvciA9IGVs LT5lbF9jaGFyZWQuY192Y21kLnBvczsKQEAgLTUyOSw4ICs1MjksNyBAQAog fQogCiBwcml2YXRlIHZvaWQKLWNoX19jbGVhcm1hY3JvKGVsKQotCUVkaXRM aW5lICplbDsKK2NoX19jbGVhcm1hY3JvKEVkaXRMaW5lICplbCkKIHsKIAlj X21hY3JvX3QgKm1hID0gJmVsLT5lbF9jaGFyZWQuY19tYWNybzsKIAl3aGls ZSAobWEtPmxldmVsID49IDApCkBAIC01NDIsOSArNTQxLDcgQEAKICAqCVJl dHVybnMgMSBpZiBzdWNjZXNzZnVsLCAwIGlmIG5vdC4KICAqLwogcHJvdGVj dGVkIGludAotY2hfZW5sYXJnZWJ1ZnMoZWwsIGFkZGxlbikKLQlFZGl0TGlu ZSAqZWw7Ci0Jc2l6ZV90IGFkZGxlbjsKK2NoX2VubGFyZ2VidWZzKEVkaXRM aW5lICplbCwgc2l6ZV90IGFkZGxlbikKIHsKIAlzaXplX3Qgc3osIG5ld3N6 OwogCWNoYXIgKm5ld2J1ZmZlciwgKm9sZGJ1ZiwgKm9sZGtidWY7CkBAIC02 OTUsMTIgKzY5MiwxMiBAQAogY19nZXRzKEVkaXRMaW5lICplbCwgY2hhciAq YnVmLCBjb25zdCBjaGFyICpwcm9tcHQpCiB7CiAJY2hhciBjaDsKLQlpbnQg bGVuOworCXNzaXplX3QgbGVuOwogCWNoYXIgKmNwID0gZWwtPmVsX2xpbmUu YnVmZmVyOwogCiAJaWYgKHByb21wdCkgewogCQlsZW4gPSBzdHJsZW4ocHJv bXB0KTsKLQkJbWVtY3B5KGNwLCBwcm9tcHQsIGxlbiArIDB1KTsKKwkJbWVt Y3B5KGNwLCBwcm9tcHQsIChzaXplX3QpbGVuKTsKIAkJY3AgKz0gbGVuOwog CX0KIAlsZW4gPSAwOwpAQCAtNzIxLDcgKzcxOCw3IEBACiAKIAkJY2FzZSAn XDAxMCc6CS8qIERlbGV0ZSBhbmQgYmFja3NwYWNlICovCiAJCWNhc2UgJ1wx NzcnOgotCQkJaWYgKGxlbiA8PSAwKSB7CisJCQlpZiAobGVuID09IDApIHsK IAkJCQlsZW4gPSAtMTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTc0OSw3ICs3 NDYsNyBAQAogCWVsLT5lbF9saW5lLmJ1ZmZlclswXSA9ICdcMCc7CiAJZWwt PmVsX2xpbmUubGFzdGNoYXIgPSBlbC0+ZWxfbGluZS5idWZmZXI7CiAJZWwt PmVsX2xpbmUuY3Vyc29yID0gZWwtPmVsX2xpbmUuYnVmZmVyOwotCXJldHVy biBsZW47CisJcmV0dXJuIChpbnQpbGVuOwogfQogCiAKQEAgLTc3MSw2ICs3 NjgsNiBAQAogCQkgICAgIHB0ciA+PSBlbC0+ZWxfbGluZS5idWZmZXIgJiYg KnB0ciAhPSAnXG4nOwogCQkgICAgIHB0ci0tKQogCQkJY29udGludWU7Ci0J CXJldHVybiAoZWwtPmVsX2xpbmUuY3Vyc29yIC0gcHRyIC0gMSk7CisJCXJl dHVybiAoaW50KShlbC0+ZWxfbGluZS5jdXJzb3IgLSBwdHIgLSAxKTsKIAl9 CiB9CkluZGV4OiBsaWJlZGl0L2NoYXJlZC5oCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGxpYmVkaXQvY2hhcmVkLmgJKHJldmlzaW9uIDIzODA5MCkK KysrIGxpYmVkaXQvY2hhcmVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcg KzMwLDcgQEAKICAqIFNVQ0ggREFNQUdFLgogICoKICAqCUAoIyljaGFyZWQu aAk4LjEgKEJlcmtlbGV5KSA2LzQvOTMKLSAqCSROZXRCU0Q6IGNoYXJlZC5o LHYgMS4xNyAyMDA2LzAzLzA2IDIxOjExOjU2IGNocmlzdG9zIEV4cCAkCisg KgkkTmV0QlNEOiBjaGFyZWQuaCx2IDEuMTggMjAwOS8wMi8xNSAyMTo1NToy MyBjaHJpc3RvcyBFeHAgJAogICogJEZyZWVCU0QkCiAgKi8KIApAQCAtNzEs NyArNzEsNyBAQAogICovCiB0eXBlZGVmIHN0cnVjdCBjX3VuZG9fdCB7CiAJ aW50CSBsZW47CQkJLyogbGVuZ3RoIG9mIHNhdmVkIGxpbmUgKi8KLQlpbnQJ IGN1cnNvcjsJCS8qIHBvc2l0aW9uIG9mIHNhdmVkIGN1cnNvciAqLworCXNz aXplX3QJIGN1cnNvcjsJCS8qIHBvc2l0aW9uIG9mIHNhdmVkIGN1cnNvciAq LwogCWNoYXIJKmJ1ZjsJCQkvKiBmdWxsIHNhdmVkIHRleHQgKi8KIH0gY191 bmRvX3Q7CiAK --770692889-285587537-1341447905=:65270--