From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id KBhvFPIhyV+VFQAAWB0awg (envelope-from ) for ; Thu, 03 Dec 2020 12:35:46 -0500 Received: by simark.ca (Postfix, from userid 112) id 502DF1F0AB; Thu, 3 Dec 2020 12:35:46 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_NONE,UNPARSEABLE_RELAY, 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 99FEC1E58E for ; Thu, 3 Dec 2020 12:35:45 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1E9C83972021; Thu, 3 Dec 2020 17:35:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1E9C83972021 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1607016945; bh=DtKUki7uEVWOglIR5mBuYs8W+HJVSNkj1mLkOdOdxEQ=; h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=mHV5W4uW1z1cmLwJlScgoasOCQQobfvsMIYP2rAyaiBL92JKgHCZ8VQJjTIB5xQJM yxs5hYVv620zHZjaF2Jrm4/BGFgvh2qtCc1bHkHr+6CT4nnuZ4mQ62PNETCH4Qsndp tqpJ4YP5vBMH/r2kF1VjwfcoMyrO50MGfgKG642Y= Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00074.outbound.protection.outlook.com [40.107.0.74]) by sourceware.org (Postfix) with ESMTPS id 9AF6D3865C2D for ; Thu, 3 Dec 2020 17:35:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9AF6D3865C2D Received: from AM6PR10CA0021.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::34) by AM6PR08MB3544.eurprd08.prod.outlook.com (2603:10a6:20b:4e::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.25; Thu, 3 Dec 2020 17:35:37 +0000 Received: from AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:89:cafe::46) by AM6PR10CA0021.outlook.office365.com (2603:10a6:209:89::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17 via Frontend Transport; Thu, 3 Dec 2020 17:35:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT035.mail.protection.outlook.com (10.152.16.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17 via Frontend Transport; Thu, 3 Dec 2020 17:35:37 +0000 Received: ("Tessian outbound 665ba7fbdfd9:v71"); Thu, 03 Dec 2020 17:35:37 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 873ee0db5234c92f X-CR-MTA-TID: 64aa7808 Received: from cb8e77c62d7f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D3A9FC08-4AB7-45F8-ACDD-FDD362C614E1.1; Thu, 03 Dec 2020 17:35:23 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cb8e77c62d7f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 03 Dec 2020 17:35:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iDBuOR/lR+jO2v09EV2YMm+NI2Vko5xlpRO0YtYcZCs1gsYz+oU73ijaZj72BtQ5bpU4dml+tzESb9EAbC6wEDrc2V8F6sf7hzUeFt3Ns26aA6rRYT9zdLL0cTXMVTuiPUAw6LBXnzfqgYY9ZS9sSgpUqJYYMLdcTM25LYf5al8lFxWi5xsUymIwRR0/j1x6LMyetrc0i6ZUs2Uytbd9bemSrnUQbWqNxnHsiJ2vezVdsorIYKOoTCCx4SpOVlB2aasP/X1EC+31SfIPuBX3j5VdAP57dEPZEg1QOgy0HIn8CdFRnNjx2ChGqVlVG7KWZ7IK41hrUkroHD6mpZVMXg== 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=DtKUki7uEVWOglIR5mBuYs8W+HJVSNkj1mLkOdOdxEQ=; b=gt7Dcd3ZFG3D236jPg2hYVdZX7zT65+mMrpNGocUIRqg0HapU3yYVY5Bd0Ezdvp51FjbxHqEfltgh+6weYnSqPAl4bfhFy8W3wBKDmGht7lUunZEQ9c7OnL6eB+mDQBAqOzAywesdZrg0mFryj11RoyZ1G+K75fJgaahfVwJ5HWyNimuK1NoZBsLDBKEKoGv1bHHiBgI3DjdQN5XSDD0b1Qx2vWnbj1b4zQJpzz5OucmooESV4NpNvi5NCXhIXL+C+7K/bcw/FOjYHvtlXHagrrRk/Wlm4XHh/vjBTOfuJCaVITwuQZeU+kG3AWo8pG4IA41Z2R2PHigcQvzTRU/LA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM6PR08MB3957.eurprd08.prod.outlook.com (2603:10a6:20b:a2::14) by AM6PR08MB4343.eurprd08.prod.outlook.com (2603:10a6:20b:ba::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17; Thu, 3 Dec 2020 17:35:21 +0000 Received: from AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::9017:352a:257e:814a]) by AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::9017:352a:257e:814a%6]) with mapi id 15.20.3611.031; Thu, 3 Dec 2020 17:35:21 +0000 To: Luis Machado Subject: Re: [PATCH,v2] SVE/FPSIMD fixup for big endian Thread-Topic: [PATCH,v2] SVE/FPSIMD fixup for big endian Thread-Index: AQHWyNSo131bgXx3NEG5HzDPNFC3r6nlo64A Date: Thu, 3 Dec 2020 17:35:21 +0000 Message-ID: <77FB6204-2367-4456-B31F-FB568342CE17@arm.com> References: <20201130185545.940242-1-luis.machado@linaro.org> <20201202175718.1034781-1-luis.machado@linaro.org> In-Reply-To: <20201202175718.1034781-1-luis.machado@linaro.org> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.4) Authentication-Results-Original: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.190.193] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0548a11e-7b2e-494a-6598-08d897b1d88c x-ms-traffictypediagnostic: AM6PR08MB4343:|AM6PR08MB3544: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 0rVfUOr0/ICglo9Udayd3UcGVCtYmbRREMnV2BQX9G+KBPBJ92jeOsqfxXaMHbCAqQtK5skrvT7PyNRxutEfkxC4whPiW/1QrI7n8ieV4LmZC/5tMVIBFWIrNPCcHNFsgFBNuYc2ZZZkVmH7W+QYVYnb4Q2snBZ3BLFHILrPFLaUpsT5Ad3lAjL9Iu0/p0FYJm2M/IZqe06sZTpKKpIl+KKggWc2Ph8y3ID2/wZFVBPmwjVUZV228v2vuTGM0JjEKSBTCxa6EdeXWxMuDN1wnQUBhy/GXTB3/5hVYSXZbm+e39C50N8WhVFRDiED02o6MFhKNDqDepwQFcdSN9/F7RIkQN8oM5W+FL2gKBC0WXdXqnbAvKuHR1AP+wJzEcYU X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB3957.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(346002)(136003)(366004)(376002)(396003)(53546011)(2906002)(54906003)(4326008)(26005)(186003)(6512007)(6916009)(316002)(33656002)(2616005)(6506007)(71200400001)(8936002)(5660300002)(6486002)(66446008)(66556008)(76116006)(36756003)(66476007)(478600001)(91956017)(86362001)(8676002)(64756008)(66946007)(83380400001)(30864003)(45980500001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?WURUZUJNUENEd1R2NWZiaDVIaEs5YmZJOVc1Y3g3TlVLdHlERDRRKzFITzZq?= =?utf-8?B?blJBTDVrOXhXSHR6Njl2dXR0SThtTnIzSTZXK3lrRDZKUmRYdDRqSnMxb0FS?= =?utf-8?B?VWpkMG5rZ1pOYmEyMTVFbGI5aU8vR2c0WnZlWUgyM2Njb0pRVWE4RVdaait4?= =?utf-8?B?SC9TT3prWG9KbEk2b1hVR2J4ZlhldlRRa1FwUWZYSFc0VFdONTFHREZSbWU3?= =?utf-8?B?cHEzdW91YkN6ZTRSWG4wWDk5aGNPR28zekcxc3RpTmpTcDVaengrMHhLK0tz?= =?utf-8?B?UjBsZU9KVS9zSFJscDkwUWluU3F4WWNHc0d2NFNpVDNUQUM2LzdrTWxMMll4?= =?utf-8?B?a2ZoVHBlUlVNWTRDS09UdTRNME41bWtrTk01a1M3aDdzZndRK1Ywa0RlbnZm?= =?utf-8?B?cDFKd0tEOWF0U1UzWWFJKytxUjQ0bTFkcnJIWkdaL1FuMCtvYUdvVUVuVDhz?= =?utf-8?B?SFFuN3lpaWlwcUM1b2dJTDR5NENHdjc2WjJXQWhEbnRaejJ6ZXNRZURydDdU?= =?utf-8?B?azNkQ3lVclNKcnoyaG9IbXJ1K09TZGRsNWkzYUFuTXF4UU4vWE96STd2U0l1?= =?utf-8?B?NmczdGJ5QWx1dXUzMnRBMk0zQ0RYN0ZGL0piMFdGY2FIQjd0TXpaa1hRaVQr?= =?utf-8?B?VnJldFBNUVY2UlhlSk15YTZnMy9kc2F5UE9QNDVPclNVemtXZDhUMkp1ZXhz?= =?utf-8?B?ZmpobXhXODA1a3FNS0hsMi9mdkt0cGh3UG1NUitqZXV5Y05DSDZUeFpkb29E?= =?utf-8?B?bmlXekJGVDQwRmN2KzBHN3hWV2xCTFlRNUVJMUVVOU41Q0krL1I5MXFKMU9X?= =?utf-8?B?TExvODQ2SHo1NCtBd254eG9KSGRQSkpzcDdObHhlc2t0S2ZTcExOTFU3ckY5?= =?utf-8?B?dldzc2RvYUw0SUkzT2V0OXhCdzUwMzJEYW4vOGFUN1BudUhUQkcwbXA0TWJa?= =?utf-8?B?MmJ3U29XUVdVZkpUdis5WjFsczE2bDBSUkdjUWZ3SnE0WkZlY1F6cHlpZ1cv?= =?utf-8?B?YmgwMnlqc3luaE5LcFZQeSswUkthSHlQQ1dVS0F4VGFuTjZleWU3dlFQWTdl?= =?utf-8?B?SmJrc1JXYmIwQ1NlbXBBWWppUE82UGxXYzZPOEN6cTROV1F4ZEdVZHppTFd6?= =?utf-8?B?Vk9jbitVakJ5eDFXamp6ZHdtMmRVSmQ5SHRWR09tSXdxd21la1dlNnArenpO?= =?utf-8?B?eXNJNlFIMEVScW5VbEpLd1JBa2p4TVBnMW9yS2pnK01JWi9GbW4wMmNlRm4w?= =?utf-8?B?YVE4Z0J3TmVEMXB1YTFlZjZybnRXY3dTZEU4SmtjcjFIUDJ0OWdlK3kwWFdH?= =?utf-8?Q?WD6dKNIGBuHETBI4MDGHEJ0pW/SHsai7+F?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4343 Original-Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: db86d566-7996-445e-97e5-08d897b1cf53 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tkENXjJG/csKSNQaA4atGio4ueq3b6bJ6W23EaXlumlyMfQgP1V72H1AzBdcH4ExpImpXb7rXnOIakU75GaGO5ELMwLHgjoyjRQzDb1SmkoLGN+vhtGB00FzKNYXD7GZSZ8on0X25yhycWbYpEJS7e2FC28h2YpZZAMQ250OpyrZkEB4RduhH/YahfQP7dGB3AWZ2Vlmmi4F1a3cez1Z8Z/bDtbqa5iUuIqcXWNyqOrm1Htgwx6ds+Q7N6ILmTaoifkoIhw/3/44U7e5P/3NymgFl2DEck7twv8BKfxQdt+ycpIdLzTv7sQubj+gL3i0384tnRFQE+PJJp5oRJOX2Tpq8SexglMr5z+9t2fARYc99Wj8CA7/PyTXPw7jUy7dML6q7SJNci0Z5fibeNE1pw== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(39860400002)(396003)(346002)(376002)(136003)(46966005)(81166007)(70206006)(8676002)(186003)(47076004)(5660300002)(478600001)(30864003)(26005)(82740400003)(33656002)(82310400003)(6512007)(6506007)(53546011)(356005)(70586007)(6862004)(4326008)(2616005)(6486002)(36756003)(83380400001)(86362001)(8936002)(36906005)(316002)(54906003)(2906002)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2020 17:35:37.0290 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0548a11e-7b2e-494a-6598-08d897b1d88c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3544 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: , From: Alan Hayward via Gdb-patches Reply-To: Alan Hayward Cc: nd , "gdb-patches\\@sourceware.org" Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" TXkgb25seSBuaXQgd291bGQgYmUgdGhhdCB0aGUgb3RoZXIgcmVnaXN0ZXIgZGVmaW5lcyBpbiBh YXJjaDY0LXRkZXAuaA0KY291bGQgZ2V0IG1vdmVkIGFjcm9zcyB0byBhcmNoL2FhcmNoNjQuaCB0 b28uIEhvd2V2ZXIsIGV2ZXJ5dGhpbmcgaW4gdGhlDQpmaWxlIGlzIGZvciBwc2V1ZG9zIGFuZCBk d2FyZi4gU28sIEkgdGhpbmsgaXTigJlzIGZpbmUgYXMgaXMuDQoNCkl04oCZcyBhbiBvayBmcm9t IG1lLg0KDQoNCkFsYW4NCg0KDQo+IE9uIDIgRGVjIDIwMjAsIGF0IDE3OjU3LCBMdWlzIE1hY2hh ZG8gPGx1aXMubWFjaGFkb0BsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IFVwZGF0ZXMgb24gdjI6 DQo+IA0KPiAtIFJld29ya2VkIHB0cmFjZSBmdW5jdGlvbnMgYW5kIG1hZGUgYnl0ZXN3YXAgZnVu Y3Rpb24gbW9yZSBsaWtlIGEgbWVtY3B5Lg0KPiAtIEFkanVzdGVkIG1lbXNldCBjYWxscyB0byB6 ZXJvIHJlZ2lzdGVyIGJ1ZmZlcnMuDQo+IC0gQWRqdXN0ZWQgY29tbWVudHMuDQo+IC0gTW92ZWQg Vl9SRUdJU1RFUl9TSVpFIGNvbnN0YW50IGRlZmluaXRpb24uDQo+IA0KPiBUaGUgRlBTSU1EIGR1 bXAgaW4gc2lnbmFsIGZyYW1lcyBhbmQgcHRyYWNlIEZQU0lNRCBkdW1wIGluIHRoZSBTVkUgY29u dGV4dA0KPiBzdHJ1Y3R1cmUgZm9sbG93cyB0aGUgdGFyZ2V0IGVuZGlhbm5lc3MsIHdoZXJlYXMg dGhlIFNWRSBkdW1wcyBhcmUNCj4gZW5kaWFubmVzcy1pbmRlcGVuZGVudCAoTEUpLg0KPiANCj4g VGhlcmVmb3JlLCB3aGVuIHRoZSBzeXN0ZW0gaXMgaW4gQkUgbW9kZSwgd2UgbmVlZCB0byByZXZl cnNlIHRoZSBieXRlcw0KPiBmb3IgdGhlIEZQU0lNRCBkYXRhLg0KPiANCj4gR2l2ZW4gdGhlIFYg cmVnaXN0ZXJzIGFyZSBsYXJnZXIgdGhhbiA2NC1iaXQsIEkndmUgYWRkZWQgYSB3YXkgZm9yIHZh bHVlDQo+IGJ5dGVzIHRvIGJlIHNldCwgYXMgb3Bwb3NlZCB0byBwYXNzaW5nIGEgNjQtYml0IGZp eGVkIHF1YW50aXR5LiBUaGlzIGZpdHMNCj4gbmljZWx5IHdpdGggdGhlIHVud2luZGluZyAqX2dv dF9ieXRlcyBmdW5jdGlvbiBhbmQgbWFrZXMgdGhlIHRyYWQtZnJhbWUNCj4gbW9yZSBmbGV4aWJs ZSBhbmQgY2FwYWJsZSBvZiBzYXZpbmcgbGFyZ2VyIHJlZ2lzdGVycy4NCj4gDQo+IFRoZSBtZW1v cnkgZm9yIHRoZSBieXRlcyBpcyBhbGxvY2F0ZWQgdmlhIHRoZSBmcmFtZSBvYnN0YWNrLCBzbyBp dCBnZXRzIGZyZWVkDQo+IGFmdGVyIHdlJ3JlIGRvbmUgaW5zcGVjdGluZyB0aGUgZnJhbWUuDQo+ IA0KPiBnZGIvQ2hhbmdlTG9nOg0KPiANCj4gWVlZWS1NTS1ERCAgTHVpcyBNYWNoYWRvICA8bHVp cy5tYWNoYWRvQGxpbmFyby5vcmc+DQo+IA0KPiAJKiBhYXJjaDY0LWxpbnV4LXRkZXAuYyAoYWFy Y2g2NF9saW51eF9yZXN0b3JlX3ZyZWcpIE5ldyBmdW5jdGlvbi4NCj4gCShhYXJjaDY0X2xpbnV4 X3NpZ2ZyYW1lX2luaXQpOiBDYWxsIGFhcmNoNjRfbGludXhfcmVzdG9yZV92cmVnLg0KPiAJKiBh YXJjaDY0LXRkZXAuaCAoVl9SRUdJU1RFUl9TSVpFKTogTW92ZSB0byAuLi4NCj4gCSogYXJjaC9h YXJjaDY0Lmg6IC4uLiBoZXJlLg0KPiAJKiBuYXQvYWFyY2g2NC1zdmUtbGludXgtcHRyYWNlLmM6 IEluY2x1ZGUgZW5kaWFuLmguDQo+IAkoYWFyY2g2NF9tYXliZV9zd2FiMTI4KTogTmV3IGZ1bmN0 aW9uLg0KPiAJKGFhcmNoNjRfc3ZlX3JlZ3NfY29weV90b19yZWdfYnVmKQ0KPiAJKGFhcmNoNjRf c3ZlX3JlZ3NfY29weV9mcm9tX3JlZ19idWYpOiBBZGp1c3QgRlBTSU1EIGVudHJpZXMuDQo+IAkq IHRyYWQtZnJhbWUuYyAodHJhZF9mcmFtZV9yZXNldF9zYXZlZF9yZWdzKTogSW5pdGlhbGl6ZQ0K PiAJdGhlIGRhdGEgZmllbGQuDQo+IAkoVEZfUkVHX1ZBTFVFX0JZVEVTKTogTmV3IGVudW0gdmFs dWUuDQo+IAkodHJhZF9mcmFtZV92YWx1ZV9ieXRlc19wKTogTmV3IGZ1bmN0aW9uLg0KPiAJKHRy YWRfZnJhbWVfc2V0X3ZhbHVlX2J5dGVzKTogTmV3IGZ1bmN0aW9uLg0KPiAJKHRyYWRfZnJhbWVf c2V0X3JlZ192YWx1ZV9ieXRlcyk6IE5ldyBmdW5jdGlvbi4NCj4gCSh0cmFkX2ZyYW1lX2dldF9w cmV2X3JlZ2lzdGVyKTogSGFuZGxlIHJlZ2lzdGVyIHZhbHVlcyBzYXZlZCBhcyBieXRlcy4NCj4g CSogdHJhZC1mcmFtZS5oICh0cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVfYnl0ZXMpOiBOZXcgcHJv dG90eXBlLg0KPiAJKHN0cnVjdCB0cmFkX2ZyYW1lX3NhdmVkX3JlZykgPGRhdGE+OiBOZXcgZmll bGQuDQo+IAkodHJhZF9mcmFtZV9zZXRfdmFsdWVfYnl0ZXMpOiBOZXcgcHJvdG90eXBlLg0KPiAJ KHRyYWRfZnJhbWVfdmFsdWVfYnl0ZXNfcCk6IE5ldyBwcm90b3R5cGUuDQo+IC0tLQ0KPiBnZGIv YWFyY2g2NC1saW51eC10ZGVwLmMgICAgICAgICAgIHwgMTE0ICsrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tDQo+IGdkYi9hYXJjaDY0LXRkZXAuaCAgICAgICAgICAgICAgICAgfCAgIDEgLQ0K PiBnZGIvYXJjaC9hYXJjaDY0LmggICAgICAgICAgICAgICAgIHwgICAyICsNCj4gZ2RiL25hdC9h YXJjaDY0LXN2ZS1saW51eC1wdHJhY2UuYyB8ICA3NyArKysrKysrKysrKysrKystLS0tDQo+IGdk Yi90cmFkLWZyYW1lLmMgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysrKystDQo+IGdk Yi90cmFkLWZyYW1lLmggICAgICAgICAgICAgICAgICAgfCAgMTkgKysrKysNCj4gNiBmaWxlcyBj aGFuZ2VkLCAyMjQgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZ2RiL2FhcmNoNjQtbGludXgtdGRlcC5jIGIvZ2RiL2FhcmNoNjQtbGludXgtdGRlcC5j DQo+IGluZGV4IGM5ODk4YmRhZmQuLjk0MjlhZjBmZTEgMTAwNjQ0DQo+IC0tLSBhL2dkYi9hYXJj aDY0LWxpbnV4LXRkZXAuYw0KPiArKysgYi9nZGIvYWFyY2g2NC1saW51eC10ZGVwLmMNCj4gQEAg LTE4MCw2ICsxODAsOTMgQEAgcmVhZF9hYXJjaDY0X2N0eCAoQ09SRV9BRERSIGN0eF9hZGRyLCBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciwNCj4gICByZXR1cm4gbWFnaWM7DQo+IH0NCj4gDQo+ ICsvKiBHaXZlbiBDQUNIRSwgdXNlIHRoZSB0cmFkX2ZyYW1lKiBmdW5jdGlvbnMgdG8gcmVzdG9y ZSB0aGUgRlBTSU1EDQo+ICsgICByZWdpc3RlcnMgZnJvbSBhIHNpZ25hbCBmcmFtZS4NCj4gKw0K PiArICAgVlJFR19OVU0gaXMgdGhlIG51bWJlciBvZiB0aGUgViByZWdpc3RlciBiZWluZyByZXN0 b3JlZCwgT0ZGU0VUIGlzIHRoZQ0KPiArICAgYWRkcmVzcyBjb250YWluaW5nIHRoZSByZWdpc3Rl ciB2YWx1ZSwgQllURV9PUkRFUiBpcyB0aGUgZW5kaWFubmVzcyBhbmQNCj4gKyAgIEhBU19TVkUg dGVsbHMgdXMgaWYgd2UgaGF2ZSBhIHZhbGlkIFNWRSBjb250ZXh0IG9yIG5vdC4gICovDQo+ICsN Cj4gK3N0YXRpYyB2b2lkDQo+ICthYXJjaDY0X2xpbnV4X3Jlc3RvcmVfdnJlZyAoc3RydWN0IHRy YWRfZnJhbWVfY2FjaGUgKmNhY2hlLCBpbnQgbnVtX3JlZ3MsDQo+ICsJCQkgICAgaW50IHZyZWdf bnVtLCBDT1JFX0FERFIgb2Zmc2V0LA0KPiArCQkJICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyLCBib29sIGhhc19zdmUpDQo+ICt7DQo+ICsgIC8qIFdBUk5JTkc6IFNJTUQgc3RhdGUgaXMg bGFpZCBvdXQgaW4gbWVtb3J5IGluIHRhcmdldC1lbmRpYW4gZm9ybWF0Lg0KPiArDQo+ICsgICAg IFNvIHdlIGhhdmUgYSBjb3VwbGUgY2FzZXMgdG8gY29uc2lkZXI6DQo+ICsNCj4gKyAgICAgMSAt IElmIHRoZSB0YXJnZXQgaXMgYmlnIGVuZGlhbiwgdGhlbiBTSU1EIHN0YXRlIGlzIGJpZyBlbmRp YW4sDQo+ICsgICAgIHJlcXVpcmluZyBhIGJ5dGVzd2FwLg0KPiArDQo+ICsgICAgIDIgLSBJZiB0 aGUgdGFyZ2V0IGlzIGxpdHRsZSBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBsaXR0bGUgZW5k aWFuLCBzbw0KPiArICAgICBubyBieXRlc3dhcCBpcyBuZWVkZWQuICovDQo+ICsNCj4gKyAgaWYg KGJ5dGVfb3JkZXIgPT0gQkZEX0VORElBTl9CSUcpDQo+ICsgICAgew0KPiArICAgICAgZ2RiX2J5 dGUgYnVmW1ZfUkVHSVNURVJfU0laRV07DQo+ICsNCj4gKyAgICAgIGlmICh0YXJnZXRfcmVhZF9t ZW1vcnkgKG9mZnNldCwgYnVmLCBWX1JFR0lTVEVSX1NJWkUpICE9IDApDQo+ICsJew0KPiArCSAg c2l6ZV90IHNpemUgPSBWX1JFR0lTVEVSX1NJWkUvMjsNCj4gKw0KPiArCSAgLyogUmVhZCB0aGUg dHdvIGhhbHZlcyBvZiB0aGUgViByZWdpc3RlciBpbiByZXZlcnNlIGJ5dGUgb3JkZXIuICAqLw0K PiArCSAgQ09SRV9BRERSIHU2NCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmLCBzaXpl LA0KPiArCQkJCQkJICAgIGJ5dGVfb3JkZXIpOw0KPiArCSAgQ09SRV9BRERSIGw2NCA9IGV4dHJh Y3RfdW5zaWduZWRfaW50ZWdlciAoYnVmICsgc2l6ZSwgc2l6ZSwNCj4gKwkJCQkJCSAgICBieXRl X29yZGVyKTsNCj4gKw0KPiArCSAgLyogQ29weSB0aGUgcmV2ZXJzZWQgYnl0ZXMgdG8gdGhlIGJ1 ZmZlci4gICovDQo+ICsJICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChidWYsIHNpemUsIEJGRF9F TkRJQU5fTElUVExFLCBsNjQpOw0KPiArCSAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnVmICsg c2l6ZSAsIHNpemUsIEJGRF9FTkRJQU5fTElUVExFLCB1NjQpOw0KPiArDQo+ICsJICAvKiBOb3cg d2UgY2FuIHN0b3JlIHRoZSBjb3JyZWN0IGJ5dGVzIGZvciB0aGUgViByZWdpc3Rlci4gICovDQo+ ICsJICB0cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVfYnl0ZXMgKGNhY2hlLCBBQVJDSDY0X1YwX1JF R05VTSArIHZyZWdfbnVtLA0KPiArCQkJCQkgIGJ1ZiwgVl9SRUdJU1RFUl9TSVpFKTsNCj4gKwkg IHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+ICsJCQkJCSAgbnVtX3Jl Z3MgKyBBQVJDSDY0X1EwX1JFR05VTQ0KPiArCQkJCQkgICsgdnJlZ19udW0sIGJ1ZiwgUV9SRUdJ U1RFUl9TSVpFKTsNCj4gKwkgIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUs DQo+ICsJCQkJCSAgbnVtX3JlZ3MgKyBBQVJDSDY0X0QwX1JFR05VTQ0KPiArCQkJCQkgICsgdnJl Z19udW0sIGJ1ZiwgRF9SRUdJU1RFUl9TSVpFKTsNCj4gKwkgIHRyYWRfZnJhbWVfc2V0X3JlZ192 YWx1ZV9ieXRlcyAoY2FjaGUsDQo+ICsJCQkJCSAgbnVtX3JlZ3MgKyBBQVJDSDY0X1MwX1JFR05V TQ0KPiArCQkJCQkgICsgdnJlZ19udW0sIGJ1ZiwgU19SRUdJU1RFUl9TSVpFKTsNCj4gKwkgIHRy YWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+ICsJCQkJCSAgbnVtX3JlZ3Mg KyBBQVJDSDY0X0gwX1JFR05VTQ0KPiArCQkJCQkgICsgdnJlZ19udW0sIGJ1ZiwgSF9SRUdJU1RF Ul9TSVpFKTsNCj4gKwkgIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+ ICsJCQkJCSAgbnVtX3JlZ3MgKyBBQVJDSDY0X0IwX1JFR05VTQ0KPiArCQkJCQkgICsgdnJlZ19u dW0sIGJ1ZiwgQl9SRUdJU1RFUl9TSVpFKTsNCj4gKw0KPiArCSAgaWYgKGhhc19zdmUpDQo+ICsJ ICAgIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+ICsJCQkJCSAgICBu dW1fcmVncyArIEFBUkNINjRfU1ZFX1YwX1JFR05VTQ0KPiArCQkJCQkgICAgKyB2cmVnX251bSwg YnVmLCBWX1JFR0lTVEVSX1NJWkUpOw0KPiArCX0NCj4gKyAgICAgIHJldHVybjsNCj4gKyAgICB9 DQo+ICsNCj4gKyAgLyogTGl0dGxlIGVuZGlhbiwganVzdCBwb2ludCBhdCB0aGUgYWRkcmVzcyBj b250YWluaW5nIHRoZSByZWdpc3Rlcg0KPiArICAgICB2YWx1ZS4gICovDQo+ICsgIHRyYWRfZnJh bWVfc2V0X3JlZ19hZGRyIChjYWNoZSwgQUFSQ0g2NF9WMF9SRUdOVU0gKyB2cmVnX251bSwgb2Zm c2V0KTsNCj4gKyAgdHJhZF9mcmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBudW1fcmVncyArIEFB UkNINjRfUTBfUkVHTlVNICsgdnJlZ19udW0sDQo+ICsJCQkgICBvZmZzZXQpOw0KPiArICB0cmFk X2ZyYW1lX3NldF9yZWdfYWRkciAoY2FjaGUsIG51bV9yZWdzICsgQUFSQ0g2NF9EMF9SRUdOVU0g KyB2cmVnX251bSwNCj4gKwkJCSAgIG9mZnNldCk7DQo+ICsgIHRyYWRfZnJhbWVfc2V0X3JlZ19h ZGRyIChjYWNoZSwgbnVtX3JlZ3MgKyBBQVJDSDY0X1MwX1JFR05VTSArIHZyZWdfbnVtLA0KPiAr CQkJICAgb2Zmc2V0KTsNCj4gKyAgdHJhZF9mcmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBudW1f cmVncyArIEFBUkNINjRfSDBfUkVHTlVNICsgdnJlZ19udW0sDQo+ICsJCQkgICBvZmZzZXQpOw0K PiArICB0cmFkX2ZyYW1lX3NldF9yZWdfYWRkciAoY2FjaGUsIG51bV9yZWdzICsgQUFSQ0g2NF9C MF9SRUdOVU0gKyB2cmVnX251bSwNCj4gKwkJCSAgIG9mZnNldCk7DQo+ICsNCj4gKyAgaWYgKGhh c19zdmUpDQo+ICsgICAgdHJhZF9mcmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBudW1fcmVncyAr IEFBUkNINjRfU1ZFX1YwX1JFR05VTQ0KPiArCQkJICAgICArIHZyZWdfbnVtLCBvZmZzZXQpOw0K PiArDQo+ICt9DQo+ICsNCj4gLyogSW1wbGVtZW50IHRoZSAiaW5pdCIgbWV0aG9kIG9mIHN0cnVj dCB0cmFtcF9mcmFtZS4gICovDQo+IA0KPiBzdGF0aWMgdm9pZA0KPiBAQCAtMzMyLDI3ICs0MTks MTYgQEAgYWFyY2g2NF9saW51eF9zaWdmcmFtZV9pbml0IChjb25zdCBzdHJ1Y3QgdHJhbXBfZnJh bWUgKnNlbGYsDQo+IA0KPiAgICAgICAvKiBJZiB0aGVyZSB3YXMgbm8gU1ZFIHNlY3Rpb24gdGhl biBzZXQgdXAgdGhlIFYgcmVnaXN0ZXJzLiAgKi8NCj4gICAgICAgaWYgKHN2ZV9yZWdzID09IDAp DQo+IC0JZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgaSsrKQ0KPiAtCSAgew0KPiAtCSAgICBDT1JF X0FERFIgb2Zmc2V0ID0gKGZwc2ltZCArIEFBUkNINjRfRlBTSU1EX1YwX09GRlNFVA0KPiArCXsN Cj4gKwkgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykNCj4gKwkgICAgew0KPiArCSAgICAg IENPUkVfQUREUiBvZmZzZXQgPSAoZnBzaW1kICsgQUFSQ0g2NF9GUFNJTURfVjBfT0ZGU0VUDQo+ IAkJCQkgICsgKGkgKiBBQVJDSDY0X0ZQU0lNRF9WUkVHX1NJWkUpKTsNCj4gDQo+IC0JICAgIHRy YWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hlLCBBQVJDSDY0X1YwX1JFR05VTSArIGks IG9mZnNldCk7DQo+IC0JICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hlLA0K PiAtCQkJCSAgICAgbnVtX3JlZ3MgKyBBQVJDSDY0X1EwX1JFR05VTSArIGksIG9mZnNldCk7DQo+ IC0JICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hlLA0KPiAtCQkJCSAgICAg bnVtX3JlZ3MgKyBBQVJDSDY0X0QwX1JFR05VTSArIGksIG9mZnNldCk7DQo+IC0JICAgIHRyYWRf ZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hlLA0KPiAtCQkJCSAgICAgbnVtX3JlZ3MgKyBB QVJDSDY0X1MwX1JFR05VTSArIGksIG9mZnNldCk7DQo+IC0JICAgIHRyYWRfZnJhbWVfc2V0X3Jl Z19hZGRyICh0aGlzX2NhY2hlLA0KPiAtCQkJCSAgICAgbnVtX3JlZ3MgKyBBQVJDSDY0X0gwX1JF R05VTSArIGksIG9mZnNldCk7DQo+IC0JICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlz X2NhY2hlLA0KPiAtCQkJCSAgICAgbnVtX3JlZ3MgKyBBQVJDSDY0X0IwX1JFR05VTSArIGksIG9m ZnNldCk7DQo+IC0JICAgIGlmICh0ZGVwLT5oYXNfc3ZlICgpKQ0KPiAtCSAgICAgIHRyYWRfZnJh bWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hlLA0KPiAtCQkJCSAgICAgICBudW1fcmVncyArIEFB UkNINjRfU1ZFX1YwX1JFR05VTSArIGksDQo+IC0JCQkJICAgICAgIG9mZnNldCk7DQo+IC0JICB9 DQo+ICsJICAgICAgYWFyY2g2NF9saW51eF9yZXN0b3JlX3ZyZWcgKHRoaXNfY2FjaGUsIG51bV9y ZWdzLCBpLCBvZmZzZXQsDQo+ICsJCQkJCSAgYnl0ZV9vcmRlciwgdGRlcC0+aGFzX3N2ZSAoKSk7 DQo+ICsJICAgIH0NCj4gKwl9DQo+ICAgICB9DQo+IA0KPiAgIHRyYWRfZnJhbWVfc2V0X2lkICh0 aGlzX2NhY2hlLCBmcmFtZV9pZF9idWlsZCAoc3AsIGZ1bmMpKTsNCj4gZGlmZiAtLWdpdCBhL2dk Yi9hYXJjaDY0LXRkZXAuaCBiL2dkYi9hYXJjaDY0LXRkZXAuaA0KPiBpbmRleCA4MWNlNGQ4NGI0 Li5iYTcyYTc3MWNkIDEwMDY0NA0KPiAtLS0gYS9nZGIvYWFyY2g2NC10ZGVwLmgNCj4gKysrIGIv Z2RiL2FhcmNoNjQtdGRlcC5oDQo+IEBAIC00Nyw3ICs0Nyw2IEBAIHN0cnVjdCByZWdzZXQ7DQo+ ICNkZWZpbmUgSF9SRUdJU1RFUl9TSVpFICAyDQo+ICNkZWZpbmUgU19SRUdJU1RFUl9TSVpFICA0 DQo+ICNkZWZpbmUgRF9SRUdJU1RFUl9TSVpFICA4DQo+IC0jZGVmaW5lIFZfUkVHSVNURVJfU0la RSAxNg0KPiAjZGVmaW5lIFFfUkVHSVNURVJfU0laRSAxNg0KPiANCj4gLyogVG90YWwgbnVtYmVy IG9mIGdlbmVyYWwgKFgpIHJlZ2lzdGVycy4gICovDQo+IGRpZmYgLS1naXQgYS9nZGIvYXJjaC9h YXJjaDY0LmggYi9nZGIvYXJjaC9hYXJjaDY0LmgNCj4gaW5kZXggODU3YmIyMmIwMy4uYjc1MzUy NDYxYSAxMDA2NDQNCj4gLS0tIGEvZ2RiL2FyY2gvYWFyY2g2NC5oDQo+ICsrKyBiL2dkYi9hcmNo L2FhcmNoNjQuaA0KPiBAQCAtNTgsNiArNTgsOCBAQCBlbnVtIGFhcmNoNjRfcmVnbnVtDQo+ICAg QUFSQ0g2NF9MQVNUX1ZfQVJHX1JFR05VTSA9IEFBUkNINjRfVjBfUkVHTlVNICsgNw0KPiB9Ow0K PiANCj4gKyNkZWZpbmUgVl9SRUdJU1RFUl9TSVpFIDE2DQo+ICsNCj4gLyogUHNldWRvIHJlZ2lz dGVyIGJhc2UgbnVtYmVycy4gICovDQo+ICNkZWZpbmUgQUFSQ0g2NF9RMF9SRUdOVU0gMA0KPiAj ZGVmaW5lIEFBUkNINjRfRDBfUkVHTlVNIChBQVJDSDY0X1EwX1JFR05VTSArIEFBUkNINjRfRF9S RUdJU1RFUl9DT1VOVCkNCj4gZGlmZiAtLWdpdCBhL2dkYi9uYXQvYWFyY2g2NC1zdmUtbGludXgt cHRyYWNlLmMgYi9nZGIvbmF0L2FhcmNoNjQtc3ZlLWxpbnV4LXB0cmFjZS5jDQo+IGluZGV4IDJj ZTkwY2NmZDcuLjVmMDg5OTVmODcgMTAwNjQ0DQo+IC0tLSBhL2dkYi9uYXQvYWFyY2g2NC1zdmUt bGludXgtcHRyYWNlLmMNCj4gKysrIGIvZ2RiL25hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2Uu Yw0KPiBAQCAtMjYsNiArMjYsNyBAQA0KPiAjaW5jbHVkZSAiYXJjaC9hYXJjaDY0LmgiDQo+ICNp bmNsdWRlICJnZGJzdXBwb3J0L2NvbW1vbi1yZWdjYWNoZS5oIg0KPiAjaW5jbHVkZSAiZ2Ric3Vw cG9ydC9ieXRlLXZlY3Rvci5oIg0KPiArI2luY2x1ZGUgPGVuZGlhbi5oPg0KPiANCj4gLyogU2Vl IG5hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2UuaC4gICovDQo+IA0KPiBAQCAtMTQyLDYgKzE0 MywyNCBAQCBhYXJjaDY0X3N2ZV9nZXRfc3ZlcmVncyAoaW50IHRpZCkNCj4gICByZXR1cm4gYnVm Ow0KPiB9DQo+IA0KPiArLyogSWYgd2UgYXJlIHJ1bm5pbmcgaW4gQkUgbW9kZSwgYnl0ZXN3YXAg dGhlIGNvbnRlbnRzDQo+ICsgICBvZiBTUkMgdG8gRFNUIGZvciBTSVpFIGJ5dGVzLiAgT3RoZXIs IGp1c3QgY29weSB0aGUgY29udGVudHMNCj4gKyAgIGZyb20gU1JDIHRvIERTVC4gICovDQo+ICsN Cj4gK3N0YXRpYyB2b2lkDQo+ICthYXJjaDY0X21heWJlX3N3YWIxMjggKGdkYl9ieXRlICpkc3Qs IGNvbnN0IGdkYl9ieXRlICpzcmMsIHNpemVfdCBzaXplKQ0KPiArew0KPiArICBnZGJfYXNzZXJ0 IChzcmMgIT0gbnVsbHB0ciAmJiBkc3QgIT0gbnVsbHB0cik7DQo+ICsgIGdkYl9hc3NlcnQgKHNp emUgPiAxKTsNCj4gKw0KPiArI2lmIChfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOKQ0KPiAr ICBmb3IgKGludCBpID0gMDsgaSA8IHNpemUgLSAxOyBpKyspDQo+ICsgICAgZHN0W2ldID0gc3Jj W3NpemUgLSBpXTsNCj4gKyNlbHNlDQo+ICsgIG1lbWNweSAoZHN0LCBzcmMsIHNpemUpOw0KPiAr I2VuZGlmDQo+ICt9DQo+ICsNCj4gLyogU2VlIG5hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2Uu aC4gICovDQo+IA0KPiB2b2lkDQo+IEBAIC0xODQsMzQgKzIwMyw1MCBAQCBhYXJjaDY0X3N2ZV9y ZWdzX2NvcHlfdG9fcmVnX2J1ZiAoc3RydWN0IHJlZ19idWZmZXJfY29tbW9uICpyZWdfYnVmLA0K PiAgICAgfQ0KPiAgIGVsc2UNCj4gICAgIHsNCj4gKyAgICAgIC8qIFdBUk5JTkc6IFNJTUQgc3Rh dGUgaXMgbGFpZCBvdXQgaW4gbWVtb3J5IGluIHRhcmdldC1lbmRpYW4gZm9ybWF0LA0KPiArCSB3 aGlsZSBTVkUgc3RhdGUgaXMgbGFpZCBvdXQgaW4gYW4gZW5kaWFubmVzcy1pbmRlcGVuZGVudCBm b3JtYXQgKExFKS4NCj4gKw0KPiArCSBTbyB3ZSBoYXZlIGEgY291cGxlIGNhc2VzIHRvIGNvbnNp ZGVyOg0KPiArDQo+ICsJIDEgLSBJZiB0aGUgdGFyZ2V0IGlzIGJpZyBlbmRpYW4sIHRoZW4gU0lN RCBzdGF0ZSBpcyBiaWcgZW5kaWFuLA0KPiArCSByZXF1aXJpbmcgYSBieXRlc3dhcC4NCj4gKw0K PiArCSAyIC0gSWYgdGhlIHRhcmdldCBpcyBsaXR0bGUgZW5kaWFuLCB0aGVuIFNJTUQgc3RhdGUg aXMgbGl0dGxlIGVuZGlhbiwNCj4gKwkgd2hpY2ggbWF0Y2hlcyB0aGUgU1ZFIGZvcm1hdCwgc28g bm8gYnl0ZXN3YXAgaXMgbmVlZGVkLiAqLw0KPiArDQo+ICAgICAgIC8qIFRoZXJlIGlzIG5vIFNW RSBzdGF0ZSB5ZXQgLSB0aGUgcmVnaXN0ZXIgZHVtcCBjb250YWlucyBhIGZwc2ltZA0KPiAJIHN0 cnVjdHVyZSBpbnN0ZWFkLiAgVGhlc2UgcmVnaXN0ZXJzIHN0aWxsIGV4aXN0IGluIHRoZSBoYXJk d2FyZSwgYnV0DQo+IAkgdGhlIGtlcm5lbCBoYXMgbm90IHlldCBpbml0aWFsaXNlZCB0aGVtLCBh bmQgc28gdGhleSB3aWxsIGJlIG51bGwuICAqLw0KPiANCj4gLSAgICAgIGNoYXIgKnplcm9fcmVn ID0gKGNoYXIgKikgYWxsb2NhIChTVkVfUFRfU1ZFX1pSRUdfU0laRSAodnEpKTsNCj4gKyAgICAg IGdkYl9ieXRlICpyZWcgPSAoZ2RiX2J5dGUgKikgYWxsb2NhIChTVkVfUFRfU1ZFX1pSRUdfU0la RSAodnEpKTsNCj4gICAgICAgc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlICpmcHNpbWQNCj4gCT0g KHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqKShiYXNlICsgU1ZFX1BUX0ZQU0lNRF9PRkZTRVQp Ow0KPiANCj4gKyAgICAgIC8qIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgemVyb2VkIHJlZ2lzdGVyIGJ1 ZmZlci4gIFdlIHdpbGwgbmVlZCB0aGUgemVybw0KPiArCSBwYWRkaW5nIGJlbG93LiAgKi8NCj4g KyAgICAgIG1lbXNldCAocmVnLCAwLCBTVkVfUFRfU1ZFX1pSRUdfU0laRSAodnEpKTsNCj4gKw0K PiAgICAgICAvKiBDb3B5IGFjcm9zcyB0aGUgViByZWdpc3RlcnMgZnJvbSBmcHNpbWQgc3RydWN0 dXJlIHRvIHRoZSBaIHJlZ2lzdGVycywNCj4gCSBlbnN1cmluZyB0aGUgbm9uIG92ZXJsYXBwaW5n IHN0YXRlIGlzIHNldCB0byBudWxsLiAgKi8NCj4gDQo+IC0gICAgICBtZW1zZXQgKHplcm9fcmVn LCAwLCBTVkVfUFRfU1ZFX1pSRUdfU0laRSAodnEpKTsNCj4gLQ0KPiAgICAgICBmb3IgKGludCBp ID0gMDsgaSA8IEFBUkNINjRfU1ZFX1pfUkVHU19OVU07IGkrKykNCj4gCXsNCj4gLQkgIG1lbWNw eSAoemVyb19yZWcsICZmcHNpbWQtPnZyZWdzW2ldLCBzaXplb2YgKF9faW50MTI4X3QpKTsNCj4g LQkgIHJlZ19idWYtPnJhd19zdXBwbHkgKEFBUkNINjRfU1ZFX1owX1JFR05VTSArIGksIHplcm9f cmVnKTsNCj4gKwkgIC8qIEhhbmRsZSBiaWcgZW5kaWFuL2xpdHRsZSBlbmRpYW4gU0lNRC9TVkUg Y29udmVyc2lvbi4gICovDQo+ICsJICBhYXJjaDY0X21heWJlX3N3YWIxMjggKHJlZywgKGNvbnN0 IGdkYl9ieXRlICopICZmcHNpbWQtPnZyZWdzW2ldLA0KPiArCQkJCSBWX1JFR0lTVEVSX1NJWkUp Ow0KPiArCSAgcmVnX2J1Zi0+cmF3X3N1cHBseSAoQUFSQ0g2NF9TVkVfWjBfUkVHTlVNICsgaSwg cmVnKTsNCj4gCX0NCj4gDQo+ICAgICAgIHJlZ19idWYtPnJhd19zdXBwbHkgKEFBUkNINjRfRlBT Ul9SRUdOVU0sICZmcHNpbWQtPmZwc3IpOw0KPiAgICAgICByZWdfYnVmLT5yYXdfc3VwcGx5IChB QVJDSDY0X0ZQQ1JfUkVHTlVNLCAmZnBzaW1kLT5mcGNyKTsNCj4gDQo+ICAgICAgIC8qIENsZWFy IHRoZSBTVkUgb25seSByZWdpc3RlcnMuICAqLw0KPiArICAgICAgbWVtc2V0IChyZWcsIDAsIFNW RV9QVF9TVkVfWlJFR19TSVpFICh2cSkpOw0KPiANCj4gICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBBQVJDSDY0X1NWRV9QX1JFR1NfTlVNOyBpKyspDQo+IC0JcmVnX2J1Zi0+cmF3X3N1cHBseSAo QUFSQ0g2NF9TVkVfUDBfUkVHTlVNICsgaSwgemVyb19yZWcpOw0KPiArCXJlZ19idWYtPnJhd19z dXBwbHkgKEFBUkNINjRfU1ZFX1AwX1JFR05VTSArIGksIHJlZyk7DQo+IA0KPiAtICAgICAgcmVn X2J1Zi0+cmF3X3N1cHBseSAoQUFSQ0g2NF9TVkVfRkZSX1JFR05VTSwgemVyb19yZWcpOw0KPiAr ICAgICAgcmVnX2J1Zi0+cmF3X3N1cHBseSAoQUFSQ0g2NF9TVkVfRkZSX1JFR05VTSwgcmVnKTsN Cj4gICAgIH0NCj4gfQ0KPiANCj4gQEAgLTI0MCwxMSArMjc1LDExIEBAIGFhcmNoNjRfc3ZlX3Jl Z3NfY29weV9mcm9tX3JlZ19idWYgKGNvbnN0IHN0cnVjdCByZWdfYnVmZmVyX2NvbW1vbiAqcmVn X2J1ZiwNCj4gCSBrZXJuZWwsIHdoaWNoIGlzIHdoeSB3ZSB0cnkgdG8gYXZvaWQgaXQuICAqLw0K PiANCj4gICAgICAgYm9vbCBoYXNfc3ZlX3N0YXRlID0gZmFsc2U7DQo+IC0gICAgICBjaGFyICp6 ZXJvX3JlZyA9IChjaGFyICopIGFsbG9jYSAoU1ZFX1BUX1NWRV9aUkVHX1NJWkUgKHZxKSk7DQo+ ICsgICAgICBnZGJfYnl0ZSAqcmVnID0gKGdkYl9ieXRlICopIGFsbG9jYSAoU1ZFX1BUX1NWRV9a UkVHX1NJWkUgKHZxKSk7DQo+ICAgICAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqZnBzaW1k DQo+IAk9IChzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgKikoYmFzZSArIFNWRV9QVF9GUFNJTURf T0ZGU0VUKTsNCj4gDQo+IC0gICAgICBtZW1zZXQgKHplcm9fcmVnLCAwLCBTVkVfUFRfU1ZFX1pS RUdfU0laRSAodnEpKTsNCj4gKyAgICAgIG1lbXNldCAocmVnLCAwLCBTVkVfUFRfU1ZFX1pSRUdf U0laRSAodnEpKTsNCj4gDQo+ICAgICAgIC8qIENoZWNrIGluIHRoZSByZWdfYnVmIGlmIGFueSBv ZiB0aGUgWiByZWdpc3RlcnMgYXJlIHNldCBhZnRlciB0aGUNCj4gCSBmaXJzdCAxMjggYml0cywg b3IgaWYgYW55IG9mIHRoZSBvdGhlciBTVkUgcmVnaXN0ZXJzIGFyZSBzZXQuICAqLw0KPiBAQCAt MjUyLDcgKzI4Nyw3IEBAIGFhcmNoNjRfc3ZlX3JlZ3NfY29weV9mcm9tX3JlZ19idWYgKGNvbnN0 IHN0cnVjdCByZWdfYnVmZmVyX2NvbW1vbiAqcmVnX2J1ZiwNCj4gICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBBQVJDSDY0X1NWRV9aX1JFR1NfTlVNOyBpKyspDQo+IAl7DQo+IAkgIGhhc19zdmVf c3RhdGUgfD0gcmVnX2J1Zi0+cmF3X2NvbXBhcmUgKEFBUkNINjRfU1ZFX1owX1JFR05VTSArIGks DQo+IC0JCQkJCQkgemVyb19yZWcsIHNpemVvZiAoX19pbnQxMjhfdCkpOw0KPiArCQkJCQkJIHJl Zywgc2l6ZW9mIChfX2ludDEyOF90KSk7DQo+IAkgIGlmIChoYXNfc3ZlX3N0YXRlKQ0KPiAJICAg IGJyZWFrOw0KPiAJfQ0KPiBAQCAtMjYxLDE5ICsyOTYsMzEgQEAgYWFyY2g2NF9zdmVfcmVnc19j b3B5X2Zyb21fcmVnX2J1ZiAoY29uc3Qgc3RydWN0IHJlZ19idWZmZXJfY29tbW9uICpyZWdfYnVm LA0KPiAJZm9yIChpbnQgaSA9IDA7IGkgPCBBQVJDSDY0X1NWRV9QX1JFR1NfTlVNOyBpKyspDQo+ IAkgIHsNCj4gCSAgICBoYXNfc3ZlX3N0YXRlIHw9IHJlZ19idWYtPnJhd19jb21wYXJlIChBQVJD SDY0X1NWRV9QMF9SRUdOVU0gKyBpLA0KPiAtCQkJCQkJICAgemVyb19yZWcsIDApOw0KPiArCQkJ CQkJICAgcmVnLCAwKTsNCj4gCSAgICBpZiAoaGFzX3N2ZV9zdGF0ZSkNCj4gCSAgICAgIGJyZWFr Ow0KPiAJICB9DQo+IA0KPiAgICAgICBpZiAoIWhhc19zdmVfc3RhdGUpDQo+IAkgIGhhc19zdmVf c3RhdGUgfD0gcmVnX2J1Zi0+cmF3X2NvbXBhcmUgKEFBUkNINjRfU1ZFX0ZGUl9SRUdOVU0sDQo+ IC0JCQkJCQkgemVyb19yZWcsIDApOw0KPiArCQkJCQkJIHJlZywgMCk7DQo+IA0KPiAgICAgICAv KiBJZiBubyBTVkUgc3RhdGUgZXhpc3RzLCB0aGVuIHVzZSB0aGUgZXhpc3RpbmcgZnBzaW1kIHN0 cnVjdHVyZSB0bw0KPiAJIHdyaXRlIG91dCBzdGF0ZSBhbmQgcmV0dXJuLiAgKi8NCj4gICAgICAg aWYgKCFoYXNfc3ZlX3N0YXRlKQ0KPiAJew0KPiArCSAgLyogV0FSTklORzogU0lNRCBzdGF0ZSBp cyBsYWlkIG91dCBpbiBtZW1vcnkgaW4gdGFyZ2V0LWVuZGlhbiBmb3JtYXQsDQo+ICsJICAgICB3 aGlsZSBTVkUgc3RhdGUgaXMgbGFpZCBvdXQgaW4gYW4gZW5kaWFubmVzcy1pbmRlcGVuZGVudCBm b3JtYXQNCj4gKwkgICAgIChMRSkuDQo+ICsNCj4gKwkgICAgIFNvIHdlIGhhdmUgYSBjb3VwbGUg Y2FzZXMgdG8gY29uc2lkZXI6DQo+ICsNCj4gKwkgICAgIDEgLSBJZiB0aGUgdGFyZ2V0IGlzIGJp ZyBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBiaWcgZW5kaWFuLA0KPiArCSAgICAgcmVxdWly aW5nIGEgYnl0ZXN3YXAuDQo+ICsNCj4gKwkgICAgIDIgLSBJZiB0aGUgdGFyZ2V0IGlzIGxpdHRs ZSBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBsaXR0bGUNCj4gKwkgICAgIGVuZGlhbiwgd2hp Y2ggbWF0Y2hlcyB0aGUgU1ZFIGZvcm1hdCwgc28gbm8gYnl0ZXN3YXAgaXMgbmVlZGVkLiAqLw0K PiArDQo+IAkgIC8qIFRoZSBjb2xsZWN0cyBvZiB0aGUgWiByZWdpc3RlcnMgd2lsbCBvdmVyZmxv dyB0aGUgc2l6ZSBvZiBhIHZyZWcuDQo+IAkgICAgIFRoZXJlIGlzIGVub3VnaCBzcGFjZSBpbiB0 aGUgc3RydWN0dXJlIHRvIGFsbG93IGZvciB0aGlzLCBidXQgd2UNCj4gCSAgICAgY2Fubm90IG92 ZXJmbG93IGludG8gdGhlIG5leHQgcmVnaXN0ZXIgYXMgd2UgbWlnaHQgbm90IGJlDQo+IEBAIC0y ODQsOCArMzMxLDEwIEBAIGFhcmNoNjRfc3ZlX3JlZ3NfY29weV9mcm9tX3JlZ19idWYgKGNvbnN0 IHN0cnVjdCByZWdfYnVmZmVyX2NvbW1vbiAqcmVnX2J1ZiwNCj4gCSAgICAgIGlmIChSRUdfVkFM SUQNCj4gCQkgID09IHJlZ19idWYtPmdldF9yZWdpc3Rlcl9zdGF0dXMgKEFBUkNINjRfU1ZFX1ow X1JFR05VTSArIGkpKQ0KPiAJCXsNCj4gLQkJICByZWdfYnVmLT5yYXdfY29sbGVjdCAoQUFSQ0g2 NF9TVkVfWjBfUkVHTlVNICsgaSwgemVyb19yZWcpOw0KPiAtCQkgIG1lbWNweSAoJmZwc2ltZC0+ dnJlZ3NbaV0sIHplcm9fcmVnLCBzaXplb2YgKF9faW50MTI4X3QpKTsNCj4gKwkJICByZWdfYnVm LT5yYXdfY29sbGVjdCAoQUFSQ0g2NF9TVkVfWjBfUkVHTlVNICsgaSwgcmVnKTsNCj4gKwkJICAv KiBIYW5kbGUgYmlnIGVuZGlhbi9saXR0bGUgZW5kaWFuIFNJTUQvU1ZFIGNvbnZlcnNpb24uICAq Lw0KPiArCQkgIGFhcmNoNjRfbWF5YmVfc3dhYjEyOCAoKGdkYl9ieXRlICopICZmcHNpbWQtPnZy ZWdzW2ldLCByZWcsDQo+ICsJCQkJCSBWX1JFR0lTVEVSX1NJWkUpOw0KPiAJCX0NCj4gCSAgICB9 DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3RyYWQtZnJhbWUuYyBiL2dkYi90cmFkLWZyYW1lLmMN Cj4gaW5kZXggYTZhODQ3OTBhOS4uOGExYWE4MThhZCAxMDA2NDQNCj4gLS0tIGEvZ2RiL3RyYWQt ZnJhbWUuYw0KPiArKysgYi9nZGIvdHJhZC1mcmFtZS5jDQo+IEBAIC01Niw2ICs1Niw3IEBAIHRy YWRfZnJhbWVfcmVzZXRfc2F2ZWRfcmVncyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQo+ICAg ICB7DQo+ICAgICAgIHJlZ3NbcmVnbnVtXS5yZWFscmVnID0gcmVnbnVtOw0KPiAgICAgICByZWdz W3JlZ251bV0uYWRkciA9IC0xOw0KPiArICAgICAgcmVnc1tyZWdudW1dLmRhdGEgPSBudWxscHRy Ow0KPiAgICAgfQ0KPiB9DQo+IA0KPiBAQCAtODMsNyArODQsNyBAQCB0cmFkX2ZyYW1lX2FsbG9j X3NhdmVkX3JlZ3MgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKQ0KPiAgIHJldHVybiB0 cmFkX2ZyYW1lX2FsbG9jX3NhdmVkX3JlZ3MgKGdkYmFyY2gpOw0KPiB9DQo+IA0KPiAtZW51bSB7 IFRGX1JFR19WQUxVRSA9IC0xLCBURl9SRUdfVU5LTk9XTiA9IC0yIH07DQo+ICtlbnVtIHsgVEZf UkVHX1ZBTFVFID0gLTEsIFRGX1JFR19VTktOT1dOID0gLTIsIFRGX1JFR19WQUxVRV9CWVRFUyA9 IC0zIH07DQo+IA0KPiBpbnQNCj4gdHJhZF9mcmFtZV92YWx1ZV9wIChzdHJ1Y3QgdHJhZF9mcmFt ZV9zYXZlZF9yZWcgdGhpc19zYXZlZF9yZWdzW10sIGludCByZWdudW0pDQo+IEBAIC0xMDYsNiAr MTA3LDE2IEBAIHRyYWRfZnJhbWVfcmVhbHJlZ19wIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9y ZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+IAkgICYmIHRoaXNfc2F2ZWRfcmVnc1tyZWdudW1dLmFk ZHIgPT0gLTEpOw0KPiB9DQo+IA0KPiArLyogU2VlIHRyYWQtZnJhbWUuaC4gICovDQo+ICsNCj4g K2Jvb2wNCj4gK3RyYWRfZnJhbWVfdmFsdWVfYnl0ZXNfcCAoc3RydWN0IHRyYWRfZnJhbWVfc2F2 ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPiArCQkJICBpbnQgcmVnbnVtKQ0KPiArew0KPiAr ICByZXR1cm4gKHRoaXNfc2F2ZWRfcmVnc1tyZWdudW1dLnJlYWxyZWcgPT0gVEZfUkVHX1ZBTFVF X0JZVEVTDQo+ICsJICAmJiB0aGlzX3NhdmVkX3JlZ3NbcmVnbnVtXS5kYXRhICE9IG51bGxwdHIp Ow0KPiArfQ0KPiArDQo+IHZvaWQNCj4gdHJhZF9mcmFtZV9zZXRfdmFsdWUgKHN0cnVjdCB0cmFk X2ZyYW1lX3NhdmVkX3JlZyB0aGlzX3NhdmVkX3JlZ3NbXSwNCj4gCQkgICAgICBpbnQgcmVnbnVt LCBMT05HRVNUIHZhbCkNCj4gQEAgLTIyNCw2ICsyMzUsMzUgQEAgdHJhZF9mcmFtZV9zZXRfdW5r bm93biAoc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPiAg IHRoaXNfc2F2ZWRfcmVnc1tyZWdudW1dLmFkZHIgPSAtMTsNCj4gfQ0KPiANCj4gKy8qIFNlZSB0 cmFkLWZyYW1lLmguICAqLw0KPiArDQo+ICt2b2lkDQo+ICt0cmFkX2ZyYW1lX3NldF92YWx1ZV9i eXRlcyAoc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPiAr CQkJICAgIGludCByZWdudW0sIGNvbnN0IGdkYl9ieXRlICpieXRlcywNCj4gKwkJCSAgICBzaXpl X3Qgc2l6ZSkNCj4gK3sNCj4gKyAgdGhpc19zYXZlZF9yZWdzW3JlZ251bV0ucmVhbHJlZyA9IFRG X1JFR19WQUxVRV9CWVRFUzsNCj4gKw0KPiArICAvKiBBbGxvY2F0ZSB0aGUgc3BhY2UgYW5kIGNv cHkgdGhlIGRhdGEgYnl0ZXMuICAqLw0KPiArICB0aGlzX3NhdmVkX3JlZ3NbcmVnbnVtXS5kYXRh ID0gRlJBTUVfT0JTVEFDS19DQUxMT0MgKHNpemUsIGdkYl9ieXRlKTsNCj4gKyAgbWVtY3B5ICh0 aGlzX3NhdmVkX3JlZ3NbcmVnbnVtXS5kYXRhLCBieXRlcywgc2l6ZSk7DQo+ICt9DQo+ICsNCj4g Ky8qIFNlZSB0cmFkLWZyYW1lLmguICAqLw0KPiArDQo+ICt2b2lkDQo+ICt0cmFkX2ZyYW1lX3Nl dF9yZWdfdmFsdWVfYnl0ZXMgKHN0cnVjdCB0cmFkX2ZyYW1lX2NhY2hlICp0aGlzX3RyYWRfY2Fj aGUsDQo+ICsJCQkJaW50IHJlZ251bSwgY29uc3QgZ2RiX2J5dGUgKmJ5dGVzLA0KPiArCQkJCXNp emVfdCBzaXplKQ0KPiArew0KPiArICAvKiBFeHRlcm5hbCBpbnRlcmZhY2UgZm9yIHVzZXJzIG9m IHRyYWRfZnJhbWVfY2FjaGUNCj4gKyAgICAgKHdobyBjYW5ub3QgYWNjZXNzIHRoZSBwcmV2X3Jl Z3Mgb2JqZWN0IGRpcmVjdGx5KS4gICovDQo+ICsgIHRyYWRfZnJhbWVfc2V0X3ZhbHVlX2J5dGVz ICh0aGlzX3RyYWRfY2FjaGUtPnByZXZfcmVncywgcmVnbnVtLCBieXRlcywNCj4gKwkJCSAgICAg IHNpemUpOw0KPiArfQ0KPiArDQo+ICsNCj4gKw0KPiBzdHJ1Y3QgdmFsdWUgKg0KPiB0cmFkX2Zy YW1lX2dldF9wcmV2X3JlZ2lzdGVyIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSwNCj4g CQkJICAgICAgc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0K PiBAQCAtMjQwLDYgKzI4MCwxMCBAQCB0cmFkX2ZyYW1lX2dldF9wcmV2X3JlZ2lzdGVyIChzdHJ1 Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSwNCj4gICAgIC8qIFRoZSByZWdpc3RlcidzIHZhbHVl IGlzIGF2YWlsYWJsZS4gICovDQo+ICAgICByZXR1cm4gZnJhbWVfdW53aW5kX2dvdF9jb25zdGFu dCAodGhpc19mcmFtZSwgcmVnbnVtLA0KPiAJCQkJICAgICAgdGhpc19zYXZlZF9yZWdzW3JlZ251 bV0uYWRkcik7DQo+ICsgIGVsc2UgaWYgKHRyYWRfZnJhbWVfdmFsdWVfYnl0ZXNfcCAodGhpc19z YXZlZF9yZWdzLCByZWdudW0pKQ0KPiArICAgIC8qIFRoZSByZWdpc3RlcidzIHZhbHVlIGlzIGF2 YWlsYWJsZSBhcyBhIHNlcXVlbmNlIG9mIGJ5dGVzLiAgKi8NCj4gKyAgICByZXR1cm4gZnJhbWVf dW53aW5kX2dvdF9ieXRlcyAodGhpc19mcmFtZSwgcmVnbnVtLA0KPiArCQkJCSAgIHRoaXNfc2F2 ZWRfcmVnc1tyZWdudW1dLmRhdGEpOw0KPiAgIGVsc2UNCj4gICAgIHJldHVybiBmcmFtZV91bndp bmRfZ290X29wdGltaXplZCAodGhpc19mcmFtZSwgcmVnbnVtKTsNCj4gfQ0KPiBkaWZmIC0tZ2l0 IGEvZ2RiL3RyYWQtZnJhbWUuaCBiL2dkYi90cmFkLWZyYW1lLmgNCj4gaW5kZXggN2I1Nzg1NjE2 ZS4uMzhkYjQzOTU3OSAxMDA2NDQNCj4gLS0tIGEvZ2RiL3RyYWQtZnJhbWUuaA0KPiArKysgYi9n ZGIvdHJhZC1mcmFtZS5oDQo+IEBAIC01Miw2ICs1MiwxMiBAQCB2b2lkIHRyYWRfZnJhbWVfc2V0 X3JlZ19yZWdtYXAgKHN0cnVjdCB0cmFkX2ZyYW1lX2NhY2hlICp0aGlzX3RyYWRfY2FjaGUsDQo+ IHZvaWQgdHJhZF9mcmFtZV9zZXRfcmVnX3ZhbHVlIChzdHJ1Y3QgdHJhZF9mcmFtZV9jYWNoZSAq dGhpc19jYWNoZSwNCj4gCQkJICAgICAgIGludCByZWdudW0sIExPTkdFU1QgdmFsKTsNCj4gDQo+ ICsvKiBHaXZlbiB0aGUgY2FjaGUgaW4gVEhJU19UUkFEX0NBQ0hFLCBzZXQgdGhlIHZhbHVlIG9m IFJFR05VTSB0byB0aGUgYnl0ZXMNCj4gKyAgIGNvbnRhaW5lZCBpbiBCWVRFUyB3aXRoIHNpemUg U0laRS4gICovDQo+ICt2b2lkIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoc3RydWN0 IHRyYWRfZnJhbWVfY2FjaGUgKnRoaXNfdHJhZF9jYWNoZSwNCj4gKwkJCQkgICAgIGludCByZWdu dW0sIGNvbnN0IGdkYl9ieXRlICpieXRlcywNCj4gKwkJCQkgICAgIHNpemVfdCBzaXplKTsNCj4g Kw0KPiBzdHJ1Y3QgdmFsdWUgKnRyYWRfZnJhbWVfZ2V0X3JlZ2lzdGVyIChzdHJ1Y3QgdHJhZF9m cmFtZV9jYWNoZSAqdGhpc190cmFkX2NhY2hlLA0KPiAJCQkJICAgICAgIHN0cnVjdCBmcmFtZV9p bmZvICp0aGlzX2ZyYW1lLA0KPiAJCQkJICAgICAgIGludCByZWdudW0pOw0KPiBAQCAtODYsNiAr OTIsOCBAQCBzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcNCj4gew0KPiAgIExPTkdFU1QgYWRk cjsgLyogQSBDT1JFX0FERFIgZml0cyBpbiBhIGxvbmdlc3QuICAqLw0KPiAgIGludCByZWFscmVn Ow0KPiArICAvKiBSZWdpc3RlciBkYXRhIChmb3IgdmFsdWVzIHRoYXQgZG9uJ3QgZml0IGluIEFE RFIpLiAgKi8NCj4gKyAgZ2RiX2J5dGUgKmRhdGE7DQo+IH07DQo+IA0KPiAvKiBFbmNvZGUgUkVH TlVNIHZhbHVlIGluIHRoZSB0cmFkLWZyYW1lLiAgKi8NCj4gQEAgLTEwNCw2ICsxMTIsMTIgQEAg dm9pZCB0cmFkX2ZyYW1lX3NldF9hZGRyIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgdGhp c190cmFkX2NhY2hlW10sDQo+IHZvaWQgdHJhZF9mcmFtZV9zZXRfdW5rbm93biAoc3RydWN0IHRy YWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPiAJCQkgICAgIGludCByZWdu dW0pOw0KPiANCj4gKy8qIEVuY29kZSBSRUdOVU0gdmFsdWUgaW4gdGhlIHRyYWQtZnJhbWUgYXMg YSBzZXF1ZW5jZSBvZiBieXRlcy4gIFRoaXMgaXMNCj4gKyAgIHVzZWZ1bCB3aGVuIHRoZSB2YWx1 ZSBpcyBsYXJnZXIgdGhhbiB3aGF0IHByaW1pdGl2ZSB0eXBlcyBjYW4gaG9sZC4gICovDQo+ICt2 b2lkIHRyYWRfZnJhbWVfc2V0X3ZhbHVlX2J5dGVzIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9y ZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+ICsJCQkJIGludCByZWdudW0sIGNvbnN0IGdkYl9ieXRl ICpieXRlcywNCj4gKwkJCQkgc2l6ZV90IHNpemUpOw0KPiArDQo+IC8qIENvbnZlbmllbmNlIGZ1 bmN0aW9ucywgcmV0dXJuIG5vbi16ZXJvIGlmIHRoZSByZWdpc3RlciBoYXMgYmVlbg0KPiAgICBl bmNvZGVkIGFzIHNwZWNpZmllZC4gICovDQo+IGludCB0cmFkX2ZyYW1lX3ZhbHVlX3AgKHN0cnVj dCB0cmFkX2ZyYW1lX3NhdmVkX3JlZyB0aGlzX3NhdmVkX3JlZ3NbXSwNCj4gQEAgLTExMyw2ICsx MjcsMTEgQEAgaW50IHRyYWRfZnJhbWVfYWRkcl9wIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9y ZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+IGludCB0cmFkX2ZyYW1lX3JlYWxyZWdfcCAoc3RydWN0 IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPiAJCQkgIGludCByZWdu dW0pOw0KPiANCj4gKy8qIFJldHVybiBUUlVFIGlmIFJFR05VTSBpcyBzdG9yZWQgYXMgYSBzZXF1 ZW5jZSBvZiBieXRlcywgYW5kIEZBTFNFDQo+ICsgICBvdGhlcndpc2UuICAqLw0KPiArYm9vbCB0 cmFkX2ZyYW1lX3ZhbHVlX2J5dGVzX3AgKHN0cnVjdCB0cmFkX2ZyYW1lX3NhdmVkX3JlZyB0aGlz X3NhdmVkX3JlZ3NbXSwNCj4gKwkJCSAgICAgIGludCByZWdudW0pOw0KPiArDQo+IC8qIFJlc2V0 IHRoZSBzYXZlIHJlZ3MgY2FjaGUsIHNldHRpbmcgcmVnaXN0ZXIgdmFsdWVzIHRvIC0xLiAgKi8N Cj4gdm9pZCB0cmFkX2ZyYW1lX3Jlc2V0X3NhdmVkX3JlZ3MgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLA0KPiAJCQkJICBzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgKnJlZ3MpOw0KPiAtLSAN Cj4gMi4yNS4xDQo+IA0KDQo=