From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 4Pv4DB7y7l96PQAAWB0awg (envelope-from ) for ; Fri, 01 Jan 2021 04:57:50 -0500 Received: by simark.ca (Postfix, from userid 112) id 2FFBF1F0AA; Fri, 1 Jan 2021 04:57:50 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: * X-Spam-Status: No, score=1.9 required=5.0 tests=FORGED_MUA_MOZILLA, FREEMAIL_FROM,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,RDNS_NONE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 268631E99A for ; Fri, 1 Jan 2021 04:57:49 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E2A993858D29; Fri, 1 Jan 2021 09:57:48 +0000 (GMT) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074043.outbound.protection.outlook.com [40.92.74.43]) by sourceware.org (Postfix) with ESMTPS id 9D826386186E for ; Fri, 1 Jan 2021 09:57:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9D826386186E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=hotmail.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=bernd.edlinger@hotmail.de ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BbmXTl2ZNm+71ORTIRIp1tMir6NwkrRuejc3kktRT8q7onCz5p7veARbf72wHPHgNy8D/nveYujiySdTbjigYbgJEy+gMLmDJgTzlpbc4HFLulgU9DteZgO0SU0Bzwc8SKdWuNU11DqJRa5TwWno2Nf898tru93Igr7GC+Kznw/rfjZPYGoIQgZ4NetyI7jv3uyzP4xZS5DxYvnC7rJuaa+P7DXZWWr7G0iyuwcHGl67xlcWsY4jfEN7FQdRdOTBn63Ev/bT21vrh1y1IqWNZ3I1OtgY5Ykk9bDf5ObTpNI3G8OEJ/p/A626yBBQ4zAmrPauCLDUx2GbCk9F/TDzQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ni+gmEDcqdDqlaVeST38a1/sUZCbAEz55B7tVsDbSdE=; b=oShti0HoZv0t3Oy1t4YYtLTeEzXUbiZ2ee7ugU2qWPRCwzk5W5QHkLqHbyai+2AxgFv7Q0sweOtglFxp1C6ouhekqbbl0uvAipPZnNnsl5wGDZANDCjJLfulE/aiyIeXIZxMLEs8BWTF+JZtzUCvA45gf3AtlTNsfYlhq5KILW+WIR6q4nIXzetIgQot3YxcaUYuVdBonzrulZhhaL8/SqMPoq2oJU3E1Tms/IDzx1lUd0rvNQR7r8JoN9dHG14Uox02d9ZSUR2WBiyNZBsdJdw24M11FxSB/qzETWndJEPT0v3xbQZBdPE/7Z3o5IMjmw2LVpSUV/D/qhEXf1gP4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from VI1EUR04FT054.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::47) by VI1EUR04HT038.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20; Fri, 1 Jan 2021 09:57:42 +0000 Received: from HE1PR0602MB3417.eurprd06.prod.outlook.com (2a01:111:e400:7e0e::51) by VI1EUR04FT054.mail.protection.outlook.com (2a01:111:e400:7e0e::329) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20 via Frontend Transport; Fri, 1 Jan 2021 09:57:42 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:013D29E409AAC98A4A4DBFE1BBB6A6EBEB0A40AB9D24A7A75F72D549F2E4A1F1; UpperCasedChecksum:86A1E4CFE4E8045D81C0D512DD34C918D2419DE802F7C0476ABA2B754D62D1DB; SizeAsReceived:7707; Count:44 Received: from HE1PR0602MB3417.eurprd06.prod.outlook.com ([fe80::f065:d534:d0c0:b294]) by HE1PR0602MB3417.eurprd06.prod.outlook.com ([fe80::f065:d534:d0c0:b294%6]) with mapi id 15.20.3721.022; Fri, 1 Jan 2021 09:57:42 +0000 From: Bernd Edlinger Subject: [PATCH v6] Fix range end handling of inlined subroutines To: Simon Marchi , "gdb-patches@sourceware.org" Message-ID: Date: Fri, 1 Jan 2021 10:57:40 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 Content-Type: multipart/mixed; boundary="------------535AD3B616E7400C57BC57AE" Content-Language: en-US X-TMN: [YiKYOKwRjEtAE1PjU1SNp3nd+kVC9b4F] X-ClientProxiedBy: AM9P195CA0026.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::31) To HE1PR0602MB3417.eurprd06.prod.outlook.com (2603:10a6:7:80::17) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.101] (88.68.3.2) by AM9P195CA0026.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20 via Frontend Transport; Fri, 1 Jan 2021 09:57:41 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 44 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 70a3244d-a42a-4ebe-c1c8-08d8ae3bae5a X-MS-TrafficTypeDiagnostic: VI1EUR04HT038: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ipEZmNY3R+TUyY+k3+AHcwSp1GgD1lvdUdEWK8ysflNS+q5RuELcCJJRYesTBN2LB+IpMbUIdjlm18E367IJwbO9b5XSy/mvNB/++aaeVn/vrMt+s653j4EjzIdLQZX3sOLYbdvSByPkJjPOWb3fhTZ89cp77xBRp3cj154XQyl600dKutRmEuVH7YxHTXhycgyPpGdXTTyMPC0FjoyOZK5e5djN33Ih42vH8LPHOBctpwqOSLuFviJhXp22KCt7 X-MS-Exchange-AntiSpam-MessageData: ipkz70QMYCcoYzxbmOpua2e+7/SNaCMm363qAKLIbskA4FcB8afALdLwN9s+U8UvN7QFVeqSwGiyn+KyEILRLiEupOyCmCo6hoU7LlgvjncG0m7+iauUfsrwpDabdiYjuDIBWzb6ySZqe81JvAWZzg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2021 09:57:42.3292 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-Network-Message-Id: 70a3244d-a42a-4ebe-c1c8-08d8ae3bae5a X-MS-Exchange-CrossTenant-AuthSource: VI1EUR04FT054.eop-eur04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1EUR04HT038 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" --------------535AD3B616E7400C57BC57AE Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Hi, this is the main part of the patch, which fixes the range end handling, and depends on the is_weak line table flag from the previous patch. I moved the entry_pc handling fix to a follow-up patch, as the test cases do not depend on it. Thanks Bernd. --------------535AD3B616E7400C57BC57AE Content-Type: text/x-patch; name="0002-Fix-range-end-handling-of-inlined-subroutines.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Fix-range-end-handling-of-inlined-subroutines.patch" RnJvbSA4Nzc4Yzg4ODc0Y2Q3ZjEwOTY0NWZkMjFlNDY1N2NiZjhlYjRkY2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdlciA8YmVybmQuZWRsaW5nZXJAaG90bWFp bC5kZT4KRGF0ZTogVHVlLCAzIE5vdiAyMDIwIDE4OjQxOjQzICswMTAwClN1YmplY3Q6IFtQQVRD SF0gRml4IHJhbmdlIGVuZCBoYW5kbGluZyBvZiBpbmxpbmVkIHN1YnJvdXRpbmVzCgpDdXJyZW50 bHkgdGhlcmUgaXMgYSBwcm9ibGVtIHdoZW4gZGVidWdnaW5nCm9wdGltaXplZCBjb2RlIHdoZW4g dGhlIGluZmVyaW9yIHN0b3BzIGF0IGFuIGlubGluZQpzdWItcmFuZ2UgZW5kIFBDLiAgSXQgaXMg dW5jbGVhciBpZiB0aGF0IGxvY2F0aW9uCmlzIGZyb20gdGhlIGlubGluZSBmdW5jdGlvbiBvciBm cm9tIHRoZSBjYWxsaW5nCmZ1bmN0aW9uLiAgVGhlcmVmb3JlIHRoZSBjYWxsIHN0YWNrIGlzIG9m dGVuCndyb25nLgoKVGhpcyBwYXRjaCBkZXRlY3RzIHRoZSAid2VhayIgbGluZSB0YWJsZSBlbnRy aWVzCndoaWNoIGFyZSBsaWtlbHkgcGFydCBvZiB0aGUgcHJldmlvdXMgaW5saW5lIGJsb2NrLAph bmQgaWYgd2UgaGF2ZSBzdWNoIGEgbG9jYXRpb24sIGl0IGFzc3VtZXMgdGhlCmxvY2F0aW9uIGJl bG9uZ3MgdG8gdGhlIHByZXZpb3VzIGJsb2NrLgoKQWRkaXRpb25hbGx5IGl0IG1heSBoYXBwZW4g dGhhdCB0aGUgaW5mcnVuIG1hY2hpbmVyeQpzdGVwcyBmcm9tIG9uZSBpbmxpbmUgcmFuZ2UgdG8g YW5vdGhlciBpbmxpbmUgcmFuZ2UKb2YgdGhlIHNhbWUgaW5saW5lIGZ1bmN0aW9uLiAgVGhhdCBj YW4gbG9vayBsaWtlCmp1bXBpbmcgYmFjayBhbmQgZm9ydGggZnJvbSB0aGUgY2FsbGluZyBwcm9n cmFtCnRvIHRoZSBpbmxpbmUgZnVuY3Rpb24sIHdoaWxlIHJlYWxseSB0aGUgaW5saW5lCmZ1bmN0 aW9uIGp1c3QganVtcHMgZnJvbSBhIGhvdCB0byBhIGNvbGQgc2VjdGlvbgpvZiB0aGUgY29kZSwg aS5lLiBlcnJvciBoYW5kbGluZy4KCkFkZGl0aW9uYWxseSBpdCBtYXkgaGFwcGVuIHRoYXQgb25l IGlubGluZSBzdWItcmFuZ2UKaXMgZW1wdHkgb3IgdGhlIGlubGluZSBpcyBjb21wbGV0ZWx5IGVt cHR5LiAgQnV0CmZpbHRlcmluZyB0aGF0IGluZm9ybWF0aW9uIGF3YXkgaXMgbm90IHRoZSByaWdo dApzb2x1dGlvbiwgc2luY2UgYWx0aG91Z2ggdGhlcmUgaXMgbm8gYWN0dWFsIGNvZGUKZnJvbSB0 aGUgaW5saW5lLCBpdCBpcyBzdGlsbCBwb3NzaWJsZSB0aGF0IHZhcmlhYmxlcwpmcm9tIGFuIGlu bGluZSBmdW5jdGlvbiBjYW4gYmUgaW5zcGVjdGVkIGhlcmUuCgpDb25jZXB0dWFsbHkgdGhpcyBw YXRjaCB1c2VzIGEgaGV1cmlzdGljIHRvIHdvcmsgYXJvdW5kCmEgZGVmaWNpZW5jeSBpbiB0aGUg ZHdhcmYtNCBhbmQgZHdhcmYtNSBybmdsaXN0cyBzdHJ1Y3R1cmUuClRoZXJlIHNob3VsZCBiZSBh IGxvY2F0aW9uIHZpZXcgbnVtYmVyIGZvciBlYWNoIGlubGluZQpzdWItcmFuZ2UgYmVnaW4gUEMg YW5kIGVuZCBQQywgc2ltaWxhciB0byB0aGUgRFdfQVRfR05VX2VudHJ5X3ZpZXcKd2hpY2ggaXMg dGhlIGxvY2F0aW9uIHZpZXcgZm9yIHRoZSBpbmxpbmUgZW50cnkgcG9pbnQuCgpnZGI6CjIwMjEt MDEtMDEgIEJlcm5kIEVkbGluZ2VyICA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KCgkqIGJs b2NrLmMgKGJsb2NrdmVjdG9yX2Zvcl9wY19zZWN0KTogRm9yIHdlYWsgbGluZSB0YWJsZSB2YWx1 ZXMsCgl1c2UgdGhlIGlubGluZSBmcmFtZSBhdCBQQyAtIDEgaWYgaXQgaXMgZGVlcGVyLgoJKiBk d2FyZjIvcmVhZC5jIChkd2FyZjJfcm5nbGlzdHNfcHJvY2VzcywKCWR3YXJmMl9yYW5nZXNfcHJv Y2Vzcyk6IERvbid0IGlnbm9yZSBlbXB0eSByYW5nZXMgaGVyZS4KCShkd2FyZjJfcmFuZ2VzX3Jl YWQpOiBJZ25vcmUgZW1wdHkgcmFuZ2VzIGhlcmUuCgkoZHdhcmYyX2dldF9wY19ib3VuZHMpOiBB bGxvdyBlbXB0eSBpbmxpbmVkIHN1YnJvdXRpbmVzLgoJKHBhcnRpYWxfZGllX2luZm86OnJlYWQp OiBMaWtld2lzZS4KCShkd2FyZl9maW5pc2hfbGluZSk6IEFkZCBuZXcgcGFyYW1ldGVyIGVuZF9z ZXF1ZW5jZS4KCShsbnBfc3RhdGVfbWFjaGluZTo6bV9sYXN0X2ZpbGUsIGxucF9zdGF0ZV9tYWNo aW5lOjptX2xhc3RfYWRkcmVzcywKCWxucF9zdGF0ZV9tYWNoaW5lOjptX3N0bXRfYXRfYWRkcmVz cyk6IFJlbW92ZSBkYXRhIGl0ZW1zLgoJKGxucF9zdGF0ZV9tYWNoaW5lOjpyZWNvcmRfbGluZSk6 IERvIG5vdCBmaWx0ZXIgbGluZSBlbnRyaWVzIGhlcmUsCglleGNlcHQgZm9yIGxpbmUgPT0gMC4g IFBhc3MgZW5kX3NlcXVlbmNlIHRvIGR3YXJmX2ZpbmlzaF9saW5lLgoJKiBpbmZydW4uYyAocHJv Y2Vzc19ldmVudF9zdG9wX3Rlc3QpOiBEb24ndCBzdG9wIGluICFpc19zdG10IGxpbmVzCgl3aGVu IHN0ZXBwaW5nIGludG8gaW5saW5lcy4gIERvbid0IHN0b3AgYXQgdGhlIGNhbGwgc2l0ZSBhZ2Fp biwgd2hlbgoJc3RlcHBpbmcgd2l0aGluIGlubGluZWQgc3Vicm91dGluZXMgd2l0aCBtdWx0aXBs ZSByYW5nZXMuCglEb24ndCByZWZyZXNoIHRoZSBzdGVwIGluZm8gdGhlIHdoZW4gZXhlY3V0aW5n ICFpc19zdG10IGxpbmVzIG9mCglvZiBhIGRpZmZlcmVudCBpbmxpbmVkIHN1YnJvdXRpbmUuCgkq IHN5bXRhYi5jIChmaW5kX3BjX3NlY3RfbGluZSk6IEhhbmRsZSBpc193ZWFrLgoKZ2RiL3Rlc3Rz dWl0ZToKMjAyMS0wMS0wMSAgQmVybmQgRWRsaW5nZXIgIDxiZXJuZC5lZGxpbmdlckBob3RtYWls LmRlPgoKCSogZ2RiLmJhc2UvZW1wdHktaW5saW5lLmV4cDogTmV3IHRlc3QuCgkqIGdkYi5iYXNl L2VtcHR5LWlubGluZS5jOiBOZXcgdGVzdC4KCSogZ2RiLmNwL2VtcHR5LWlubGluZS5leHA6IE5l dyB0ZXN0LgoJKiBnZGIuY3AvZW1wdHktaW5saW5lLmNjOiBOZXcgdGVzdC4KCSogZ2RiLmNwL3N0 ZXAtYW5kLW5leHQtaW5saW5lLmV4cDogUmVtb3ZlIEtGQUlMcywgZW5oYW5jZSB0ZXN0LgoJKiBn ZGIuY3Avc3RlcC1hbmQtbmV4dC1pbmxpbmUuY2M6IFdvcmsgYXJvdW5kIGZhaWx1cmUgd2l0aAoJ Z2NjLTkuMy4wIGZyb20gdWJ1bnR1IDIwLjA0LgotLS0KIGdkYi9ibG9jay5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKystCiBnZGIvZHdhcmYyL3JlYWQuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA4NCArKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGdk Yi9pbmZydW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMzICsrKysrKysr Ky0KIGdkYi9zeW10YWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsr Ky0tLQogZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9lbXB0eS1pbmxpbmUuYyAgICAgICAgIHwgNDIg KysrKysrKysrKysrCiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VtcHR5LWlubGluZS5leHAgICAg ICAgfCA0OCArKysrKysrKysrKysrKwogZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZW1wdHktaW5saW5l LmNjICAgICAgICAgIHwgMzMgKysrKysrKysrKwogZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZW1wdHkt aW5saW5lLmV4cCAgICAgICAgIHwgNTEgKysrKysrKysrKysrKysrCiBnZGIvdGVzdHN1aXRlL2dk Yi5jcC9zdGVwLWFuZC1uZXh0LWlubGluZS5jYyAgfCAgNiArKwogZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3Avc3RlcC1hbmQtbmV4dC1pbmxpbmUuZXhwIHwgOTMgKysrKysrKysrKysrKysrKystLS0tLS0t LS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMTIgaW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW1wdHktaW5saW5l LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VtcHR5LWlubGlu ZS5leHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5jcC9lbXB0eS1pbmxp bmUuY2MKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5jcC9lbXB0eS1pbmxp bmUuZXhwCgpkaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrLmMgYi9nZGIvYmxvY2suYwppbmRleCBmYzZi ZmI5Li42ZjYwNDRiIDEwMDY0NAotLS0gYS9nZGIvYmxvY2suYworKysgYi9nZGIvYmxvY2suYwpA QCAtMjA1LDcgKzIwNSwyMCBAQCBzdHJ1Y3Qgc3ltYm9sICoKICAgICByZXR1cm4gTlVMTDsKIAog ICBpZiAocGJsb2NrKQotICAgICpwYmxvY2sgPSBiOworICAgIHsKKyAgICAgIHN0cnVjdCBzeW10 YWJfYW5kX2xpbmUgc2FsID0gZmluZF9wY19zZWN0X2xpbmUgKHBjLCBzZWN0aW9uLCAwKTsKKyAg ICAgIGlmIChzYWwubGluZSAhPSAwICYmIHNhbC5wYyA9PSBwYyAmJiBzYWwuaXNfd2VhaykKKwl7 CisJICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmIyID0gZmluZF9ibG9ja19pbl9ibG9ja3ZlY3RvciAo YmwsIHBjIC0gMSk7CisJICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmIwID0gYjsKKwkgIHdoaWxlIChC TE9DS19TVVBFUkJMT0NLIChiMCkgJiYgIUJMT0NLX0ZVTkNUSU9OIChiMCkpCisJICAgIGIwID0g QkxPQ0tfU1VQRVJCTE9DSyAoYjApOworCSAgaWYgKGNvbnRhaW5lZF9pbiAoYjIsIGIwKSkKKwkg ICAgYiA9IGIyOworCX0KKyAgICAgICpwYmxvY2sgPSBiOworICAgIH0KKwogICByZXR1cm4gYmw7 CiB9CiAKZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjIvcmVhZC5jIGIvZ2RiL2R3YXJmMi9yZWFkLmMK aW5kZXggZWQ0NWQ3MC4uYTQ4YmVhYiAxMDA2NDQKLS0tIGEvZ2RiL2R3YXJmMi9yZWFkLmMKKysr IGIvZ2RiL2R3YXJmMi9yZWFkLmMKQEAgLTE0NDAyLDEwICsxNDQwMiw2IEBAIGNsYXNzIHByb2Nl c3NfZGllX3Njb3BlCiAJICByZXR1cm4gZmFsc2U7CiAJfQogCi0gICAgICAvKiBFbXB0eSByYW5n ZSBlbnRyaWVzIGhhdmUgbm8gZWZmZWN0LiAgKi8KLSAgICAgIGlmIChyYW5nZV9iZWdpbm5pbmcg PT0gcmFuZ2VfZW5kKQotCWNvbnRpbnVlOwotCiAgICAgICAvKiBPbmx5IERXX1JMRV9vZmZzZXRf cGFpciBuZWVkcyB0aGUgYmFzZSBhZGRyZXNzIGFkZGVkLiAgKi8KICAgICAgIGlmIChybGV0ID09 IERXX1JMRV9vZmZzZXRfcGFpcikKIAl7CkBAIC0xNDUyNCwxMCArMTQ1MjAsNiBAQCBjbGFzcyBw cm9jZXNzX2RpZV9zY29wZQogCSAgcmV0dXJuIDA7CiAJfQogCi0gICAgICAvKiBFbXB0eSByYW5n ZSBlbnRyaWVzIGhhdmUgbm8gZWZmZWN0LiAgKi8KLSAgICAgIGlmIChyYW5nZV9iZWdpbm5pbmcg PT0gcmFuZ2VfZW5kKQotCWNvbnRpbnVlOwotCiAgICAgICByYW5nZV9iZWdpbm5pbmcgKz0gKmJh c2U7CiAgICAgICByYW5nZV9lbmQgKz0gKmJhc2U7CiAKQEAgLTE0NTY3LDYgKzE0NTU5LDEwIEBA IGNsYXNzIHByb2Nlc3NfZGllX3Njb3BlCiAgIHJldHZhbCA9IGR3YXJmMl9yYW5nZXNfcHJvY2Vz cyAob2Zmc2V0LCBjdSwgdGFnLAogICAgIFsmXSAoQ09SRV9BRERSIHJhbmdlX2JlZ2lubmluZywg Q09SRV9BRERSIHJhbmdlX2VuZCkKICAgICB7CisgICAgICAvKiBFbXB0eSByYW5nZSBlbnRyaWVz IGhhdmUgbm8gZWZmZWN0LiAgKi8KKyAgICAgIGlmIChyYW5nZV9iZWdpbm5pbmcgPT0gcmFuZ2Vf ZW5kKQorCXJldHVybjsKKwogICAgICAgaWYgKHJhbmdlc19wc3QgIT0gTlVMTCkKIAl7CiAJICBD T1JFX0FERFIgbG93cGM7CkBAIC0xNDY4MSw4ICsxNDY3Nyw4IEBAIGNsYXNzIHByb2Nlc3NfZGll X3Njb3BlCiAJcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKICAgICB9CiAKLSAgLyogcGFy dGlhbF9kaWVfaW5mbzo6cmVhZCBoYXMgYWxzbyB0aGUgc3RyaWN0IExPVyA8IEhJR0ggcmVxdWly ZW1lbnQuICAqLwotICBpZiAoaGlnaCA8PSBsb3cpCisgIC8qIHBhcnRpYWxfZGllX2luZm86OnJl YWQgaGFzIGFsc28gdGhlIHNhbWUgbG93IDwgaGlnaCByZXF1aXJlbWVudC4gICovCisgIGlmIChs b3cgPiBoaWdoIHx8IChsb3cgPT0gaGlnaCAmJiBkaWUtPnRhZyAhPSBEV19UQUdfaW5saW5lZF9z dWJyb3V0aW5lKSkKICAgICByZXR1cm4gUENfQk9VTkRTX0lOVkFMSUQ7CiAKICAgLyogV2hlbiB1 c2luZyB0aGUgR05VIGxpbmtlciwgLmdudS5saW5rb25jZS4gc2VjdGlvbnMgYXJlIHVzZWQgdG8K QEAgLTE5ODU1LDggKzE5ODUxLDkgQEAgc3RydWN0IHR5cGUgKgogCQkgICAgIHNlY3Rfb2Zmc2V0 X3N0ciAoc2VjdF9vZmYpLAogCQkgICAgIG9iamZpbGVfbmFtZSAob2JqZmlsZSkpOwogCX0KLSAg ICAgIC8qIGR3YXJmMl9nZXRfcGNfYm91bmRzIGhhcyBhbHNvIHRoZSBzdHJpY3QgbG93IDwgaGln aCByZXF1aXJlbWVudC4gICovCi0gICAgICBlbHNlIGlmIChsb3dwYyA+PSBoaWdocGMpCisgICAg ICAvKiBkd2FyZjJfZ2V0X3BjX2JvdW5kcyBoYXMgYWxzbyB0aGUgc2FtZSBsb3cgPCBoaWdoIHJl cXVpcmVtZW50LiAgKi8KKyAgICAgIGVsc2UgaWYgKGxvd3BjID4gaGlnaHBjCisJICAgICAgIHx8 IChsb3dwYyA9PSBoaWdocGMgJiYgdGFnICE9IERXX1RBR19pbmxpbmVkX3N1YnJvdXRpbmUpKQog CXsKIAkgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gcGVyX29iamZpbGUtPm9iamZpbGU7CiAJ ICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IG9iamZpbGUtPmFyY2ggKCk7CkBAIC0yMTI2NCwy MSArMjEyNjEsOSBAQCBjbGFzcyBsbnBfc3RhdGVfbWFjaGluZQogCiAgIC8qIEFkZGl0aW9uYWwg Yml0cyBvZiBzdGF0ZSB3ZSBuZWVkIHRvIHRyYWNrLiAgKi8KIAotICAvKiBUaGUgbGFzdCBmaWxl IHRoYXQgd2UgY2FsbGVkIGR3YXJmMl9zdGFydF9zdWJmaWxlIGZvci4KLSAgICAgVGhpcyBpcyBv bmx5IHVzZWQgZm9yIFRMTHMuICAqLwotICB1bnNpZ25lZCBpbnQgbV9sYXN0X2ZpbGUgPSAwOwog ICAvKiBUaGUgbGFzdCBmaWxlIGEgbGluZSBudW1iZXIgd2FzIHJlY29yZGVkIGZvci4gICovCiAg IHN0cnVjdCBzdWJmaWxlICptX2xhc3Rfc3ViZmlsZSA9IE5VTEw7CiAKLSAgLyogVGhlIGFkZHJl c3Mgb2YgdGhlIGxhc3QgbGluZSBlbnRyeS4gICovCi0gIENPUkVfQUREUiBtX2xhc3RfYWRkcmVz czsKLQotICAvKiBTZXQgdG8gdHJ1ZSB3aGVuIGEgcHJldmlvdXMgbGluZSBhdCB0aGUgc2FtZSBh ZGRyZXNzICh1c2luZwotICAgICBtX2xhc3RfYWRkcmVzcykgaGFkIG1faXNfc3RtdCB0cnVlLiAg VGhpcyBpcyByZXNldCB0byBmYWxzZSB3aGVuIGEKLSAgICAgbGluZSBlbnRyeSBhdCBhIG5ldyBh ZGRyZXNzIChtX2FkZHJlc3MgZGlmZmVyZW50IHRvIG1fbGFzdF9hZGRyZXNzKSBpcwotICAgICBw cm9jZXNzZWQuICAqLwotICBib29sIG1fc3RtdF9hdF9hZGRyZXNzID0gZmFsc2U7Ci0KICAgLyog V2hlbiB0cnVlLCByZWNvcmQgdGhlIGxpbmVzIHdlIGRlY29kZS4gICovCiAgIGJvb2wgbV9jdXJy ZW50bHlfcmVjb3JkaW5nX2xpbmVzID0gZmFsc2U7CiAKQEAgLTIxNDMwLDcgKzIxNDE1LDcgQEAg Y2xhc3MgbG5wX3N0YXRlX21hY2hpbmUKIAogc3RhdGljIHZvaWQKIGR3YXJmX2ZpbmlzaF9saW5l IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHN1YmZpbGUgKnN1YmZpbGUsCi0JCSAg IENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKwkJICAgQ09SRV9BRERS IGFkZHJlc3MsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBib29sIGVuZF9zZXF1ZW5jZSkKIHsKICAg aWYgKHN1YmZpbGUgPT0gTlVMTCkKICAgICByZXR1cm47CkBAIC0yMTQ0Myw3ICsyMTQyOCw4IEBA IGNsYXNzIGxucF9zdGF0ZV9tYWNoaW5lCiAJCQkgIHBhZGRyZXNzIChnZGJhcmNoLCBhZGRyZXNz KSk7CiAgICAgfQogCi0gIGR3YXJmX3JlY29yZF9saW5lXzEgKGdkYmFyY2gsIHN1YmZpbGUsIDAs IGFkZHJlc3MsIHRydWUsIGN1KTsKKyAgZHdhcmZfcmVjb3JkX2xpbmVfMSAoZ2RiYXJjaCwgc3Vi ZmlsZSwgZW5kX3NlcXVlbmNlID8gMCA6IC0xLCBhZGRyZXNzLAorCQkgICAgICAgdHJ1ZSwgY3Up OwogfQogCiB2b2lkCkBAIC0yMTQ3MCwzNyArMjE0NTYsMTcgQEAgY2xhc3MgbG5wX3N0YXRlX21h Y2hpbmUKICAgZWxzZSBpZiAobV9vcF9pbmRleCA9PSAwIHx8IGVuZF9zZXF1ZW5jZSkKICAgICB7 CiAgICAgICBmZS0+aW5jbHVkZWRfcCA9IDE7Ci0gICAgICBpZiAobV9yZWNvcmRfbGluZXNfcCkK LQl7Ci0JICAvKiBXaGVuIHdlIHN3aXRjaCBmaWxlcyB3ZSBpbnNlcnQgYW4gZW5kIG1ha2VyIGlu IHRoZSBmaXJzdCBmaWxlLAotCSAgICAgc3dpdGNoIHRvIHRoZSBzZWNvbmQgZmlsZSBhbmQgYWRk IGEgbmV3IGxpbmUgZW50cnkuICBUaGUKLQkgICAgIHByb2JsZW0gaXMgdGhhdCB0aGUgZW5kIG1h cmtlciBpbnNlcnRlZCBpbiB0aGUgZmlyc3QgZmlsZSB3aWxsCi0JICAgICBkaXNjYXJkIGFueSBw cmV2aW91cyBsaW5lIGVudHJpZXMgYXQgdGhlIHNhbWUgYWRkcmVzcy4gIElmIHRoZQotCSAgICAg bGluZSBlbnRyaWVzIGluIHRoZSBmaXJzdCBmaWxlIGFyZSBtYXJrZWQgYXMgaXMtc3RtdCwgd2hp bGUKLQkgICAgIHRoZSBuZXcgbGluZSBpbiB0aGUgc2Vjb25kIGZpbGUgaXMgbm9uLXN0bXQsIHRo ZW4gdGhpcyBtZWFucwotCSAgICAgdGhlIGVuZCBtYXJrZXIgd2lsbCBkaXNjYXJkIGlzLXN0bXQg bGluZXMgc28gd2UgY2FuIGhhdmUgYQotCSAgICAgbm9uLXN0bXQgbGluZS4gIFRoaXMgbWVhbnMg dGhhdCB0aGVyZSBhcmUgbGVzcyBhZGRyZXNzZXMgYXQKLQkgICAgIHdoaWNoIHRoZSB1c2VyIGNh biBpbnNlcnQgYSBicmVha3BvaW50LgotCi0JICAgICBUbyBpbXByb3ZlIHRoaXMgd2UgdHJhY2sg dGhlIGxhc3QgYWRkcmVzcyBpbiBtX2xhc3RfYWRkcmVzcywKLQkgICAgIGFuZCB3aGV0aGVyIHdl IGhhdmUgc2VlbiBhbiBpcy1zdG10IGF0IHRoaXMgYWRkcmVzcy4gIFRoZW4KLQkgICAgIHdoZW4g c3dpdGNoaW5nIGZpbGVzLCBpZiB3ZSBoYXZlIHNlZW4gYSBzdG10IGF0IHRoZSBjdXJyZW50Ci0J ICAgICBhZGRyZXNzLCBhbmQgd2UgYXJlIHN3aXRjaGluZyB0byBjcmVhdGUgYSBub24tc3RtdCBs aW5lLCB0aGVuCi0JICAgICBkaXNjYXJkIHRoZSBuZXcgbGluZS4gICovCi0JICBib29sIGZpbGVf Y2hhbmdlZAotCSAgICA9IG1fbGFzdF9zdWJmaWxlICE9IG1fY3UtPmdldF9idWlsZGVyICgpLT5n ZXRfY3VycmVudF9zdWJmaWxlICgpOwotCSAgYm9vbCBpZ25vcmVfdGhpc19saW5lCi0JICAgPSAo KGZpbGVfY2hhbmdlZCAmJiAhZW5kX3NlcXVlbmNlICYmIG1fbGFzdF9hZGRyZXNzID09IG1fYWRk cmVzcwotCSAgICAgICAmJiAhbV9pc19zdG10ICYmIG1fc3RtdF9hdF9hZGRyZXNzKQotCSAgICAg IHx8ICghZW5kX3NlcXVlbmNlICYmIG1fbGluZSA9PSAwKSk7Ci0KLQkgIGlmICgoZmlsZV9jaGFu Z2VkICYmICFpZ25vcmVfdGhpc19saW5lKSB8fCBlbmRfc2VxdWVuY2UpCisgICAgICBpZiAobV9y ZWNvcmRfbGluZXNfcCAmJiAoZW5kX3NlcXVlbmNlIHx8IG1fbGluZSAhPSAwKSkKKwl7CisJICBp ZiAobV9sYXN0X3N1YmZpbGUgIT0gbV9jdS0+Z2V0X2J1aWxkZXIgKCktPmdldF9jdXJyZW50X3N1 YmZpbGUgKCkKKwkgICAgICB8fCBlbmRfc2VxdWVuY2UpCiAJICAgIHsKIAkgICAgICBkd2FyZl9m aW5pc2hfbGluZSAobV9nZGJhcmNoLCBtX2xhc3Rfc3ViZmlsZSwgbV9hZGRyZXNzLAotCQkJCSBt X2N1cnJlbnRseV9yZWNvcmRpbmdfbGluZXMgPyBtX2N1IDogbnVsbHB0cik7CisJCQkJIG1fY3Vy cmVudGx5X3JlY29yZGluZ19saW5lcyA/IG1fY3UgOiBudWxscHRyLAorCQkJCSBlbmRfc2VxdWVu Y2UgfHwgbV9pc19zdG10KTsKIAkgICAgfQogCi0JICBpZiAoIWVuZF9zZXF1ZW5jZSAmJiAhaWdu b3JlX3RoaXNfbGluZSkKKwkgIGlmICghZW5kX3NlcXVlbmNlKQogCSAgICB7CiAJICAgICAgYm9v bCBpc19zdG10ID0gcHJvZHVjZXJfaXNfY29kZXdhcnJpb3IgKG1fY3UpIHx8IG1faXNfc3RtdDsK IApAQCAtMjE1MTksMTUgKzIxNDg1LDYgQEAgY2xhc3MgbG5wX3N0YXRlX21hY2hpbmUKIAkgICAg fQogCX0KICAgICB9Ci0KLSAgLyogVHJhY2sgd2hldGhlciB3ZSBoYXZlIHNlZW4gYW55IG1faXNf c3RtdCB0cnVlIGF0IG1fYWRkcmVzcyBpbiBjYXNlIHdlCi0gICAgIGhhdmUgbXVsdGlwbGUgbGlu ZSB0YWJsZSBlbnRyaWVzIGFsbCBhdCBtX2FkZHJlc3MuICAqLwotICBpZiAobV9sYXN0X2FkZHJl c3MgIT0gbV9hZGRyZXNzKQotICAgIHsKLSAgICAgIG1fc3RtdF9hdF9hZGRyZXNzID0gZmFsc2U7 Ci0gICAgICBtX2xhc3RfYWRkcmVzcyA9IG1fYWRkcmVzczsKLSAgICB9Ci0gIG1fc3RtdF9hdF9h ZGRyZXNzIHw9IG1faXNfc3RtdDsKIH0KIAogbG5wX3N0YXRlX21hY2hpbmU6OmxucF9zdGF0ZV9t YWNoaW5lIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwgZ2RiYXJjaCAqYXJjaCwKQEAgLTIxNTQ3LDkg KzIxNTA0LDYgQEAgY2xhc3MgbG5wX3N0YXRlX21hY2hpbmUKICAgbV9hZGRyZXNzID0gZ2RiYXJj aF9hZGp1c3RfZHdhcmYyX2xpbmUgKGFyY2gsIDAsIDApOwogICBtX2lzX3N0bXQgPSBsaC0+ZGVm YXVsdF9pc19zdG10OwogICBtX2Rpc2NyaW1pbmF0b3IgPSAwOwotCi0gIG1fbGFzdF9hZGRyZXNz ID0gbV9hZGRyZXNzOwotICBtX3N0bXRfYXRfYWRkcmVzcyA9IGZhbHNlOwogfQogCiB2b2lkCmRp ZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKaW5kZXggZjUwOTQ4MS4uYjE2 MDQyNyAxMDA2NDQKLS0tIGEvZ2RiL2luZnJ1bi5jCisrKyBiL2dkYi9pbmZydW4uYwpAQCAtNjkz Miw2ICs2OTMyLDMxIEBAIHN0cnVjdCB3YWl0X29uZV9ldmVudAogICAgICAgcmV0dXJuOwogICAg IH0KIAorICAvKiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBzdWJyb3V0aW5lcyBoYXZlIG11bHRpcGxl IHJhbmdlcy4KKyAgICAgV2hlbiB3ZSBzdGVwIGZyb20gb25lIHBhcnQgdG8gdGhlIG5leHQgcGFy dCBvZiB0aGUgc2FtZSBzdWJyb3V0aW5lLAorICAgICBhbGwgc3Vicm91dGluZSBsZXZlbHMgYXJl IHNraXBwZWQgYWdhaW4gd2hpY2ggYmVnaW4gaGVyZS4KKyAgICAgQ29tcGVuc2F0ZSBmb3IgdGhp cyBieSByZW1vdmluZyBhbGwgc2tpcHBlZCBzdWJyb3V0aW5lcywKKyAgICAgd2hpY2ggd2VyZSBh bHJlYWR5IGV4ZWN1dGluZyBmcm9tIHRoZSB1c2VyJ3MgcGVyc3BlY3RpdmUuICAqLworCisgIGlm IChmcmFtZV9pZF9lcSAoZ2V0X3N0YWNrX2ZyYW1lX2lkIChnZXRfY3VycmVudF9mcmFtZSAoKSks CisJCSAgIGVjcy0+ZXZlbnRfdGhyZWFkLT5jb250cm9sLnN0ZXBfc3RhY2tfZnJhbWVfaWQpCisg ICAgICAmJiBpbmxpbmVfc2tpcHBlZF9mcmFtZXMgKGVjcy0+ZXZlbnRfdGhyZWFkKQorICAgICAg JiYgZWNzLT5ldmVudF90aHJlYWQtPmNvbnRyb2wuc3RlcF9mcmFtZV9pZC5hcnRpZmljaWFsX2Rl cHRoID4gMAorICAgICAgJiYgZWNzLT5ldmVudF90aHJlYWQtPmNvbnRyb2wuc3RlcF9mcmFtZV9p ZC5jb2RlX2FkZHJfcCkKKyAgICB7CisgICAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKnByZXYsICpj dXJyOworICAgICAgaW50IGRlcHRoID0gMDsKKyAgICAgIHByZXYgPSBibG9ja19mb3JfcGMgKGVj cy0+ZXZlbnRfdGhyZWFkLT5jb250cm9sLnN0ZXBfZnJhbWVfaWQuY29kZV9hZGRyKTsKKyAgICAg IGN1cnIgPSBibG9ja19mb3JfcGMgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdXNwZW5kLnN0b3BfcGMp OworICAgICAgd2hpbGUgKGN1cnIgJiYgYmxvY2tfaW5saW5lZF9wIChjdXJyKSAmJiAhY29udGFp bmVkX2luIChwcmV2LCBjdXJyKSkKKwl7CisJICBkZXB0aCArKzsKKwkgIGN1cnIgPSBCTE9DS19T VVBFUkJMT0NLIChjdXJyKTsKKwl9CisgICAgICB3aGlsZSAoaW5saW5lX3NraXBwZWRfZnJhbWVz IChlY3MtPmV2ZW50X3RocmVhZCkgPiBkZXB0aCkKKwlzdGVwX2ludG9faW5saW5lX2ZyYW1lIChl Y3MtPmV2ZW50X3RocmVhZCk7CisgICAgfQorCiAgIC8qIExvb2sgZm9yICJjYWxscyIgdG8gaW5s aW5lZCBmdW5jdGlvbnMsIHBhcnQgb25lLiAgSWYgdGhlIGlubGluZQogICAgICBmcmFtZSBtYWNo aW5lcnkgZGV0ZWN0ZWQgc29tZSBza2lwcGVkIGNhbGwgc2l0ZXMsIHdlIGhhdmUgZW50ZXJlZAog ICAgICBhIG5ldyBpbmxpbmUgZnVuY3Rpb24uICAqLwpAQCAtNjk5Myw2ICs3MDE4LDggQEAgc3Ry dWN0IHdhaXRfb25lX2V2ZW50CiAgICAgICBpbmZydW5fZGVidWdfcHJpbnRmICgic3RlcHBpbmcg dGhyb3VnaCBpbmxpbmVkIGZ1bmN0aW9uIik7CiAKICAgICAgIGlmIChlY3MtPmV2ZW50X3RocmVh ZC0+Y29udHJvbC5zdGVwX292ZXJfY2FsbHMgPT0gU1RFUF9PVkVSX0FMTAorCSAgfHwgZWNzLT5l dmVudF90aHJlYWQtPnN1c3BlbmQuc3RvcF9wYyAhPSBzdG9wX3BjX3NhbC5wYworCSAgfHwgIXN0 b3BfcGNfc2FsLmlzX3N0bXQKIAkgIHx8IGlubGluZV9mcmFtZV9pc19tYXJrZWRfZm9yX3NraXAg KGZhbHNlLCBlY3MtPmV2ZW50X3RocmVhZCkpCiAJa2VlcF9nb2luZyAoZWNzKTsKICAgICAgIGVs c2UKQEAgLTcwMTUsOCArNzA0Miw4IEBAIHN0cnVjdCB3YWl0X29uZV9ldmVudAogCSAgZW5kX3N0 ZXBwaW5nX3JhbmdlIChlY3MpOwogCSAgcmV0dXJuOwogCX0KLSAgICAgIGVsc2UgaWYgKGZyYW1l X2lkX2VxIChnZXRfZnJhbWVfaWQgKGdldF9jdXJyZW50X2ZyYW1lICgpKSwKLQkJCSAgICBlY3Mt PmV2ZW50X3RocmVhZC0+Y29udHJvbC5zdGVwX2ZyYW1lX2lkKSkKKyAgICAgIGVsc2UgaWYgKGZy YW1lX2lkX2VxIChnZXRfc3RhY2tfZnJhbWVfaWQgKGdldF9jdXJyZW50X2ZyYW1lICgpKSwKKwkJ CSAgICBlY3MtPmV2ZW50X3RocmVhZC0+Y29udHJvbC5zdGVwX3N0YWNrX2ZyYW1lX2lkKSkKIAl7 CiAJICAvKiBXZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgZGlmZmVyZW50IGxpbmUsIGhvd2V2ZXIs IHRoaXMgbGluZSBpcwogCSAgICAgbm90IG1hcmtlZCBhcyBhIHN0YXRlbWVudCwgYW5kIHdlIGhh dmUgbm90IGNoYW5nZWQgZnJhbWUuICBXZQpAQCAtNzA0Niw3ICs3MDczLDcgQEAgc3RydWN0IHdh aXRfb25lX2V2ZW50CiAgIGVjcy0+ZXZlbnRfdGhyZWFkLT5jb250cm9sLnN0ZXBfcmFuZ2VfZW5k ID0gc3RvcF9wY19zYWwuZW5kOwogICBlY3MtPmV2ZW50X3RocmVhZC0+Y29udHJvbC5tYXlfcmFu Z2Vfc3RlcCA9IDE7CiAgIGlmIChyZWZyZXNoX3N0ZXBfaW5mbykKLSAgICBzZXRfc3RlcF9pbmZv IChlY3MtPmV2ZW50X3RocmVhZCwgZnJhbWUsIHN0b3BfcGNfc2FsKTsKKyAgICBzZXRfc3RlcF9p bmZvIChlY3MtPmV2ZW50X3RocmVhZCwgZ2V0X2N1cnJlbnRfZnJhbWUgKCksIHN0b3BfcGNfc2Fs KTsKIAogICBpbmZydW5fZGVidWdfcHJpbnRmICgia2VlcCBnb2luZyIpOwogICBrZWVwX2dvaW5n IChlY3MpOwpkaWZmIC0tZ2l0IGEvZ2RiL3N5bXRhYi5jIGIvZ2RiL3N5bXRhYi5jCmluZGV4IDBk M2ZhOWIuLjdkYTFhYTUgMTAwNjQ0Ci0tLSBhL2dkYi9zeW10YWIuYworKysgYi9nZGIvc3ltdGFi LmMKQEAgLTMyOTMsNyArMzI5MywxMSBAQCBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lCiAJIHNhdmUg cHJldiBpZiBpdCByZXByZXNlbnRzIHRoZSBlbmQgb2YgYSBmdW5jdGlvbiAoaS5lLiBsaW5lIG51 bWJlcgogCSAwKSBpbnN0ZWFkIG9mIGEgcmVhbCBsaW5lLiAgKi8KIAotICAgICAgaWYgKHByZXYg JiYgcHJldi0+bGluZSAmJiAoIWJlc3QgfHwgcHJldi0+cGMgPiBiZXN0LT5wYykpCisgICAgICBp ZiAocHJldiAmJiBwcmV2LT5saW5lICYmICghYmVzdCB8fCBwcmV2LT5wYyA+IGJlc3QtPnBjCisJ CQkJICAgICAgIHx8IChwcmV2LT5wYyA9PSBiZXN0LT5wYworCQkJCQkgICAmJiAoYmVzdC0+cGMg PT0gcGMKKwkJCQkJICAgICAgID8gIWJlc3QtPmlzX3N0bXQKKwkJCQkJICAgICAgIDogYmVzdC0+ aXNfd2VhaykpKSkKIAl7CiAJICBiZXN0ID0gcHJldjsKIAkgIGJlc3Rfc3ltdGFiID0gaXRlcl9z OwpAQCAtMzMxMSw3ICszMzE1LDcgQEAgc3RydWN0IHN5bXRhYl9hbmRfbGluZQogCSAgICAgIHdo aWxlICh0bXAgPiBmaXJzdCAmJiAodG1wIC0gMSktPnBjID09IHRtcC0+cGMKIAkJICAgICAmJiAo dG1wIC0gMSktPmxpbmUgIT0gMCAmJiAhdG1wLT5pc19zdG10KQogCQktLXRtcDsKLQkgICAgICBp ZiAodG1wLT5pc19zdG10KQorCSAgICAgIGlmICh0bXAtPmlzX3N0bXQgJiYgKHRtcC0+cGMgPT0g cGMgfHwgIXRtcC0+aXNfd2VhaykpCiAJCWJlc3QgPSB0bXA7CiAJICAgIH0KIApAQCAtMzMzNCwx OCArMzMzOCwxNCBAQCBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lCiAJIFdlIHVzZWQgdG8gcmV0dXJu IGFsdC0+bGluZSAtIDEgaGVyZSwgYnV0IHRoYXQgY291bGQgYmUKIAkgYW55d2hlcmU7IGlmIHdl IGRvbid0IGhhdmUgbGluZSBudW1iZXIgaW5mbyBmb3IgdGhpcyBQQywKIAkgZG9uJ3QgbWFrZSBz b21lIHVwLiAgKi8KLSAgICAgIHZhbC5wYyA9IHBjOwotICAgIH0KLSAgZWxzZSBpZiAoYmVzdC0+ bGluZSA9PSAwKQotICAgIHsKLSAgICAgIC8qIElmIG91ciBiZXN0IGZpdCBpcyBpbiBhIHJhbmdl IG9mIFBDJ3MgZm9yIHdoaWNoIG5vIGxpbmUKLQkgbnVtYmVyIGluZm8gaXMgYXZhaWxhYmxlIChs aW5lIG51bWJlciBpcyB6ZXJvKSB0aGVuIHdlIGRpZG4ndAotCSBmaW5kIGFueSB2YWxpZCBsaW5l IGluZm9ybWF0aW9uLiAgKi8KKyAgICAgIGlmIChub3RjdXJyZW50KQorCXBjKys7CiAgICAgICB2 YWwucGMgPSBwYzsKICAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgICB2YWwuaXNfc3RtdCA9IGJl c3QtPmlzX3N0bXQ7CisgICAgICB2YWwuaXNfd2VhayA9IGJlc3QtPmlzX3dlYWs7CiAgICAgICB2 YWwuc3ltdGFiID0gYmVzdF9zeW10YWI7CiAgICAgICB2YWwubGluZSA9IGJlc3QtPmxpbmU7CiAg ICAgICB2YWwucGMgPSBiZXN0LT5wYzsKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZW1wdHktaW5saW5lLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VtcHR5LWlubGluZS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyM2FkZWUKLS0tIC9kZXYvbnVs bAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VtcHR5LWlubGluZS5jCkBAIC0wLDAgKzEs NDIgQEAKKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIu CisKKyAgIENvcHlyaWdodCAyMDIwLTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKK3N0YXRpYyBpbnQgdGVzdDAgKHZv aWQpCit7CisgIGFzbSAoIiIpOworICByZXR1cm4gMTsgLyogbGluZSAyMSAqLworfQorCitpbnQg X19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vY2xvbmUpKQorI2lmZGVmIF9fQ0VUX18KKyAgX19h dHRyaWJ1dGVfXygobm9jZl9jaGVjaykpCisjZW5kaWYKK3Rlc3QxIChpbnQgeCkKK3sKKyAgYXNt ICgiIik7CisgIHJldHVybiB4KzE7IC8qIGxpbmUgMzEgKi8KK30KKworaW50CisjaWZkZWYgX19D RVRfXworICBfX2F0dHJpYnV0ZV9fKChub2NmX2NoZWNrKSkKKyNlbmRpZgorbWFpbigpCit7Cisg IHRlc3QxICh0ZXN0MCAoKSk7IC8qIGxpbmUgNDAqLworICByZXR1cm4gMDsKK30KZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW1wdHktaW5saW5lLmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZW1wdHktaW5saW5lLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5jMDI2ZjczCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9lbXB0eS1pbmxpbmUuZXhwCkBAIC0wLDAgKzEsNDggQEAKKyMgQ29weXJpZ2h0IDIwMjAtMjAy MSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwor c3RhbmRhcmRfdGVzdGZpbGUgLmMKKworaWYgW2dldF9jb21waWxlcl9pbmZvXSB7CisgICAgcmV0 dXJuIC0xCit9CisKK2lmIHtbdGVzdF9jb21waWxlcl9pbmZvIGdjYypdICYmICFbc3VwcG9ydHNf c3RhdGVtZW50X2Zyb250aWVyc10gfSB7CisgICAgcmV0dXJuIC0xCit9CisKK2dsb2JhbCBzcmNm aWxlIHRlc3RmaWxlCisKK3NldCBvcHRpb25zIHtkZWJ1ZyBub3dhcm5pbmdzIG9wdGltaXplPS1P Mn0KK2lmIHsgW3N1cHBvcnRzX3N0YXRlbWVudF9mcm9udGllcnNdIH0geworICAgIGxhcHBlbmQg b3B0aW9ucyBhZGRpdGlvbmFsX2ZsYWdzPS1nc3RhdGVtZW50LWZyb250aWVycworfQorCitpZiB7 IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJGJpbmZpbGUgXAorICAg ICAgJHNyY2ZpbGUgJG9wdGlvbnNdIH0geworICAgIHJldHVybiAtMQorfQorCitpZiAhW3J1bnRv X21haW5dIHsKKyAgICBmYWlsICJjYW4ndCBydW4gdG8gbWFpbiIKKyAgICByZXR1cm4gLTEKK30K KworZ2RiX3Rlc3QgImZyYW1lIDAiICJcXHMqXFwjMFxccyttYWluLioke3NyY2ZpbGV9OjQwLioi ICJpbiBtYWluIgorZ2RiX3Rlc3QgInN0ZXAiICIuKnRlc3QwLioke3NyY2ZpbGV9OjIxLioiICJz dGVwIGludG8gdGVzdDAiCitnZGJfdGVzdCAiZnJhbWUgMSIgIlxccypcXCMxXFxzK21haW4uKiR7 c3JjZmlsZX06NDAuKiIgImZyYW1lMSIKK2dkYl90ZXN0ICJzdGVwIiAiLip0ZXN0MS4qJHtzcmNm aWxlfTozMS4qIiAic3RlcCBpbnRvIHRlc3QxIgorZ2RiX3Rlc3QgImZyYW1lIDEiICJcXHMqXFwj MS4qaW4gbWFpbi4qJHtzcmNmaWxlfTo0MC4qIiAiZnJhbWUyIgorZ2RiX3Rlc3QgInN0ZXAiICIu Km1haW4uKiR7c3JjZmlsZX06NDEuKiIgInN0ZXAgYmFjayB0byBtYWluIgpkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZW1wdHktaW5saW5lLmNjIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvZW1wdHktaW5saW5lLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBi NDU4MzkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9lbXB0eS1pbmxp bmUuY2MKQEAgLTAsMCArMSwzMyBAQAorLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMjAtMjAyMSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyog UFIgMjU5ODcgKi8KK3N0cnVjdCBNeUNsYXNzOworc3RydWN0IHB0ciB7CisgICAgTXlDbGFzcyog Z2V0KCkgeyByZXR1cm4gdDsgfSAgICAgLyogbGluZSAyMSAqLworICAgIE15Q2xhc3MqIHQ7Cit9 Oworc3RydWN0IE15Q2xhc3MgeyB2b2lkIGNhbGwoKTsgfTsKK3ZvaWQgTXlDbGFzczo6Y2FsbCgp IHsKKyAgICAqKHZvbGF0aWxlIGNoYXIqKShudWxscHRyKSA9IDE7ICAvKiBsaW5lIDI2ICovCit9 CitzdGF0aWMgdm9pZCBpbnRlcm1lZGlhdGUocHRyIHApIHsKKyAgICBwLmdldCgpLT5jYWxsKCk7 ICAgICAgICAgICAgICAgICAvKiBsaW5lIDI5ICovCit9CitpbnQgbWFpbigpIHsKKyAgICBpbnRl cm1lZGlhdGUocHRye25ldyBNeUNsYXNzfSk7Cit9CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5jcC9lbXB0eS1pbmxpbmUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZW1wdHktaW5s aW5lLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTgyYWJjCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZW1wdHktaW5saW5lLmV4cApAQCAt MCwwICsxLDUxIEBACisjIENvcHlyaWdodCAyMDIwLTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyMgUFIgMjU5ODcKK3N0YW5kYXJkX3Rl c3RmaWxlIC5jYworCitpZiB7W3NraXBfY3BsdXNfdGVzdHNdfSB7CisgICAgcmV0dXJuIC0xCit9 CisKK2lmIHshW3N1cHBvcnRzX3N0YXRlbWVudF9mcm9udGllcnNdIH0geworICAgIHJldHVybiAt MQorfQorCisjIENvbXBpbGUgdGhlIHRlc3Qgc291cmNlIHdpdGggVVNFX05FWFRfSU5MSU5FX0gg ZGVmaW5lZCAod2hlbgorIyB1c2VfaGVhZGVyIGlzIHRydWUpLCBvciBub3QgZGVmaW5lZC4KK3Nl dCBvcHRpb25zIHtjKysgZGVidWcgbm93YXJuaW5ncyBvcHRpbWl6ZT0tT2d9CitsYXBwZW5kIG9w dGlvbnMgYWRkaXRpb25hbF9mbGFncz0tZ3N0YXRlbWVudC1mcm9udGllcnMKK2lmIHsgW3ByZXBh cmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgXAorICAgICAgJHNy Y2ZpbGUgJG9wdGlvbnNdIH0geworICAgIHJldHVybiAtMQorfQorCitpZiAhW3J1bnRvX21haW5d IHsKKyAgICBmYWlsICJjYW4ndCBydW4gdG8gbWFpbiIKKyAgICByZXR1cm4KK30KKworZ2RiX3Rl c3QgImJ0IiAiXFxzKlxcIzBcXHMrbWFpbi4qIiAiaW4gbWFpbiIKKyNicmVhayBhdCB0aGUgZW1w dHkgaW5saW5lIGZ1bmN0aW9uIHB0cjo6Z2V0CitnZGJfdGVzdCAiYiBnZXQiICIuKiIgImJyZWFr IGF0IGdldCIKK2dkYl90ZXN0ICJjIiAiLioiICJjb250aW51ZSB0byBnZXQiCisjY2FsbCBmcmFt ZSAxIGlzIGF0IGxpbmUgMjkKK2dkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK3B0cjo6Z2V0XFte XHJcXSoke3NyY2ZpbGV9OjIxXFtcclxuXF0rXFxzKlxcIzFcXHMraW50ZXJtZWRpYXRlXFteXHJc XSoke3NyY2ZpbGV9OjI5XFtcclxuXF0rLioiICJhdCBnZXQiCisjcHJpbnQgYSBsb2NhbCB2YWx1 ZSBoZXJlCitnZGJfdGVzdCAicCB0IiAiLipcXFwkMSA9IFxcKE15Q2xhc3MgXFwqXFwpIDB4Lioi ICJwcmludCB0IgorZ2RiX3Rlc3QgImMiICIuKlNJR1NFR1YuKiIgImNvbnRpbnVlIHRvIFNJR1NF R1YiCisjY2FsbCBmcmFtZSAxIGlzIGF0IGxpbmUgMjkKK2dkYl90ZXN0ICJidCIgIlxccypcXCMw XFxzK015Q2xhc3M6OmNhbGxcW15cclxdKiR7c3JjZmlsZX06MjZcW1xyXG5cXStcXHMqXFwjMVxc cysweFxbXlxyXF0qJHtzcmNmaWxlfToyOVxbXHJcblxdKy4qIiAiYXQgY2FsbCIKZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3N0ZXAtYW5kLW5leHQtaW5saW5lLmNjIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3Avc3RlcC1hbmQtbmV4dC1pbmxpbmUuY2MKaW5kZXggZDkyM2NjNS4uNjk4 ZGNkNyAxMDA2NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avc3RlcC1hbmQtbmV4dC1pbmxp bmUuY2MKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avc3RlcC1hbmQtbmV4dC1pbmxpbmUuY2MK QEAgLTQ2LDYgKzQ2LDkgQEAgdHJlZV9jaGVjayAodHJlZSAqdCwgaW50IGkpCiAjZW5kaWYJLyog VVNFX05FWFRfSU5MSU5FX0ggKi8KIAogaW50IF9fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Ns b25lKSkKKyNpZmRlZiBfX0NFVF9fCisgIF9fYXR0cmlidXRlX18oKG5vY2ZfY2hlY2spKQorI2Vu ZGlmCiBnZXRfYWxpYXNfc2V0ICh0cmVlICp0KQogewogICBpZiAodCAhPSBOVUxMCkBAIC01OSw2 ICs2Miw5IEBAIGdldF9hbGlhc19zZXQgKHRyZWUgKnQpCiB0cmVlIHh4OwogCiBpbnQKKyNpZmRl ZiBfX0NFVF9fCisgIF9fYXR0cmlidXRlX18oKG5vY2ZfY2hlY2spKQorI2VuZGlmCiBtYWluKCkK IHsKICAgZ2V0X2FsaWFzX3NldCAoJnh4KTsKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL3N0ZXAtYW5kLW5leHQtaW5saW5lLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3N0ZXAt YW5kLW5leHQtaW5saW5lLmV4cAppbmRleCAwOGE0Yjg4Li4zZGZmN2YwIDEwMDY0NAotLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5jcC9zdGVwLWFuZC1uZXh0LWlubGluZS5leHAKKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3Avc3RlcC1hbmQtbmV4dC1pbmxpbmUuZXhwCkBAIC0yOSwxMyArMjksNiBA QCBpZiB7W3Rlc3RfY29tcGlsZXJfaW5mbyBnY2MqXSAmJiAhW3N1cHBvcnRzX3N0YXRlbWVudF9m cm9udGllcnNdIH0gewogcHJvYyBkb190ZXN0IHsgdXNlX2hlYWRlciB9IHsKICAgICBnbG9iYWwg c3JjZmlsZSB0ZXN0ZmlsZQogCi0gICAgaWYgeyAkdXNlX2hlYWRlciB9IHsKLQkjIFRoaXMgdGVz dCB3aWxsIG5vdCBwYXNzIGR1ZSB0byBwb29yIGRlYnVnIGluZm9ybWF0aW9uCi0JIyBnZW5lcmF0 ZWQgYnkgR0NDIChhdCBsZWFzdCB1cHRvIDEwLngpLiAgU2VlCi0JIyBodHRwczovL2djYy5nbnUu b3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD05NDQ3NAotCXJldHVybgotICAgIH0KLQogICAg IHNldCBvcHRpb25zIHtjKysgZGVidWcgbm93YXJuaW5ncyBvcHRpbWl6ZT0tTzJ9CiAgICAgaWYg eyBbc3VwcG9ydHNfc3RhdGVtZW50X2Zyb250aWVyc10gfSB7CiAJbGFwcGVuZCBvcHRpb25zIGFk ZGl0aW9uYWxfZmxhZ3M9LWdzdGF0ZW1lbnQtZnJvbnRpZXJzCkBAIC02Nyw0MSArNjAsMjAgQEAg cHJvYyBkb190ZXN0IHsgdXNlX2hlYWRlciB9IHsKICAgICBnZGJfdGVzdCAic3RlcCIgIi4qIiAi c3RlcCBpbnRvIGdldF9hbGlhc19zZXQiCiAgICAgZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBcXHMr Z2V0X2FsaWFzX3NldFxbXlxyXF0qJHtzcmNmaWxlfTouKiIgXAogCSJub3QgaW4gaW5saW5lIDEi Ci0gICAgIyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBmaXJzdCBmYWlsdXJlICh3aGVuIG5vdCB1 c2luZyBhIGhlYWRlcgotICAgICMgZmlsZSkgaXMgR0NDJ3MgZmF1bHQsIHRob3VnaCB0aGUgcmVt YWluaW5nIGZhaWx1cmVzIHdvdWxkIGJlc3QKLSAgICAjIGJlIGZpeGVkIGJ5IGFkZGluZyBsb2Nh dGlvbiB2aWV3cyBzdXBwb3J0ICh0aG91Z2ggaXQgY291bGQgYmUKLSAgICAjIHRoYXQgc29tZSBl YXNpZXIgaGV1cmlzdGljIGNvdWxkIGJlIGZpZ3VyZWQgb3V0KS4gIFN0aWxsLCBpdCBpcwotICAg ICMgbm90IGNlcnRhaW4gdGhhdCB0aGUgZmlyc3QgZmFpbHVyZSB3b3VsZG4ndCBhbHNvIGJlIGZp eGVkIGJ5Ci0gICAgIyBoYXZpbmcgbG9jYXRpb24gdmlldyBzdXBwb3J0LCBzbyBmb3Igbm93IGl0 IGlzIHRhZ2dlZCBhcyBzdWNoLgotICAgIGlmIHtbdGVzdF9jb21waWxlcl9pbmZvIGdjYypdICYm ICEkdXNlX2hlYWRlcn0gewotCXNldHVwX2tmYWlsICIqLSotKiIgc3ltdGFiLzI1NTA3Ci0gICAg fQogICAgIGdkYl90ZXN0ICJuZXh0IiAiLipUUkVFX1RZUEUuKiIgIm5leHQgc3RlcCAxIgogICAg IGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK2dldF9hbGlhc19zZXRcW15cclxdKiR7c3JjZmls ZX06LioiIFwKIAkibm90IGluIGlubGluZSAyIgogICAgIGdkYl90ZXN0ICJuZXh0IiAiLipUUkVF X1RZUEUuKiIgIm5leHQgc3RlcCAyIgogICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK2dl dF9hbGlhc19zZXRcW15cclxdKiR7c3JjZmlsZX06LioiIFwKIAkibm90IGluIGlubGluZSAzIgot ICAgIGlmIHtbdGVzdF9jb21waWxlcl9pbmZvIGdjYypdICYmICEkdXNlX2hlYWRlcn0gewotCXNl dHVwX2tmYWlsICIqLSotKiIgc3ltdGFiLzI1NTA3Ci0gICAgfQogICAgIGdkYl90ZXN0ICJuZXh0 IiAiLipUUkVFX1RZUEUuKiIgIm5leHQgc3RlcCAzIgogICAgIGdkYl90ZXN0ICJidCIgIlxccypc XCMwXFxzK2dldF9hbGlhc19zZXRcW15cclxdKiR7c3JjZmlsZX06LioiIFwKIAkibm90IGluIGlu bGluZSA0IgotICAgIGlmIHshJHVzZV9oZWFkZXJ9IHsgc2V0dXBfa2ZhaWwgIiotKi0qIiBzeW10 YWIvMjU1MDcgfQogICAgIGdkYl90ZXN0ICJuZXh0IiAicmV0dXJuIDAuKiIgIm5leHQgc3RlcCA0 IgogICAgIGdkYl90ZXN0ICJidCIgXAogCSJcXHMqXFwjMFxccysobWFpbnxnZXRfYWxpYXNfc2V0 KVxbXlxyXF0qJHtzcmNmaWxlfTouKiIgXAogCSJub3QgaW4gaW5saW5lIDUiCiAKLSAgICBpZiB7 ISR1c2VfaGVhZGVyfSB7Ci0JIyBXaXRoIHRoZSBkZWJ1ZyBmcm9tIEdDQyAxMC54IChhbmQgZWFy bGllcikgR0RCIGlzIGN1cnJlbnRseQotCSMgdW5hYmxlIHRvIHN1Y2Nlc3NmdWxseSBjb21wbGV0 ZSB0aGUgZm9sbG93aW5nIHRlc3RzIHdoZW4gd2UKLQkjIGFyZSBub3QgdXNpbmcgYSBoZWFkZXIg ZmlsZS4KLQlrZmFpbCBzeW10YWIvMjU1MDcgInN0ZXBwaW5nIHRlc3RzIgotCXJldHVybgotICAg IH0KLQogICAgIGNsZWFuX3Jlc3RhcnQgJHtleGVjdXRhYmxlfQogCiAgICAgaWYgIVtydW50b19t YWluXSB7CkBAIC0xMTksMjIgKzkxLDc3IEBAIHByb2MgZG9fdGVzdCB7IHVzZV9oZWFkZXIgfSB7 CiAgICAgZ2RiX3Rlc3QgInN0ZXAiICIuKmlmIFxcKHQtPnggIT0gaVxcKS4qIiAic3RlcCAyIgog ICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK1xbXlxyXF0qdHJlZV9jaGVja1xbXlxyXF0q JHtoZHJmaWxlfTouKiIgXAogCSJpbiBpbmxpbmUgMSBwYXNzIDIiCi0gICAgZ2RiX3Rlc3QgInN0 ZXAiICIuKlRSRUVfVFlQRS4qIiAic3RlcCAzIgorICAgIGdkYl90ZXN0ICJzdGVwIiAiLipyZXR1 cm4geC4qIiAic3RlcCAzIgorICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK1xbXlxyXF0q dHJlZV9jaGVja1xbXlxyXF0qJHtoZHJmaWxlfTouKiIgXAorCSJyZXR1cm4gZnJvbSBpbmxpbmUg MSBwYXNzIDIiCisgICAgZ2RiX3Rlc3QgInN0ZXAiICIuKlRSRUVfVFlQRS4qIiAic3RlcCA0Igog ICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK2dldF9hbGlhc19zZXRcW15cclxdKiR7c3Jj ZmlsZX06LioiIFwKIAkibm90IGluIGlubGluZSAyIHBhc3MgMiIKLSAgICBnZGJfdGVzdCAic3Rl cCIgIi4qaWYgXFwodC0+eCAhPSBpXFwpLioiICJzdGVwIDQiCisgICAgZ2RiX3Rlc3QgInN0ZXAi ICIuKmlmIFxcKHQtPnggIT0gaVxcKS4qIiAic3RlcCA1IgogICAgIGdkYl90ZXN0ICJidCIgIlxc cypcXCMwXFxzK1xbXlxyXF0qdHJlZV9jaGVja1xbXlxyXF0qJHtoZHJmaWxlfTouKiIgXAogCSJp biBpbmxpbmUgMiBwYXNzIDIiCi0gICAgZ2RiX3Rlc3QgInN0ZXAiICIuKlRSRUVfVFlQRS4qIiAi c3RlcCA1IgorICAgIGdkYl90ZXN0ICJzdGVwIiAiLipyZXR1cm4geC4qIiAic3RlcCA2IgorICAg IGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK1xbXlxyXF0qdHJlZV9jaGVja1xbXlxyXF0qJHto ZHJmaWxlfTouKiIgXAorCSJyZXR1cm4gZnJvbSBpbmxpbmUgMiBwYXNzIDIiCisgICAgZ2RiX3Rl c3QgInN0ZXAiICIuKlRSRUVfVFlQRS4qIiAic3RlcCA3IgogICAgIGdkYl90ZXN0ICJidCIgIlxc cypcXCMwXFxzK2dldF9hbGlhc19zZXRcW15cclxdKiR7c3JjZmlsZX06LioiIFwKIAkibm90IGlu IGlubGluZSAzIHBhc3MgMiIKLSAgICBnZGJfdGVzdCAic3RlcCIgIi4qaWYgXFwodC0+eCAhPSBp XFwpLioiICJzdGVwIDYiCisgICAgZ2RiX3Rlc3QgInN0ZXAiICIuKmlmIFxcKHQtPnggIT0gaVxc KS4qIiAic3RlcCA4IgogICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK1xbXlxyXF0qdHJl ZV9jaGVja1xbXlxyXF0qJHtoZHJmaWxlfTouKiIgXAogCSJpbiBpbmxpbmUgMyBwYXNzIDIiCi0g ICAgZ2RiX3Rlc3QgInN0ZXAiICJyZXR1cm4gMC4qIiAic3RlcCA3IgorICAgIGdkYl90ZXN0ICJz dGVwIiAiLipyZXR1cm4geC4qIiAic3RlcCA5IgorICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMw XFxzK1xbXlxyXF0qdHJlZV9jaGVja1xbXlxyXF0qJHtoZHJmaWxlfTouKiIgXAorCSJyZXR1cm4g ZnJvbSBpbmxpbmUgMyBwYXNzIDIiCisgICAgZ2RiX3Rlc3QgInN0ZXAiICJyZXR1cm4gMC4qIiAi c3RlcCAxMCIKICAgICBnZGJfdGVzdCAiYnQiIFwKIAkiXFxzKlxcIzBcXHMrKG1haW58Z2V0X2Fs aWFzX3NldClcW15cclxdKiR7c3JjZmlsZX06LioiIFwKIAkibm90IGluIGlubGluZSA0IHBhc3Mg MiIKKworICAgIGNsZWFuX3Jlc3RhcnQgJHtleGVjdXRhYmxlfQorCisgICAgaWYgIVtydW50b19t YWluXSB7CisJZmFpbCAiY2FuJ3QgcnVuIHRvIG1haW4gcGFzcyAzIgorCXJldHVybgorICAgIH0K KworICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK21haW4uKiIgImluIG1haW4gcGFzcyAz IgorICAgIGdkYl90ZXN0ICJzdGVwIiAiLioiICJzdGVwIGludG8gZ2V0X2FsaWFzX3NldCBwYXNz IDMiCisgICAgZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBcXHMrZ2V0X2FsaWFzX3NldFxbXlxyXF0q JHtzcmNmaWxlfTouKiIgXAorCSJpbiBnZXRfYWxpYXNfc2V0IHBhc3MgMyIKKyAgICBnZGJfdGVz dCAic3RlcCIgIi4qVFJFRV9UWVBFLioiICJzdGVwIDEgcGFzcyAzIgorICAgIGdkYl90ZXN0ICJi dCIgIlxccypcXCMwXFxzK2dldF9hbGlhc19zZXRcW15cclxdKiR7c3JjZmlsZX06LioiIFwKKwki bm90IGluIGlubGluZSAxIHBhc3MgMyIKKyAgICBnZGJfdGVzdCAic3RlcCIgIi4qaWYgXFwodC0+ eCAhPSBpXFwpLioiICJzdGVwIDIgcGFzcyAzIgorICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMw XFxzK1xbXlxyXF0qdHJlZV9jaGVja1xbXlxyXF0qJHtoZHJmaWxlfTouKiIgXAorCSJpbiBpbmxp bmUgMSBwYXNzIDMiCisgICAgZ2RiX3Rlc3QgInAgdC0+eCA9IDIiICIuKiA9IDIuKiIgImNoYW5n ZSB2YWx1ZSBwYXNzIDMiCisgICAgZ2RiX3Rlc3QgInN0ZXAiICIuKmFib3J0LioiICJzdGVwIDQs IHBhc3MgMyIKKyAgICBnZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxccytcW15cclxdKnRyZWVfY2hl Y2tcW15cclxdKiR7aGRyZmlsZX06LioiIFwKKwkiYWJvcnQgZnJvbSBpbmxpbmUgMSBwYXNzIDMi CisKKyAgICBpZiAhW3J1bnRvX21haW5dIHsKKwlmYWlsICJjYW4ndCBydW4gdG8gbWFpbiBwYXNz IDQiCisJcmV0dXJuCisgICAgfQorCisgICAgZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBcXHMrbWFp bi4qIiAiaW4gbWFpbiBwYXNzIDQiCisgICAgZ2RiX3Rlc3QgInNraXAgdHJlZV9jaGVjayIgIi4q IiAic2tpcCB0cmVlX2NoZWNrIHBhc3MgNCIKKyAgICBnZGJfdGVzdCAic3RlcCIgIi4qIiAic3Rl cCBpbnRvIGdldF9hbGlhc19zZXQgcGFzcyA0IgorICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMw XFxzK2dldF9hbGlhc19zZXRcW15cclxdKiR7c3JjZmlsZX06LioiIFwKKwkiaW4gZ2V0X2FsaWFz X3NldCBwYXNzIDQiCisgICAgZ2RiX3Rlc3QgInN0ZXAiICIuKlRSRUVfVFlQRS4qIiAic3RlcCAx IHBhc3MgNCIKKyAgICBnZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxccytnZXRfYWxpYXNfc2V0XFte XHJcXSoke3NyY2ZpbGV9Oi4qIiBcCisJIm5vdCBpbiBpbmxpbmUgMSBwYXNzIDQiCisgICAgZ2Ri X3Rlc3QgInN0ZXAiICIuKlRSRUVfVFlQRS4qIiAic3RlcCAyIHBhc3MgNCIKKyAgICBnZGJfdGVz dCAiYnQiICJcXHMqXFwjMFxccytnZXRfYWxpYXNfc2V0XFteXHJcXSoke3NyY2ZpbGV9Oi4qIiBc CisJIm5vdCBpbiBpbmxpbmUgMiBwYXNzIDQiCisgICAgZ2RiX3Rlc3QgInN0ZXAiICIuKlRSRUVf VFlQRS4qIiAic3RlcCAzIHBhc3MgNCIKKyAgICBnZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxccytn ZXRfYWxpYXNfc2V0XFteXHJcXSoke3NyY2ZpbGV9Oi4qIiBcCisJIm5vdCBpbiBpbmxpbmUgMyBw YXNzIDQiCisgICAgZ2RiX3Rlc3QgInN0ZXAiICJyZXR1cm4gMC4qIiAic3RlcCA0IHBhc3MgNCIK KyAgICBnZGJfdGVzdCAiYnQiIFwKKwkiXFxzKlxcIzBcXHMrKG1haW58Z2V0X2FsaWFzX3NldClc W15cclxdKiR7c3JjZmlsZX06LioiIFwKKwkibm90IGluIGlubGluZSA0IHBhc3MgNCIKICAgICB9 CiB9CiAKLS0gCjEuOS4xCgo= --------------535AD3B616E7400C57BC57AE--