From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34108C77B7F for ; Tue, 24 Jun 2025 12:12:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F075C6B00A4; Tue, 24 Jun 2025 08:12:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E8F716B00C1; Tue, 24 Jun 2025 08:12:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D56CF6B00C3; Tue, 24 Jun 2025 08:12:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BA0166B00A4 for ; Tue, 24 Jun 2025 08:12:36 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 912AD1A06E2 for ; Tue, 24 Jun 2025 12:12:36 +0000 (UTC) X-FDA: 83590182312.09.53164D1 Received: from mx10.didiglobal.com (mx10.didiglobal.com [111.202.70.125]) by imf02.hostedemail.com (Postfix) with SMTP id EB58F80010 for ; Tue, 24 Jun 2025 12:12:32 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=didiglobal.com header.s=2025 header.b=cMqXzvFk; dmarc=pass (policy=none) header.from=didiglobal.com; spf=pass (imf02.hostedemail.com: domain of chentaotao@didiglobal.com designates 111.202.70.125 as permitted sender) smtp.mailfrom=chentaotao@didiglobal.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750767153; a=rsa-sha256; cv=none; b=qjFuRAQUbk5lABHsr8dVKubOi2zMtJCy/V0seIK6QQD1O7QxykdYVAUgFcE3jO0wyTx3Bo 290uIJ4Y+NtJ8LffPjJVh1OMDqdC5TK1ZfXn4tGoCE00QZdMzJOWmCzYhnHNAdw6qcXFjV DMFMu/SpQnpq9d7tkZ5J8rKXjZVep64= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=didiglobal.com header.s=2025 header.b=cMqXzvFk; dmarc=pass (policy=none) header.from=didiglobal.com; spf=pass (imf02.hostedemail.com: domain of chentaotao@didiglobal.com designates 111.202.70.125 as permitted sender) smtp.mailfrom=chentaotao@didiglobal.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750767153; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:dkim-signature; bh=fxo8pVbeeJuymx8fdU012ewJ3wIOyL8IoTob1zgX/aE=; b=bxIghz/hiIzD3hYQPBP4xEH1A0w/Mhr1k9YDrw4bS/c/CPbLSuN4ip98ciVfhVCZehBah0 WLOOJC0QLmZL82yBWlXnjQYbhEv2E2OF2jGMkmO+hW/BkZcFhTrNXyBZQMPmzZ5tEWacCk TwXZiUFdZEDUTF403W5aU9P/CE3+eEg= Received: from mail.didiglobal.com (unknown [10.79.71.38]) by mx10.didiglobal.com (MailData Gateway V2.8.8) with ESMTPS id 876E91808ACAE4; Tue, 24 Jun 2025 20:11:26 +0800 (CST) Received: from BJ02-ACTMBX-07.didichuxing.com (10.79.65.14) by BJ03-ACTMBX-02.didichuxing.com (10.79.71.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Tue, 24 Jun 2025 20:12:08 +0800 Received: from BJ03-ACTMBX-07.didichuxing.com (10.79.71.34) by BJ02-ACTMBX-07.didichuxing.com (10.79.65.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Tue, 24 Jun 2025 20:12:08 +0800 Received: from BJ03-ACTMBX-07.didichuxing.com ([fe80::b00b:de35:2067:9787]) by BJ03-ACTMBX-07.didichuxing.com ([fe80::b00b:de35:2067:9787%7]) with mapi id 15.02.1748.010; Tue, 24 Jun 2025 20:12:08 +0800 X-MD-Sfrom: chentaotao@didiglobal.com X-MD-SrcIP: 10.79.71.38 From: =?gb2312?B?s8LMzszOIFRhb3RhbyBDaGVu?= To: "tytso@mit.edu" , "hch@infradead.org" , "adilger.kernel@dilger.ca" , "willy@infradead.org" , "brauner@kernel.org" , "jani.nikula@linux.intel.com" , "rodrigo.vivi@intel.com" , "tursulin@ursulin.net" , "airlied@gmail.com" CC: "linux-fsdevel@vger.kernel.org" , "linux-ext4@vger.kernel.org" , "linux-block@vger.kernel.org" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "linux-mm@kvack.org" , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "chentao325@qq.com" , =?gb2312?B?s8LMzszOIFRhb3RhbyBDaGVu?= Subject: [PATCH v2 3/5] fs: change write_begin/write_end interface to take struct kiocb * Thread-Topic: [PATCH v2 3/5] fs: change write_begin/write_end interface to take struct kiocb * Thread-Index: AQHb5QE0bnsLLt2tb0CMISloqOsSRA== Date: Tue, 24 Jun 2025 12:12:08 +0000 Message-ID: <20250624121149.2927-4-chentaotao@didiglobal.com> In-Reply-To: <20250624121149.2927-1-chentaotao@didiglobal.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.79.64.102] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=didiglobal.com; s=2025; t=1750767108; bh=fxo8pVbeeJuymx8fdU012ewJ3wIOyL8IoTob1zgX/aE=; h=From:To:CC:Subject:Date:Message-ID:Content-Type; b=cMqXzvFkBGX0c2iSd6YGFcgtH0wNLnJ4jafXKzFhYlc06WYSrJFi+USA28ML4UmbE Qs3Z/Km+Sk6KH1dAAFW/a6/dBQaqGq46+ss/Wyg9X3+H7yhdcd5zgmfjUAqzZvEhSv m4DwWu7loZxNO+5LxB2/TvouCFpiF8ONoGwVnVtE= X-Rspam-User: X-Rspamd-Queue-Id: EB58F80010 X-Rspamd-Server: rspam10 X-Stat-Signature: t8bdssewek17wtm6oy5hdgqfcd1b5n9z X-HE-Tag: 1750767152-31471 X-HE-Meta: U2FsdGVkX1+w5mAAwrTBlinoGgvNaNAdVFo3KsZ3pPGPvLh5eJ+U0KhWAGjkrMZzCAe12oCMJRt13W6VnBIBUaWnFhm1xr7MCPLZ8xfPgTo5eAmnWl0Wv2aJh90DwvzHdKXzdkWD+dgJUNHlK11UTjAosb7LC3d1HAq9FR0Fnx8efiGoDStu9Z3szMp8gd9o9X+CrFbeIktqICxVtUxFAQIKzAdcRLm7OpCkLMeJJ1DZ1SiJhvzn3IvpRsSjr2Fcdohevrci+7gds762QB1UtBE0LNin/uxt+2E1E+hmnpZJO9zTgOc039d1/rPi9cQOSRcRudrJO4qO07Xq559PIiWreWdBRRMlw5YMK8SM9+cSX4GjEo8kHJtsUnVsYEIdIDfbwp5dUI7LR4xqHeGC/JnmTfKg3KBcKJaBmTHxgRHI8oAEDrcS63n8fK0JIeY3r0X4DfJglXkHDoNg6CT22+Xyr/KQT5olOSJlBewsWq+ippHwtycjq4sOANkYqL6G9IPcO6PhGGhczG1lMSPxZJXD/9o/1W4PgOcS9vvrrtPrbeea44rRcj4FzLfdVplmojzl9yn8X7KrIRjEq/RM0j5BNV0uc3zqhSBdlMIkeDJ0YUGkaruKQG5n6u2qUutkWGQPftnHt7gsXxoKNB5pJaQ8Cz0jWrXRvjBn1hovT/0mZMYnv2ZZY+Vo3ckAob9YSkAIMejgF3LmWr7nDfWe0kUyWbDHGBczr0UbYD0R12Q3mijhobwT6pYez6AnnPcZThlvMdPzOgHM8iPoNOaTHA8LfQ5T2954u3T+eE+fipJrVFnetBeUrr6PqIuLHLjwxAxWMVjHxDFEm+jC58ZYDdfq9V/4G0cpf0VLlGzBKiSF+MsNoOP3wd/ckIuVNT8iHD0TvM9+1jnsrWLL6OCF++iI/nzdSpmKqoxpX2cC3caxiMw4TvbSsrWl+TrISnyEwk6zobdQ4hqP2QJ16hp TN5elxHU Bsx+Pt0dlaQ4AdYrY6WLVV7Ga1O+m01EaYHeQx/b5J7UZvw8lwexHpX2NRjsvvziPtzdrJKJI7gu9DlMiFoF11i6Ss5qF1VGMF2Xp+2GRjYPkvwkWzLA5YKHx8ZwKVvr58Cx7O8HbHl5iBj0M5o6PDXf+Az2g8OfxAvfiGrJKQazPaoIbxkaCitW6Ti3b7loXICIr8pYoKMzhhVNq7AFAzGLdY7U9vs1xnazG0BUeD4dD9Nu1caDnD4y2mlhT6tQR0hhpTqvPlAzS2pKUMijqvKBau1671hfXm6dB2DnJWFVhvmw40aMJMkYntcbSCnNhG8SPdMRY9NjZjQ1vVTpYaTEnPUa+ogeO2fv3YTetliSbLcHHax1qJ33zLTl8U0QIXoP8vrCvlM8EcTYhTOdUK2kdNNK1koLoOMPArix6YASP0n19Y4TJy+6jSN7mPUQfT8XooqXM8f0GTDBIQZEPNrvSGc7Gu89ZPZU8l/LzfKUJG9uTf69LVVbeI4pvyBXTzb1ueUIIHiDh/JfN5GM+fVg3vmYHLpi+VbOURMNSMYfUYG1Hy8zwAFQuCQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: RnJvbTogVGFvdGFvIENoZW4gPGNoZW50YW90YW9AZGlkaWdsb2JhbC5jb20+DQoNCkNoYW5nZSB0 aGUgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGNhbGxiYWNrcyB3cml0ZV9iZWdpbigpIGFuZA0K d3JpdGVfZW5kKCkgdG8gdGFrZSBzdHJ1Y3Qga2lvY2IgKiBhcyB0aGUgZmlyc3QgYXJndW1lbnQg aW5zdGVhZCBvZg0Kc3RydWN0IGZpbGUgKi4NCg0KVXBkYXRlIGFsbCBhZmZlY3RlZCBmdW5jdGlv biBwcm90b3R5cGVzLCBpbXBsZW1lbnRhdGlvbnMsIGNhbGwgc2l0ZXMsDQphbmQgcmVsYXRlZCBk b2N1bWVudGF0aW9uIGFjcm9zcyBWRlMsIGZpbGVzeXN0ZW1zLCBhbmQgYmxvY2sgbGF5ZXIuDQoN ClBhcnQgb2YgYSBzZXJpZXMgcmVmYWN0b3JpbmcgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIHdy aXRlX2JlZ2luIGFuZA0Kd3JpdGVfZW5kIGNhbGxiYWNrcyB0byB1c2Ugc3RydWN0IGtpb2NiIGZv ciBwYXNzaW5nIHdyaXRlIGNvbnRleHQgYW5kDQpmbGFncy4NCg0KU2lnbmVkLW9mZi1ieTogVGFv dGFvIENoZW4gPGNoZW50YW90YW9AZGlkaWdsb2JhbC5jb20+DQotLS0NCiBEb2N1bWVudGF0aW9u L2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0IHwgIDQgKystLQ0KIERvY3VtZW50YXRpb24vZmlsZXN5 c3RlbXMvdmZzLnJzdCAgICAgfCAgNCArKy0tDQogYmxvY2svZm9wcy5jICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA2ICsrKy0tLQ0KIGZzL2FkZnMvaW5vZGUuYyAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArKy0tDQogZnMvYWZmcy9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICB8 IDEyICsrKysrKy0tLS0tLQ0KIGZzL2JjYWNoZWZzL2ZzLWlvLWJ1ZmZlcmVkLmMgICAgICAgICAg fCAgNCArKy0tDQogZnMvYmNhY2hlZnMvZnMtaW8tYnVmZmVyZWQuaCAgICAgICAgICB8ICA0ICsr LS0NCiBmcy9iZnMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCiBmcy9i dWZmZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysrLS0tLS0tLS0t DQogZnMvY2VwaC9hZGRyLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKystLQ0KIGZz L2VjcnlwdGZzL21tYXAuYyAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tDQogZnMv ZXhmYXQvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrKy0tLS0tDQog ZnMvZXhmYXQvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQ0KIGZzL2V4 dDIvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0NCiBmcy9leHQ0L2lu b2RlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTkgKysrKysrKystLS0tLS0tLS0tLQ0KIGZz L2YyZnMvZGF0YS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tDQogZnMvZmF0L2lu b2RlLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tDQogZnMvZnVzZS9maWxl LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKy0tDQogZnMvaGZzL2hmc19mcy5oICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstDQogZnMvaGZzL2lub2RlLmMgICAgICAgICAgICAg ICAgICAgICAgICB8ICA0ICsrLS0NCiBmcy9oZnNwbHVzL2hmc3BsdXNfZnMuaCAgICAgICAgICAg ICAgIHwgIDIgKy0NCiBmcy9oZnNwbHVzL2lub2RlLmMgICAgICAgICAgICAgICAgICAgIHwgIDQg KystLQ0KIGZzL2hvc3Rmcy9ob3N0ZnNfa2Vybi5jICAgICAgICAgICAgICAgfCAgNiArKystLS0N CiBmcy9ocGZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0NCiBm cy9odWdldGxiZnMvaW5vZGUuYyAgICAgICAgICAgICAgICAgIHwgIDQgKystLQ0KIGZzL2pmZnMy L2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQ0KIGZzL2pmcy9pbm9k ZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0NCiBmcy9saWJmcy5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQ0KIGZzL21pbml4L2lub2RlLmMgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQ0KIGZzL25mcy9maWxlLmMgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNiArKysrLS0NCiBmcy9uaWxmczIvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysrLS0tDQogZnMvbnRmczMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA3 ICsrKysrLS0NCiBmcy9udGZzMy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysr LS0tDQogZnMvbnRmczMvbnRmc19mcy5oICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCiBm cy9vY2ZzMi9hb3BzLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQ0KIGZzL29tZnMv ZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQ0KIGZzL29yYW5nZWZzL2lub2Rl LmMgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0NCiBmcy91Ymlmcy9maWxlLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKystLQ0KIGZzL3VkZi9pbm9kZS5jICAgICAgICAgICAgICAg ICAgICAgICAgfCAgOSArKysrKy0tLS0NCiBmcy91ZnMvaW5vZGUuYyAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDYgKysrLS0tDQogZnMvdmJveHNmL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAg ICB8ICA0ICsrLS0NCiBpbmNsdWRlL2xpbnV4L2J1ZmZlcl9oZWFkLmggICAgICAgICAgIHwgIDQg KystLQ0KIGluY2x1ZGUvbGludXgvZnMuaCAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0N CiBtbS9maWxlbWFwLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQ0KIG1tL3No bWVtLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tDQogNDUgZmlsZXMgY2hh bmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDEyOSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5yc3QgYi9Eb2N1bWVudGF0aW9uL2Zp bGVzeXN0ZW1zL2xvY2tpbmcucnN0DQppbmRleCAyZTU2N2UzNDFjM2IuLmQ4NTkzZjhlNWJlNCAx MDA2NDQNCi0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5yc3QNCisrKyBi L0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2luZy5yc3QNCkBAIC0yNTMsMTAgKzI1Mywx MCBAQCBwcm90b3R5cGVzOjoNCiAJaW50ICgqd3JpdGVwYWdlcykoc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKiwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICopOw0KIAlib29sICgqZGlydHlfZm9saW8p KHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVjdCBmb2xpbyAqZm9saW8pOw0KIAl2b2lkICgq cmVhZGFoZWFkKShzdHJ1Y3QgcmVhZGFoZWFkX2NvbnRyb2wgKik7DQotCWludCAoKndyaXRlX2Jl Z2luKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCisJaW50 ICgqd3JpdGVfYmVnaW4pKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCiAJCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCQlzdHJ1Y3QgZm9saW8g Kipmb2xpb3AsIHZvaWQgKipmc2RhdGEpOw0KLQlpbnQgKCp3cml0ZV9lbmQpKHN0cnVjdCBmaWxl ICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwlpbnQgKCp3cml0ZV9lbmQpKHN0 cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkJbG9mZl90 IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQogCQkJCXN0cnVjdCBmb2xpbyAq Zm9saW8sIHZvaWQgKmZzZGF0YSk7DQogCXNlY3Rvcl90ICgqYm1hcCkoc3RydWN0IGFkZHJlc3Nf c3BhY2UgKiwgc2VjdG9yX3QpOw0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3Rl bXMvdmZzLnJzdCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvdmZzLnJzdA0KaW5kZXggZmQz MmE5YTE3YmZiLi5kZjIwNmZmNzlmMjQgMTAwNjQ0DQotLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVz eXN0ZW1zL3Zmcy5yc3QNCisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvdmZzLnJzdA0K QEAgLTgyMiwxMCArODIyLDEwIEBAIGNhY2hlIGluIHlvdXIgZmlsZXN5c3RlbS4gIFRoZSBmb2xs b3dpbmcgbWVtYmVycyBhcmUgZGVmaW5lZDoNCiAJCWludCAoKndyaXRlcGFnZXMpKHN0cnVjdCBh ZGRyZXNzX3NwYWNlICosIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqKTsNCiAJCWJvb2wgKCpk aXJ0eV9mb2xpbykoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgc3RydWN0IGZvbGlvICopOw0KIAkJ dm9pZCAoKnJlYWRhaGVhZCkoc3RydWN0IHJlYWRhaGVhZF9jb250cm9sICopOw0KLQkJaW50ICgq d3JpdGVfYmVnaW4pKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LA0KKwkJaW50ICgqd3JpdGVfYmVnaW4pKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywNCiAJCQkJICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCQlz dHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKTsNCi0JCWludCAoKndyaXRlX2VuZCko c3RydWN0IGZpbGUgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQlpbnQgKCp3 cml0ZV9lbmQpKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN CiAJCQkJIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCQkg c3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKTsNCiAJCXNlY3Rvcl90ICgqYm1hcCko c3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgc2VjdG9yX3QpOw0KZGlmZiAtLWdpdCBhL2Jsb2NrL2Zv cHMuYyBiL2Jsb2NrL2ZvcHMuYw0KaW5kZXggMTMwOTg2MWQ0YzJjLi4yNWViZWUwMWU2NDcgMTAw NjQ0DQotLS0gYS9ibG9jay9mb3BzLmMNCisrKyBiL2Jsb2NrL2ZvcHMuYw0KQEAgLTQ5NiwxOCAr NDk2LDE4IEBAIHN0YXRpYyB2b2lkIGJsa2Rldl9yZWFkYWhlYWQoc3RydWN0IHJlYWRhaGVhZF9j b250cm9sICpyYWMpDQogCW1wYWdlX3JlYWRhaGVhZChyYWMsIGJsa2Rldl9nZXRfYmxvY2spOw0K IH0NCiANCi1zdGF0aWMgaW50IGJsa2Rldl93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBibGtkZXZfd3JpdGVf YmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN CiAJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lk ICoqZnNkYXRhKQ0KIHsNCiAJcmV0dXJuIGJsb2NrX3dyaXRlX2JlZ2luKG1hcHBpbmcsIHBvcywg bGVuLCBmb2xpb3AsIGJsa2Rldl9nZXRfYmxvY2spOw0KIH0NCiANCi1zdGF0aWMgaW50IGJsa2Rl dl93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLA0KK3N0YXRpYyBpbnQgYmxrZGV2X3dyaXRlX2VuZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVu LCB1bnNpZ25lZCBjb3BpZWQsIHN0cnVjdCBmb2xpbyAqZm9saW8sDQogCQl2b2lkICpmc2RhdGEp DQogew0KIAlpbnQgcmV0Ow0KLQlyZXQgPSBibG9ja193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywg cG9zLCBsZW4sIGNvcGllZCwgZm9saW8sIGZzZGF0YSk7DQorCXJldCA9IGJsb2NrX3dyaXRlX2Vu ZChpb2NiLT5raV9maWxwLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRh KTsNCiANCiAJZm9saW9fdW5sb2NrKGZvbGlvKTsNCiAJZm9saW9fcHV0KGZvbGlvKTsNCmRpZmYg LS1naXQgYS9mcy9hZGZzL2lub2RlLmMgYi9mcy9hZGZzL2lub2RlLmMNCmluZGV4IDIxNTI3MTg5 ZTQzMC4uMGJkMjBkOGFjOGZiIDEwMDY0NA0KLS0tIGEvZnMvYWRmcy9pbm9kZS5jDQorKysgYi9m cy9hZGZzL2lub2RlLmMNCkBAIC01MywxMyArNTMsMTMgQEAgc3RhdGljIHZvaWQgYWRmc193cml0 ZV9mYWlsZWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCB0bykNCiAJCXRy dW5jYXRlX3BhZ2VjYWNoZShpbm9kZSwgaW5vZGUtPmlfc2l6ZSk7DQogfQ0KIA0KLXN0YXRpYyBp bnQgYWRmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBhZGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBraW9jYiAq aW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJbG9mZl90IHBvcywgdW5z aWduZWQgbGVuLA0KIAkJCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7 DQogCWludCByZXQ7DQogDQotCXJldCA9IGNvbnRfd3JpdGVfYmVnaW4oZmlsZSwgbWFwcGluZywg cG9zLCBsZW4sIGZvbGlvcCwgZnNkYXRhLA0KKwlyZXQgPSBjb250X3dyaXRlX2JlZ2luKGlvY2Is IG1hcHBpbmcsIHBvcywgbGVuLCBmb2xpb3AsIGZzZGF0YSwNCiAJCQkJYWRmc19nZXRfYmxvY2ss DQogCQkJCSZBREZTX0kobWFwcGluZy0+aG9zdCktPm1tdV9wcml2YXRlKTsNCiAJaWYgKHVubGlr ZWx5KHJldCkpDQpkaWZmIC0tZ2l0IGEvZnMvYWZmcy9maWxlLmMgYi9mcy9hZmZzL2ZpbGUuYw0K aW5kZXggN2E3MTAxOGUzZjY3Li5kOGJiZjVhNTFhMzMgMTAwNjQ0DQotLS0gYS9mcy9hZmZzL2Zp bGUuYw0KKysrIGIvZnMvYWZmcy9maWxlLmMNCkBAIC00MTUsMTMgKzQxNSwxMyBAQCBhZmZzX2Rp cmVjdF9JTyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaXRlcikNCiAJcmV0 dXJuIHJldDsNCiB9DQogDQotc3RhdGljIGludCBhZmZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IGFmZnNf d3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQkJc3RydWN0IGZvbGlvICoq Zm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsNCiAJaW50IHJldDsNCiANCi0JcmV0ID0gY29udF93 cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgZm9saW9wLCBmc2RhdGEsDQorCXJl dCA9IGNvbnRfd3JpdGVfYmVnaW4oaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGZvbGlvcCwgZnNk YXRhLA0KIAkJCQlhZmZzX2dldF9ibG9jaywNCiAJCQkJJkFGRlNfSShtYXBwaW5nLT5ob3N0KS0+ bW11X3ByaXZhdGUpOw0KIAlpZiAodW5saWtlbHkocmV0KSkNCkBAIC00MzAsMTQgKzQzMCwxNCBA QCBzdGF0aWMgaW50IGFmZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50 IGFmZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCitzdGF0aWMgaW50IGFmZnNfd3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJICBsb2ZmX3QgcG9zLCB1bnNpZ25l ZCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQgY29waWVkLA0KIAkJCSAgc3RydWN0IGZvbGlvICpmb2xp bywgdm9pZCAqZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhv c3Q7DQogCWludCByZXQ7DQogDQotCXJldCA9IGdlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBp bmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KKwlyZXQgPSBnZW5lcmljX3dy aXRlX2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRhKTsN CiANCiAJLyogQ2xlYXIgQXJjaGl2ZWQgYml0IG9uIGZpbGUgd3JpdGVzLCBhcyBBbWlnYU9TIHdv dWxkIGRvICovDQogCWlmIChBRkZTX0koaW5vZGUpLT5pX3Byb3RlY3QgJiBGSUJGX0FSQ0hJVkVE KSB7DQpAQCAtNjQ1LDcgKzY0NSw3IEBAIHN0YXRpYyBpbnQgYWZmc19yZWFkX2ZvbGlvX29mcyhz dHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGZvbGlvICpmb2xpbykNCiAJcmV0dXJuIGVycjsNCiB9 DQogDQotc3RhdGljIGludCBhZmZzX3dyaXRlX2JlZ2luX29mcyhzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBhZmZzX3dyaXRlX2Jl Z2luX29mcyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LA0KIAkJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQkJCXN0cnVjdCBmb2xpbyAqKmZv bGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQpAQCAtNjg0LDcgKzY4NCw3IEBAIHN0YXRpYyBpbnQg YWZmc193cml0ZV9iZWdpbl9vZnMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nDQogCXJldHVybiBlcnI7DQogfQ0KIA0KLXN0YXRpYyBpbnQgYWZmc193cml0 ZV9lbmRfb2ZzKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCitzdGF0aWMgaW50IGFmZnNfd3JpdGVfZW5kX29mcyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBs ZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQkJc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNk YXRhKQ0KIHsNCmRpZmYgLS1naXQgYS9mcy9iY2FjaGVmcy9mcy1pby1idWZmZXJlZC5jIGIvZnMv YmNhY2hlZnMvZnMtaW8tYnVmZmVyZWQuYw0KaW5kZXggNjZiYWNkZDQ5Zjc4Li42MDFmZDg4MTMx OGIgMTAwNjQ0DQotLS0gYS9mcy9iY2FjaGVmcy9mcy1pby1idWZmZXJlZC5jDQorKysgYi9mcy9i Y2FjaGVmcy9mcy1pby1idWZmZXJlZC5jDQpAQCAtNjc0LDcgKzY3NCw3IEBAIGludCBiY2gyX3dy aXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCB3cml0ZWJhY2tf Y29udHJvbCAqd2JjDQogDQogLyogYnVmZmVyZWQgd3JpdGVzOiAqLw0KIA0KLWludCBiY2gyX3dy aXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCitpbnQgYmNoMl93cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRy ZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQog CQkgICAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQpAQCAtNzU3 LDcgKzc1Nyw3IEBAIGludCBiY2gyX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJcmV0dXJuIGJjaDJfZXJyX2NsYXNzKHJldCk7 DQogfQ0KIA0KLWludCBiY2gyX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQoraW50IGJjaDJfd3JpdGVfZW5kKHN0cnVjdCBraW9jYiAq aW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkgICBsb2ZmX3QgcG9zLCB1 bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCSAgIHN0cnVjdCBmb2xpbyAqZm9saW8s IHZvaWQgKmZzZGF0YSkNCiB7DQpkaWZmIC0tZ2l0IGEvZnMvYmNhY2hlZnMvZnMtaW8tYnVmZmVy ZWQuaCBiL2ZzL2JjYWNoZWZzL2ZzLWlvLWJ1ZmZlcmVkLmgNCmluZGV4IDMyMDdlYmJiNGFiNC4u MTc3MjM5MzYwMzhiIDEwMDY0NA0KLS0tIGEvZnMvYmNhY2hlZnMvZnMtaW8tYnVmZmVyZWQuaA0K KysrIGIvZnMvYmNhY2hlZnMvZnMtaW8tYnVmZmVyZWQuaA0KQEAgLTEwLDkgKzEwLDkgQEAgaW50 IGJjaDJfcmVhZF9mb2xpbyhzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZm9saW8gKik7DQogaW50IGJj aDJfd3JpdGVwYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBzdHJ1Y3Qgd3JpdGViYWNrX2Nv bnRyb2wgKik7DQogdm9pZCBiY2gyX3JlYWRhaGVhZChzdHJ1Y3QgcmVhZGFoZWFkX2NvbnRyb2wg Kik7DQogDQotaW50IGJjaDJfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKiwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKiwgbG9mZl90IHBvcywNCitpbnQgYmNoMl93cml0ZV9iZWdpbihzdHJ1Y3Qga2lv Y2IgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgbG9mZl90IHBvcywNCiAJCSAgICAgdW5zaWdu ZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKiosIHZvaWQgKiopOw0KLWludCBiY2gyX3dyaXRlX2VuZChz dHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBsb2ZmX3QsDQoraW50IGJjaDJf d3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBsb2ZmX3Qs DQogCQkgICB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IGZvbGlvICosIHZv aWQgKik7DQogDQogc3NpemVfdCBiY2gyX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICosIHN0cnVj dCBpb3ZfaXRlciAqKTsNCmRpZmYgLS1naXQgYS9mcy9iZnMvZmlsZS5jIGIvZnMvYmZzL2ZpbGUu Yw0KaW5kZXggZmE2NmEwOWU0OTZhLi4wYThhZThjMjM0NmIgMTAwNjQ0DQotLS0gYS9mcy9iZnMv ZmlsZS5jDQorKysgYi9mcy9iZnMvZmlsZS5jDQpAQCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyB2 b2lkIGJmc193cml0ZV9mYWlsZWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZf dCB0bykNCiAJCXRydW5jYXRlX3BhZ2VjYWNoZShpbm9kZSwgaW5vZGUtPmlfc2l6ZSk7DQogfQ0K IA0KLXN0YXRpYyBpbnQgYmZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IGJmc193cml0ZV9iZWdpbihzdHJ1 Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZf dCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipm c2RhdGEpDQogew0KZGlmZiAtLWdpdCBhL2ZzL2J1ZmZlci5jIGIvZnMvYnVmZmVyLmMNCmluZGV4 IDhjZjRhMWRjNDgxZS4uYjQyYjUwMmZhZDJmIDEwMDY0NA0KLS0tIGEvZnMvYnVmZmVyLmMNCisr KyBiL2ZzL2J1ZmZlci5jDQpAQCAtMjMwNCw3ICsyMzA0LDcgQEAgaW50IGJsb2NrX3dyaXRlX2Vu ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogfQ0K IEVYUE9SVF9TWU1CT0woYmxvY2tfd3JpdGVfZW5kKTsNCiANCi1pbnQgZ2VuZXJpY193cml0ZV9l bmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK2lu dCBnZW5lcmljX3dyaXRlX2VuZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29w aWVkLA0KIAkJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQpAQCAtMjMx Miw3ICsyMzEyLDcgQEAgaW50IGdlbmVyaWNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJbG9mZl90IG9sZF9zaXplID0gaW5vZGUt Pmlfc2l6ZTsNCiAJYm9vbCBpX3NpemVfY2hhbmdlZCA9IGZhbHNlOw0KIA0KLQljb3BpZWQgPSBi bG9ja193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sIGZz ZGF0YSk7DQorCWNvcGllZCA9IGJsb2NrX3dyaXRlX2VuZChpb2NiLT5raV9maWxwLCBtYXBwaW5n LCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRhKTsNCiANCiAJLyoNCiAJICogTm8gbmVl ZCB0byB1c2UgaV9zaXplX3JlYWQoKSBoZXJlLCB0aGUgaV9zaXplIGNhbm5vdCBjaGFuZ2UgdW5k ZXIgdXMNCkBAIC0yNTAxLDcgKzI1MDEsNyBAQCBpbnQgZ2VuZXJpY19jb250X2V4cGFuZF9zaW1w bGUoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHNpemUpDQogfQ0KIEVYUE9SVF9TWU1CT0wo Z2VuZXJpY19jb250X2V4cGFuZF9zaW1wbGUpOw0KIA0KLXN0YXRpYyBpbnQgY29udF9leHBhbmRf emVybyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQor c3RhdGljIGludCBjb250X2V4cGFuZF96ZXJvKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJICAgIGxvZmZfdCBwb3MsIGxvZmZfdCAqYnl0ZXMp DQogew0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsNCkBAIC0yNTI1LDEy ICsyNTI1LDEyIEBAIHN0YXRpYyBpbnQgY29udF9leHBhbmRfemVybyhzdHJ1Y3QgZmlsZSAqZmls ZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQl9DQogCQlsZW4gPSBQQUdFX1NJ WkUgLSB6ZXJvZnJvbTsNCiANCi0JCWVyciA9IGFvcHMtPndyaXRlX2JlZ2luKGZpbGUsIG1hcHBp bmcsIGN1cnBvcywgbGVuLA0KKwkJZXJyID0gYW9wcy0+d3JpdGVfYmVnaW4oaW9jYiwgbWFwcGlu ZywgY3VycG9zLCBsZW4sDQogCQkJCQkgICAgJmZvbGlvLCAmZnNkYXRhKTsNCiAJCWlmIChlcnIp DQogCQkJZ290byBvdXQ7DQogCQlmb2xpb196ZXJvX3JhbmdlKGZvbGlvLCBvZmZzZXRfaW5fZm9s aW8oZm9saW8sIGN1cnBvcyksIGxlbik7DQotCQllcnIgPSBhb3BzLT53cml0ZV9lbmQoZmlsZSwg bWFwcGluZywgY3VycG9zLCBsZW4sIGxlbiwNCisJCWVyciA9IGFvcHMtPndyaXRlX2VuZChpb2Ni LCBtYXBwaW5nLCBjdXJwb3MsIGxlbiwgbGVuLA0KIAkJCQkJCWZvbGlvLCBmc2RhdGEpOw0KIAkJ aWYgKGVyciA8IDApDQogCQkJZ290byBvdXQ7DQpAQCAtMjU1OCwxMiArMjU1OCwxMiBAQCBzdGF0 aWMgaW50IGNvbnRfZXhwYW5kX3plcm8oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLA0KIAkJfQ0KIAkJbGVuID0gb2Zmc2V0IC0gemVyb2Zyb207DQogDQot CQllcnIgPSBhb3BzLT53cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBjdXJwb3MsIGxlbiwNCisJ CWVyciA9IGFvcHMtPndyaXRlX2JlZ2luKGlvY2IsIG1hcHBpbmcsIGN1cnBvcywgbGVuLA0KIAkJ CQkJICAgICZmb2xpbywgJmZzZGF0YSk7DQogCQlpZiAoZXJyKQ0KIAkJCWdvdG8gb3V0Ow0KIAkJ Zm9saW9femVyb19yYW5nZShmb2xpbywgb2Zmc2V0X2luX2ZvbGlvKGZvbGlvLCBjdXJwb3MpLCBs ZW4pOw0KLQkJZXJyID0gYW9wcy0+d3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIGN1cnBvcywgbGVu LCBsZW4sDQorCQllcnIgPSBhb3BzLT53cml0ZV9lbmQoaW9jYiwgbWFwcGluZywgY3VycG9zLCBs ZW4sIGxlbiwNCiAJCQkJCQlmb2xpbywgZnNkYXRhKTsNCiAJCWlmIChlcnIgPCAwKQ0KIAkJCWdv dG8gb3V0Ow0KQEAgLTI1NzgsNyArMjU3OCw3IEBAIHN0YXRpYyBpbnQgY29udF9leHBhbmRfemVy byhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogICog Rm9yIG1vcm9uaWMgZmlsZXN5c3RlbXMgdGhhdCBkbyBub3QgYWxsb3cgaG9sZXMgaW4gZmlsZS4N CiAgKiBXZSBtYXkgaGF2ZSB0byBleHRlbmQgdGhlIGZpbGUuDQogICovDQotaW50IGNvbnRfd3Jp dGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LA0KK2ludCBjb250X3dyaXRlX2JlZ2luKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCXN0 cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSwNCiAJCQlnZXRfYmxvY2tfdCAqZ2V0 X2Jsb2NrLCBsb2ZmX3QgKmJ5dGVzKQ0KQEAgLTI1ODgsNyArMjU4OCw3IEBAIGludCBjb250X3dy aXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCiAJdW5zaWduZWQgaW50IHplcm9mcm9tOw0KIAlpbnQgZXJyOw0KIA0KLQllcnIgPSBjb250 X2V4cGFuZF96ZXJvKGZpbGUsIG1hcHBpbmcsIHBvcywgYnl0ZXMpOw0KKwllcnIgPSBjb250X2V4 cGFuZF96ZXJvKGlvY2IsIG1hcHBpbmcsIHBvcywgYnl0ZXMpOw0KIAlpZiAoZXJyKQ0KIAkJcmV0 dXJuIGVycjsNCiANCmRpZmYgLS1naXQgYS9mcy9jZXBoL2FkZHIuYyBiL2ZzL2NlcGgvYWRkci5j DQppbmRleCA2MGE2MjFiMDBjNjUuLjg2NTA0NDM2NGNmYSAxMDA2NDQNCi0tLSBhL2ZzL2NlcGgv YWRkci5jDQorKysgYi9mcy9jZXBoL2FkZHIuYw0KQEAgLTE4NjQsMTAgKzE4NjQsMTEgQEAgc3Rh dGljIGludCBjZXBoX25ldGZzX2NoZWNrX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBs b2ZmX3QgcG9zLCB1bnNpZ25lZA0KICAqIFdlIGFyZSBvbmx5IGFsbG93ZWQgdG8gd3JpdGUgaW50 by9kaXJ0eSB0aGUgcGFnZSBpZiB0aGUgcGFnZSBpcw0KICAqIGNsZWFuLCBvciBhbHJlYWR5IGRp cnR5IHdpdGhpbiB0aGUgc2FtZSBzbmFwIGNvbnRleHQuDQogICovDQotc3RhdGljIGludCBjZXBo X3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCitzdGF0aWMgaW50IGNlcGhfd3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgbG9mZl90IHBvcywgdW5zaWdu ZWQgbGVuLA0KIAkJCSAgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQog ew0KKwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQogCXN0cnVjdCBpbm9kZSAq aW5vZGUgPSBmaWxlX2lub2RlKGZpbGUpOw0KIAlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9 IGNlcGhfaW5vZGUoaW5vZGUpOw0KIAlpbnQgcjsNCkBAIC0xODg1LDEwICsxODg2LDExIEBAIHN0 YXRpYyBpbnQgY2VwaF93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsDQogICogd2UgZG9uJ3QgZG8gYW55dGhpbmcgaW4gaGVyZSB0aGF0 IHNpbXBsZV93cml0ZV9lbmQgZG9lc24ndCBkbw0KICAqIGV4Y2VwdCBhZGp1c3QgZGlydHkgcGFn ZSBhY2NvdW50aW5nDQogICovDQotc3RhdGljIGludCBjZXBoX3dyaXRlX2VuZChzdHJ1Y3QgZmls ZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBjZXBo X3dyaXRlX2VuZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLA0KIAkJCSAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQog CQkJICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KKwlzdHJ1Y3QgZmls ZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlX2lu b2RlKGZpbGUpOw0KIAlzdHJ1Y3QgY2VwaF9jbGllbnQgKmNsID0gY2VwaF9pbm9kZV90b19jbGll bnQoaW5vZGUpOw0KIAlib29sIGNoZWNrX2NhcCA9IGZhbHNlOw0KZGlmZiAtLWdpdCBhL2ZzL2Vj cnlwdGZzL21tYXAuYyBiL2ZzL2VjcnlwdGZzL21tYXAuYw0KaW5kZXggNjBmMGFjODc0NGI1Li42 NzBlMmFlMzVhZmYgMTAwNjQ0DQotLS0gYS9mcy9lY3J5cHRmcy9tbWFwLmMNCisrKyBiL2ZzL2Vj cnlwdGZzL21tYXAuYw0KQEAgLTIyOCw3ICsyMjgsNyBAQCBzdGF0aWMgaW50IGZpbGxfemVyb3Nf dG9fZW5kX29mX3BhZ2Uoc3RydWN0IGZvbGlvICpmb2xpbywgdW5zaWduZWQgaW50IHRvKQ0KIA0K IC8qKg0KICAqIGVjcnlwdGZzX3dyaXRlX2JlZ2luDQotICogQGZpbGU6IFRoZSBlQ3J5cHRmcyBm aWxlDQorICogQGlvY2I6IEkvTyBjb250cm9sIGJsb2NrIGZvciB0aGUgZUNyeXB0ZnMgZmlsZQ0K ICAqIEBtYXBwaW5nOiBUaGUgZUNyeXB0ZnMgb2JqZWN0DQogICogQHBvczogVGhlIGZpbGUgb2Zm c2V0IGF0IHdoaWNoIHRvIHN0YXJ0IHdyaXRpbmcNCiAgKiBAbGVuOiBMZW5ndGggb2YgdGhlIHdy aXRlDQpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBpbnQgZmlsbF96ZXJvc190b19lbmRfb2Zf cGFnZShzdHJ1Y3QgZm9saW8gKmZvbGlvLCB1bnNpZ25lZCBpbnQgdG8pDQogICoNCiAgKiBSZXR1 cm5zIHplcm8gb24gc3VjY2Vzczsgbm9uLXplcm8gb3RoZXJ3aXNlDQogICovDQotc3RhdGljIGlu dCBlY3J5cHRmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwNCitzdGF0aWMgaW50IGVj cnlwdGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJCQlzdHJ1Y3QgYWRkcmVz c19zcGFjZSAqbWFwcGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQkJc3Ry dWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KQEAgLTMyMiw3ICszMjIsNyBAQCBz dGF0aWMgaW50IGVjcnlwdGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLA0KIAkgKiBO b3RlLCB0aGlzIHdpbGwgaW5jcmVhc2UgaV9zaXplLiAqLw0KIAlpZiAoaW5kZXggIT0gMCkgew0K IAkJaWYgKHByZXZfcGFnZV9lbmRfc2l6ZSA+IGlfc2l6ZV9yZWFkKG1hcHBpbmctPmhvc3QpKSB7 DQotCQkJcmMgPSBlY3J5cHRmc190cnVuY2F0ZShmaWxlLT5mX3BhdGguZGVudHJ5LA0KKwkJCXJj ID0gZWNyeXB0ZnNfdHJ1bmNhdGUoaW9jYi0+a2lfZmlscC0+Zl9wYXRoLmRlbnRyeSwNCiAJCQkJ CSAgICAgICBwcmV2X3BhZ2VfZW5kX3NpemUpOw0KIAkJCWlmIChyYykgew0KIAkJCQlwcmludGso S0VSTl9FUlIgIiVzOiBFcnJvciBvbiBhdHRlbXB0IHRvICINCkBAIC00MjksNyArNDI5LDcgQEAg aW50IGVjcnlwdGZzX3dyaXRlX2lub2RlX3NpemVfdG9fbWV0YWRhdGEoc3RydWN0IGlub2RlICpl Y3J5cHRmc19pbm9kZSkNCiANCiAvKioNCiAgKiBlY3J5cHRmc193cml0ZV9lbmQNCi0gKiBAZmls ZTogVGhlIGVDcnlwdGZzIGZpbGUgb2JqZWN0DQorICogQGlvY2I6IEkvTyBjb250cm9sIGJsb2Nr IGZvciB0aGUgZUNyeXB0ZnMgZmlsZQ0KICAqIEBtYXBwaW5nOiBUaGUgZUNyeXB0ZnMgb2JqZWN0 DQogICogQHBvczogVGhlIGZpbGUgcG9zaXRpb24NCiAgKiBAbGVuOiBUaGUgbGVuZ3RoIG9mIHRo ZSBkYXRhICh1bnVzZWQpDQpAQCAtNDM3LDcgKzQzNyw3IEBAIGludCBlY3J5cHRmc193cml0ZV9p bm9kZV9zaXplX3RvX21ldGFkYXRhKHN0cnVjdCBpbm9kZSAqZWNyeXB0ZnNfaW5vZGUpDQogICog QGZvbGlvOiBUaGUgZUNyeXB0ZnMgZm9saW8NCiAgKiBAZnNkYXRhOiBUaGUgZnNkYXRhICh1bnVz ZWQpDQogICovDQotc3RhdGljIGludCBlY3J5cHRmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZp bGUsDQorc3RhdGljIGludCBlY3J5cHRmc193cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2NiLA0K IAkJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2ln bmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQg KmZzZGF0YSkNCmRpZmYgLS1naXQgYS9mcy9leGZhdC9maWxlLmMgYi9mcy9leGZhdC9maWxlLmMN CmluZGV4IDg0MWE1YjE4ZTNkZi4uOGZmYTRhMmRmYmFkIDEwMDY0NA0KLS0tIGEvZnMvZXhmYXQv ZmlsZS5jDQorKysgYi9mcy9leGZhdC9maWxlLmMNCkBAIC01MzIsMTAgKzUzMiwxMSBAQCBpbnQg ZXhmYXRfZmlsZV9mc3luYyhzdHJ1Y3QgZmlsZSAqZmlscCwgbG9mZl90IHN0YXJ0LCBsb2ZmX3Qg ZW5kLCBpbnQgZGF0YXN5bmMpDQogCXJldHVybiBibGtkZXZfaXNzdWVfZmx1c2goaW5vZGUtPmlf c2ItPnNfYmRldik7DQogfQ0KIA0KLXN0YXRpYyBpbnQgZXhmYXRfZXh0ZW5kX3ZhbGlkX3NpemUo c3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBuZXdfdmFsaWRfc2l6ZSkNCitzdGF0aWMgaW50IGV4 ZmF0X2V4dGVuZF92YWxpZF9zaXplKHN0cnVjdCBraW9jYiAqaW9jYiwgbG9mZl90IG5ld192YWxp ZF9zaXplKQ0KIHsNCiAJaW50IGVycjsNCiAJbG9mZl90IHBvczsNCisJc3RydWN0IGZpbGUgKmZp bGUgPSBpb2NiLT5raV9maWxwOw0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShm aWxlKTsNCiAJc3RydWN0IGV4ZmF0X2lub2RlX2luZm8gKmVpID0gRVhGQVRfSShpbm9kZSk7DQog CXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gaW5vZGUtPmlfbWFwcGluZzsNCkBAIC01 NTEsMTQgKzU1MiwxNCBAQCBzdGF0aWMgaW50IGV4ZmF0X2V4dGVuZF92YWxpZF9zaXplKHN0cnVj dCBmaWxlICpmaWxlLCBsb2ZmX3QgbmV3X3ZhbGlkX3NpemUpDQogCQlpZiAocG9zICsgbGVuID4g bmV3X3ZhbGlkX3NpemUpDQogCQkJbGVuID0gbmV3X3ZhbGlkX3NpemUgLSBwb3M7DQogDQotCQll cnIgPSBvcHMtPndyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCAmZm9saW8sIE5V TEwpOw0KKwkJZXJyID0gb3BzLT53cml0ZV9iZWdpbihpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwg JmZvbGlvLCBOVUxMKTsNCiAJCWlmIChlcnIpDQogCQkJZ290byBvdXQ7DQogDQogCQlvZmYgPSBv ZmZzZXRfaW5fZm9saW8oZm9saW8sIHBvcyk7DQogCQlmb2xpb196ZXJvX25ld19idWZmZXJzKGZv bGlvLCBvZmYsIG9mZiArIGxlbik7DQogDQotCQllcnIgPSBvcHMtPndyaXRlX2VuZChmaWxlLCBt YXBwaW5nLCBwb3MsIGxlbiwgbGVuLCBmb2xpbywgTlVMTCk7DQorCQllcnIgPSBvcHMtPndyaXRl X2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgbGVuLCBmb2xpbywgTlVMTCk7DQogCQlpZiAo ZXJyIDwgMCkNCiAJCQlnb3RvIG91dDsNCiAJCXBvcyArPSBsZW47DQpAQCAtNjA0LDcgKzYwNSw3 IEBAIHN0YXRpYyBzc2l6ZV90IGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBpb3ZfaXRlciAqaXRlcikNCiAJfQ0KIA0KIAlpZiAocG9zID4gdmFsaWRfc2l6 ZSkgew0KLQkJcmV0ID0gZXhmYXRfZXh0ZW5kX3ZhbGlkX3NpemUoZmlsZSwgcG9zKTsNCisJCXJl dCA9IGV4ZmF0X2V4dGVuZF92YWxpZF9zaXplKGlvY2IsIHBvcyk7DQogCQlpZiAocmV0IDwgMCAm JiByZXQgIT0gLUVOT1NQQykgew0KIAkJCWV4ZmF0X2Vycihpbm9kZS0+aV9zYiwNCiAJCQkJIndy aXRlOiBmYWlsIHRvIHplcm8gZnJvbSAlbGx1IHRvICVsbHUoJXpkKSIsDQpAQCAtNjU1LDggKzY1 NiwxMSBAQCBzdGF0aWMgdm1fZmF1bHRfdCBleGZhdF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2Zh dWx0ICp2bWYpDQogCXN0cnVjdCBmaWxlICpmaWxlID0gdm1hLT52bV9maWxlOw0KIAlzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxlKTsNCiAJc3RydWN0IGV4ZmF0X2lub2RlX2lu Zm8gKmVpID0gRVhGQVRfSShpbm9kZSk7DQorCXN0cnVjdCBraW9jYiBpb2NiOw0KIAlsb2ZmX3Qg c3RhcnQsIGVuZDsNCiANCisJaW5pdF9zeW5jX2tpb2NiKCZpb2NiLCBmaWxlKTsNCisNCiAJaWYg KCFpbm9kZV90cnlsb2NrKGlub2RlKSkNCiAJCXJldHVybiBWTV9GQVVMVF9SRVRSWTsNCiANCkBA IC02NjUsNyArNjY5LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgZXhmYXRfcGFnZV9ta3dyaXRlKHN0 cnVjdCB2bV9mYXVsdCAqdm1mKQ0KIAkJCXN0YXJ0ICsgdm1hLT52bV9lbmQgLSB2bWEtPnZtX3N0 YXJ0KTsNCiANCiAJaWYgKGVpLT52YWxpZF9zaXplIDwgZW5kKSB7DQotCQllcnIgPSBleGZhdF9l eHRlbmRfdmFsaWRfc2l6ZShmaWxlLCBlbmQpOw0KKwkJZXJyID0gZXhmYXRfZXh0ZW5kX3ZhbGlk X3NpemUoJmlvY2IsIGVuZCk7DQogCQlpZiAoZXJyIDwgMCkgew0KIAkJCWlub2RlX3VubG9jayhp bm9kZSk7DQogCQkJcmV0dXJuIHZtZl9mc19lcnJvcihlcnIpOw0KZGlmZiAtLWdpdCBhL2ZzL2V4 ZmF0L2lub2RlLmMgYi9mcy9leGZhdC9pbm9kZS5jDQppbmRleCBiMjJjMDJkNjAwMGYuLjM1NGVk Y2NjYzVlMyAxMDA2NDQNCi0tLSBhL2ZzL2V4ZmF0L2lub2RlLmMNCisrKyBiL2ZzL2V4ZmF0L2lu b2RlLmMNCkBAIC00NDYsNyArNDQ2LDcgQEAgc3RhdGljIHZvaWQgZXhmYXRfd3JpdGVfZmFpbGVk KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCX0NCiB9DQogDQot c3RhdGljIGludCBleGZhdF93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBleGZhdF93cml0ZV9iZWdpbihzdHJ1 Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJbG9mZl90 IHBvcywgdW5zaWduZWQgaW50IGxlbiwNCiAJCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAq KmZzZGF0YSkNCiB7DQpAQCAtNDYzLDcgKzQ2Myw3IEBAIHN0YXRpYyBpbnQgZXhmYXRfd3JpdGVf YmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0K IAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGV4ZmF0X3dyaXRlX2VuZChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBl eGZhdF93cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCiAJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGludCBsZW4sIHVuc2lnbmVkIGludCBj b3BpZWQsDQogCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KQEAgLTQ3 MSw3ICs0NzEsNyBAQCBzdGF0aWMgaW50IGV4ZmF0X3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmls ZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXN0cnVjdCBleGZhdF9pbm9kZV9p bmZvICplaSA9IEVYRkFUX0koaW5vZGUpOw0KIAlpbnQgZXJyOw0KIA0KLQllcnIgPSBnZW5lcmlj X3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRh KTsNCisJZXJyID0gZ2VuZXJpY193cml0ZV9lbmQoaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGNv cGllZCwgZm9saW8sIGZzZGF0YSk7DQogCWlmIChlcnIgPCBsZW4pDQogCQlleGZhdF93cml0ZV9m YWlsZWQobWFwcGluZywgcG9zK2xlbik7DQogDQpkaWZmIC0tZ2l0IGEvZnMvZXh0Mi9pbm9kZS5j IGIvZnMvZXh0Mi9pbm9kZS5jDQppbmRleCAzMGY4MjAxYzE1NWYuLjY2MTA2MTU3YzdmMCAxMDA2 NDQNCi0tLSBhL2ZzL2V4dDIvaW5vZGUuYw0KKysrIGIvZnMvZXh0Mi9pbm9kZS5jDQpAQCAtOTE1 LDcgKzkxNSw3IEBAIHN0YXRpYyB2b2lkIGV4dDJfcmVhZGFoZWFkKHN0cnVjdCByZWFkYWhlYWRf Y29udHJvbCAqcmFjKQ0KIH0NCiANCiBzdGF0aWMgaW50DQotZXh0Ml93cml0ZV9iZWdpbihzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorZXh0Ml93cml0 ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LA0KIAkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZv aWQgKipmc2RhdGEpDQogew0KIAlpbnQgcmV0Ow0KQEAgLTkyNiwxMyArOTI2LDEzIEBAIGV4dDJf d3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLA0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGV4dDJfd3JpdGVfZW5kKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMg aW50IGV4dDJfd3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQogCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3Bp ZWQsDQogCQkJc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCiAJaW50IHJl dDsNCiANCi0JcmV0ID0gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4s IGNvcGllZCwgZm9saW8sIGZzZGF0YSk7DQorCXJldCA9IGdlbmVyaWNfd3JpdGVfZW5kKGlvY2Is IG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KIAlpZiAocmV0IDwg bGVuKQ0KIAkJZXh0Ml93cml0ZV9mYWlsZWQobWFwcGluZywgcG9zICsgbGVuKTsNCiAJcmV0dXJu IHJldDsNCmRpZmYgLS1naXQgYS9mcy9leHQ0L2lub2RlLmMgYi9mcy9leHQ0L2lub2RlLmMNCmlu ZGV4IGJlOWE0Y2JhMzVmZC4uN2ZmNzAwOWY5Nzk5IDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9pbm9k ZS5jDQorKysgYi9mcy9leHQ0L2lub2RlLmMNCkBAIC0xMjUyLDcgKzEyNTIsNyBAQCBpbnQgZXh0 NF9ibG9ja193cml0ZV9iZWdpbihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZm9saW8gKmZvbGlv LA0KICAqIGFuZCB0aGUgZXh0NF93cml0ZV9lbmQoKS4gIFNvIGRvaW5nIHRoZSBqYmQyX2pvdXJu YWxfc3RhcnQgYXQgdGhlIHN0YXJ0IG9mDQogICogZXh0NF93cml0ZV9iZWdpbigpIGlzIHRoZSBy aWdodCBwbGFjZS4NCiAgKi8NCi1zdGF0aWMgaW50IGV4dDRfd3JpdGVfYmVnaW4oc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgZXh0 NF93cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLA0KIAkJCSAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQkJICAgIHN0cnVj dCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQpAQCAtMTM5OSwxMyArMTM5OSwx MCBAQCBzdGF0aWMgaW50IHdyaXRlX2VuZF9mbihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5v ZGUgKmlub2RlLA0KIH0NCiANCiAvKg0KLSAqIFdlIG5lZWQgdG8gcGljayB1cCB0aGUgbmV3IGlu b2RlIHNpemUgd2hpY2ggZ2VuZXJpY19jb21taXRfd3JpdGUgZ2F2ZSB1cw0KLSAqIGBmaWxlJyBj YW4gYmUgTlVMTCAtIGVnLCB3aGVuIGNhbGxlZCBmcm9tIHBhZ2Vfc3ltbGluaygpLg0KLSAqDQog ICogZXh0NCBuZXZlciBwbGFjZXMgYnVmZmVycyBvbiBpbm9kZS0+aV9tYXBwaW5nLT5pX3ByaXZh dGVfbGlzdC4gIG1ldGFkYXRhDQogICogYnVmZmVycyBhcmUgbWFuYWdlZCBpbnRlcm5hbGx5Lg0K ICAqLw0KLXN0YXRpYyBpbnQgZXh0NF93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsDQorc3Rh dGljIGludCBleHQ0X3dyaXRlX2VuZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQkJICBzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwg dW5zaWduZWQgY29waWVkLA0KIAkJCSAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRh KQ0KQEAgLTE0MjQsNyArMTQyMSw3IEBAIHN0YXRpYyBpbnQgZXh0NF93cml0ZV9lbmQoc3RydWN0 IGZpbGUgKmZpbGUsDQogCQlyZXR1cm4gZXh0NF93cml0ZV9pbmxpbmVfZGF0YV9lbmQoaW5vZGUs IHBvcywgbGVuLCBjb3BpZWQsDQogCQkJCQkJICBmb2xpbyk7DQogDQotCWNvcGllZCA9IGJsb2Nr X3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRh KTsNCisJY29waWVkID0gYmxvY2tfd3JpdGVfZW5kKGlvY2ItPmtpX2ZpbHAsIG1hcHBpbmcsIHBv cywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KIAkvKg0KIAkgKiBpdCdzIGltcG9ydGFu dCB0byB1cGRhdGUgaV9zaXplIHdoaWxlIHN0aWxsIGhvbGRpbmcgZm9saW8gbG9jazoNCiAJICog cGFnZSB3cml0ZW91dCBjb3VsZCBvdGhlcndpc2UgY29tZSBpbiBhbmQgemVybyBiZXlvbmQgaV9z aXplLg0KQEAgLTE1MTAsNyArMTUwNyw3IEBAIHN0YXRpYyB2b2lkIGV4dDRfam91cm5hbGxlZF96 ZXJvX25ld19idWZmZXJzKGhhbmRsZV90ICpoYW5kbGUsDQogCX0gd2hpbGUgKGJoICE9IGhlYWQp Ow0KIH0NCiANCi1zdGF0aWMgaW50IGV4dDRfam91cm5hbGxlZF93cml0ZV9lbmQoc3RydWN0IGZp bGUgKmZpbGUsDQorc3RhdGljIGludCBleHQ0X2pvdXJuYWxsZWRfd3JpdGVfZW5kKHN0cnVjdCBr aW9jYiAqaW9jYiwNCiAJCQkJICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJ CQkJICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQkJ ICAgICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQpAQCAtMzAzNiw3ICszMDMz LDcgQEAgc3RhdGljIGludCBleHQ0X25vbmRhX3N3aXRjaChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi KQ0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBleHQ0X2RhX3dyaXRlX2JlZ2luKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMg aW50IGV4dDRfZGFfd3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVz c19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0K IAkJCSAgICAgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KQEAg LTMwNTQsNyArMzA1MSw3IEBAIHN0YXRpYyBpbnQgZXh0NF9kYV93cml0ZV9iZWdpbihzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogDQogCWlmIChleHQ0 X25vbmRhX3N3aXRjaChpbm9kZS0+aV9zYikgfHwgZXh0NF92ZXJpdHlfaW5fcHJvZ3Jlc3MoaW5v ZGUpKSB7DQogCQkqZnNkYXRhID0gKHZvaWQgKilGQUxMX0JBQ0tfVE9fTk9OREVMQUxMT0M7DQot CQlyZXR1cm4gZXh0NF93cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsDQorCQlyZXR1cm4g ZXh0NF93cml0ZV9iZWdpbihpb2NiLCBtYXBwaW5nLCBwb3MsDQogCQkJCQlsZW4sIGZvbGlvcCwg ZnNkYXRhKTsNCiAJfQ0KIAkqZnNkYXRhID0gKHZvaWQgKikwOw0KQEAgLTMxOTYsNyArMzE5Myw3 IEBAIHN0YXRpYyBpbnQgZXh0NF9kYV9kb193cml0ZV9lbmQoc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsDQogCXJldHVybiBjb3BpZWQ7DQogfQ0KIA0KLXN0YXRpYyBpbnQgZXh0NF9kYV93 cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsDQorc3RhdGljIGludCBleHQ0X2RhX3dyaXRlX2Vu ZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQkJICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCiAJCQkgICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVk LA0KIAkJCSAgICAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KQEAgLTMyMDUs NyArMzIwMiw3IEBAIHN0YXRpYyBpbnQgZXh0NF9kYV93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZp bGUsDQogCWludCB3cml0ZV9tb2RlID0gKGludCkodW5zaWduZWQgbG9uZylmc2RhdGE7DQogDQog CWlmICh3cml0ZV9tb2RlID09IEZBTExfQkFDS19UT19OT05ERUxBTExPQykNCi0JCXJldHVybiBl eHQ0X3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsDQorCQlyZXR1cm4gZXh0NF93cml0ZV9l bmQoaW9jYiwgbWFwcGluZywgcG9zLA0KIAkJCQkgICAgICBsZW4sIGNvcGllZCwgZm9saW8sIGZz ZGF0YSk7DQogDQogCXRyYWNlX2V4dDRfZGFfd3JpdGVfZW5kKGlub2RlLCBwb3MsIGxlbiwgY29w aWVkKTsNCmRpZmYgLS1naXQgYS9mcy9mMmZzL2RhdGEuYyBiL2ZzL2YyZnMvZGF0YS5jDQppbmRl eCAzMWU4OTI4NDI2MjUuLjQ2Y2MxNDk4OTgyZiAxMDA2NDQNCi0tLSBhL2ZzL2YyZnMvZGF0YS5j DQorKysgYi9mcy9mMmZzL2RhdGEuYw0KQEAgLTM1MTksNyArMzUxOSw3IEBAIHN0YXRpYyBpbnQg cHJlcGFyZV9hdG9taWNfd3JpdGVfYmVnaW4oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLA0KIAly ZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBmMmZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IGYyZnNf d3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCiAJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgc3RydWN0IGZvbGlvICoqZm9saW9w LCB2b2lkICoqZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhv c3Q7DQpAQCAtMzY1Niw3ICszNjU2LDcgQEAgc3RhdGljIGludCBmMmZzX3dyaXRlX2JlZ2luKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJcmV0dXJu IGVycjsNCiB9DQogDQotc3RhdGljIGludCBmMmZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmls ZSwNCitzdGF0aWMgaW50IGYyZnNfd3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJCQlz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBs ZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2Rh dGEpDQpkaWZmIC0tZ2l0IGEvZnMvZmF0L2lub2RlLmMgYi9mcy9mYXQvaW5vZGUuYw0KaW5kZXgg Mzg1MmJiNjYzNThjLi4zZDM1ZWU5NjdmZWMgMTAwNjQ0DQotLS0gYS9mcy9mYXQvaW5vZGUuYw0K KysrIGIvZnMvZmF0L2lub2RlLmMNCkBAIC0yMTksMTMgKzIxOSwxMyBAQCBzdGF0aWMgdm9pZCBm YXRfd3JpdGVfZmFpbGVkKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8p DQogCX0NCiB9DQogDQotc3RhdGljIGludCBmYXRfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZp bGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgZmF0X3dyaXRl X2JlZ2luKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs DQogCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCXN0cnVjdCBmb2xpbyAqKmZvbGlv cCwgdm9pZCAqKmZzZGF0YSkNCiB7DQogCWludCBlcnI7DQogDQotCWVyciA9IGNvbnRfd3JpdGVf YmVnaW4oZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sDQorCWVyciA9IGNvbnRfd3JpdGVfYmVnaW4o aW9jYiwgbWFwcGluZywgcG9zLCBsZW4sDQogCQkJCWZvbGlvcCwgZnNkYXRhLCBmYXRfZ2V0X2Js b2NrLA0KIAkJCQkmTVNET1NfSShtYXBwaW5nLT5ob3N0KS0+bW11X3ByaXZhdGUpOw0KIAlpZiAo ZXJyIDwgMCkNCkBAIC0yMzMsMTMgKzIzMywxMyBAQCBzdGF0aWMgaW50IGZhdF93cml0ZV9iZWdp bihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJl dHVybiBlcnI7DQogfQ0KIA0KLXN0YXRpYyBpbnQgZmF0X3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBmYXRfd3Jp dGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs DQogCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQogCQkJc3Ry dWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9k ZSA9IG1hcHBpbmctPmhvc3Q7DQogCWludCBlcnI7DQotCWVyciA9IGdlbmVyaWNfd3JpdGVfZW5k KGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KKwllcnIg PSBnZW5lcmljX3dyaXRlX2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xp bywgZnNkYXRhKTsNCiAJaWYgKGVyciA8IGxlbikNCiAJCWZhdF93cml0ZV9mYWlsZWQobWFwcGlu ZywgcG9zICsgbGVuKTsNCiAJaWYgKCEoZXJyIDwgMCkgJiYgIShNU0RPU19JKGlub2RlKS0+aV9h dHRycyAmIEFUVFJfQVJDSCkpIHsNCmRpZmYgLS1naXQgYS9mcy9mdXNlL2ZpbGUuYyBiL2ZzL2Z1 c2UvZmlsZS5jDQppbmRleCBmMTAyYWZjMDMzNTkuLjk2ZjIxZDUzMjU0MSAxMDA2NDQNCi0tLSBh L2ZzL2Z1c2UvZmlsZS5jDQorKysgYi9mcy9mdXNlL2ZpbGUuYw0KQEAgLTIyMTMsMTAgKzIyMTMs MTEgQEAgc3RhdGljIGludCBmdXNlX3dyaXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsDQogICogSXQncyB3b3J0aHkgdG8gbWFrZSBzdXJlIHRoYXQgc3BhY2UgaXMgcmVzZXJ2 ZWQgb24gZGlzayBmb3IgdGhlIHdyaXRlLA0KICAqIGJ1dCBob3cgdG8gaW1wbGVtZW50IGl0IHdp dGhvdXQga2lsbGluZyBwZXJmb3JtYW5jZSBuZWVkIG1vcmUgdGhpbmtpbmcuDQogICovDQotc3Rh dGljIGludCBmdXNlX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVz c19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IGZ1c2Vfd3JpdGVfYmVnaW4oc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCWxvZmZfdCBwb3Ms IHVuc2lnbmVkIGxlbiwgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsN CiAJcGdvZmZfdCBpbmRleCA9IHBvcyA+PiBQQUdFX1NISUZUOw0KKwlzdHJ1Y3QgZmlsZSAqZmls ZSA9IGlvY2ItPmtpX2ZpbHA7DQogCXN0cnVjdCBmdXNlX2Nvbm4gKmZjID0gZ2V0X2Z1c2VfY29u bihmaWxlX2lub2RlKGZpbGUpKTsNCiAJc3RydWN0IGZvbGlvICpmb2xpbzsNCiAJbG9mZl90IGZz aXplOw0KQEAgLTIyNTYsNyArMjI1Nyw3IEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZV9iZWdpbihz dHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVy biBlcnI7DQogfQ0KIA0KLXN0YXRpYyBpbnQgZnVzZV93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZp bGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgZnVzZV93cml0 ZV9lbmQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN CiAJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJc3RydWN0 IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCmRpZmYgLS1naXQgYS9mcy9oZnMvaGZz X2ZzLmggYi9mcy9oZnMvaGZzX2ZzLmgNCmluZGV4IGEwYzdjYjBmNzlmYy4uZWQ0NDQ4MWI0ZTVk IDEwMDY0NA0KLS0tIGEvZnMvaGZzL2hmc19mcy5oDQorKysgYi9mcy9oZnMvaGZzX2ZzLmgNCkBA IC0yMDEsNyArMjAxLDcgQEAgZXh0ZXJuIGludCBoZnNfZ2V0X2Jsb2NrKHN0cnVjdCBpbm9kZSAq LCBzZWN0b3JfdCwgc3RydWN0IGJ1ZmZlcl9oZWFkICosIGludCk7DQogZXh0ZXJuIGNvbnN0IHN0 cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgaGZzX2FvcHM7DQogZXh0ZXJuIGNvbnN0IHN0 cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgaGZzX2J0cmVlX2FvcHM7DQogDQotaW50IGhm c193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsDQoraW50IGhmc193cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1 Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpOw0KIGV4dGVybiBzdHJ1Y3QgaW5vZGUg Kmhmc19uZXdfaW5vZGUoc3RydWN0IGlub2RlICosIGNvbnN0IHN0cnVjdCBxc3RyICosIHVtb2Rl X3QpOw0KIGV4dGVybiB2b2lkIGhmc19pbm9kZV93cml0ZV9mb3JrKHN0cnVjdCBpbm9kZSAqLCBz dHJ1Y3QgaGZzX2V4dGVudCAqLCBfX2JlMzIgKiwgX19iZTMyICopOw0KZGlmZiAtLWdpdCBhL2Zz L2hmcy9pbm9kZS5jIGIvZnMvaGZzL2lub2RlLmMNCmluZGV4IGE4MWNlN2E3NDBiOS4uODQwOWU0 NDEyMzY2IDEwMDY0NA0KLS0tIGEvZnMvaGZzL2lub2RlLmMNCisrKyBiL2ZzL2hmcy9pbm9kZS5j DQpAQCAtNDQsMTIgKzQ0LDEyIEBAIHN0YXRpYyB2b2lkIGhmc193cml0ZV9mYWlsZWQoc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCB0bykNCiAJfQ0KIH0NCiANCi1pbnQgaGZz X3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCitpbnQgaGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHN0cnVj dCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQogCWludCByZXQ7DQogDQotCXJl dCA9IGNvbnRfd3JpdGVfYmVnaW4oZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGZvbGlvcCwgZnNk YXRhLA0KKwlyZXQgPSBjb250X3dyaXRlX2JlZ2luKGlvY2IsIG1hcHBpbmcsIHBvcywgbGVuLCBm b2xpb3AsIGZzZGF0YSwNCiAJCQkJaGZzX2dldF9ibG9jaywNCiAJCQkJJkhGU19JKG1hcHBpbmct Pmhvc3QpLT5waHlzX3NpemUpOw0KIAlpZiAodW5saWtlbHkocmV0KSkNCmRpZmYgLS1naXQgYS9m cy9oZnNwbHVzL2hmc3BsdXNfZnMuaCBiL2ZzL2hmc3BsdXMvaGZzcGx1c19mcy5oDQppbmRleCAy ZjA4OWJmZjAwOTUuLjY4MjRkZTdkYmM2NyAxMDA2NDQNCi0tLSBhL2ZzL2hmc3BsdXMvaGZzcGx1 c19mcy5oDQorKysgYi9mcy9oZnNwbHVzL2hmc3BsdXNfZnMuaA0KQEAgLTQ3Myw3ICs0NzMsNyBA QCBleHRlcm4gY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBoZnNwbHVzX2Fv cHM7DQogZXh0ZXJuIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgaGZzcGx1 c19idHJlZV9hb3BzOw0KIGV4dGVybiBjb25zdCBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgaGZz cGx1c19kZW50cnlfb3BlcmF0aW9uczsNCiANCi1pbnQgaGZzcGx1c193cml0ZV9iZWdpbihzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQoraW50IGhmc3Bs dXNfd3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCiAJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgc3RydWN0IGZvbGlvICoqZm9s aW9wLCB2b2lkICoqZnNkYXRhKTsNCiBzdHJ1Y3QgaW5vZGUgKmhmc3BsdXNfbmV3X2lub2RlKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBpbm9kZSAqZGlyLA0KIAkJCQl1bW9kZV90IG1v ZGUpOw0KZGlmZiAtLWdpdCBhL2ZzL2hmc3BsdXMvaW5vZGUuYyBiL2ZzL2hmc3BsdXMvaW5vZGUu Yw0KaW5kZXggZjMzMWU5NTc0MjE3Li4yNmNjMTUwODU2YjkgMTAwNjQ0DQotLS0gYS9mcy9oZnNw bHVzL2lub2RlLmMNCisrKyBiL2ZzL2hmc3BsdXMvaW5vZGUuYw0KQEAgLTM4LDEyICszOCwxMiBA QCBzdGF0aWMgdm9pZCBoZnNwbHVzX3dyaXRlX2ZhaWxlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywgbG9mZl90IHRvKQ0KIAl9DQogfQ0KIA0KLWludCBoZnNwbHVzX3dyaXRlX2JlZ2lu KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitpbnQg aGZzcGx1c193cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nLA0KIAkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8g Kipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KIAlpbnQgcmV0Ow0KIA0KLQlyZXQgPSBjb250 X3dyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBmb2xpb3AsIGZzZGF0YSwNCisJ cmV0ID0gY29udF93cml0ZV9iZWdpbihpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgZm9saW9wLCBm c2RhdGEsDQogCQkJCWhmc3BsdXNfZ2V0X2Jsb2NrLA0KIAkJCQkmSEZTUExVU19JKG1hcHBpbmct Pmhvc3QpLT5waHlzX3NpemUpOw0KIAlpZiAodW5saWtlbHkocmV0KSkNCmRpZmYgLS1naXQgYS9m cy9ob3N0ZnMvaG9zdGZzX2tlcm4uYyBiL2ZzL2hvc3Rmcy9ob3N0ZnNfa2Vybi5jDQppbmRleCA3 MDJjNDEzMTc1ODkuLjJlNzllYmZjMzVhNSAxMDA2NDQNCi0tLSBhL2ZzL2hvc3Rmcy9ob3N0ZnNf a2Vybi5jDQorKysgYi9mcy9ob3N0ZnMvaG9zdGZzX2tlcm4uYw0KQEAgLTQ0NSw3ICs0NDUsNyBA QCBzdGF0aWMgaW50IGhvc3Rmc19yZWFkX2ZvbGlvKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qg Zm9saW8gKmZvbGlvKQ0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGhvc3Rmc193 cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcsDQorc3RhdGljIGludCBob3N0ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgICBsb2ZmX3QgcG9zLCB1bnNp Z25lZCBsZW4sDQogCQkJICAgICAgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRh KQ0KIHsNCkBAIC00NTgsNyArNDU4LDcgQEAgc3RhdGljIGludCBob3N0ZnNfd3JpdGVfYmVnaW4o c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAlyZXR1 cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBob3N0ZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IGhvc3Rmc193 cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCiAJCQkgICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQog CQkJICAgIHN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQpAQCAtNDY4LDcg KzQ2OCw3IEBAIHN0YXRpYyBpbnQgaG9zdGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCWludCBlcnI7DQogDQogCWJ1ZmZlciA9 IGttYXBfbG9jYWxfZm9saW8oZm9saW8sIGZyb20pOw0KLQllcnIgPSB3cml0ZV9maWxlKEZJTEVf SE9TVEZTX0koZmlsZSktPmZkLCAmcG9zLCBidWZmZXIsIGNvcGllZCk7DQorCWVyciA9IHdyaXRl X2ZpbGUoRklMRV9IT1NURlNfSShpb2NiLT5raV9maWxwKS0+ZmQsICZwb3MsIGJ1ZmZlciwgY29w aWVkKTsNCiAJa3VubWFwX2xvY2FsKGJ1ZmZlcik7DQogDQogCWlmICghZm9saW9fdGVzdF91cHRv ZGF0ZShmb2xpbykgJiYgZXJyID09IGZvbGlvX3NpemUoZm9saW8pKQ0KZGlmZiAtLWdpdCBhL2Zz L2hwZnMvZmlsZS5jIGIvZnMvaHBmcy9maWxlLmMNCmluZGV4IDQ0OWEzZmMxYjhkOS4uYWQ3YWMx MzgyN2VjIDEwMDY0NA0KLS0tIGEvZnMvaHBmcy9maWxlLmMNCisrKyBiL2ZzL2hwZnMvZmlsZS5j DQpAQCAtMTg4LDEzICsxODgsMTMgQEAgc3RhdGljIHZvaWQgaHBmc193cml0ZV9mYWlsZWQoc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCB0bykNCiAJaHBmc191bmxvY2soaW5v ZGUtPmlfc2IpOw0KIH0NCiANCi1zdGF0aWMgaW50IGhwZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgaHBm c193cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQlzdHJ1Y3QgZm9saW8g Kipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KIAlpbnQgcmV0Ow0KIA0KLQlyZXQgPSBjb250 X3dyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBmb2xpb3AsIGZzZGF0YSwNCisJ cmV0ID0gY29udF93cml0ZV9iZWdpbihpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgZm9saW9wLCBm c2RhdGEsDQogCQkJCWhwZnNfZ2V0X2Jsb2NrLA0KIAkJCQkmaHBmc19pKG1hcHBpbmctPmhvc3Qp LT5tbXVfcHJpdmF0ZSk7DQogCWlmICh1bmxpa2VseShyZXQpKQ0KQEAgLTIwMywxMyArMjAzLDEz IEBAIHN0YXRpYyBpbnQgaHBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiByZXQ7DQogfQ0KIA0KLXN0YXRpYyBp bnQgaHBmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgaHBmc193cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2Ni LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25l ZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpm c2RhdGEpDQogew0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsNCiAJaW50 IGVycjsNCi0JZXJyID0gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4s IGNvcGllZCwgZm9saW8sIGZzZGF0YSk7DQorCWVyciA9IGdlbmVyaWNfd3JpdGVfZW5kKGlvY2Is IG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KIAlpZiAoZXJyIDwg bGVuKQ0KIAkJaHBmc193cml0ZV9mYWlsZWQobWFwcGluZywgcG9zICsgbGVuKTsNCiAJaWYgKCEo ZXJyIDwgMCkpIHsNCmRpZmYgLS1naXQgYS9mcy9odWdldGxiZnMvaW5vZGUuYyBiL2ZzL2h1Z2V0 bGJmcy9pbm9kZS5jDQppbmRleCBlNGRlNTQyNTgzOGQuLmYyODFlYzJhZDliYiAxMDA2NDQNCi0t LSBhL2ZzL2h1Z2V0bGJmcy9pbm9kZS5jDQorKysgYi9mcy9odWdldGxiZnMvaW5vZGUuYw0KQEAg LTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgc3NpemVfdCBodWdldGxiZnNfcmVhZF9pdGVyKHN0cnVj dCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCiAJcmV0dXJuIHJldHZhbDsNCiB9 DQogDQotc3RhdGljIGludCBodWdldGxiZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUs DQorc3RhdGljIGludCBodWdldGxiZnNfd3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLA0K IAkJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2ln bmVkIGxlbiwNCiAJCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQpAQCAt MzE5LDcgKzMxOSw3IEBAIHN0YXRpYyBpbnQgaHVnZXRsYmZzX3dyaXRlX2JlZ2luKHN0cnVjdCBm aWxlICpmaWxlLA0KIAlyZXR1cm4gLUVJTlZBTDsNCiB9DQogDQotc3RhdGljIGludCBodWdldGxi ZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCitzdGF0aWMgaW50IGh1Z2V0bGJmc193cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2Ni LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25l ZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpm c2RhdGEpDQogew0KZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL2ZpbGUuYyBiL2ZzL2pmZnMyL2ZpbGUu Yw0KaW5kZXggMTNjMThjY2MxM2IwLi44YjAxNzk1NTg4NTAgMTAwNjQ0DQotLS0gYS9mcy9qZmZz Mi9maWxlLmMNCisrKyBiL2ZzL2pmZnMyL2ZpbGUuYw0KQEAgLTIxLDEwICsyMSwxMCBAQA0KICNp bmNsdWRlIDxsaW51eC9qZmZzMi5oPg0KICNpbmNsdWRlICJub2RlbGlzdC5oIg0KIA0KLXN0YXRp YyBpbnQgamZmczJfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IGpmZnMyX3dyaXRlX2VuZChzdHJ1Y3Qga2lvY2Ig KmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVu c2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHZv aWQgKmZzZGF0YSk7DQotc3RhdGljIGludCBqZmZzMl93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAq ZmlscCwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBqZmZzMl93 cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQlzdHJ1Y3QgZm9saW8gKipm b2xpb3AsIHZvaWQgKipmc2RhdGEpOw0KIHN0YXRpYyBpbnQgamZmczJfcmVhZF9mb2xpbyhzdHJ1 Y3QgZmlsZSAqZmlscCwgc3RydWN0IGZvbGlvICpmb2xpbyk7DQpAQCAtMTIxLDcgKzEyMSw3IEBA IHN0YXRpYyBpbnQgamZmczJfcmVhZF9mb2xpbyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGZv bGlvICpmb2xpbykNCiAJcmV0dXJuIHJldDsNCiB9DQogDQotc3RhdGljIGludCBqZmZzMl93cml0 ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs DQorc3RhdGljIGludCBqZmZzMl93cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwN CiAJCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KQEAgLTIzNSw3 ICsyMzUsNyBAQCBzdGF0aWMgaW50IGpmZnMyX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxw LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJcmV0dXJuIHJldDsNCiB9DQogDQot c3RhdGljIGludCBqZmZzMl93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBhZGRy ZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgamZmczJfd3JpdGVfZW5kKHN0cnVjdCBr aW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJbG9mZl90IHBv cywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQogCQkJc3RydWN0IGZvbGlvICpmb2xp bywgdm9pZCAqZnNkYXRhKQ0KIHsNCmRpZmYgLS1naXQgYS9mcy9qZnMvaW5vZGUuYyBiL2ZzL2pm cy9pbm9kZS5jDQppbmRleCA2MGZjOTJkZWUyNGQuLmFjNDk0MTg2OTI2YiAxMDA2NDQNCi0tLSBh L2ZzL2pmcy9pbm9kZS5jDQorKysgYi9mcy9qZnMvaW5vZGUuYw0KQEAgLTI5MCw3ICsyOTAsNyBA QCBzdGF0aWMgdm9pZCBqZnNfd3JpdGVfZmFpbGVkKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLCBsb2ZmX3QgdG8pDQogCX0NCiB9DQogDQotc3RhdGljIGludCBqZnNfd3JpdGVfYmVnaW4o c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRp YyBpbnQgamZzX3dyaXRlX2JlZ2luKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nf c3BhY2UgKm1hcHBpbmcsDQogCQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQkJc3Ry dWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsNCkBAIC0zMDMsMTMgKzMwMywx MyBAQCBzdGF0aWMgaW50IGpmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiByZXQ7DQogfQ0KIA0KLXN0YXRpYyBp bnQgamZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsDQorc3RhdGljIGludCBqZnNfd3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBs ZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IGZvbGlvICpmb2xpbywNCiAJCXZvaWQgKmZzZGF0 YSkNCiB7DQogCWludCByZXQ7DQogDQotCXJldCA9IGdlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1h cHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KKwlyZXQgPSBnZW5lcmlj X3dyaXRlX2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRh KTsNCiAJaWYgKHJldCA8IGxlbikNCiAJCWpmc193cml0ZV9mYWlsZWQobWFwcGluZywgcG9zICsg bGVuKTsNCiAJcmV0dXJuIHJldDsNCmRpZmYgLS1naXQgYS9mcy9saWJmcy5jIGIvZnMvbGliZnMu Yw0KaW5kZXggOWVhMGVjYzMyNWE4Li5lYmY2MGQ1MWM3YmQgMTAwNjQ0DQotLS0gYS9mcy9saWJm cy5jDQorKysgYi9mcy9saWJmcy5jDQpAQCAtOTEwLDcgKzkxMCw3IEBAIHN0YXRpYyBpbnQgc2lt cGxlX3JlYWRfZm9saW8oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBmb2xpbyAqZm9saW8pDQog CXJldHVybiAwOw0KIH0NCiANCi1pbnQgc2ltcGxlX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitpbnQgc2ltcGxlX3dyaXRlX2Jl Z2luKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQog CQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwg dm9pZCAqKmZzZGF0YSkNCiB7DQpAQCAtOTU1LDcgKzk1NSw3IEBAIEVYUE9SVF9TWU1CT0woc2lt cGxlX3dyaXRlX2JlZ2luKTsNCiAgKg0KICAqIFVzZSAqT05MWSogd2l0aCBzaW1wbGVfcmVhZF9m b2xpbygpDQogICovDQotc3RhdGljIGludCBzaW1wbGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IHNpbXBsZV93 cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQlz dHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KZGlmZiAtLWdpdCBhL2ZzL21p bml4L2lub2RlLmMgYi9mcy9taW5peC9pbm9kZS5jDQppbmRleCBmMDA3ZTM4OWQ1ZDIuLjAxMDEx YjVkMDQ1ZSAxMDA2NDQNCi0tLSBhL2ZzL21pbml4L2lub2RlLmMNCisrKyBiL2ZzL21pbml4L2lu b2RlLmMNCkBAIC00NDIsNyArNDQyLDcgQEAgc3RhdGljIHZvaWQgbWluaXhfd3JpdGVfZmFpbGVk KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCX0NCiB9DQogDQot c3RhdGljIGludCBtaW5peF93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBtaW5peF93cml0ZV9iZWdpbihzdHJ1 Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZf dCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipm c2RhdGEpDQogew0KZGlmZiAtLWdpdCBhL2ZzL25mcy9maWxlLmMgYi9mcy9uZnMvZmlsZS5jDQpp bmRleCAwMzNmZWVhYjhjMzQuLmU4YmE3ZTc1OGJlMCAxMDA2NDQNCi0tLSBhL2ZzL25mcy9maWxl LmMNCisrKyBiL2ZzL25mcy9maWxlLmMNCkBAIC0zNDIsMTIgKzM0MiwxMyBAQCBzdGF0aWMgYm9v bCBuZnNfd2FudF9yZWFkX21vZGlmeV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGZv bGlvICpmb2xpbywNCiAgKiBJZiB0aGUgd3JpdGVyIGVuZHMgdXAgZGVsYXlpbmcgdGhlIHdyaXRl LCB0aGUgd3JpdGVyIG5lZWRzIHRvDQogICogaW5jcmVtZW50IHRoZSBwYWdlIHVzZSBjb3VudHMg dW50aWwgaGUgaXMgZG9uZSB3aXRoIHRoZSBwYWdlLg0KICAqLw0KLXN0YXRpYyBpbnQgbmZzX3dy aXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCitzdGF0aWMgaW50IG5mc193cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCSAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxl biwgc3RydWN0IGZvbGlvICoqZm9saW9wLA0KIAkJCSAgIHZvaWQgKipmc2RhdGEpDQogew0KIAlm Z2ZfdCBmZ3AgPSBGR1BfV1JJVEVCRUdJTjsNCiAJc3RydWN0IGZvbGlvICpmb2xpbzsNCisJc3Ry dWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KIAlpbnQgb25jZV90aHJ1ID0gMDsNCiAJ aW50IHJldDsNCiANCkBAIC0zNzcsMTAgKzM3OCwxMSBAQCBzdGF0aWMgaW50IG5mc193cml0ZV9i ZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQog CXJldHVybiByZXQ7DQogfQ0KIA0KLXN0YXRpYyBpbnQgbmZzX3dyaXRlX2VuZChzdHJ1Y3QgZmls ZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBuZnNf d3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcsDQogCQkJIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJ CSBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KKwlzdHJ1Y3QgZmlsZSAq ZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQogCXN0cnVjdCBuZnNfb3Blbl9jb250ZXh0ICpjdHggPSBu ZnNfZmlsZV9vcGVuX2NvbnRleHQoZmlsZSk7DQogCXVuc2lnbmVkIG9mZnNldCA9IG9mZnNldF9p bl9mb2xpbyhmb2xpbywgcG9zKTsNCiAJaW50IHN0YXR1czsNCmRpZmYgLS1naXQgYS9mcy9uaWxm czIvaW5vZGUuYyBiL2ZzL25pbGZzMi9pbm9kZS5jDQppbmRleCA2NjEzYjhmY2NlYjAuLjBlZTRk ZWE3ZjM2NCAxMDA2NDQNCi0tLSBhL2ZzL25pbGZzMi9pbm9kZS5jDQorKysgYi9mcy9uaWxmczIv aW5vZGUuYw0KQEAgLTIxOCw3ICsyMTgsNyBAQCB2b2lkIG5pbGZzX3dyaXRlX2ZhaWxlZChzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHRvKQ0KIAl9DQogfQ0KIA0KLXN0YXRp YyBpbnQgbmlsZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgbmlsZnNfd3JpdGVfYmVnaW4oc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgIGxvZmZf dCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQkgICAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9p ZCAqKmZzZGF0YSkNCiANCkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGludCBuaWxmc193cml0 ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs DQogCXJldHVybiBlcnI7DQogfQ0KIA0KLXN0YXRpYyBpbnQgbmlsZnNfd3JpdGVfZW5kKHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50 IG5pbGZzX3dyaXRlX2VuZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLA0KIAkJCSAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29w aWVkLA0KIAkJCSAgIHN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQpAQCAt MjQ4LDcgKzI0OCw3IEBAIHN0YXRpYyBpbnQgbmlsZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiANCiAJbnJfZGlydHkgPSBuaWxm c19wYWdlX2NvdW50X2NsZWFuX2J1ZmZlcnMoZm9saW8sIHN0YXJ0LA0KIAkJCQkJCSAgc3RhcnQg KyBjb3BpZWQpOw0KLQljb3BpZWQgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBw b3MsIGxlbiwgY29waWVkLCBmb2xpbywNCisJY29waWVkID0gZ2VuZXJpY193cml0ZV9lbmQoaW9j YiwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sDQogCQkJCSAgIGZzZGF0YSk7DQog CW5pbGZzX3NldF9maWxlX2RpcnR5KGlub2RlLCBucl9kaXJ0eSk7DQogCWVyciA9IG5pbGZzX3Ry YW5zYWN0aW9uX2NvbW1pdChpbm9kZS0+aV9zYik7DQpkaWZmIC0tZ2l0IGEvZnMvbnRmczMvZmls ZS5jIGIvZnMvbnRmczMvZmlsZS5jDQppbmRleCAxZTk5YTM1NjkxY2QuLjY3MjkxMjNkNjg3MiAx MDA2NDQNCi0tLSBhL2ZzL250ZnMzL2ZpbGUuYw0KKysrIGIvZnMvbnRmczMvZmlsZS5jDQpAQCAt MTEzLDYgKzExMyw3IEBAIHN0YXRpYyBpbnQgbnRmc19leHRlbmRfaW5pdGlhbGl6ZWRfc2l6ZShz dHJ1Y3QgZmlsZSAqZmlsZSwNCiAJc3RydWN0IGlub2RlICppbm9kZSA9ICZuaS0+dmZzX2lub2Rl Ow0KIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlub2RlLT5pX21hcHBpbmc7DQog CXN0cnVjdCBudGZzX3NiX2luZm8gKnNiaSA9IGlub2RlLT5pX3NiLT5zX2ZzX2luZm87DQorCXN0 cnVjdCBraW9jYiBpb2NiOw0KIAlsb2ZmX3QgcG9zID0gdmFsaWQ7DQogCWludCBlcnI7DQogDQpA QCAtMTI2LDYgKzEyNyw4IEBAIHN0YXRpYyBpbnQgbnRmc19leHRlbmRfaW5pdGlhbGl6ZWRfc2l6 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwNCiANCiAJV0FSTl9PTihpc19jb21wcmVzc2VkKG5pKSk7DQog DQorCWluaXRfc3luY19raW9jYigmaW9jYiwgZmlsZSk7DQorDQogCWZvciAoOzspIHsNCiAJCXUz MiB6ZXJvZnJvbSwgbGVuOw0KIAkJc3RydWN0IGZvbGlvICpmb2xpbzsNCkBAIC0xNTQsMTMgKzE1 NywxMyBAQCBzdGF0aWMgaW50IG50ZnNfZXh0ZW5kX2luaXRpYWxpemVkX3NpemUoc3RydWN0IGZp bGUgKmZpbGUsDQogCQlpZiAocG9zICsgbGVuID4gbmV3X3ZhbGlkKQ0KIAkJCWxlbiA9IG5ld192 YWxpZCAtIHBvczsNCiANCi0JCWVyciA9IG50ZnNfd3JpdGVfYmVnaW4oZmlsZSwgbWFwcGluZywg cG9zLCBsZW4sICZmb2xpbywgTlVMTCk7DQorCQllcnIgPSBudGZzX3dyaXRlX2JlZ2luKCZpb2Ni LCBtYXBwaW5nLCBwb3MsIGxlbiwgJmZvbGlvLCBOVUxMKTsNCiAJCWlmIChlcnIpDQogCQkJZ290 byBvdXQ7DQogDQogCQlmb2xpb196ZXJvX3JhbmdlKGZvbGlvLCB6ZXJvZnJvbSwgZm9saW9fc2l6 ZShmb2xpbykgLSB6ZXJvZnJvbSk7DQogDQotCQllcnIgPSBudGZzX3dyaXRlX2VuZChmaWxlLCBt YXBwaW5nLCBwb3MsIGxlbiwgbGVuLCBmb2xpbywgTlVMTCk7DQorCQllcnIgPSBudGZzX3dyaXRl X2VuZCgmaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGxlbiwgZm9saW8sIE5VTEwpOw0KIAkJaWYg KGVyciA8IDApDQogCQkJZ290byBvdXQ7DQogCQlwb3MgKz0gbGVuOw0KZGlmZiAtLWdpdCBhL2Zz L250ZnMzL2lub2RlLmMgYi9mcy9udGZzMy9pbm9kZS5jDQppbmRleCAwZjBkMjdkNDY0NGEuLjgy YzA5YzJmY2FkYiAxMDA2NDQNCi0tLSBhL2ZzL250ZnMzL2lub2RlLmMNCisrKyBiL2ZzL250ZnMz L2lub2RlLmMNCkBAIC05MTIsNyArOTEyLDcgQEAgc3RhdGljIGludCBudGZzX2dldF9ibG9ja193 cml0ZV9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCB2Ym4sDQogCQkJCSAgYmhf cmVzdWx0LCBjcmVhdGUsIEdFVF9CTE9DS19XUklURV9CRUdJTik7DQogfQ0KIA0KLWludCBudGZz X3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCitpbnQgbnRmc193cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJICAgICBsb2ZmX3QgcG9zLCB1MzIgbGVuLCBzdHJ1 Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KIAlpbnQgZXJyOw0KQEAgLTk1 Nyw3ICs5NTcsNyBAQCBpbnQgbnRmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogLyoNCiAgKiBudGZzX3dyaXRlX2VuZCAtIEFk ZHJlc3Nfc3BhY2Vfb3BlcmF0aW9uczo6d3JpdGVfZW5kLg0KICAqLw0KLWludCBudGZzX3dyaXRl X2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxv ZmZfdCBwb3MsDQoraW50IG50ZnNfd3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQogCQkgICB1MzIgbGVuLCB1MzIg Y29waWVkLCBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KIAlzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsNCkBAIC05ODksNyArOTg5LDcgQEAgaW50IG50 ZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywgbG9mZl90IHBvcywNCiAJCWZvbGlvX3VubG9jayhmb2xpbyk7DQogCQlmb2xpb19wdXQo Zm9saW8pOw0KIAl9IGVsc2Ugew0KLQkJZXJyID0gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFw cGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sDQorCQllcnIgPSBnZW5lcmljX3dyaXRlX2Vu ZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywNCiAJCQkJCWZzZGF0YSk7 DQogCX0NCiANCmRpZmYgLS1naXQgYS9mcy9udGZzMy9udGZzX2ZzLmggYi9mcy9udGZzMy9udGZz X2ZzLmgNCmluZGV4IDM2YjgwNTI2NjBkNS4uNzA0ZGNkNTA5Zjk5IDEwMDY0NA0KLS0tIGEvZnMv bnRmczMvbnRmc19mcy5oDQorKysgYi9mcy9udGZzMy9udGZzX2ZzLmgNCkBAIC03MDIsOSArNzAy LDkgQEAgc3RydWN0IGlub2RlICpudGZzX2lnZXQ1KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGNv bnN0IHN0cnVjdCBNRlRfUkVGICpyZWYsDQogaW50IG50ZnNfc2V0X3NpemUoc3RydWN0IGlub2Rl ICppbm9kZSwgdTY0IG5ld19zaXplKTsNCiBpbnQgbnRmc19nZXRfYmxvY2soc3RydWN0IGlub2Rl ICppbm9kZSwgc2VjdG9yX3QgdmJuLA0KIAkJICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaF9yZXN1 bHQsIGludCBjcmVhdGUpOw0KLWludCBudGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxl LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitpbnQgbnRmc193cml0ZV9iZWdpbihz dHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJICAg ICBsb2ZmX3QgcG9zLCB1MzIgbGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2Rh dGEpOw0KLWludCBudGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQoraW50IG50ZnNfd3JpdGVfZW5kKHN0cnVj dCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3Ms DQogCQkgICB1MzIgbGVuLCB1MzIgY29waWVkLCBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpm c2RhdGEpOw0KIGludCBudGZzM193cml0ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1 Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYyk7DQogaW50IG50ZnNfc3luY19pbm9kZShzdHJ1Y3Qg aW5vZGUgKmlub2RlKTsNCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9hb3BzLmMgYi9mcy9vY2ZzMi9h b3BzLmMNCmluZGV4IDQwYjZiY2UxMjk1MS4uMzA2YjQzMzk0OWYyIDEwMDY0NA0KLS0tIGEvZnMv b2NmczIvYW9wcy5jDQorKysgYi9mcy9vY2ZzMi9hb3BzLmMNCkBAIC0xODU2LDcgKzE4NTYsNyBA QCBpbnQgb2NmczJfd3JpdGVfYmVnaW5fbm9sb2NrKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLA0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IG9jZnMyX3dyaXRlX2JlZ2lu KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0 aWMgaW50IG9jZnMyX3dyaXRlX2JlZ2luKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQog CQkJICAgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KQEAgLTIw NDcsNyArMjA0Nyw3IEBAIGludCBvY2ZzMl93cml0ZV9lbmRfbm9sb2NrKHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KIAlyZXR1cm4gY29waWVkOw0KIH0NCiANCi1z dGF0aWMgaW50IG9jZnMyX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBvY2ZzMl93cml0ZV9lbmQoc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICBsb2ZmX3Qg cG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQkgICBzdHJ1Y3QgZm9saW8g KmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KZGlmZiAtLWdpdCBhL2ZzL29tZnMvZmlsZS5jIGIv ZnMvb21mcy9maWxlLmMNCmluZGV4IDk4MzU4ZDQwNWI2YS4uM2FlODZiYzI0NjBhIDEwMDY0NA0K LS0tIGEvZnMvb21mcy9maWxlLmMNCisrKyBiL2ZzL29tZnMvZmlsZS5jDQpAQCAtMzEwLDcgKzMx MCw3IEBAIHN0YXRpYyB2b2lkIG9tZnNfd3JpdGVfZmFpbGVkKHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCX0NCiB9DQogDQotc3RhdGljIGludCBvbWZzX3dyaXRl X2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN CitzdGF0aWMgaW50IG9tZnNfd3JpdGVfYmVnaW4oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQog CQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsNCmRpZmYgLS1naXQg YS9mcy9vcmFuZ2Vmcy9pbm9kZS5jIGIvZnMvb3JhbmdlZnMvaW5vZGUuYw0KaW5kZXggMDhhNmYz NzJhMzUyLi5mNmQ2ZDU0ZDY1MmEgMTAwNjQ0DQotLS0gYS9mcy9vcmFuZ2Vmcy9pbm9kZS5jDQor KysgYi9mcy9vcmFuZ2Vmcy9pbm9kZS5jDQpAQCAtMjg1LDcgKzI4NSw3IEBAIHN0YXRpYyBpbnQg b3JhbmdlZnNfcmVhZF9mb2xpbyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGZvbGlvICpmb2xp bykNCiAJcmV0dXJuIHJldDsNCiB9DQogDQotc3RhdGljIGludCBvcmFuZ2Vmc193cml0ZV9iZWdp bihzdHJ1Y3QgZmlsZSAqZmlsZSwNCitzdGF0aWMgaW50IG9yYW5nZWZzX3dyaXRlX2JlZ2luKHN0 cnVjdCBraW9jYiAqaW9jYiwNCiAJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2Zm X3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipm c2RhdGEpDQogew0KQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgaW50IG9yYW5nZWZzX3dyaXRl X2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLA0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIGlu dCBvcmFuZ2Vmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgb3JhbmdlZnNfd3JpdGVfZW5kKHN0cnVjdCBraW9j YiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQlsb2ZmX3QgcG9zLCB1 bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IGZvbGlvICpmb2xpbywNCiAJCXZv aWQgKmZzZGF0YSkNCiB7DQpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyBpbnQgb3JhbmdlZnNf d3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCiAJZm9saW9fdW5sb2NrKGZvbGlvKTsNCiAJZm9saW9fcHV0KGZvbGlvKTsNCiANCi0JbWFy a19pbm9kZV9kaXJ0eV9zeW5jKGZpbGVfaW5vZGUoZmlsZSkpOw0KKwltYXJrX2lub2RlX2RpcnR5 X3N5bmMoZmlsZV9pbm9kZShpb2NiLT5raV9maWxwKSk7DQogCXJldHVybiBjb3BpZWQ7DQogfQ0K IA0KZGlmZiAtLWdpdCBhL2ZzL3ViaWZzL2ZpbGUuYyBiL2ZzL3ViaWZzL2ZpbGUuYw0KaW5kZXgg YmYzMTFjMzhkOWE4Li4yOGRhYjNhYWJlZTAgMTAwNjQ0DQotLS0gYS9mcy91Ymlmcy9maWxlLmMN CisrKyBiL2ZzL3ViaWZzL2ZpbGUuYw0KQEAgLTQwNCw3ICs0MDQsNyBAQCBzdGF0aWMgaW50IGFs bG9jYXRlX2J1ZGdldChzdHJ1Y3QgdWJpZnNfaW5mbyAqYywgc3RydWN0IGZvbGlvICpmb2xpbywN CiAgKiB0aGVyZSBpcyBhIHBsZW50eSBvZiBmbGFzaCBzcGFjZSBhbmQgdGhlIGJ1ZGdldCB3aWxs IGJlIGFjcXVpcmVkIHF1aWNrbHksDQogICogd2l0aG91dCBmb3JjaW5nIHdyaXRlLWJhY2suIFRo ZSBzbG93IHBhdGggZG9lcyBub3QgbWFrZSB0aGlzIGFzc3VtcHRpb24uDQogICovDQotc3RhdGlj IGludCB1Ymlmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nf c3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCB1Ymlmc193cml0ZV9iZWdpbihzdHJ1Y3Qga2lv Y2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCSAgICAgbG9mZl90 IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCSAgICAgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lk ICoqZnNkYXRhKQ0KIHsNCkBAIC01MTQsNyArNTE0LDcgQEAgc3RhdGljIHZvaWQgY2FuY2VsX2J1 ZGdldChzdHJ1Y3QgdWJpZnNfaW5mbyAqYywgc3RydWN0IGZvbGlvICpmb2xpbywNCiAJfQ0KIH0N CiANCi1zdGF0aWMgaW50IHViaWZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCB1Ymlmc193cml0ZV9lbmQoc3Ry dWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICBs b2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQkgICBzdHJ1Y3Qg Zm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KZGlmZiAtLWdpdCBhL2ZzL3VkZi9pbm9k ZS5jIGIvZnMvdWRmL2lub2RlLmMNCmluZGV4IDQzODZkZDg0NWU0MC4uMTNlYTlhYWEzMGUyIDEw MDY0NA0KLS0tIGEvZnMvdWRmL2lub2RlLmMNCisrKyBiL2ZzL3VkZi9pbm9kZS5jDQpAQCAtMjQ0 LDEwICsyNDQsMTEgQEAgc3RhdGljIHZvaWQgdWRmX3JlYWRhaGVhZChzdHJ1Y3QgcmVhZGFoZWFk X2NvbnRyb2wgKnJhYykNCiAJbXBhZ2VfcmVhZGFoZWFkKHJhYywgdWRmX2dldF9ibG9jayk7DQog fQ0KIA0KLXN0YXRpYyBpbnQgdWRmX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IHVkZl93cml0ZV9iZWdpbihz dHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCSAg IGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQkgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3As IHZvaWQgKipmc2RhdGEpDQogew0KKwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7 DQogCXN0cnVjdCB1ZGZfaW5vZGVfaW5mbyAqaWluZm8gPSBVREZfSShmaWxlX2lub2RlKGZpbGUp KTsNCiAJc3RydWN0IGZvbGlvICpmb2xpbzsNCiAJaW50IHJldDsNCkBAIC0yNzEsMTUgKzI3Miwx NSBAQCBzdGF0aWMgaW50IHVkZl93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgaW50 IHVkZl93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLA0KK3N0YXRpYyBpbnQgdWRmX3dyaXRlX2VuZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCSBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBs ZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQkgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNk YXRhKQ0KIHsNCi0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7DQorCXN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGlvY2ItPmtpX2ZpbHApOw0KIAlsb2ZmX3Qg bGFzdF9wb3M7DQogDQogCWlmIChVREZfSShpbm9kZSktPmlfYWxsb2NfdHlwZSAhPSBJQ0JUQUdf RkxBR19BRF9JTl9JQ0IpDQotCQlyZXR1cm4gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGlu ZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sDQorCQlyZXR1cm4gZ2VuZXJpY193cml0ZV9lbmQo aW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sDQogCQkJCQkgZnNkYXRhKTsN CiAJbGFzdF9wb3MgPSBwb3MgKyBjb3BpZWQ7DQogCWlmIChsYXN0X3BvcyA+IGlub2RlLT5pX3Np emUpDQpkaWZmIC0tZ2l0IGEvZnMvdWZzL2lub2RlLmMgYi9mcy91ZnMvaW5vZGUuYw0KaW5kZXgg N2RjMzhmZGVmMmVhLi44YjEwODMzZmY1ODYgMTAwNjQ0DQotLS0gYS9mcy91ZnMvaW5vZGUuYw0K KysrIGIvZnMvdWZzL2lub2RlLmMNCkBAIC00NzQsNyArNDc0LDcgQEAgc3RhdGljIHZvaWQgdWZz X3dyaXRlX2ZhaWxlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHRvKQ0K IAl9DQogfQ0KIA0KLXN0YXRpYyBpbnQgdWZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxl LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IHVmc193cml0ZV9i ZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0K IAkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3As IHZvaWQgKipmc2RhdGEpDQogew0KQEAgLTQ4NywxMyArNDg3LDEzIEBAIHN0YXRpYyBpbnQgdWZz X3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCiAJcmV0dXJuIHJldDsNCiB9DQogDQotc3RhdGljIGludCB1ZnNfd3JpdGVfZW5kKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMg aW50IHVmc193cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGll ZCwNCiAJCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KIAlpbnQgcmV0 Ow0KIA0KLQlyZXQgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwg Y29waWVkLCBmb2xpbywgZnNkYXRhKTsNCisJcmV0ID0gZ2VuZXJpY193cml0ZV9lbmQoaW9jYiwg bWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sIGZzZGF0YSk7DQogCWlmIChyZXQgPCBs ZW4pDQogCQl1ZnNfd3JpdGVfZmFpbGVkKG1hcHBpbmcsIHBvcyArIGxlbik7DQogCXJldHVybiBy ZXQ7DQpkaWZmIC0tZ2l0IGEvZnMvdmJveHNmL2ZpbGUuYyBiL2ZzL3Zib3hzZi9maWxlLmMNCmlu ZGV4IGI0OTI3OTRmOGU5YS4uMTE1ZjhmYTZmZDVkIDEwMDY0NA0KLS0tIGEvZnMvdmJveHNmL2Zp bGUuYw0KKysrIGIvZnMvdmJveHNmL2ZpbGUuYw0KQEAgLTMwMCwxMiArMzAwLDEyIEBAIHN0YXRp YyBpbnQgdmJveHNmX3dyaXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQog CXJldHVybiBlcnJvcjsNCiB9DQogDQotc3RhdGljIGludCB2Ym94c2Zfd3JpdGVfZW5kKHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50 IHZib3hzZl93cml0ZV9lbmQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZywNCiAJCQkgICAgbG9mZl90IHBvcywgdW5zaWduZWQgaW50IGxlbiwgdW5zaWdu ZWQgaW50IGNvcGllZCwNCiAJCQkgICAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRh KQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7DQotCXN0cnVjdCB2 Ym94c2ZfaGFuZGxlICpzZl9oYW5kbGUgPSBmaWxlLT5wcml2YXRlX2RhdGE7DQorCXN0cnVjdCB2 Ym94c2ZfaGFuZGxlICpzZl9oYW5kbGUgPSBpb2NiLT5raV9maWxwLT5wcml2YXRlX2RhdGE7DQog CXNpemVfdCBmcm9tID0gb2Zmc2V0X2luX2ZvbGlvKGZvbGlvLCBwb3MpOw0KIAl1MzIgbndyaXR0 ZW4gPSBsZW47DQogCXU4ICpidWY7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9idWZmZXJf aGVhZC5oIGIvaW5jbHVkZS9saW51eC9idWZmZXJfaGVhZC5oDQppbmRleCAwMDI5ZmY4ODBlMjcu LjU2ZjdhNjViZDg3NSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvYnVmZmVyX2hlYWQuaA0K KysrIGIvaW5jbHVkZS9saW51eC9idWZmZXJfaGVhZC5oDQpAQCAtMjY1LDExICsyNjUsMTEgQEAg aW50IF9fYmxvY2tfd3JpdGVfYmVnaW4oc3RydWN0IGZvbGlvICpmb2xpbywgbG9mZl90IHBvcywg dW5zaWduZWQgbGVuLA0KIGludCBibG9ja193cml0ZV9lbmQoc3RydWN0IGZpbGUgKiwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKiwNCiAJCQkJbG9mZl90LCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNv cGllZCwNCiAJCQkJc3RydWN0IGZvbGlvICosIHZvaWQgKik7DQotaW50IGdlbmVyaWNfd3JpdGVf ZW5kKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICosDQoraW50IGdlbmVyaWNf d3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLA0KIAkJCQls b2ZmX3QsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCQlzdHJ1Y3QgZm9saW8g Kiwgdm9pZCAqKTsNCiB2b2lkIGZvbGlvX3plcm9fbmV3X2J1ZmZlcnMoc3RydWN0IGZvbGlvICpm b2xpbywgc2l6ZV90IGZyb20sIHNpemVfdCB0byk7DQotaW50IGNvbnRfd3JpdGVfYmVnaW4oc3Ry dWN0IGZpbGUgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgbG9mZl90LA0KK2ludCBjb250X3dy aXRlX2JlZ2luKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBsb2ZmX3Qs DQogCQkJdW5zaWduZWQsIHN0cnVjdCBmb2xpbyAqKiwgdm9pZCAqKiwNCiAJCQlnZXRfYmxvY2tf dCAqLCBsb2ZmX3QgKik7DQogaW50IGdlbmVyaWNfY29udF9leHBhbmRfc2ltcGxlKHN0cnVjdCBp bm9kZSAqaW5vZGUsIGxvZmZfdCBzaXplKTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Zz LmggYi9pbmNsdWRlL2xpbnV4L2ZzLmgNCmluZGV4IGIwODVmMTYxZWQyMi4uNGU4NWE2NGNmMmQx IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9mcy5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2Zz LmgNCkBAIC00NDYsMTAgKzQ0NiwxMCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25z IHsNCiANCiAJdm9pZCAoKnJlYWRhaGVhZCkoc3RydWN0IHJlYWRhaGVhZF9jb250cm9sICopOw0K IA0KLQlpbnQgKCp3cml0ZV9iZWdpbikoc3RydWN0IGZpbGUgKiwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQorCWludCAoKndyaXRlX2JlZ2luKShzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwN CiAJCQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKTsNCi0JaW50ICgqd3Jp dGVfZW5kKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCisJ aW50ICgqd3JpdGVfZW5kKShzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsDQogCQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0K IAkJCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpOw0KIA0KQEAgLTM2MDIsNyAr MzYwMiw3IEBAIGV4dGVybiB2b2lkIHNpbXBsZV9yZWN1cnNpdmVfcmVtb3ZhbChzdHJ1Y3QgZGVu dHJ5ICosDQogZXh0ZXJuIGludCBub29wX2ZzeW5jKHN0cnVjdCBmaWxlICosIGxvZmZfdCwgbG9m Zl90LCBpbnQpOw0KIGV4dGVybiBzc2l6ZV90IG5vb3BfZGlyZWN0X0lPKHN0cnVjdCBraW9jYiAq aW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyKTsNCiBleHRlcm4gaW50IHNpbXBsZV9lbXB0eShz dHJ1Y3QgZGVudHJ5ICopOw0KLWV4dGVybiBpbnQgc2ltcGxlX3dyaXRlX2JlZ2luKHN0cnVjdCBm aWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitleHRlcm4gaW50IHNp bXBsZV93cml0ZV9iZWdpbihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQlzdHJ1Y3QgZm9s aW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpOw0KIGV4dGVybiBjb25zdCBzdHJ1Y3QgYWRkcmVz c19zcGFjZV9vcGVyYXRpb25zIHJhbV9hb3BzOw0KZGlmZiAtLWdpdCBhL21tL2ZpbGVtYXAuYyBi L21tL2ZpbGVtYXAuYw0KaW5kZXggYmFkYTI0OWI5ZmI3Li5iYTA4OWQ3NWZjODYgMTAwNjQ0DQot LS0gYS9tbS9maWxlbWFwLmMNCisrKyBiL21tL2ZpbGVtYXAuYw0KQEAgLTQxMDksNyArNDEwOSw3 IEBAIHNzaXplX3QgZ2VuZXJpY19wZXJmb3JtX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry dWN0IGlvdl9pdGVyICppKQ0KIAkJCWJyZWFrOw0KIAkJfQ0KIA0KLQkJc3RhdHVzID0gYV9vcHMt PndyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBvcywgYnl0ZXMsDQorCQlzdGF0dXMgPSBhX29w cy0+d3JpdGVfYmVnaW4oaW9jYiwgbWFwcGluZywgcG9zLCBieXRlcywNCiAJCQkJCQkmZm9saW8s ICZmc2RhdGEpOw0KIAkJaWYgKHVubGlrZWx5KHN0YXR1cyA8IDApKQ0KIAkJCWJyZWFrOw0KQEAg LTQxMzAsNyArNDEzMCw3IEBAIHNzaXplX3QgZ2VuZXJpY19wZXJmb3JtX3dyaXRlKHN0cnVjdCBr aW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppKQ0KIAkJY29waWVkID0gY29weV9mb2xpb19m cm9tX2l0ZXJfYXRvbWljKGZvbGlvLCBvZmZzZXQsIGJ5dGVzLCBpKTsNCiAJCWZsdXNoX2RjYWNo ZV9mb2xpbyhmb2xpbyk7DQogDQotCQlzdGF0dXMgPSBhX29wcy0+d3JpdGVfZW5kKGZpbGUsIG1h cHBpbmcsIHBvcywgYnl0ZXMsIGNvcGllZCwNCisJCXN0YXR1cyA9IGFfb3BzLT53cml0ZV9lbmQo aW9jYiwgbWFwcGluZywgcG9zLCBieXRlcywgY29waWVkLA0KIAkJCQkJCWZvbGlvLCBmc2RhdGEp Ow0KIAkJaWYgKHVubGlrZWx5KHN0YXR1cyAhPSBjb3BpZWQpKSB7DQogCQkJaW92X2l0ZXJfcmV2 ZXJ0KGksIGNvcGllZCAtIG1heChzdGF0dXMsIDBMKSk7DQpkaWZmIC0tZ2l0IGEvbW0vc2htZW0u YyBiL21tL3NobWVtLmMNCmluZGV4IDNhNWE2NWIxZjQxYS4uOTBmMGYwNTg4MzhiIDEwMDY0NA0K LS0tIGEvbW0vc2htZW0uYw0KKysrIGIvbW0vc2htZW0uYw0KQEAgLTMyNzAsNyArMzI3MCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBzaG1lbV9zeW1saW5rX2lub2Rl X29wZXJhdGlvbnM7DQogc3RhdGljIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIHNobWVt X3Nob3J0X3N5bWxpbmtfb3BlcmF0aW9uczsNCiANCiBzdGF0aWMgaW50DQotc2htZW1fd3JpdGVf YmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0K K3NobWVtX3dyaXRlX2JlZ2luKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQogCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCXN0cnVjdCBm b2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQpAQCAtMzMwNCw3ICszMzA0LDcgQEAg c2htZW1fd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLA0KIH0NCiANCiBzdGF0aWMgaW50DQotc2htZW1fd3JpdGVfZW5kKHN0cnVjdCBm aWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzaG1lbV93cml0ZV9l bmQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJ CQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQlzdHJ1Y3Qg Zm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KLS0gDQoyLjM0LjENCg==