From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5C312BE638 for ; Wed, 8 Oct 2025 16:41:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759941682; cv=none; b=hTuGI+pEKEiU/FsiyQbs7jQ0oblTwjkv1VPoWKf8sv7L62BUgp2xVaoQFY0W6146MTR9QFJ9qHJUe7petfA1/Wsy17pUmmzfQqSgmwhYSwVv5j6nnNJTqsFrsOhT4yT1wOCvGkFWlfhnVmQMiAWcMzuZhp3DjoWx/9OEp4bELIs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759941682; c=relaxed/simple; bh=M4AcT6SKkk+Wcp5E0wcofcw9egrV8jG7vqeWAvroyw0=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=Ztt/FAS7oegRqg4ko/buWt5w1id9h+p37i/70+0eLs2MGCDtgOMB87Czf4FMi8PKVWtQD9TS2hV+ZmQEbcnbHuFKfi31rV8R2/BufnRP/OwLCQhNEy/HtMlzohlVqXD+TXlqnA41HoV4uiHXHxPN/WWo4fZ7CGogpJM6H+aGI4o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NgymSpAd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NgymSpAd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA323C4CEF5; Wed, 8 Oct 2025 16:41:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759941682; bh=M4AcT6SKkk+Wcp5E0wcofcw9egrV8jG7vqeWAvroyw0=; h=Date:From:To:Subject:From; b=NgymSpAdk+ISn0FJcqOOwWbb7n5o/2UHY3K+yY7rT56j4m2pO0o4RyBrPCHbvi51T jspbE8T9bvqPQeC0lGfsDjGVysk2Tez3mhgp4JC3bdynEgxy4/bSyk9ne7srkxukcz uOYtlYwPF1QM7osg049Jqwbqpv16DL8gVPJ4zzcq+kPF8GotSjiiq2jNgoEqQhjDCO K2RUfnt03xBDeCMBMQ0IkXAXcWa131nm68tE4U8t8Tc1gxBYl8lrmrqM9r6P6Zvf57 IjvAcYzleCOMlq0pHGJwgvj1P4xeVkE0ANJslwOMjiD0WPzp3sWxrv4Yef0jezp/0S Pa7ap0Vrv2fyw== Date: Wed, 8 Oct 2025 18:41:17 +0200 From: Andrey Albershteyn To: linux-xfs@vger.kernel.org, aalbersh@kernel.org, cem@kernel.org, cmaiolino@redhat.com, djwong@kernel.org, hch@lst.de, pchelkin@ispras.ru, pranav.tyagi03@gmail.com, sandeen@redhat.com Subject: [PATCH 0/12] xfsprogs: libxfs sync v6.17 Message-ID: Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="4h72goa7wacppg7q" Content-Disposition: inline --4h72goa7wacppg7q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline MIME-Version: 1.0 Hey all, This is libxfs sync with v6.17. Manual modifications diff in attachment. -- - Andrey --4h72goa7wacppg7q Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="libxfs-apply-manual-fixes.patch" Content-Transfer-Encoding: base64 MIME-Version: 1.0 ZGlmZiAtLWdpdCBhL2RiL2F0dHJzZXQuYyBiL2RiL2F0dHJzZXQuYw0KaW5kZXggZTNmZmI3 NWFhNC4uMjczYzIwMjk1NiAxMDA2NDQNCi0tLSBhL2RiL2F0dHJzZXQuYw0KKysrIGIvZGIv YXR0cnNldC5jDQpAQCAtODIzLDExICs4MjMsNyBAQA0KIAkJcmV0dXJuIDA7DQogCX0NCiAN Ci0JZXJyb3IgPSAtbGlieGZzX3RyYW5zX2FsbG9jX2VtcHR5KG1wLCAmdHApOw0KLQlpZiAo ZXJyb3IpIHsNCi0JCWRicHJpbnRmKF8oImZhaWxlZCB0byBhbGxvY2F0ZSBlbXB0eSB0cmFu c2FjdGlvblxuIikpOw0KLQkJcmV0dXJuIDA7DQotCX0NCisJdHAgPSBsaWJ4ZnNfdHJhbnNf YWxsb2NfZW1wdHkobXApOw0KIA0KIAllcnJvciA9IC1saWJ4ZnNfaWdldChtcCwgTlVMTCwg aW9jdXJfdG9wLT5pbm8sIDAsICZpcCk7DQogCWlmIChlcnJvcikgew0KZGlmZiAtLWdpdCBh L2RiL2RxdW90LmMgYi9kYi9kcXVvdC5jDQppbmRleCBkMmM3NmZkNzBiLi5jMDI4ZDUwZTRj IDEwMDY0NA0KLS0tIGEvZGIvZHF1b3QuYw0KKysrIGIvZGIvZHF1b3QuYw0KQEAgLTkyLDkg KzkyLDcgQEANCiAJeGZzX2lub190CQlyZXQgPSBOVUxMRlNJTk87DQogCWludAkJCWVycm9y Ow0KIA0KLQllcnJvciA9IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXAsICZ0cCk7DQot CWlmIChlcnJvcikNCi0JCXJldHVybiBOVUxMRlNJTk87DQorCXRwID0gbGlieGZzX3RyYW5z X2FsbG9jX2VtcHR5KG1wKTsNCiANCiAJaWYgKHhmc19oYXNfbWV0YWRpcihtcCkpIHsNCiAJ CWVycm9yID0gLWxpYnhmc19kcWlub2RlX2xvYWRfcGFyZW50KHRwLCAmZHApOw0KZGlmZiAt LWdpdCBhL2RiL2ZzbWFwLmMgYi9kYi9mc21hcC5jDQppbmRleCBkZGJlNGU2YTNkLi5hNTlh NGQxMjMwIDEwMDY0NA0KLS0tIGEvZGIvZnNtYXAuYw0KKysrIGIvZGIvZnNtYXAuYw0KQEAg LTEzMywxMyArMTMzLDcgQEANCiAJc3RydWN0IHhmc19idHJlZV9jdXIJKmJ0X2N1cjsNCiAJ aW50CQkJZXJyb3I7DQogDQotCWVycm9yID0gLWxpYnhmc190cmFuc19hbGxvY19lbXB0eSht cCwgJnRwKTsNCi0JaWYgKGVycm9yKSB7DQotCQlkYnByaW50ZigNCi0gXygiQ2Fubm90IGFs bG9jIHRyYW5zYWN0aW9uIHRvIGxvb2sgdXAgcnRncm91cCAldSBybWFwIGlub2RlXG4iKSwN Ci0JCQkJcnRnX3Jnbm8ocnRnKSk7DQotCQlyZXR1cm4gZXJyb3I7DQotCX0NCisJdHAgPSBs aWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXApOw0KIA0KIAllcnJvciA9IC1saWJ4ZnNfcnRn aW5vZGVfbG9hZF9wYXJlbnQodHApOw0KIAlpZiAoZXJyb3IpIHsNCmRpZmYgLS1naXQgYS9k Yi9pbmZvLmMgYi9kYi9pbmZvLmMNCmluZGV4IDZhZDNlMjM4MzIuLjljMjMzYzljMGUgMTAw NjQ0DQotLS0gYS9kYi9pbmZvLmMNCisrKyBiL2RiL2luZm8uYw0KQEAgLTE3NCwxMyArMTc0 LDcgQEANCiAJeGZzX2ZpbGJsa3NfdAkJdXNlZCA9IDA7DQogCWludAkJCWVycm9yOw0KIA0K LQllcnJvciA9IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXAsICZ0cCk7DQotCWlmIChl cnJvcikgew0KLQkJZGJwcmludGYoDQotIF8oIkNhbm5vdCBhbGxvYyB0cmFuc2FjdGlvbiB0 byBsb29rIHVwIHJ0Z3JvdXAgJXUgcm1hcCBpbm9kZVxuIiksDQotCQkJCXJ0Z19yZ25vKHJ0 ZykpOw0KLQkJcmV0dXJuOw0KLQl9DQorCXRwID0gbGlieGZzX3RyYW5zX2FsbG9jX2VtcHR5 KG1wKTsNCiANCiAJZXJyb3IgPSAtbGlieGZzX3J0Z2lub2RlX2xvYWRfcGFyZW50KHRwKTsN CiAJaWYgKGVycm9yKSB7DQpkaWZmIC0tZ2l0IGEvZGIvbWV0YWR1bXAuYyBiL2RiL21ldGFk dW1wLmMNCmluZGV4IDM0ZjJkNjE3MDAuLjI0ZWI5OWRhMTcgMTAwNjQ0DQotLS0gYS9kYi9t ZXRhZHVtcC5jDQorKysgYi9kYi9tZXRhZHVtcC5jDQpAQCAtMjk4OSw3ICsyOTg5LDcgQEAN CiAJCWlmIChtZXRhZHVtcC5vYmZ1c2NhdGUpIHsNCiAJCQlzdHJ1Y3QgeGZzX3NiICpzYiA9 IGlvY3VyX3RvcC0+ZGF0YTsNCiAJCQltZW1zZXQoc2ItPnNiX2ZuYW1lLCAnTCcsDQotCQkJ ICAgICAgIG1pbihzdHJsZW4oc2ItPnNiX2ZuYW1lKSwgc2l6ZW9mKHNiLT5zYl9mbmFtZSkp KTsNCisJCQkgICAgICAgc3RybmxlbihzYi0+c2JfZm5hbWUsIHNpemVvZihzYi0+c2JfZm5h bWUpKSk7DQogCQkJaW9jdXJfdG9wLT5uZWVkX2NyYyA9IDE7DQogCQl9DQogCQlpZiAod3Jp dGVfYnVmKGlvY3VyX3RvcCkpDQpkaWZmIC0tZ2l0IGEvZGIvbmFtZWkuYyBiL2RiL25hbWVp LmMNCmluZGV4IDFkOTU4MWMzMjMuLjBhNTBlYzg3ZGYgMTAwNjQ0DQotLS0gYS9kYi9uYW1l aS5jDQorKysgYi9kYi9uYW1laS5jDQpAQCAtOTQsOSArOTQsNyBAQA0KIAl1bnNpZ25lZCBp bnQJCWk7DQogCWludAkJCWVycm9yOw0KIA0KLQllcnJvciA9IC1saWJ4ZnNfdHJhbnNfYWxs b2NfZW1wdHkobXAsICZ0cCk7DQotCWlmIChlcnJvcikNCi0JCXJldHVybiBlcnJvcjsNCisJ dHAgPSBsaWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXApOw0KIA0KIAllcnJvciA9IC1saWJ4 ZnNfaWdldChtcCwgdHAsIGlubywgMCwgJmRwKTsNCiAJaWYgKGVycm9yKQ0KZGlmZiAtLWdp dCBhL2RiL3JkdW1wLmMgYi9kYi9yZHVtcC5jDQppbmRleCBhNTBkZjRiOGM3Li41OTlkMDcy N2U3IDEwMDY0NA0KLS0tIGEvZGIvcmR1bXAuYw0KKysrIGIvZGIvcmR1bXAuYw0KQEAgLTky NiwxNSArOTI2LDEwIEBADQogCQlzZXRfY3VyX2lub2RlKG1wLT5tX3NiLnNiX3Jvb3Rpbm8p Ow0KIAl9DQogDQotCXJldCA9IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXAsICZ0cCk7 DQotCWlmIChyZXQpIHsNCi0JCWRicHJpbnRmKF8oImFsbG9jYXRpbmcgc3RhdGU6ICVzXG4i KSwgc3RyZXJyb3IocmV0KSk7DQotCQlnb3RvIG91dF9wYnVmOw0KLQl9DQorCXRwID0gbGli eGZzX3RyYW5zX2FsbG9jX2VtcHR5KG1wKTsNCiANCiAJcmV0ID0gcmR1bXBfZmlsZSh0cCwg aW9jdXJfdG9wLT5pbm8sIGRlc3RkaXIsIHBidWYpOw0KIAlsaWJ4ZnNfdHJhbnNfY2FuY2Vs KHRwKTsNCi1vdXRfcGJ1ZjoNCiAJZnJlZShwYnVmKTsNCiAJcmV0dXJuIHJldDsNCiB9DQpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9wbGF0Zm9ybV9kZWZzLmggYi9pbmNsdWRlL3BsYXRmb3Jt X2RlZnMuaA0KaW5kZXggNzRhMDA1ODNlYi4uZGE5NjY0OTBiMCAxMDA2NDQNCi0tLSBhL2lu Y2x1ZGUvcGxhdGZvcm1fZGVmcy5oDQorKysgYi9pbmNsdWRlL3BsYXRmb3JtX2RlZnMuaA0K QEAgLTI5NCw0ICsyOTQsMTcgQEANCiAJX19hID4gX19iID8gKF9fYSAtIF9fYikgOiAoX19i IC0gX19hKTsJXA0KIH0pDQogDQorI2RlZmluZSBjbXBfaW50KGwsIHIpCQkoKGwgPiByKSAt IChsIDwgcikpDQorDQorI2lmIF9faGFzX2F0dHJpYnV0ZShfX25vbnN0cmluZ19fKQ0KKyMg ZGVmaW5lIF9fbm9uc3RyaW5nICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fKChf X25vbnN0cmluZ19fKSkNCisjZWxzZQ0KKyMgZGVmaW5lIF9fbm9uc3RyaW5nDQorI2VuZGlm DQorDQorc3RydWN0IGt2ZWMgew0KKwl2b2lkICppb3ZfYmFzZTsNCisJc2l6ZV90IGlvdl9s ZW47DQorfTsNCisNCiAjZW5kaWYJLyogX19YRlNfUExBVEZPUk1fREVGU19IX18gKi8NCmRp ZmYgLS1naXQgYS9pbmNsdWRlL3hmc190cmFucy5oIGIvaW5jbHVkZS94ZnNfdHJhbnMuaA0K aW5kZXggMjQ4MDY0MDE5YS4uNGY0YmZmZjM1MCAxMDA2NDQNCi0tLSBhL2luY2x1ZGUveGZz X3RyYW5zLmgNCisrKyBiL2luY2x1ZGUveGZzX3RyYW5zLmgNCkBAIC05OCw3ICs5OCw3IEBA DQogCQkJc3RydWN0IHhmc190cmFucyAqKnRwcCwgaW50ICpub3NwYWNlX2Vycm9yKTsNCiBp bnQJbGlieGZzX3RyYW5zX2FsbG9jX3JvbGxhYmxlKHN0cnVjdCB4ZnNfbW91bnQgKm1wLCB1 aW50IGJsb2NrcywNCiAJCQkJICAgIHN0cnVjdCB4ZnNfdHJhbnMgKip0cHApOw0KLWludAls aWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkoc3RydWN0IHhmc19tb3VudCAqbXAsIHN0cnVjdCB4 ZnNfdHJhbnMgKip0cHApOw0KK3N0cnVjdCB4ZnNfdHJhbnMgKmxpYnhmc190cmFuc19hbGxv Y19lbXB0eShzdHJ1Y3QgeGZzX21vdW50ICptcCk7DQogaW50CWxpYnhmc190cmFuc19jb21t aXQoc3RydWN0IHhmc190cmFucyAqKTsNCiB2b2lkCWxpYnhmc190cmFuc19jYW5jZWwoc3Ry dWN0IHhmc190cmFucyAqKTsNCiBpbnQJbGlieGZzX3RyYW5zX3Jlc2VydmVfbW9yZShzdHJ1 Y3QgeGZzX3RyYW5zICp0cCwgdWludCBibG9ja3MsDQpkaWZmIC0tZ2l0IGEvbGlieGZzL2lu b2RlLmMgYi9saWJ4ZnMvaW5vZGUuYw0KaW5kZXggMDU5OGE3MGZmNS4uMWNlMTU5ZmNjOSAx MDA2NDQNCi0tLSBhL2xpYnhmcy9pbm9kZS5jDQorKysgYi9saWJ4ZnMvaW5vZGUuYw0KQEAg LTI1OCw5ICsyNTgsNyBAQA0KIAlzdHJ1Y3QgeGZzX3RyYW5zCSp0cDsNCiAJaW50CQkJZXJy b3I7DQogDQotCWVycm9yID0gbGlieGZzX3RyYW5zX2FsbG9jX2VtcHR5KG1wLCAmdHApOw0K LQlpZiAoZXJyb3IpDQotCQlyZXR1cm4gZXJyb3I7DQorCXRwID0gbGlieGZzX3RyYW5zX2Fs bG9jX2VtcHR5KG1wKTsNCiANCiAJZXJyb3IgPSBsaWJ4ZnNfdHJhbnNfbWV0YWZpbGVfaWdl dCh0cCwgaW5vLCBtZXRhZmlsZV90eXBlLCBpcHApOw0KIAlsaWJ4ZnNfdHJhbnNfY2FuY2Vs KHRwKTsNCmRpZmYgLS1naXQgYS9saWJ4ZnMvdHJhbnMuYyBiL2xpYnhmcy90cmFucy5jDQpp bmRleCA1Yzg5NmJhMTY2Li42NDQ1N2QxNzEwIDEwMDY0NA0KLS0tIGEvbGlieGZzL3RyYW5z LmMNCisrKyBiL2xpYnhmcy90cmFucy5jDQpAQCAtMjQ3LDE4ICsyNDcsMTIgQEANCiAJcmV0 dXJuIGVycm9yOw0KIH0NCiANCi1pbnQNCi1saWJ4ZnNfdHJhbnNfYWxsb2MoDQorc3RhdGlj IGlubGluZSBzdHJ1Y3QgeGZzX3RyYW5zICoNCitfX2xpYnhmc190cmFuc19hbGxvYygNCiAJ c3RydWN0IHhmc19tb3VudAkqbXAsDQotCXN0cnVjdCB4ZnNfdHJhbnNfcmVzCSpyZXNwLA0K LQl1bnNpZ25lZCBpbnQJCWJsb2NrcywNCi0JdW5zaWduZWQgaW50CQlydGV4dGVudHMsDQot CXVuc2lnbmVkIGludAkJZmxhZ3MsDQotCXN0cnVjdCB4ZnNfdHJhbnMJKip0cHApDQotDQor CXVpbnQJCQlmbGFncykNCiB7DQogCXN0cnVjdCB4ZnNfdHJhbnMJKnRwOw0KLQlpbnQJCQll cnJvcjsNCiANCiAJdHAgPSBrbWVtX2NhY2hlX3phbGxvYyh4ZnNfdHJhbnNfY2FjaGUsIDAp Ow0KIAl0cC0+dF9tb3VudHAgPSBtcDsNCkBAIC0yNjYsNiArMjYwLDIyIEBADQogCUlOSVRf TElTVF9IRUFEKCZ0cC0+dF9kZm9wcyk7DQogCXRwLT50X2hpZ2hlc3RfYWdubyA9IE5VTExB R05VTUJFUjsNCiANCisJcmV0dXJuIHRwOw0KK30NCisNCitpbnQNCitsaWJ4ZnNfdHJhbnNf YWxsb2MoDQorCXN0cnVjdCB4ZnNfbW91bnQJKm1wLA0KKwlzdHJ1Y3QgeGZzX3RyYW5zX3Jl cwkqcmVzcCwNCisJdW5zaWduZWQgaW50CQlibG9ja3MsDQorCXVuc2lnbmVkIGludAkJcnRl eHRlbnRzLA0KKwl1bnNpZ25lZCBpbnQJCWZsYWdzLA0KKwlzdHJ1Y3QgeGZzX3RyYW5zCSoq dHBwKQ0KKw0KK3sNCisJc3RydWN0IHhmc190cmFucwkqdHAgPSBfX2xpYnhmc190cmFuc19h bGxvYyhtcCwgZmxhZ3MpOw0KKwlpbnQJCQllcnJvcjsNCisNCiAJZXJyb3IgPSB4ZnNfdHJh bnNfcmVzZXJ2ZSh0cCwgcmVzcCwgYmxvY2tzLCBydGV4dGVudHMpOw0KIAlpZiAoZXJyb3Ip IHsNCiAJCXhmc190cmFuc19jYW5jZWwodHApOw0KQEAgLTI5MCwxNCArMzAwLDExIEBADQog ICogTm90ZSB0aGUgemVyby1sZW5ndGggcmVzZXJ2YXRpb247IHRoaXMgdHJhbnNhY3Rpb24g TVVTVCBiZSBjYW5jZWxsZWQNCiAgKiB3aXRob3V0IGFueSBkaXJ0eSBkYXRhLg0KICAqLw0K LWludA0KK3N0cnVjdCB4ZnNfdHJhbnMgKg0KIGxpYnhmc190cmFuc19hbGxvY19lbXB0eSgN Ci0Jc3RydWN0IHhmc19tb3VudAkJKm1wLA0KLQlzdHJ1Y3QgeGZzX3RyYW5zCQkqKnRwcCkN CisJc3RydWN0IHhmc19tb3VudAkJKm1wKQ0KIHsNCi0Jc3RydWN0IHhmc190cmFuc19yZXMJ CXJlc3YgPSB7MH07DQotDQotCXJldHVybiB4ZnNfdHJhbnNfYWxsb2MobXAsICZyZXN2LCAw LCAwLCBYRlNfVFJBTlNfTk9fV1JJVEVDT1VOVCwgdHBwKTsNCisJcmV0dXJuIF9fbGlieGZz X3RyYW5zX2FsbG9jKG1wLCBYRlNfVFJBTlNfTk9fV1JJVEVDT1VOVCk7DQogfQ0KIA0KIC8q DQpkaWZmIC0tZ2l0IGEvbGlieGxvZy94ZnNfbG9nX3JlY292ZXIuYyBiL2xpYnhsb2cveGZz X2xvZ19yZWNvdmVyLmMNCmluZGV4IDI3NTU5M2EzYWMuLjdlZjQzOTU2ZTkgMTAwNjQ0DQot LS0gYS9saWJ4bG9nL3hmc19sb2dfcmVjb3Zlci5jDQorKysgYi9saWJ4bG9nL3hmc19sb2df cmVjb3Zlci5jDQpAQCAtMTAzNCwxMyArMTAzNCwxMyBAQA0KIAlpdGVtID0gbGlzdF9lbnRy eSh0cmFucy0+cl9pdGVtcS5wcmV2LCBzdHJ1Y3QgeGxvZ19yZWNvdmVyX2l0ZW0sDQogCQkJ ICByaV9saXN0KTsNCiANCi0Jb2xkX3B0ciA9IGl0ZW0tPnJpX2J1ZltpdGVtLT5yaV9jbnQt MV0uaV9hZGRyOw0KLQlvbGRfbGVuID0gaXRlbS0+cmlfYnVmW2l0ZW0tPnJpX2NudC0xXS5p X2xlbjsNCisJb2xkX3B0ciA9IGl0ZW0tPnJpX2J1ZltpdGVtLT5yaV9jbnQtMV0uaW92X2Jh c2U7DQorCW9sZF9sZW4gPSBpdGVtLT5yaV9idWZbaXRlbS0+cmlfY250LTFdLmlvdl9sZW47 DQogDQogCXB0ciA9IGtyZWFsbG9jKG9sZF9wdHIsIGxlbitvbGRfbGVuLCAwKTsNCiAJbWVt Y3B5KCZwdHJbb2xkX2xlbl0sIGRwLCBsZW4pOyAvKiBkLCBzLCBsICovDQotCWl0ZW0tPnJp X2J1ZltpdGVtLT5yaV9jbnQtMV0uaV9sZW4gKz0gbGVuOw0KLQlpdGVtLT5yaV9idWZbaXRl bS0+cmlfY250LTFdLmlfYWRkciA9IHB0cjsNCisJaXRlbS0+cmlfYnVmW2l0ZW0tPnJpX2Nu dC0xXS5pb3ZfbGVuICs9IGxlbjsNCisJaXRlbS0+cmlfYnVmW2l0ZW0tPnJpX2NudC0xXS5p b3ZfYmFzZSA9IHB0cjsNCiAJdHJhY2VfeGZzX2xvZ19yZWNvdmVyX2l0ZW1fYWRkX2NvbnQo bG9nLCB0cmFucywgaXRlbSwgMCk7DQogCXJldHVybiAwOw0KIH0NCkBAIC0xMTE3LDggKzEx MTcsOCBAQA0KIAl9DQogCUFTU0VSVChpdGVtLT5yaV90b3RhbCA+IGl0ZW0tPnJpX2NudCk7 DQogCS8qIERlc2NyaXB0aW9uIHJlZ2lvbiBpcyByaV9idWZbMF0gKi8NCi0JaXRlbS0+cmlf YnVmW2l0ZW0tPnJpX2NudF0uaV9hZGRyID0gcHRyOw0KLQlpdGVtLT5yaV9idWZbaXRlbS0+ cmlfY250XS5pX2xlbiAgPSBsZW47DQorCWl0ZW0tPnJpX2J1ZltpdGVtLT5yaV9jbnRdLmlv dl9iYXNlID0gcHRyOw0KKwlpdGVtLT5yaV9idWZbaXRlbS0+cmlfY250XS5pb3ZfbGVuICA9 IGxlbjsNCiAJaXRlbS0+cmlfY250Kys7DQogCXRyYWNlX3hmc19sb2dfcmVjb3Zlcl9pdGVt X2FkZChsb2csIHRyYW5zLCBpdGVtLCAwKTsNCiAJcmV0dXJuIDA7DQpAQCAtMTE0MCw3ICsx MTQwLDcgQEANCiAJCS8qIEZyZWUgdGhlIHJlZ2lvbnMgaW4gdGhlIGl0ZW0uICovDQogCQls aXN0X2RlbCgmaXRlbS0+cmlfbGlzdCk7DQogCQlmb3IgKGkgPSAwOyBpIDwgaXRlbS0+cmlf Y250OyBpKyspDQotCQkJa2ZyZWUoaXRlbS0+cmlfYnVmW2ldLmlfYWRkcik7DQorCQkJa2Zy ZWUoaXRlbS0+cmlfYnVmW2ldLmlvdl9iYXNlKTsNCiAJCS8qIEZyZWUgdGhlIGl0ZW0gaXRz ZWxmICovDQogCQlrZnJlZShpdGVtLT5yaV9idWYpOw0KIAkJa2ZyZWUoaXRlbSk7DQpkaWZm IC0tZ2l0IGEvbG9ncHJpbnQvbG9nX3ByaW50X2FsbC5jIGIvbG9ncHJpbnQvbG9nX3ByaW50 X2FsbC5jDQppbmRleCAxNDk4ZWY5NzI0Li4zOTk0NmYzMmQ0IDEwMDY0NA0KLS0tIGEvbG9n cHJpbnQvbG9nX3ByaW50X2FsbC5jDQorKysgYi9sb2dwcmludC9sb2dfcHJpbnRfYWxsLmMN CkBAIC03OCw3ICs3OCw3IEBADQogCXhmc19kYWRkcl90CQlibGtubzsNCiAJc3RydWN0IHhm c19kaXNrX2RxdW90CSpkZHE7DQogDQotCWYgPSAoeGZzX2J1Zl9sb2dfZm9ybWF0X3QgKilp dGVtLT5yaV9idWZbMF0uaV9hZGRyOw0KKwlmID0gKHhmc19idWZfbG9nX2Zvcm1hdF90ICop aXRlbS0+cmlfYnVmWzBdLmlvdl9iYXNlOw0KIAlwcmludGYoIgkiKTsNCiAJQVNTRVJUKGYt PmJsZl90eXBlID09IFhGU19MSV9CVUYpOw0KIAlwcmludGYoXygiQlVGOiAgI3JlZ3M6JWQg ICBzdGFydCBibGtubzoweCVsbHggICBsZW46JWQgICBibWFwIHNpemU6JWQgICBmbGFnczow eCV4XG4iKSwNCkBAIC04Nyw4ICs4Nyw4IEBADQogCW51bSA9IGYtPmJsZl9zaXplLTE7DQog CWkgPSAxOw0KIAl3aGlsZSAobnVtLS0gPiAwKSB7DQotCQlwID0gaXRlbS0+cmlfYnVmW2ld LmlfYWRkcjsNCi0JCWxlbiA9IGl0ZW0tPnJpX2J1ZltpXS5pX2xlbjsNCisJCXAgPSBpdGVt LT5yaV9idWZbaV0uaW92X2Jhc2U7DQorCQlsZW4gPSBpdGVtLT5yaV9idWZbaV0uaW92X2xl bjsNCiAJCWkrKzsNCiAJCWlmIChibGtubyA9PSAwKSB7IC8qIHN1cGVyIGJsb2NrICovDQog CQkJc3RydWN0IHhmc19kc2IgICpkc2IgPSAoc3RydWN0IHhmc19kc2IgKilwOw0KQEAgLTE4 NSw3ICsxODUsNyBAQA0KIHsNCiAJeGZzX3FvZmZfbG9nZm9ybWF0X3QJKnFvZmZfZjsNCiAN Ci0JcW9mZl9mID0gKHhmc19xb2ZmX2xvZ2Zvcm1hdF90ICopaXRlbS0+cmlfYnVmWzBdLmlf YWRkcjsNCisJcW9mZl9mID0gKHhmc19xb2ZmX2xvZ2Zvcm1hdF90ICopaXRlbS0+cmlfYnVm WzBdLmlvdl9iYXNlOw0KIA0KIAlBU1NFUlQocW9mZl9mKTsNCiAJcHJpbnRmKF8oIlx0UVVP VEFPRkY6ICNyZWdzOiVkICAgdHlwZToiKSwgcW9mZl9mLT5xZl9zaXplKTsNCkBAIC0yMDUs MTAgKzIwNSwxMCBAQA0KIAl4ZnNfZHFfbG9nZm9ybWF0X3QJKmY7DQogCXN0cnVjdCB4ZnNf ZGlza19kcXVvdAkqZDsNCiANCi0JZiA9ICh4ZnNfZHFfbG9nZm9ybWF0X3QgKilpdGVtLT5y aV9idWZbMF0uaV9hZGRyOw0KKwlmID0gKHhmc19kcV9sb2dmb3JtYXRfdCAqKWl0ZW0tPnJp X2J1ZlswXS5pb3ZfYmFzZTsNCiAJQVNTRVJUKGYpOw0KIAlBU1NFUlQoZi0+cWxmX2xlbiA9 PSAxKTsNCi0JZCA9IChzdHJ1Y3QgeGZzX2Rpc2tfZHF1b3QgKilpdGVtLT5yaV9idWZbMV0u aV9hZGRyOw0KKwlkID0gKHN0cnVjdCB4ZnNfZGlza19kcXVvdCAqKWl0ZW0tPnJpX2J1Zlsx XS5pb3ZfYmFzZTsNCiAJcHJpbnRmKF8oIlx0RFFVT1Q6ICNyZWdzOiVkICBibGtubzolbGxk ICBib2Zmc2V0OiV1IGlkOiAlZFxuIiksDQogCSAgICAgICBmLT5xbGZfc2l6ZSwgKGxvbmcg bG9uZylmLT5xbGZfYmxrbm8sIGYtPnFsZl9ib2Zmc2V0LCBmLT5xbGZfaWQpOw0KIAlpZiAo IXByaW50X3F1b3RhKQ0KQEAgLTI4OCwyMSArMjg4LDIyIEBADQogCWludAkJCWhhc2RhdGE7 DQogCWludAkJCWhhc2F0dHI7DQogDQotCUFTU0VSVChpdGVtLT5yaV9idWZbMF0uaV9sZW4g PT0gc2l6ZW9mKHN0cnVjdCB4ZnNfaW5vZGVfbG9nX2Zvcm1hdF8zMikgfHwNCi0JICAgICAg IGl0ZW0tPnJpX2J1ZlswXS5pX2xlbiA9PSBzaXplb2Yoc3RydWN0IHhmc19pbm9kZV9sb2df Zm9ybWF0KSk7DQotCWYgPSB4ZnNfaW5vZGVfaXRlbV9mb3JtYXRfY29udmVydChpdGVtLT5y aV9idWZbMF0uaV9hZGRyLCBpdGVtLT5yaV9idWZbMF0uaV9sZW4sICZmX2J1Zik7DQorCUFT U0VSVChpdGVtLT5yaV9idWZbMF0uaW92X2xlbiA9PSBzaXplb2Yoc3RydWN0IHhmc19pbm9k ZV9sb2dfZm9ybWF0XzMyKSB8fA0KKwkJaXRlbS0+cmlfYnVmWzBdLmlvdl9sZW4gPT0gc2l6 ZW9mKHN0cnVjdCB4ZnNfaW5vZGVfbG9nX2Zvcm1hdCkpOw0KKwlmID0geGZzX2lub2RlX2l0 ZW1fZm9ybWF0X2NvbnZlcnQoaXRlbS0+cmlfYnVmWzBdLmlvdl9iYXNlLA0KKwkJCQkJICBp dGVtLT5yaV9idWZbMF0uaW92X2xlbiwgJmZfYnVmKTsNCiANCiAJcHJpbnRmKF8oIglJTk9E RTogI3JlZ3M6JWQgICBpbm86MHglbGx4ICBmbGFnczoweCV4ICAgZHNpemU6JWRcbiIpLA0K LQkgICAgICAgZi0+aWxmX3NpemUsICh1bnNpZ25lZCBsb25nIGxvbmcpZi0+aWxmX2lubywg Zi0+aWxmX2ZpZWxkcywNCi0JICAgICAgIGYtPmlsZl9kc2l6ZSk7DQorCQlmLT5pbGZfc2l6 ZSwgKHVuc2lnbmVkIGxvbmcgbG9uZylmLT5pbGZfaW5vLCBmLT5pbGZfZmllbGRzLA0KKwkJ Zi0+aWxmX2RzaXplKTsNCiANCiAJLyogY29yZSBpbm9kZSBjb21lcyAybmQgKi8NCiAJLyog QVNTRVJUIGxlbiB2cyB4ZnNfbG9nX2Rpbm9kZV9zaXplKCkgZm9yIFYzIG9yIFYyIGlub2Rl cyAqLw0KLQlBU1NFUlQoaXRlbS0+cmlfYnVmWzFdLmlfbGVuID09DQorCUFTU0VSVChpdGVt LT5yaV9idWZbMV0uaW92X2xlbiA9PQ0KIAkJCW9mZnNldG9mKHN0cnVjdCB4ZnNfbG9nX2Rp bm9kZSwgZGlfbmV4dF91bmxpbmtlZCkgfHwNCi0JICAgICAgIGl0ZW0tPnJpX2J1ZlsxXS5p X2xlbiA9PSBzaXplb2Yoc3RydWN0IHhmc19sb2dfZGlub2RlKSk7DQorCSAgICAgICBpdGVt LT5yaV9idWZbMV0uaW92X2xlbiA9PSBzaXplb2Yoc3RydWN0IHhmc19sb2dfZGlub2RlKSk7 DQogCXhsb2dfcmVjb3Zlcl9wcmludF9pbm9kZV9jb3JlKChzdHJ1Y3QgeGZzX2xvZ19kaW5v ZGUgKikNCi0JCQkJICAgICAgaXRlbS0+cmlfYnVmWzFdLmlfYWRkcik7DQorCQkJCSAgICAg IGl0ZW0tPnJpX2J1ZlsxXS5pb3ZfYmFzZSk7DQogDQogCWhhc2RhdGEgPSAoZi0+aWxmX2Zp ZWxkcyAmIFhGU19JTE9HX0RGT1JLKSAhPSAwOw0KIAloYXNhdHRyID0gKGYtPmlsZl9maWVs ZHMgJiBYRlNfSUxPR19BRk9SSykgIT0gMDsNCkBAIC0zMTIsMjIgKzMxMywyMiBAQA0KIAkJ QVNTRVJUKGYtPmlsZl9zaXplID09IDMgKyBoYXNhdHRyKTsNCiAJCXByaW50ZihfKCIJCURB VEEgRk9SSyBFWFRFTlRTIGlub2RlIGRhdGE6XG4iKSk7DQogCQlpZiAocHJpbnRfaW5vZGUg JiYgcHJpbnRfZGF0YSkNCi0JCQl4bG9nX3JlY292ZXJfcHJpbnRfZGF0YShpdGVtLT5yaV9i dWZbMl0uaV9hZGRyLA0KLQkJCQkJCWl0ZW0tPnJpX2J1ZlsyXS5pX2xlbik7DQorCQkJeGxv Z19yZWNvdmVyX3ByaW50X2RhdGEoaXRlbS0+cmlfYnVmWzJdLmlvdl9iYXNlLA0KKwkJCQkJ CWl0ZW0tPnJpX2J1ZlsyXS5pb3ZfbGVuKTsNCiAJCWJyZWFrOw0KIAljYXNlIFhGU19JTE9H X0RCUk9PVDoNCiAJCUFTU0VSVChmLT5pbGZfc2l6ZSA9PSAzICsgaGFzYXR0cik7DQogCQlw cmludGYoXygiCQlEQVRBIEZPUksgQlRSRUUgaW5vZGUgZGF0YTpcbiIpKTsNCiAJCWlmIChw cmludF9pbm9kZSAmJiBwcmludF9kYXRhKQ0KLQkJCXhsb2dfcmVjb3Zlcl9wcmludF9kYXRh KGl0ZW0tPnJpX2J1ZlsyXS5pX2FkZHIsDQotCQkJCQkJaXRlbS0+cmlfYnVmWzJdLmlfbGVu KTsNCisJCQl4bG9nX3JlY292ZXJfcHJpbnRfZGF0YShpdGVtLT5yaV9idWZbMl0uaW92X2Jh c2UsDQorCQkJCQkJaXRlbS0+cmlfYnVmWzJdLmlvdl9sZW4pOw0KIAkJYnJlYWs7DQogCWNh c2UgWEZTX0lMT0dfRERBVEE6DQogCQlBU1NFUlQoZi0+aWxmX3NpemUgPT0gMyArIGhhc2F0 dHIpOw0KIAkJcHJpbnRmKF8oIgkJREFUQSBGT1JLIExPQ0FMIGlub2RlIGRhdGE6XG4iKSk7 DQogCQlpZiAocHJpbnRfaW5vZGUgJiYgcHJpbnRfZGF0YSkNCi0JCQl4bG9nX3JlY292ZXJf cHJpbnRfZGF0YShpdGVtLT5yaV9idWZbMl0uaV9hZGRyLA0KLQkJCQkJCWl0ZW0tPnJpX2J1 ZlsyXS5pX2xlbik7DQorCQkJeGxvZ19yZWNvdmVyX3ByaW50X2RhdGEoaXRlbS0+cmlfYnVm WzJdLmlvdl9iYXNlLA0KKwkJCQkJCWl0ZW0tPnJpX2J1ZlsyXS5pb3ZfbGVuKTsNCiAJCWJy ZWFrOw0KIAljYXNlIFhGU19JTE9HX0RFVjoNCiAJCUFTU0VSVChmLT5pbGZfc2l6ZSA9PSAy ICsgaGFzYXR0cik7DQpAQCAtMzUzLDI0ICszNTQsMjQgQEANCiAJCQlwcmludGYoXygiCQlB VFRSIEZPUksgRVhURU5UUyBpbm9kZSBkYXRhOlxuIikpOw0KIAkJCWlmIChwcmludF9pbm9k ZSAmJiBwcmludF9kYXRhKQ0KIAkJCQl4bG9nX3JlY292ZXJfcHJpbnRfZGF0YSgNCi0JCQkJ CWl0ZW0tPnJpX2J1ZlthdHRyX2luZGV4XS5pX2FkZHIsDQotCQkJCQlpdGVtLT5yaV9idWZb YXR0cl9pbmRleF0uaV9sZW4pOw0KKwkJCQkJaXRlbS0+cmlfYnVmW2F0dHJfaW5kZXhdLmlv dl9iYXNlLA0KKwkJCQkJaXRlbS0+cmlfYnVmW2F0dHJfaW5kZXhdLmlvdl9sZW4pOw0KIAkJ CWJyZWFrOw0KIAkJY2FzZSBYRlNfSUxPR19BQlJPT1Q6DQogCQkJQVNTRVJUKGYtPmlsZl9z aXplID09IDMgKyBoYXNkYXRhKTsNCiAJCQlwcmludGYoXygiCQlBVFRSIEZPUksgQlRSRUUg aW5vZGUgZGF0YTpcbiIpKTsNCiAJCQlpZiAocHJpbnRfaW5vZGUgJiYgcHJpbnRfZGF0YSkN CiAJCQkJeGxvZ19yZWNvdmVyX3ByaW50X2RhdGEoDQotCQkJCQlpdGVtLT5yaV9idWZbYXR0 cl9pbmRleF0uaV9hZGRyLA0KLQkJCQkJaXRlbS0+cmlfYnVmW2F0dHJfaW5kZXhdLmlfbGVu KTsNCisJCQkJCWl0ZW0tPnJpX2J1ZlthdHRyX2luZGV4XS5pb3ZfYmFzZSwNCisJCQkJCWl0 ZW0tPnJpX2J1ZlthdHRyX2luZGV4XS5pb3ZfbGVuKTsNCiAJCQlicmVhazsNCiAJCWNhc2Ug WEZTX0lMT0dfQURBVEE6DQogCQkJQVNTRVJUKGYtPmlsZl9zaXplID09IDMgKyBoYXNkYXRh KTsNCiAJCQlwcmludGYoXygiCQlBVFRSIEZPUksgTE9DQUwgaW5vZGUgZGF0YTpcbiIpKTsN CiAJCQlpZiAocHJpbnRfaW5vZGUgJiYgcHJpbnRfZGF0YSkNCiAJCQkJeGxvZ19yZWNvdmVy X3ByaW50X2RhdGEoDQotCQkJCQlpdGVtLT5yaV9idWZbYXR0cl9pbmRleF0uaV9hZGRyLA0K LQkJCQkJaXRlbS0+cmlfYnVmW2F0dHJfaW5kZXhdLmlfbGVuKTsNCisJCQkJCWl0ZW0tPnJp X2J1ZlthdHRyX2luZGV4XS5pb3ZfYmFzZSwNCisJCQkJCWl0ZW0tPnJpX2J1ZlthdHRyX2lu ZGV4XS5pb3ZfbGVuKTsNCiAJCQlicmVhazsNCiAJCWRlZmF1bHQ6DQogCQkJeGxvZ19wYW5p YygiJXM6IGlsbGVnYWwgaW5vZGUgbG9nIGZsYWciLCBfX0ZVTkNUSU9OX18pOw0KQEAgLTM4 NSw3ICszODYsNyBAQA0KIHsNCiAJc3RydWN0IHhmc19pY3JlYXRlX2xvZwkqaWNsOw0KIA0K LQlpY2wgPSAoc3RydWN0IHhmc19pY3JlYXRlX2xvZyAqKWl0ZW0tPnJpX2J1ZlswXS5pX2Fk ZHI7DQorCWljbCA9IChzdHJ1Y3QgeGZzX2ljcmVhdGVfbG9nICopaXRlbS0+cmlfYnVmWzBd Lmlvdl9iYXNlOw0KIA0KIAlwcmludGYoXygiCUlDUjogICNhZzogJWQgIGFnYm5vOiAweCV4 ICBsZW46ICVkXG4iDQogCQkgIgkgICAgICBjbnQ6ICVkICBpc2l6ZTogJWQgICAgZ2VuOiAw eCV4XG4iKSwNCkBAIC01NDksOCArNTUwLDggQEANCiAqLw0KIAlwcmludGYoXygiOiBjbnQ6 JWQgdG90YWw6JWQgIiksIGl0ZW0tPnJpX2NudCwgaXRlbS0+cmlfdG90YWwpOw0KIAlmb3Ig KGk9MDsgaTxpdGVtLT5yaV9jbnQ7IGkrKykgew0KLQkJcHJpbnRmKF8oImE6MHglbHggbGVu OiVkICIpLA0KLQkJICAgICAgIChsb25nKWl0ZW0tPnJpX2J1ZltpXS5pX2FkZHIsIGl0ZW0t PnJpX2J1ZltpXS5pX2xlbik7DQorCQlwcmludGYoXygiYToweCVseCBsZW46JXp1ICIpLA0K KwkJICAgICAgIChsb25nKWl0ZW0tPnJpX2J1ZltpXS5pb3ZfYmFzZSwgaXRlbS0+cmlfYnVm W2ldLmlvdl9sZW4pOw0KIAl9DQogCXByaW50ZigiXG4iKTsNCiAJeGxvZ19yZWNvdmVyX3By aW50X2xvZ2l0ZW0oaXRlbSk7DQpkaWZmIC0tZ2l0IGEvbG9ncHJpbnQvbG9nX3JlZG8uYyBi L2xvZ3ByaW50L2xvZ19yZWRvLmMNCmluZGV4IDg5ZDc0NDgzNDIuLmY1YmFjMjFkMzUgMTAw NjQ0DQotLS0gYS9sb2dwcmludC9sb2dfcmVkby5jDQorKysgYi9sb2dwcmludC9sb2dfcmVk by5jDQpAQCAtMTQzLDggKzE0Myw4IEBADQogCWludAkJCWk7DQogCXVpbnQJCQlzcmNfbGVu LCBkc3RfbGVuOw0KIA0KLQlzcmNfZiA9ICh4ZnNfZWZpX2xvZ19mb3JtYXRfdCAqKWl0ZW0t PnJpX2J1ZlswXS5pX2FkZHI7DQotCXNyY19sZW4gPSBpdGVtLT5yaV9idWZbMF0uaV9sZW47 DQorCXNyY19mID0gKHhmc19lZmlfbG9nX2Zvcm1hdF90ICopaXRlbS0+cmlfYnVmWzBdLmlv dl9iYXNlOw0KKwlzcmNfbGVuID0gaXRlbS0+cmlfYnVmWzBdLmlvdl9sZW47DQogCS8qDQog CSAqIEFuIHhmc19lZmlfbG9nX2Zvcm1hdCBzdHJ1Y3R1cmUgY29udGFpbnMgYSB2YXJpYWJs ZSBsZW5ndGggYXJyYXkNCiAJICogYXMgdGhlIGxhc3QgZmllbGQuDQpAQCAtMjI5LDcgKzIy OSw3IEBADQogCWNvbnN0IGNoYXIJCSppdGVtX25hbWUgPSAiRUZEPyI7DQogCXhmc19lZmRf bG9nX2Zvcm1hdF90CSpmOw0KIA0KLQlmID0gKHhmc19lZmRfbG9nX2Zvcm1hdF90ICopaXRl bS0+cmlfYnVmWzBdLmlfYWRkcjsNCisJZiA9ICh4ZnNfZWZkX2xvZ19mb3JtYXRfdCAqKWl0 ZW0tPnJpX2J1ZlswXS5pb3ZfYmFzZTsNCiANCiAJc3dpdGNoIChmLT5lZmRfdHlwZSkgew0K IAljYXNlIFhGU19MSV9FRkQ6CWl0ZW1fbmFtZSA9ICJFRkQiOyBicmVhazsNCkBAIC0zNTUs OCArMzU1LDggQEANCiAJY2hhcgkJCQkqc3JjX2Y7DQogCXVpbnQJCQkJc3JjX2xlbjsNCiAN Ci0Jc3JjX2YgPSBpdGVtLT5yaV9idWZbMF0uaV9hZGRyOw0KLQlzcmNfbGVuID0gaXRlbS0+ cmlfYnVmWzBdLmlfbGVuOw0KKwlzcmNfZiA9IGl0ZW0tPnJpX2J1ZlswXS5pb3ZfYmFzZTsN CisJc3JjX2xlbiA9IGl0ZW0tPnJpX2J1ZlswXS5pb3ZfbGVuOw0KIA0KIAl4bG9nX3ByaW50 X3RyYW5zX3J1aSgmc3JjX2YsIHNyY19sZW4sIDApOw0KIH0NCkBAIC00MDYsNyArNDA2LDcg QEANCiB7DQogCWNoYXIJCQkJKmY7DQogDQotCWYgPSBpdGVtLT5yaV9idWZbMF0uaV9hZGRy Ow0KKwlmID0gaXRlbS0+cmlfYnVmWzBdLmlvdl9iYXNlOw0KIAl4bG9nX3ByaW50X3RyYW5z X3J1ZCgmZiwgc2l6ZW9mKHN0cnVjdCB4ZnNfcnVkX2xvZ19mb3JtYXQpKTsNCiB9DQogDQpA QCAtNTE2LDggKzUxNiw4IEBADQogCWNoYXIJCQkJKnNyY19mOw0KIAl1aW50CQkJCXNyY19s ZW47DQogDQotCXNyY19mID0gaXRlbS0+cmlfYnVmWzBdLmlfYWRkcjsNCi0Jc3JjX2xlbiA9 IGl0ZW0tPnJpX2J1ZlswXS5pX2xlbjsNCisJc3JjX2YgPSBpdGVtLT5yaV9idWZbMF0uaW92 X2Jhc2U7DQorCXNyY19sZW4gPSBpdGVtLT5yaV9idWZbMF0uaW92X2xlbjsNCiANCiAJeGxv Z19wcmludF90cmFuc19jdWkoJnNyY19mLCBzcmNfbGVuLCAwKTsNCiB9DQpAQCAtNTYzLDcg KzU2Myw3IEBADQogew0KIAljaGFyCQkJCSpmOw0KIA0KLQlmID0gaXRlbS0+cmlfYnVmWzBd LmlfYWRkcjsNCisJZiA9IGl0ZW0tPnJpX2J1ZlswXS5pb3ZfYmFzZTsNCiAJeGxvZ19wcmlu dF90cmFuc19jdWQoJmYsIHNpemVvZihzdHJ1Y3QgeGZzX2N1ZF9sb2dfZm9ybWF0KSk7DQog fQ0KIA0KQEAgLTY2Nyw4ICs2NjcsOCBAQA0KIAljaGFyCQkJCSpzcmNfZjsNCiAJdWludAkJ CQlzcmNfbGVuOw0KIA0KLQlzcmNfZiA9IGl0ZW0tPnJpX2J1ZlswXS5pX2FkZHI7DQotCXNy Y19sZW4gPSBpdGVtLT5yaV9idWZbMF0uaV9sZW47DQorCXNyY19mID0gaXRlbS0+cmlfYnVm WzBdLmlvdl9iYXNlOw0KKwlzcmNfbGVuID0gaXRlbS0+cmlfYnVmWzBdLmlvdl9sZW47DQog DQogCXhsb2dfcHJpbnRfdHJhbnNfYnVpKCZzcmNfZiwgc3JjX2xlbiwgMCk7DQogfQ0KQEAg LTcwNyw3ICs3MDcsNyBAQA0KIHsNCiAJY2hhcgkJCQkqZjsNCiANCi0JZiA9IGl0ZW0tPnJp X2J1ZlswXS5pX2FkZHI7DQorCWYgPSBpdGVtLT5yaV9idWZbMF0uaW92X2Jhc2U7DQogCXhs b2dfcHJpbnRfdHJhbnNfYnVkKCZmLCBzaXplb2Yoc3RydWN0IHhmc19idWRfbG9nX2Zvcm1h dCkpOw0KIH0NCiANCkBAIC05NTQsOCArOTU0LDggQEANCiAJdW5zaWduZWQgaW50CQkJbmV3 X3ZhbHVlX2xlbiA9IDA7DQogCWludAkJCQlyZWdpb24gPSAwOw0KIA0KLQlzcmNfZiA9IChz dHJ1Y3QgeGZzX2F0dHJpX2xvZ19mb3JtYXQgKilpdGVtLT5yaV9idWZbMF0uaV9hZGRyOw0K LQlzcmNfbGVuID0gaXRlbS0+cmlfYnVmW3JlZ2lvbl0uaV9sZW47DQorCXNyY19mID0gKHN0 cnVjdCB4ZnNfYXR0cmlfbG9nX2Zvcm1hdCAqKWl0ZW0tPnJpX2J1ZlswXS5pb3ZfYmFzZTsN CisJc3JjX2xlbiA9IGl0ZW0tPnJpX2J1ZltyZWdpb25dLmlvdl9sZW47DQogDQogCS8qDQog CSAqIEFuIHhmc19hdHRyaV9sb2dfZm9ybWF0IHN0cnVjdHVyZSBjb250YWlucyBhIGF0dHJp YnV0ZSBuYW1lIGFuZA0KQEAgLTk5NiwxNyArOTk2LDE3IEBADQogCWlmIChuYW1lX2xlbiA+ IDApIHsNCiAJCXJlZ2lvbisrOw0KIAkJcHJpbnRmKF8oIkFUVFJJOiAgbmFtZSBsZW46JXVc biIpLCBuYW1lX2xlbik7DQotCQlwcmludF9vcl9kdW1wKChjaGFyICopaXRlbS0+cmlfYnVm W3JlZ2lvbl0uaV9hZGRyLA0KKwkJcHJpbnRfb3JfZHVtcCgoY2hhciAqKWl0ZW0tPnJpX2J1 ZltyZWdpb25dLmlvdl9iYXNlLA0KIAkJCSAgICAgICBuYW1lX2xlbik7DQotCQluYW1lX3B0 ciA9IGl0ZW0tPnJpX2J1ZltyZWdpb25dLmlfYWRkcjsNCisJCW5hbWVfcHRyID0gaXRlbS0+ cmlfYnVmW3JlZ2lvbl0uaW92X2Jhc2U7DQogCX0NCiANCiAJaWYgKG5ld19uYW1lX2xlbiA+ IDApIHsNCiAJCXJlZ2lvbisrOw0KIAkJcHJpbnRmKF8oIkFUVFJJOiAgbmV3bmFtZSBsZW46 JXVcbiIpLCBuZXdfbmFtZV9sZW4pOw0KLQkJcHJpbnRfb3JfZHVtcCgoY2hhciAqKWl0ZW0t PnJpX2J1ZltyZWdpb25dLmlfYWRkciwNCisJCXByaW50X29yX2R1bXAoKGNoYXIgKilpdGVt LT5yaV9idWZbcmVnaW9uXS5pb3ZfYmFzZSwNCiAJCQkgICAgICAgbmV3X25hbWVfbGVuKTsN Ci0JCW5ld19uYW1lX3B0ciA9IGl0ZW0tPnJpX2J1ZltyZWdpb25dLmlfYWRkcjsNCisJCW5l d19uYW1lX3B0ciA9IGl0ZW0tPnJpX2J1ZltyZWdpb25dLmlvdl9iYXNlOw0KIAl9DQogDQog CWlmICh2YWx1ZV9sZW4gPiAwKSB7DQpAQCAtMTAxNCw4ICsxMDE0LDggQEANCiANCiAJCXJl Z2lvbisrOw0KIAkJcHJpbnRmKF8oIkFUVFJJOiAgdmFsdWUgbGVuOiV1XG4iKSwgdmFsdWVf bGVuKTsNCi0JCXByaW50X29yX2R1bXAoKGNoYXIgKilpdGVtLT5yaV9idWZbcmVnaW9uXS5p X2FkZHIsIGxlbik7DQotCQl2YWx1ZV9wdHIgPSBpdGVtLT5yaV9idWZbcmVnaW9uXS5pX2Fk ZHI7DQorCQlwcmludF9vcl9kdW1wKChjaGFyICopaXRlbS0+cmlfYnVmW3JlZ2lvbl0uaW92 X2Jhc2UsIGxlbik7DQorCQl2YWx1ZV9wdHIgPSBpdGVtLT5yaV9idWZbcmVnaW9uXS5pb3Zf YmFzZTsNCiAJfQ0KIA0KIAlpZiAobmV3X3ZhbHVlX2xlbiA+IDApIHsNCkBAIC0xMDIzLDgg KzEwMjMsOCBAQA0KIA0KIAkJcmVnaW9uKys7DQogCQlwcmludGYoXygiQVRUUkk6ICBuZXd2 YWx1ZSBsZW46JXVcbiIpLCBuZXdfdmFsdWVfbGVuKTsNCi0JCXByaW50X29yX2R1bXAoKGNo YXIgKilpdGVtLT5yaV9idWZbcmVnaW9uXS5pX2FkZHIsIGxlbik7DQotCQluZXdfdmFsdWVf cHRyID0gaXRlbS0+cmlfYnVmW3JlZ2lvbl0uaV9hZGRyOw0KKwkJcHJpbnRfb3JfZHVtcCgo Y2hhciAqKWl0ZW0tPnJpX2J1ZltyZWdpb25dLmlvdl9iYXNlLCBsZW4pOw0KKwkJbmV3X3Zh bHVlX3B0ciA9IGl0ZW0tPnJpX2J1ZltyZWdpb25dLmlvdl9iYXNlOw0KIAl9DQogDQogCWlm IChzcmNfZi0+YWxmaV9hdHRyX2ZpbHRlciAmIFhGU19BVFRSX1BBUkVOVCkNCkBAIC0xMDY1 LDcgKzEwNjUsNyBAQA0KIHsNCiAJc3RydWN0IHhmc19hdHRyZF9sb2dfZm9ybWF0CSpmOw0K IA0KLQlmID0gKHN0cnVjdCB4ZnNfYXR0cmRfbG9nX2Zvcm1hdCAqKWl0ZW0tPnJpX2J1Zlsw XS5pX2FkZHI7DQorCWYgPSAoc3RydWN0IHhmc19hdHRyZF9sb2dfZm9ybWF0ICopaXRlbS0+ cmlfYnVmWzBdLmlvdl9iYXNlOw0KIA0KIAlwcmludGYoXygiCUFUVFJEOiAgI3JlZ3M6ICVk CWlkOiAweCVsbHhcbiIpLA0KIAkJZi0+YWxmZF9zaXplLA0KQEAgLTExNTYsOCArMTE1Niw4 IEBADQogCWNoYXIJCQkJKnNyY19mOw0KIAl1aW50CQkJCXNyY19sZW47DQogDQotCXNyY19m ID0gaXRlbS0+cmlfYnVmWzBdLmlfYWRkcjsNCi0Jc3JjX2xlbiA9IGl0ZW0tPnJpX2J1Zlsw XS5pX2xlbjsNCisJc3JjX2YgPSBpdGVtLT5yaV9idWZbMF0uaW92X2Jhc2U7DQorCXNyY19s ZW4gPSBpdGVtLT5yaV9idWZbMF0uaW92X2xlbjsNCiANCiAJeGxvZ19wcmludF90cmFuc194 bWkoJnNyY19mLCBzcmNfbGVuLCAwKTsNCiB9DQpAQCAtMTE5Niw2ICsxMTk2LDYgQEANCiB7 DQogCWNoYXIJCQkJKmY7DQogDQotCWYgPSBpdGVtLT5yaV9idWZbMF0uaV9hZGRyOw0KKwlm ID0gaXRlbS0+cmlfYnVmWzBdLmlvdl9iYXNlOw0KIAl4bG9nX3ByaW50X3RyYW5zX3htZCgm Ziwgc2l6ZW9mKHN0cnVjdCB4ZnNfeG1kX2xvZ19mb3JtYXQpKTsNCiB9DQpkaWZmIC0tZ2l0 IGEvcmVwYWlyL3BoYXNlMi5jIGIvcmVwYWlyL3BoYXNlMi5jDQppbmRleCBlMjQ5OTgwNTI3 Li5mYzk2ZjljNDIyIDEwMDY0NA0KLS0tIGEvcmVwYWlyL3BoYXNlMi5jDQorKysgYi9yZXBh aXIvcGhhc2UyLmMNCkBAIC0yOTYsMTEgKzI5Niw3IEBADQogCQkgKiB0aGVyZSB3aGlsZSB3 ZSB0cnkgdG8gbWFrZSBhIHBlci1BRyByZXNlcnZhdGlvbiB3aXRoIHRoZSBuZXcNCiAJCSAq IGdlb21ldHJ5Lg0KIAkJICovDQotCQllcnJvciA9IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1w dHkobXAsICZ0cCk7DQotCQlpZiAoZXJyb3IpDQotCQkJZG9fZXJyb3IoDQotCV8oIkNhbm5v dCByZXNlcnZlIHJlc291cmNlcyBmb3IgdXBncmFkZSBjaGVjaywgZXJyPSVkLlxuIiksDQot CQkJCQllcnJvcik7DQorCQl0cCA9IGxpYnhmc190cmFuc19hbGxvY19lbXB0eShtcCk7DQog DQogCQllcnJvciA9IC1saWJ4ZnNfaWFsbG9jX3JlYWRfYWdpKHBhZywgdHAsIDAsICZhZ2lf YnApOw0KIAkJaWYgKGVycm9yKQ0KZGlmZiAtLWdpdCBhL3JlcGFpci9wcHRyLmMgYi9yZXBh aXIvcHB0ci5jDQppbmRleCBhYzBhOWM2MThiLi42YTllMDcyYjM2IDEwMDY0NA0KLS0tIGEv cmVwYWlyL3BwdHIuYw0KKysrIGIvcmVwYWlyL3BwdHIuYw0KQEAgLTEyMTcsNyArMTIxNyw3 IEBADQogCWZzY2FuLT5oYXZlX2dhcmJhZ2UgPSBmYWxzZTsNCiAJZnNjYW4tPm5yX2ZpbGVf cHB0cnMgPSAwOw0KIA0KLQlsaWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkoaXAtPmlfbW91bnQs ICZ0cCk7DQorCXRwID0gbGlieGZzX3RyYW5zX2FsbG9jX2VtcHR5KGlwLT5pX21vdW50KTsN CiAJZXJyb3IgPSB4YXR0cl93YWxrKHRwLCBpcCwgZXhhbWluZV94YXR0ciwgZnNjYW4pOw0K IAlpZiAodHApDQogCQlsaWJ4ZnNfdHJhbnNfY2FuY2VsKHRwKTsNCkBAIC0xNDE3LDcgKzE0 MTcsNyBAQA0KIAkJZG9fZXJyb3IoImluaXQgZ2FyYmFnZSBwcHRyIG5hbWVzIGZhaWxlZDog JXNcbiIsDQogCQkJCXN0cmVycm9yKGVycm9yKSk7DQogDQotCWxpYnhmc190cmFuc19hbGxv Y19lbXB0eShpcC0+aV9tb3VudCwgJnRwKTsNCisJdHAgPSBsaWJ4ZnNfdHJhbnNfYWxsb2Nf ZW1wdHkoaXAtPmlfbW91bnQpOw0KIAllcnJvciA9IHhhdHRyX3dhbGsodHAsIGlwLCBlcmFz ZV9wcHRycywgJmZzY2FuKTsNCiAJaWYgKHRwKQ0KIAkJbGlieGZzX3RyYW5zX2NhbmNlbCh0 cCk7DQpkaWZmIC0tZ2l0IGEvcmVwYWlyL3F1b3RhY2hlY2suYyBiL3JlcGFpci9xdW90YWNo ZWNrLmMNCmluZGV4IGRmNmNkZTJkNTguLmY0YzAzMTQxNzcgMTAwNjQ0DQotLS0gYS9yZXBh aXIvcXVvdGFjaGVjay5jDQorKysgYi9yZXBhaXIvcXVvdGFjaGVjay5jDQpAQCAtNDM3LDkg KzQzNyw3IEBADQogCWlmICghZHF1b3RzIHx8ICFjaGtkX2ZsYWdzKQ0KIAkJcmV0dXJuOw0K IA0KLQllcnJvciA9IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXAsICZ0cCk7DQotCWlm IChlcnJvcikNCi0JCWRvX2Vycm9yKF8oImNvdWxkIG5vdCBhbGxvYyB0cmFuc2FjdGlvbiB0 byBvcGVuIHF1b3RhIGZpbGVcbiIpKTsNCisJdHAgPSBsaWJ4ZnNfdHJhbnNfYWxsb2NfZW1w dHkobXApOw0KIA0KIAlpbm8gPSBnZXRfcXVvdGFfaW5vZGUodHlwZSk7DQogCWVycm9yID0g LWxpYnhmc190cmFuc19tZXRhZmlsZV9pZ2V0KHRwLCBpbm8sIG1ldGFmaWxlX3R5cGUsICZp cCk7DQpAQCAtNjc5LDkgKzY3Nyw3IEBADQogCXN0cnVjdCB4ZnNfaW5vZGUJKmRwID0gTlVM TDsNCiAJaW50CQkJZXJyb3IsIGVycjI7DQogDQotCWVycm9yID0gLWxpYnhmc190cmFuc19h bGxvY19lbXB0eShtcCwgJnRwKTsNCi0JaWYgKGVycm9yKQ0KLQkJZ290byBvdXQ7DQorCXRw ID0gbGlieGZzX3RyYW5zX2FsbG9jX2VtcHR5KG1wKTsNCiANCiAJZXJyb3IgPSAtbGlieGZz X2RxaW5vZGVfbG9hZF9wYXJlbnQodHAsICZkcCk7DQogCWlmIChlcnJvcikNCkBAIC02OTgs NyArNjk0LDYgQEANCiAJbGlieGZzX2lyZWxlKGRwKTsNCiBvdXRfY2FuY2VsOg0KIAlsaWJ4 ZnNfdHJhbnNfY2FuY2VsKHRwKTsNCi1vdXQ6DQogCWlmIChlcnJvcikgew0KIAkJc3dpdGNo IChlcnJvcikgew0KIAkJY2FzZSBFRlNDT1JSVVBURUQ6DQpkaWZmIC0tZ2l0IGEvcmVwYWly L3JjYmFnLmMgYi9yZXBhaXIvcmNiYWcuYw0KaW5kZXggMjE3MzJiNjVjNi4uZDdhZGRiZjU4 ZSAxMDA2NDQNCi0tLSBhL3JlcGFpci9yY2JhZy5jDQorKysgYi9yZXBhaXIvcmNiYWcuYw0K QEAgLTk1LDkgKzk1LDcgQEANCiAJaW50CQkJCWhhczsNCiAJaW50CQkJCWVycm9yOw0KIA0K LQllcnJvciA9IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXAsICZ0cCk7DQotCWlmIChl cnJvcikNCi0JCWRvX2Vycm9yKF8oImFsbG9jYXRpbmcgdHggZm9yIHJlZmNvdW50IGJhZyB1 cGRhdGVcbiIpKTsNCisJdHAgPSBsaWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXApOw0KIA0K IAljdXIgPSByY2JhZ2J0X21lbV9jdXJzb3IobXAsIHRwLCAmYmFnLT54ZmJ0cmVlKTsNCiAJ ZXJyb3IgPSByY2JhZ2J0X2xvb2t1cF9lcShjdXIsIHJtYXAsICZoYXMpOw0KQEAgLTIxNyw5 ICsyMTUsNyBAQA0KIAlpbnQJCQloYXM7DQogCWludAkJCWVycm9yOw0KIA0KLQllcnJvciA9 IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXAsICZ0cCk7DQotCWlmIChlcnJvcikNCi0J CWRvX2Vycm9yKF8oImFsbG9jYXRpbmcgdHggZm9yIHJlZmNvdW50IGJhZyB1cGRhdGVcbiIp KTsNCisJdHAgPSBsaWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXApOw0KIA0KIAkvKiBnbyB0 byB0aGUgcmlnaHQgZWRnZSBvZiB0aGUgdHJlZSAqLw0KIAljdXIgPSByY2JhZ2J0X21lbV9j dXJzb3IobXAsIHRwLCAmYmFnLT54ZmJ0cmVlKTsNCmRpZmYgLS1naXQgYS9yZXBhaXIvcmNi YWdfYnRyZWUuYyBiL3JlcGFpci9yY2JhZ19idHJlZS5jDQppbmRleCBiZWQ3YzdhOGY2Li5m YzVmNjljNGQyIDEwMDY0NA0KLS0tIGEvcmVwYWlyL3JjYmFnX2J0cmVlLmMNCisrKyBiL3Jl cGFpci9yY2JhZ19idHJlZS5jDQpAQCAtNDYsOCArNDYsOCBAQA0KIAliYWdfcmVjLT5yYmdf cmVmY291bnQgPSBiYWdfaXJlYy0+cmJnX3JlZmNvdW50Ow0KIH0NCiANCi1TVEFUSUMgaW50 NjRfdA0KLXJjYmFnYnRfa2V5X2RpZmYoDQorU1RBVElDIGludA0KK3JjYmFnYnRfY21wX2tl eV93aXRoX2N1cigNCiAJc3RydWN0IHhmc19idHJlZV9jdXIJCSpjdXIsDQogCWNvbnN0IHVu aW9uIHhmc19idHJlZV9rZXkJKmtleSkNCiB7DQpAQCAtNzIsOCArNzIsOCBAQA0KIAlyZXR1 cm4gMDsNCiB9DQogDQotU1RBVElDIGludDY0X3QNCi1yY2JhZ2J0X2RpZmZfdHdvX2tleXMo DQorU1RBVElDIGludA0KK3JjYmFnYnRfY21wX3R3b19rZXlzKA0KIAlzdHJ1Y3QgeGZzX2J0 cmVlX2N1cgkJKmN1ciwNCiAJY29uc3QgdW5pb24geGZzX2J0cmVlX2tleQkqazEsDQogCWNv bnN0IHVuaW9uIHhmc19idHJlZV9rZXkJKmsyLA0KQEAgLTIyMCw5ICsyMjAsOSBAQA0KIAku aW5pdF9rZXlfZnJvbV9yZWMJPSByY2JhZ2J0X2luaXRfa2V5X2Zyb21fcmVjLA0KIAkuaW5p dF9yZWNfZnJvbV9jdXIJPSByY2JhZ2J0X2luaXRfcmVjX2Zyb21fY3VyLA0KIAkuaW5pdF9w dHJfZnJvbV9jdXIJPSB4ZmJ0cmVlX2luaXRfcHRyX2Zyb21fY3VyLA0KLQkua2V5X2RpZmYJ CT0gcmNiYWdidF9rZXlfZGlmZiwNCisJLmNtcF9rZXlfd2l0aF9jdXIJPSByY2JhZ2J0X2Nt cF9rZXlfd2l0aF9jdXIsDQogCS5idWZfb3BzCQk9ICZyY2JhZ2J0X21lbV9idWZfb3BzLA0K LQkuZGlmZl90d29fa2V5cwkJPSByY2JhZ2J0X2RpZmZfdHdvX2tleXMsDQorCS5jbXBfdHdv X2tleXMJCT0gcmNiYWdidF9jbXBfdHdvX2tleXMsDQogCS5rZXlzX2lub3JkZXIJCT0gcmNi YWdidF9rZXlzX2lub3JkZXIsDQogCS5yZWNzX2lub3JkZXIJCT0gcmNiYWdidF9yZWNzX2lu b3JkZXIsDQogfTsNCmRpZmYgLS1naXQgYS9yZXBhaXIvcm1hcC5jIGIvcmVwYWlyL3JtYXAu Yw0KaW5kZXggOTc1MTBkZDg3NS4uZTg5YmQzMmQ2MyAxMDA2NDQNCi0tLSBhL3JlcGFpci9y bWFwLmMNCisrKyBiL3JlcGFpci9ybWFwLmMNCkBAIC0zMjMsOSArMzIzLDcgQEANCiAJaW50 CQkJZXJyb3I7DQogDQogCXhmYnQgPSAmcm1hcHNfZm9yX2dyb3VwKGlzcnQsIGFnbm8pLT5h cl94ZmJ0cmVlOw0KLQllcnJvciA9IC1saWJ4ZnNfdHJhbnNfYWxsb2NfZW1wdHkobXAsICZ0 cCk7DQotCWlmIChlcnJvcikNCi0JCWRvX2Vycm9yKF8oImFsbG9jYXRpbmcgdHggZm9yIGlu LW1lbW9yeSBybWFwIHVwZGF0ZVxuIikpOw0KKwl0cCA9IGxpYnhmc190cmFuc19hbGxvY19l bXB0eShtcCk7DQogDQogCWVycm9yID0gcm1hcF9pbml0X21lbV9jdXJzb3IobXAsIHRwLCBp c3J0LCBhZ25vLCAmcm1jdXIpOw0KIAlpZiAoZXJyb3IpDQpkaWZmIC0tZ2l0IGEvcmVwYWly L3J0LmMgYi9yZXBhaXIvcnQuYw0KaW5kZXggMWFjMmJmNmZjNC4uNzgxZDg5Njg0NCAxMDA2 NDQNCi0tLSBhL3JlcGFpci9ydC5jDQorKysgYi9yZXBhaXIvcnQuYw0KQEAgLTMwMSwxMCAr MzAxLDcgQEANCiAJaWYgKHJ0Zy0+cnRnX2lub2Rlc1t0eXBlXSkNCiAJCWdvdG8gb3V0X3J0 ZzsNCiANCi0JZXJyb3IgPSAtbGlieGZzX3RyYW5zX2FsbG9jX2VtcHR5KG1wLCAmdHApOw0K LQlpZiAoZXJyb3IpDQotCQlnb3RvIG91dF9ydGc7DQotDQorCXRwID0gbGlieGZzX3RyYW5z X2FsbG9jX2VtcHR5KG1wKTsNCiANCiAJZXJyb3IgPSAtbGlieGZzX3J0Z2lub2RlX2xvYWQo cnRnLCB0eXBlLCB0cCk7DQogCWlmIChlcnJvcikNCkBAIC00OTcsOSArNDk0LDcgQEANCiAJ aW50CQkJZXJyb3IsIGVycjI7DQogCWludAkJCWk7DQogDQotCWVycm9yID0gLWxpYnhmc190 cmFuc19hbGxvY19lbXB0eShtcCwgJnRwKTsNCi0JaWYgKGVycm9yKQ0KLQkJZ290byBvdXQ7 DQorCXRwID0gbGlieGZzX3RyYW5zX2FsbG9jX2VtcHR5KG1wKTsNCiAJaWYgKHhmc19oYXNf cnRncm91cHMobXApICYmIG1wLT5tX3NiLnNiX3JnY291bnQgPiAwKSB7DQogCQllcnJvciA9 IC1saWJ4ZnNfcnRnaW5vZGVfbG9hZF9wYXJlbnQodHApOw0KIAkJaWYgKGVycm9yKQ0KQEAg LTUxNiw3ICs1MTEsNiBAQA0KIA0KIG91dF9jYW5jZWw6DQogCWxpYnhmc190cmFuc19jYW5j ZWwodHApOw0KLW91dDoNCiAJaWYgKHhmc19oYXNfcnRncm91cHMobXApICYmIGVycm9yKSB7 DQogCQkvKg0KIAkJICogT2xkIHhmc19yZXBhaXIgZGlkbid0IGNvbXBsYWluIGlmIHJ0Yml0 bWFwcyBkaWRuJ3QgbG9hZA0KZGlmZiAtLWdpdCBhL3NjcnViL2lub2Rlcy5jIGIvc2NydWIv aW5vZGVzLmMNCmluZGV4IDJmM2M4N2JlNzkuLjRlZDdjZDk5NjMgMTAwNjQ0DQotLS0gYS9z Y3J1Yi9pbm9kZXMuYw0KKysrIGIvc2NydWIvaW5vZGVzLmMNCkBAIC0xOTcsOCArMTk3LDYg QEANCiAJcmV0dXJuIHNlZW5fbWFzazsNCiB9DQogDQotI2RlZmluZSBjbXBfaW50KGwsIHIp CQkoKGwgPiByKSAtIChsIDwgcikpDQotDQogLyogQ29tcGFyZSB0d28gYnVsa3N0YXQgcmVj b3JkcyBieSBpbnVtYmVyLiAqLw0KIHN0YXRpYyBpbnQNCiBjb21wYXJlX2JzdGF0KA0K --4h72goa7wacppg7q--