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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D74AAC433EF for ; Tue, 19 Jul 2022 07:21:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235928AbiGSHVA (ORCPT ); Tue, 19 Jul 2022 03:21:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231491AbiGSHU7 (ORCPT ); Tue, 19 Jul 2022 03:20:59 -0400 Received: from esa11.fujitsucc.c3s2.iphmx.com (esa11.fujitsucc.c3s2.iphmx.com [216.71.156.121]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6BF96A181 for ; Tue, 19 Jul 2022 00:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1658215256; x=1689751256; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ViLmyyxI2Ub0jb6kbkL2VoiMtShUn9DXB+2kbVaZzrI=; b=Uinmf5VtiEXzdNvLLMM1z85YEO9jcSyJn8w/icQ1uulpq4qJlsRS58KK a/D+JrOyjGiYr2VU4mWI4nRLU3jXpPMzJ/B8InHB0WcEJQkTcFggi6xSW BGNNhYWUS8MLJ89YLdUCobcwcHvsvoAS48+vkotgTFz7viDe1WOLB12sA ozhHe0gxCQnKkKOnasWmihXV9BLXlee3ejqosbksB13ZJeBTPp1ZpZGeP nyUk4xwBdtY6IfqMve57MMQkgED4RItHneOD3I8bGQGT+UeNl3NZ2YaRR qh+DevDPOtaR07b991wJfk7XmKAqPFWcLHHAe7rsIfG2asBB38K2aJ6Ov Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10412"; a="61024464" X-IronPort-AV: E=Sophos;i="5.92,283,1650898800"; d="scan'208";a="61024464" Received: from mail-os0jpn01lp2112.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.112]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jul 2022 16:20:52 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+vU2X1FF9y2+7RVQtUO11YTafVHETcMHKXDDWW3G4EK5G/cUDFQby+MOyjPidvZcLyedvVD132dz5+s+kkC0AryyNq2X153Bu/U7ptiMb0dSEqtWKlP0xs1/d5QHi64bar6QQmX6z358kHNgfDaENL+s3fEon0fuS4/trRTSX9Sb5YatQOxmGReQ0FIwbwwjrSnVOE3NyQcBIrYfEJPeSDkWnNE4uuICpcIBi6n1J6bLnHZHEis5KIyCvKfVwweto5fPht9v1kB6Spy8fE/veZKmG0AzT2xfEZgsYVcKSQVhANKgq3S2EojX47zBYWYbhecYn7BbHrw6ewlLofVtw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ViLmyyxI2Ub0jb6kbkL2VoiMtShUn9DXB+2kbVaZzrI=; b=SHZqnhXwYFmkDap/7QVcfhi5XeAYJqeHZ20EMX8DL5DkZoMv+wjB5GnzaHc0H0rxRIBqlE34xD6w/pZU5hbJX9Jk34Fs0J4aw36bjaKvAp0vTGbGLQzoofYSaestD4ILTRqlnHYDhCKcd0eDApwc6M+yvFoGs4N/Wfb8s/vHDBW6S/8DpmG01RV9haZTKLmwRdJ//PJ9fk1gDOXvE1goXXzzDkieRwt2zcuOz581R47TFydHQHhJ7Wp9qE0B/u8DIrzuRd2iFHhM0BIUrL/eAbSsp0dxN2Xt26xDKx4VxRP8dfWwYZ4PbU1Kc2dUKwL5CM7r163cmpLzjn19yanyOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.onmicrosoft.com; s=selector2-fujitsu-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ViLmyyxI2Ub0jb6kbkL2VoiMtShUn9DXB+2kbVaZzrI=; b=nUA2hR5Fs8GbILk8hzFfpY5mjVIrn2FDT6BCgRhtifMBUAOUX/1RBH67IQmFTw7b6EXWdiKntY5a7J4F0KezNO5vOMUNcBfwTmtH2JQve+Pvw7gHKM3FOLNgDCjA4l5Ob7RsVwEWwXlj2Rn+GjrOt2SDHfUJSzSdcTf+ZQDqlBQ= Received: from TY2PR01MB4427.jpnprd01.prod.outlook.com (2603:1096:404:10d::20) by OSAPR01MB3026.jpnprd01.prod.outlook.com (2603:1096:603:3c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.20; Tue, 19 Jul 2022 07:20:49 +0000 Received: from TY2PR01MB4427.jpnprd01.prod.outlook.com ([fe80::5092:a34:8a79:5e78]) by TY2PR01MB4427.jpnprd01.prod.outlook.com ([fe80::5092:a34:8a79:5e78%5]) with mapi id 15.20.5438.023; Tue, 19 Jul 2022 07:20:49 +0000 From: "xuyang2018.jy@fujitsu.com" To: Zorro Lang CC: "fstests@vger.kernel.org" , Christian Brauner , "linux-fsdevel@vger.kernel.org" Subject: Re: [PATCH v1 1/2] vfs: Add new setgid_create_umask test Thread-Topic: [PATCH v1 1/2] vfs: Add new setgid_create_umask test Thread-Index: AQHYbFrWZGGhBv4WLkea2dxN2KJ35K2BhQCAgAQzXIA= Date: Tue, 19 Jul 2022 07:20:49 +0000 Message-ID: References: <1653062664-2125-1-git-send-email-xuyang2018.jy@fujitsu.com> <20220716161233.wfenjymcivr2rhs2@zlang-mailbox> In-Reply-To: <20220716161233.wfenjymcivr2rhs2@zlang-mailbox> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5a21ef7d-3445-4ef7-86ba-08da695734a7 x-ms-traffictypediagnostic: OSAPR01MB3026:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: C+gedtFaloW7dCW9GJNzJ3I5eE7aeqSubTl44f60foND9gR0g1P4JPCxg72RLWhV5T1deUm0kkOoYk8yrpGIMjya89lOpdVXkdpOd23Jva43hJI/UiHanvVFgP7ybIKB/E6sMNMwMBvveZ/t/Q4lGoBxvNzAqf63m+9dxNGmswFsgFn137H13bhDkVnwNSJ6SJA29fwK7yN5OS/LVuIZR0ibN5D3q98HMK1F1HrUPCdw296ZqPInXJJ1XApXumioWdF2ehhzoS7vTVidy6X5fEDQvAuLm60VpgWOCyjSPT7LA71YHQtno8w4GxL8sMAW8/1EfLmat0m9cJVSUtxJ3TRdvY4o7gzzFzK0CwHYUw2FT6gqT8WDCHpArBbIrzSOo8pp3AAj4appqhQZMgm2gCWDjCdxAO5M8/FmJax924XPvWM/2vqUjclzGrFwFytOm+CvaiPLC07SGJMUMY3DQMgktZTbb7tX+089UVHPnavfZTA9z60zZOko0vKE3Y7/IXC+HbYTV8iIiazbkoQprOLNIwL57oYIV60FpvIGOIB186GDHPKktIG6kvaiTjS25FOa7PSY7Q4nbLLJQiINdV5VN/I85da4p+RYgyyEAPLiCnODPQjk/y8Te9enOtwIt3TrStoxOFitx+U+tL0dhYPj5dKu7Hge2pd7dcemQcZpn3pybb5+SvlhRSGYAE5Ecnfy5RB0PFs3G3/Ua8f9mxtd41YPOuXO+OBBOXhaB74U5cF9LDy9F/9AsYQdXTSP6AxXHwAPaD+NMQUAXGG9bO5tHhBZii+41CJWSX39M9aZElOiz3uB2tv3jF5ehhH1qAuXyzXtO8CeEnINlliJfEvK9CZ4T9+UtxQFtYiY1Hytlo/p+Xjt0MKTvPD3HscF x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR01MB4427.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(39860400002)(376002)(366004)(136003)(346002)(396003)(316002)(91956017)(66556008)(38100700002)(8936002)(86362001)(82960400001)(31696002)(6506007)(4326008)(66446008)(76116006)(5660300002)(8676002)(54906003)(38070700005)(30864003)(83380400001)(66946007)(186003)(2616005)(26005)(6916009)(122000001)(478600001)(966005)(6486002)(2906002)(66476007)(71200400001)(64756008)(85182001)(36756003)(41300700001)(6512007)(31686004)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RzJZNWVUT1RXVmV3U295NFZGbHJuWEpCd01QRWxPQisyeUQwTGVCK1ZzQk5w?= =?utf-8?B?RE1VNmRSUDZ6WlpYMlNlYXUvOUt1YVNPUTgrcG11bzNwWDN6ZEw4TVIrTFpp?= =?utf-8?B?SDhFMSt0anM5bEVVTHZUMXVxVlZadW9XbUVCUHdnWmRVOUVOc1Y4SzlYM1B5?= =?utf-8?B?ZHVUa1JRQUNRemVHOXlpeVZhWmZXblVITU01cVgzZ1RQU2N6Nm84WEIxYXRw?= =?utf-8?B?aGNUV01NdnlxVjlpbWpqVVozMEZIcHpmSTZXMlBQcld5a1JiWERWSlk4RWN4?= =?utf-8?B?d3Rkd2NNMnFsWndlZVRCaHpSNUVYeTh2ZVJXS2h0ZzVBYWI2bG9GM1RLZ3FR?= =?utf-8?B?MTZBZnlCNXdheGluU0VweVpwRk83Sy9sOFpmS1J4N1FQNnJmdHZRUGJCMEQ1?= =?utf-8?B?bGJ0Z1lodlMwVThQUVVhVUo3STZ5eDQyVU4yb3VlMDc2bTQ2TDErWjViaEtB?= =?utf-8?B?U0pYQkhJV245MS8yZldWbmtHZERQeWJDcFdsZlVLaDlBZ0Rid2Q0cFVxY1pG?= =?utf-8?B?VUh3QXlmaFl3VCs2V3dRR1JTWjZ3dFNzc1hSV05JQStvTGdMY0pCZnNpdmkz?= =?utf-8?B?MnFsOUdhbUc0NGxCS2VLekZYS2I2cnE1L1pGVWVad3cxWERKRTljRDhGbDVQ?= =?utf-8?B?M3BSZFRVamtKUnUxMVErckZ1elRWOExZWDFOR3djZW1yZFFuOHZhZVk0YVF2?= =?utf-8?B?RWplRDBsVVh5NkdzTXh2RDRrL0k2Z0VrMk0ydit5bkRLTlVPU3pXUWxQcDJY?= =?utf-8?B?OG9EYWc2S1BaMndobE85UXRzOWF2UjR2R2VqcDJUcUZkcWozV3Blb1g2OHNF?= =?utf-8?B?aXlYdDdQeTV5Z3BlRjVMcnVScFp4elRWVWxON3FMTzA5S2Y4WDhTR25ic2h2?= =?utf-8?B?N1F6VFV5ZjF1ZmhybjRFQWNwOHdhU0Ivd0kxUFhsQzFhK1J1d0MxWERWL2RC?= =?utf-8?B?bUt4WlVoSzZxK1FoMXhVZFloUlhJSmI5Sm1OK0gvOW9zdlBwU2w2LzZRVnRm?= =?utf-8?B?dWpFc2oySEtHbFQwR1BDSytqam43OU5JNXpLTWVoazF6bUJ2SG9PTW5vSWpq?= =?utf-8?B?d3F6NEp5bTZLbnIvUUp3VUlqVmErdmpIL2l1MkdNbk5hbXhYVWxqWEErdlZm?= =?utf-8?B?bGNlRFVMcVE5ZURvR0xTcnE0S0RwVGMwL0QwVlJvMytvSVFWcXhoRmh5elN1?= =?utf-8?B?ZWVVNlNiLzN3RlRlclRWaTVZNmxwclk3czlLeWxBZ2duZUs1c09VdDZueXpI?= =?utf-8?B?cFpzOS94SU16M3A4bGpyeGVva1BiY0cyTWVnbTlnb0FONXUxWWIvdXo4YVN6?= =?utf-8?B?dmlsYmhmaGFqTTZtUi81TFltUEtUQ1dqM1dGUllNbGxQNkNKazRoVG5iWXZH?= =?utf-8?B?M0x5NmgzRkZZbU1BVjhEK1dxWWdtRzM3d0N2ajNHai9xTWdtOVNkS1ZndnBr?= =?utf-8?B?VlFmYzYzcGxKQmd0YW9oalpSSFpOSkNkNGlCSzVWcy8xc3gyU01yUWZuSlpV?= =?utf-8?B?Nnhkd1lQSFJmbnVBKzFPR1Jod1kvVEpWSGZkUTREUCtaYVQxNEMzaEVSVk1V?= =?utf-8?B?UElKYko2MGtHOVlxVXZYMkJZUGNmei83TUFieWRNRDNpa3pweW9UKzh0T3Nu?= =?utf-8?B?NXBpcUJvNnV5VWpSTjFPKyt0L2xHbXMwN0xyTkxGUTY2Mm5PL2dYS2huV2I5?= =?utf-8?B?MU00THNYd3JiZGY3dDdSMFNURk1MSThLaWFoRVdTa2FqdEhoaWYvVlpDcUMy?= =?utf-8?B?QVMrY01HNVZoZkNxODA4aGtPMDNQSHk1djZxSldHa1BCb29qR2hYWDRwT2tH?= =?utf-8?B?RnZOZXpKOEdEVUhBREFVOUtMRStwc3pET3BQOFFUOTdMQTBTb2tpMVlGandE?= =?utf-8?B?Ny95cGREeWVRN2hnb1hRSU1QYzkxQXpSUHc2cHpCNUVUVWJ6TjRGV2VzWW02?= =?utf-8?B?TUFtTzNzTEUzRGxyTE9XTW1GTjNENndCeWxzMms3akc4UGphWTMxakI5MEhX?= =?utf-8?B?VUVTU09xRk9vd2VHWWloWG5za1ZuNG9jYXVSRk5jdGp6WC9VdFR4UEdLUHk4?= =?utf-8?B?RkRLNVJTc1NORG1DTDhQRnlZRTM2RGV6eHJRYWpZYzVFUUtyc3BMLzluaTY2?= =?utf-8?B?SnFLUm0xSy9DaUVUTUx5ZFhVQjRONmdSOEdaay84OXZxWnliY3d6N2E4ZUY2?= =?utf-8?B?TXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <11E59677698F8B4C9B9471B8B2E5CB58@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY2PR01MB4427.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a21ef7d-3445-4ef7-86ba-08da695734a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2022 07:20:49.2186 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gg2BDKseT+QRoNrUpf2k3TrCmrukkLbQZFwayDA1QI2zm2hgSXMUm6hhBCJGD/pNjWibAeDp47RaFP/7CkJkU05W750k/VEap9apd3Eu+Po= X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSAPR01MB3026 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org DQpvbiAyMDIyLzA3LzE3IDA6MTIsIFpvcnJvIExhbmcgd3JvdGU6DQo+IE9uIFNhdCwgTWF5IDIx LCAyMDIyIGF0IDEyOjA0OjIzQU0gKzA4MDAsIFlhbmcgWHUgd3JvdGU6DQo+PiBUaGUgY3VycmVu dF91bWFzaygpIGlzIHN0cmlwcGVkIGZyb20gdGhlIG1vZGUgZGlyZWN0bHkgaW4gdGhlIHZmcyBp ZiB0aGUNCj4+IGZpbGVzeXN0ZW0gZWl0aGVyIGRvZXNuJ3Qgc3VwcG9ydCBhY2xzIG9yIHRoZSBm aWxlc3lzdGVtIGhhcyBiZWVuDQo+PiBtb3VudGVkIHdpdGhvdXQgcG9zaWMgYWNsIHN1cHBvcnQu DQo+Pg0KPj4gSWYgdGhlIGZpbGVzeXN0ZW0gZG9lcyBzdXBwb3J0IGFjbHMgdGhlbiBjdXJyZW50 X3VtYXNrKCkgc3RyaXBwaW5nIGlzDQo+PiBkZWZlcnJlZCB0byBwb3NpeF9hY2xfY3JlYXRlKCku IFNvIHdoZW4gdGhlIGZpbGVzeXN0ZW0gY2FsbHMNCj4+IHBvc2l4X2FjbF9jcmVhdGUoKSBhbmQg dGhlcmUgYXJlIG5vIGFjbHMgc2V0IG9yIG5vdCBzdXBwb3J0ZWQgdGhlbg0KPj4gY3VycmVudF91 bWFzaygpIHdpbGwgYmUgc3RyaXBwZWQuDQo+Pg0KPj4gVGhpcyBwYXRjaCBpcyBhbHNvIGRlc2ln bmVkIHRvIHRlc3Qga2VybmVsIHBhdGNoc2V0IGJlaGF2aW91cg0KPj4gIm1vdmUgU19JU0dJRCBz dHJpcHBpbmcgaW50byB0aGUgdmZzIg0KPj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9w cm9qZWN0L2xpbnV4LWZzZGV2ZWwvbGlzdC8/c2VyaWVzPTYzNTY5Mg0KPj4NCj4+IEhlcmUgd2Ug b25seSB1c2UgdW1hc2soU19JWEdSUCkgdG8gY2hlY2sgd2hldGhlciBpbm9kZSBzdHJpcA0KPj4g U19JU0dJRCB3b3JrcyBjb3JyZWN0bHkgYW5kIGNoZWNrIHdoZXRoZXIgU19JWEdSUCBtb2RlIGV4 aXN0cy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBZYW5nIFh1IDx4dXlhbmcyMDE4Lmp5QGZ1aml0 c3UuY29tPg0KPj4gLS0tDQo+IA0KPiBUaGlzIHBhdGNoc2V0IGhhcyBiZWVuIHN0dWNrIGF0IGhl cmUgbW9yZSB0aGFuIG9uZSBtb250aC4gQXMgVkZTIGd1eXMgZ2F2ZSBpdA0KPiBtYW55IHJldmll dyBwb2ludHMgbGFzdCB0aW1lIFsxXS4gU28gY2MgdmZzIGxpc3QgdG8gbWFrZSBzdXJlIGlmIHRo ZXkgaGF2ZQ0KPiBtb3JlIGNvbmNlcm4uDQo+IA0KDQpZZXMuDQoNCkkgZG9uJ3QgcGxhbiB0byB1 cGRhdGUgdGhlc2UgdHdvIHRlc3RzIHVudGlsIGtlcm5lbCBwYXRjaCBzZXRbMV0gaXMgDQptZXJn ZWQgYXQgbmV4dCBtZXJnZSB3aW5kb3cuDQoNCnBzOiBJIG1heSBhbHNvIHJlZmVyIHRvIENocmlz dGlhbiAzMWMwMWNlMTggKCJnZW5lcmljOiBhZGQgdGVzdCBmb3IgDQp0bXBmcyBQT1NJWCBBQ0xz IikgZm9ybWF0IGFuZCBvbmx5IGFkZCAgcmVncmVzc2lvbiB0ZXN0IGluIG5vcm1hbCANCnNpdHVh dGlvbiBpbnN0ZWFkIG9mIGluIGFkZGl0aW9uYWwgaWRtYXBwZWQgbW91bnQgYW5kIHVzZXJucyBz aXR1YXRpb24uDQoNClsxXWh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC9saW51 eC1mc2RldmVsL2xpc3QvP3Nlcmllcz02NTk1MzQNCg0KQmVzdCBSZWdhcmRzDQpZYW5nIFh1DQoN Cj4gVGhhbmtzLA0KPiBab3Jybw0KPiANCj4gWzFdDQo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2ZzdGVzdHMvMTY0OTc2MzIyNi0yMzI5LTQtZ2l0LXNlbmQtZW1haWwteHV5YW5nMjAxOC5qeUBm dWppdHN1LmNvbS8NCj4gDQo+PiAgIHNyYy92ZnMvaWRtYXBwZWQtbW91bnRzLmMgfCA0MjkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICAgc3JjL3Zmcy9pZG1hcHBl ZC1tb3VudHMuaCB8ICAgMSArDQo+PiAgIHNyYy92ZnMvdXRpbHMuYyAgICAgICAgICAgfCAgMTQg KysNCj4+ICAgc3JjL3Zmcy91dGlscy5oICAgICAgICAgICB8ICAgMSArDQo+PiAgIHNyYy92ZnMv dmZzdGVzdC5jICAgICAgICAgfCAyMDUgKysrKysrKysrKysrKysrKystDQo+PiAgIHRlc3RzL2dl bmVyaWMvNjkxICAgICAgICAgfCAgNDAgKysrKw0KPj4gICB0ZXN0cy9nZW5lcmljLzY5MS5vdXQg ICAgIHwgICAyICsNCj4+ICAgNyBmaWxlcyBjaGFuZ2VkLCA2OTEgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQ0KPj4gICBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvZ2VuZXJpYy82OTENCj4+ ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2dlbmVyaWMvNjkxLm91dA0KPj4NCj4+IGRpZmYg LS1naXQgYS9zcmMvdmZzL2lkbWFwcGVkLW1vdW50cy5jIGIvc3JjL3Zmcy9pZG1hcHBlZC1tb3Vu dHMuYw0KPj4gaW5kZXggNjMyOTdkNWYuLjcyZGU1MmNjIDEwMDY0NA0KPj4gLS0tIGEvc3JjL3Zm cy9pZG1hcHBlZC1tb3VudHMuYw0KPj4gKysrIGIvc3JjL3Zmcy9pZG1hcHBlZC1tb3VudHMuYw0K Pj4gQEAgLTc2NjQsNiArNzY2NCw0MjUgQEAgb3V0Og0KPj4gICAJcmV0dXJuIGZyZXQ7DQo+PiAg IH0NCj4+ICAgDQo+PiArc3RhdGljIGludCBzZXRnaWRfY3JlYXRlX3VtYXNrX2lkbWFwcGVkKGNv bnN0IHN0cnVjdCB2ZnN0ZXN0X2luZm8gKmluZm8pDQo+PiArew0KPj4gKwlpbnQgZnJldCA9IC0x Ow0KPj4gKwlpbnQgZmlsZTFfZmQgPSAtRUJBREYsIG9wZW5fdHJlZV9mZCA9IC1FQkFERjsNCj4+ ICsJc3RydWN0IG1vdW50X2F0dHIgYXR0ciA9IHsNCj4+ICsJCS5hdHRyX3NldCA9IE1PVU5UX0FU VFJfSURNQVAsDQo+PiArCX07DQo+PiArCXBpZF90IHBpZDsNCj4+ICsJaW50IHRtcGZpbGVfZmQg PSAtRUJBREY7DQo+PiArCWJvb2wgc3VwcG9ydGVkID0gZmFsc2U7DQo+PiArCWNoYXIgcGF0aFtQ QVRIX01BWF07DQo+PiArCW1vZGVfdCBtb2RlOw0KPj4gKw0KPj4gKwlpZiAoIWNhcHNfc3VwcG9y dGVkKCkpDQo+PiArCQlyZXR1cm4gMDsNCj4+ICsNCj4+ICsJaWYgKGZjaG1vZChpbmZvLT50X2Rp cjFfZmQsIFNfSVJVU1IgfA0KPj4gKwkJCSAgICAgIFNfSVdVU1IgfA0KPj4gKwkJCSAgICAgIFNf SVJHUlAgfA0KPj4gKwkJCSAgICAgIFNfSVdHUlAgfA0KPj4gKwkJCSAgICAgIFNfSVJPVEggfA0K Pj4gKwkJCSAgICAgIFNfSVdPVEggfA0KPj4gKwkJCSAgICAgIFNfSVhVU1IgfA0KPj4gKwkJCSAg ICAgIFNfSVhHUlAgfA0KPj4gKwkJCSAgICAgIFNfSVhPVEggfA0KPj4gKwkJCSAgICAgIFNfSVNH SUQpLCAwKSB7DQo+PiArCQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBmY2htb2QiKTsNCj4+ICsJCWdv dG8gb3V0Ow0KPj4gKwl9DQo+PiArDQo+PiArCS8qIFZlcmlmeSB0aGF0IHRoZSBzaWQgYml0cyBn b3QgcmFpc2VkLiAqLw0KPj4gKwlpZiAoIWlzX3NldGdpZChpbmZvLT50X2RpcjFfZmQsICIiLCBB VF9FTVBUWV9QQVRIKSkgew0KPj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogaXNfc2V0Z2lkIik7 DQo+PiArCQlnb3RvIG91dDsNCj4+ICsJfQ0KPj4gKw0KPj4gKwkvKiBDaGFuZ2luZyBtb3VudCBw cm9wZXJ0aWVzIG9uIGEgZGV0YWNoZWQgbW91bnQuICovDQo+PiArCWF0dHIudXNlcm5zX2ZkCT0g Z2V0X3VzZXJuc19mZCgwLCAxMDAwMCwgMTAwMDApOw0KPj4gKwlpZiAoYXR0ci51c2VybnNfZmQg PCAwKSB7DQo+PiArCQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBnZXRfdXNlcm5zX2ZkIik7DQo+PiAr CQlnb3RvIG91dDsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlvcGVuX3RyZWVfZmQgPSBzeXNfb3Blbl90 cmVlKGluZm8tPnRfZGlyMV9mZCwgIiIsDQo+PiArCQkJCSAgICAgQVRfRU1QVFlfUEFUSCB8DQo+ PiArCQkJCSAgICAgQVRfTk9fQVVUT01PVU5UIHwNCj4+ICsJCQkJICAgICBBVF9TWU1MSU5LX05P Rk9MTE9XIHwNCj4+ICsJCQkJICAgICBPUEVOX1RSRUVfQ0xPRVhFQyB8DQo+PiArCQkJCSAgICAg T1BFTl9UUkVFX0NMT05FKTsNCj4+ICsJaWYgKG9wZW5fdHJlZV9mZCA8IDApIHsNCj4+ICsJCWxv Z19zdGRlcnIoImZhaWx1cmU6IHN5c19vcGVuX3RyZWUiKTsNCj4+ICsJCWdvdG8gb3V0Ow0KPj4g Kwl9DQo+PiArDQo+PiArCWlmIChzeXNfbW91bnRfc2V0YXR0cihvcGVuX3RyZWVfZmQsICIiLCBB VF9FTVBUWV9QQVRILCAmYXR0ciwgc2l6ZW9mKGF0dHIpKSkgew0KPj4gKwkJbG9nX3N0ZGVycigi ZmFpbHVyZTogc3lzX21vdW50X3NldGF0dHIiKTsNCj4+ICsJCWdvdG8gb3V0Ow0KPj4gKwl9DQo+ PiArDQo+PiArCXN1cHBvcnRlZCA9IG9wZW5hdF90bXBmaWxlX3N1cHBvcnRlZChvcGVuX3RyZWVf ZmQpOw0KPj4gKw0KPj4gKwkvKiBPbmx5IHVtYXNrIHdpdGggU19JWEdSUCBiZWNhdXNlIGlub2Rl IHN0cmlwIFNfSVNHSUQgd2lsbCBjaGVjayBtb2RlDQo+PiArCSAqIHdoZXRoZXIgaGFzIGdyb3Vw IGV4ZWN1dGUgb3Igc2VhcmNoIHBlcm1pc3Npb24uDQo+PiArCSAqLw0KPj4gKwl1bWFzayhTX0lY R1JQKTsNCj4+ICsJbW9kZSA9IHVtYXNrKFNfSVhHUlApOw0KPj4gKwlpZiAoIShtb2RlICYgU19J WEdSUCkpDQo+PiArCQlkaWUoImZhaWx1cmU6IHVtYXNrIik7DQo+PiArDQo+PiArCQlwaWQgPSBm b3JrKCk7DQo+PiArCWlmIChwaWQgPCAwKSB7DQo+PiArCQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBm b3JrIik7DQo+PiArCQlnb3RvIG91dDsNCj4+ICsJfQ0KPj4gKwlpZiAocGlkID09IDApIHsNCj4+ ICsJCWlmICghc3dpdGNoX2lkcygxMDAwMCwgMTEwMDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTog c3dpdGNoIGZzaWRzIik7DQo+PiArDQo+PiArCQkvKiBjcmVhdGUgcmVndWxhciBmaWxlIHZpYSBv cGVuKCkgKi8NCj4+ICsJCWZpbGUxX2ZkID0gb3BlbmF0KG9wZW5fdHJlZV9mZCwgRklMRTEsIE9f Q1JFQVQgfCBPX0VYQ0wgfCBPX0NMT0VYRUMsIFNfSVhHUlAgfCBTX0lTR0lEKTsNCj4+ICsJCWlm IChmaWxlMV9mZCA8IDApDQo+PiArCQkJZGllKCJmYWlsdXJlOiBjcmVhdGUiKTsNCj4+ICsNCj4+ ICsJCS8qIE5laXRoZXIgaW5fZ3JvdXBfcCgpIG5vciBjYXBhYmxlX3dydF9pbm9kZV91aWRnaWQo KSBzbyBzZXRnaWQNCj4+ICsJCSAqIGJpdCBuZWVkcyB0byBiZSBzdHJpcHBlZC4NCj4+ICsJCSAq Lw0KPj4gKwkJaWYgKGlzX3NldGdpZChvcGVuX3RyZWVfZmQsIEZJTEUxLCAwKSkNCj4+ICsJCQlk aWUoImZhaWx1cmU6IGlzX3NldGdpZCIpOw0KPj4gKw0KPj4gKwkJaWYgKGlzX2l4Z3JwKG9wZW5f dHJlZV9mZCwgRklMRTEsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4+ ICsNCj4+ICsJCS8qIGNyZWF0ZSBkaXJlY3RvcnkgKi8NCj4+ICsJCWlmIChta2RpcmF0KG9wZW5f dHJlZV9mZCwgRElSMSwgMDAwMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBjcmVhdGUiKTsNCj4+ ICsNCj4+ICsJCWlmICh4ZnNfaXJpeF9zZ2lkX2luaGVyaXRfZW5hYmxlZChpbmZvLT50X2ZzdHlw ZSkpIHsNCj4+ICsJCQkvKiBXZSdyZSBub3QgaW5fZ3JvdXBfcCgpLiAqLw0KPj4gKwkJCWlmIChp c19zZXRnaWQob3Blbl90cmVlX2ZkLCBESVIxLCAwKSkNCj4+ICsJCQkJZGllKCJmYWlsdXJlOiBp c19zZXRnaWQiKTsNCj4+ICsJCX0gZWxzZSB7DQo+PiArCQkJLyogRGlyZWN0b3JpZXMgYWx3YXlz IGluaGVyaXQgdGhlIHNldGdpZCBiaXQuICovDQo+PiArCQkJaWYgKCFpc19zZXRnaWQob3Blbl90 cmVlX2ZkLCBESVIxLCAwKSkNCj4+ICsJCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsNCj4+ ICsJCX0NCj4+ICsNCj4+ICsJCWlmIChpc19peGdycChvcGVuX3RyZWVfZmQsIERJUjEsIDApKQ0K Pj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4+ICsNCj4+ICsJCS8qIGNyZWF0ZSBh IHNwZWNpYWwgZmlsZSB2aWEgbWtub2RhdCgpIHZmc19jcmVhdGUgKi8NCj4+ICsJCWlmIChta25v ZGF0KG9wZW5fdHJlZV9mZCwgRklMRTIsIFNfSUZSRUcgfCBTX0lTR0lEIHwgU19JWEdSUCwgMCkp DQo+PiArCQkJZGllKCJmYWlsdXJlOiBta25vZGF0Iik7DQo+PiArDQo+PiArCQlpZiAoaXNfc2V0 Z2lkKG9wZW5fdHJlZV9mZCwgRklMRTIsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfc2V0 Z2lkIik7DQo+PiArDQo+PiArCQlpZiAoaXNfaXhncnAob3Blbl90cmVlX2ZkLCBGSUxFMiwgMCkp DQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19peGdycCIpOw0KPj4gKw0KPj4gKwkJLyogY3JlYXRl IGEgd2hpdGVvdXQgZGV2aWNlIHZpYSBta25vZGF0KCkgdmZzX21rbm9kICovDQo+PiArCQlpZiAo bWtub2RhdChvcGVuX3RyZWVfZmQsIENIUkRFVjEsIFNfSUZDSFIgfCBTX0lTR0lEIHwgU19JWEdS UCwgMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBta25vZGF0Iik7DQo+PiArDQo+PiArCQlpZiAo aXNfc2V0Z2lkKG9wZW5fdHJlZV9mZCwgQ0hSREVWMSwgMCkpDQo+PiArCQkJZGllKCJmYWlsdXJl OiBpc19zZXRnaWQiKTsNCj4+ICsNCj4+ICsJCWlmIChpc19peGdycChvcGVuX3RyZWVfZmQsIENI UkRFVjEsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4+ICsNCj4+ICsJ CS8qDQo+PiArCQkgKiBJbiBzZXRnaWQgZGlyZWN0b3JpZXMgbmV3bHkgY3JlYXRlZCBmaWxlcyBh bHdheXMgaW5oZXJpdCB0aGUNCj4+ICsJCSAqIGdpZCBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0b3J5 LiBWZXJpZnkgdGhhdCB0aGUgZmlsZSBpcyBvd25lZA0KPj4gKwkJICogYnkgZ2lkIDEwMDAwLCBu b3QgYnkgZ2lkIDExMDAwLg0KPj4gKwkJICovDQo+PiArCQlpZiAoIWV4cGVjdGVkX3VpZF9naWQo b3Blbl90cmVlX2ZkLCBGSUxFMSwgMCwgMTAwMDAsIDEwMDAwKSkNCj4+ICsJCQlkaWUoImZhaWx1 cmU6IGNoZWNrIG93bmVyc2hpcCIpOw0KPj4gKw0KPj4gKwkJLyoNCj4+ICsJCSAqIEluIHNldGdp ZCBkaXJlY3RvcmllcyBuZXdseSBjcmVhdGVkIGRpcmVjdG9yaWVzIGFsd2F5cw0KPj4gKwkJICog aW5oZXJpdCB0aGUgZ2lkIGZyb20gdGhlIHBhcmVudCBkaXJlY3RvcnkuIFZlcmlmeSB0aGF0IHRo ZQ0KPj4gKwkJICogZGlyZWN0b3J5IGlzIG93bmVkIGJ5IGdpZCAxMDAwMCwgbm90IGJ5IGdpZCAx MTAwMC4NCj4+ICsJCSAqLw0KPj4gKwkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKG9wZW5fdHJlZV9m ZCwgRElSMSwgMCwgMTAwMDAsIDEwMDAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNoZWNrIG93 bmVyc2hpcCIpOw0KPj4gKw0KPj4gKwkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKG9wZW5fdHJlZV9m ZCwgRklMRTIsIDAsIDEwMDAwLCAxMDAwMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBjaGVjayBv d25lcnNoaXAiKTsNCj4+ICsNCj4+ICsJCWlmICghZXhwZWN0ZWRfdWlkX2dpZChvcGVuX3RyZWVf ZmQsIENIUkRFVjEsIDAsIDEwMDAwLCAxMDAwMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBjaGVj ayBvd25lcnNoaXAiKTsNCj4+ICsNCj4+ICsJCWlmICh1bmxpbmthdChvcGVuX3RyZWVfZmQsIEZJ TEUxLCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGRlbGV0ZSIpOw0KPj4gKw0KPj4gKwkJaWYg KHVubGlua2F0KG9wZW5fdHJlZV9mZCwgRElSMSwgQVRfUkVNT1ZFRElSKSkNCj4+ICsJCQlkaWUo ImZhaWx1cmU6IGRlbGV0ZSIpOw0KPj4gKw0KPj4gKwkJaWYgKHVubGlua2F0KG9wZW5fdHJlZV9m ZCwgRklMRTIsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+PiArDQo+PiAr CQlpZiAodW5saW5rYXQob3Blbl90cmVlX2ZkLCBDSFJERVYxLCAwKSkNCj4+ICsJCQlkaWUoImZh aWx1cmU6IGRlbGV0ZSIpOw0KPj4gKw0KPj4gKwkJLyogY3JlYXRlIHRtcGZpbGUgdmlhIGZpbGVz eXN0ZW0gdG1wZmlsZSBhcGkgKi8NCj4+ICsJCWlmIChzdXBwb3J0ZWQpIHsNCj4+ICsJCQl0bXBm aWxlX2ZkID0gb3BlbmF0KG9wZW5fdHJlZV9mZCwgIi4iLCBPX1RNUEZJTEUgfCBPX1JEV1IsIFNf SVhHUlAgfCBTX0lTR0lEKTsNCj4+ICsJCQlpZiAodG1wZmlsZV9mZCA8IDApDQo+PiArCQkJCWRp ZSgiZmFpbHVyZTogY3JlYXRlIik7DQo+PiArCQkJLyogbGluayB0aGUgdGVtcG9yYXJ5IGZpbGUg aW50byB0aGUgZmlsZXN5c3RlbSwgbWFraW5nIGl0IHBlcm1hbmVudCAqLw0KPj4gKwkJCXNucHJp bnRmKHBhdGgsIFBBVEhfTUFYLCAgIi9wcm9jL3NlbGYvZmQvJWQiLCB0bXBmaWxlX2ZkKTsNCj4+ ICsJCQlpZiAobGlua2F0KEFUX0ZEQ1dELCBwYXRoLCBvcGVuX3RyZWVfZmQsIEZJTEUzLCBBVF9T WU1MSU5LX0ZPTExPVykpDQo+PiArCQkJCWRpZSgiZmFpbHVyZTogbGlua2F0Iik7DQo+PiArCQkJ aWYgKGNsb3NlKHRtcGZpbGVfZmQpKQ0KPj4gKwkJCQlkaWUoImZhaWx1cmU6IGNsb3NlIik7DQo+ PiArCQkJaWYgKGlzX3NldGdpZChvcGVuX3RyZWVfZmQsIEZJTEUzLCAwKSkNCj4+ICsJCQkJZGll KCJmYWlsdXJlOiBpc19zZXRnaWQiKTsNCj4+ICsJCQlpZiAoaXNfaXhncnAob3Blbl90cmVlX2Zk LCBGSUxFMywgMCkpDQo+PiArCQkJCWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4+ICsJCQlp ZiAoIWV4cGVjdGVkX3VpZF9naWQob3Blbl90cmVlX2ZkLCBGSUxFMywgMCwgMTAwMDAsIDEwMDAw KSkNCj4+ICsJCQkJZGllKCJmYWlsdXJlOiBjaGVjayBvd25lcnNoaXAiKTsNCj4+ICsJCQlpZiAo dW5saW5rYXQob3Blbl90cmVlX2ZkLCBGSUxFMywgMCkpDQo+PiArCQkJCWRpZSgiZmFpbHVyZTog ZGVsZXRlIik7DQo+PiArCQl9DQo+PiArDQo+PiArCQlleGl0KEVYSVRfU1VDQ0VTUyk7DQo+PiAr CX0NCj4+ICsJaWYgKHdhaXRfZm9yX3BpZChwaWQpKQ0KPj4gKwkJZ290byBvdXQ7DQo+PiArDQo+ PiArCWZyZXQgPSAwOw0KPj4gKwlsb2dfZGVidWcoIlJhbiB0ZXN0Iik7DQo+PiArb3V0Og0KPj4g KwlzYWZlX2Nsb3NlKGF0dHIudXNlcm5zX2ZkKTsNCj4+ICsJc2FmZV9jbG9zZShmaWxlMV9mZCk7 DQo+PiArCXNhZmVfY2xvc2Uob3Blbl90cmVlX2ZkKTsNCj4+ICsNCj4+ICsJcmV0dXJuIGZyZXQ7 DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgc2V0Z2lkX2NyZWF0ZV91bWFza19pZG1hcHBl ZF9pbl91c2VybnMoY29uc3Qgc3RydWN0IHZmc3Rlc3RfaW5mbyAqaW5mbykNCj4+ICt7DQo+PiAr CWludCBmcmV0ID0gLTE7DQo+PiArCWludCBmaWxlMV9mZCA9IC1FQkFERiwgb3Blbl90cmVlX2Zk ID0gLUVCQURGOw0KPj4gKwlzdHJ1Y3QgbW91bnRfYXR0ciBhdHRyID0gew0KPj4gKwkJLmF0dHJf c2V0ID0gTU9VTlRfQVRUUl9JRE1BUCwNCj4+ICsJfTsNCj4+ICsJcGlkX3QgcGlkOw0KPj4gKwlp bnQgdG1wZmlsZV9mZCA9IC1FQkFERjsNCj4+ICsJYm9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsNCj4+ ICsJY2hhciBwYXRoW1BBVEhfTUFYXTsNCj4+ICsJbW9kZV90IG1vZGU7DQo+PiArDQo+PiArCWlm ICghY2Fwc19zdXBwb3J0ZWQoKSkNCj4+ICsJCXJldHVybiAwOw0KPj4gKw0KPj4gKwlpZiAoZmNo bW9kKGluZm8tPnRfZGlyMV9mZCwgU19JUlVTUiB8DQo+PiArCQkJICAgICAgU19JV1VTUiB8DQo+ PiArCQkJICAgICAgU19JUkdSUCB8DQo+PiArCQkJICAgICAgU19JV0dSUCB8DQo+PiArCQkJICAg ICAgU19JUk9USCB8DQo+PiArCQkJICAgICAgU19JV09USCB8DQo+PiArCQkJICAgICAgU19JWFVT UiB8DQo+PiArCQkJICAgICAgU19JWEdSUCB8DQo+PiArCQkJICAgICAgU19JWE9USCB8DQo+PiAr CQkJICAgICAgU19JU0dJRCksIDApIHsNCj4+ICsJCWxvZ19zdGRlcnIoImZhaWx1cmU6IGZjaG1v ZCIpOw0KPj4gKwkJZ290byBvdXQ7DQo+PiArCX0NCj4+ICsNCj4+ICsJLyogVmVyaWZ5IHRoYXQg dGhlIHNpZCBiaXRzIGdvdCByYWlzZWQuICovDQo+PiArCWlmICghaXNfc2V0Z2lkKGluZm8tPnRf ZGlyMV9mZCwgIiIsIEFUX0VNUFRZX1BBVEgpKSB7DQo+PiArCQlsb2dfc3RkZXJyKCJmYWlsdXJl OiBpc19zZXRnaWQiKTsNCj4+ICsJCWdvdG8gb3V0Ow0KPj4gKwl9DQo+PiArDQo+PiArCS8qIENo YW5naW5nIG1vdW50IHByb3BlcnRpZXMgb24gYSBkZXRhY2hlZCBtb3VudC4gKi8NCj4+ICsJYXR0 ci51c2VybnNfZmQJPSBnZXRfdXNlcm5zX2ZkKDAsIDEwMDAwLCAxMDAwMCk7DQo+PiArCWlmIChh dHRyLnVzZXJuc19mZCA8IDApIHsNCj4+ICsJCWxvZ19zdGRlcnIoImZhaWx1cmU6IGdldF91c2Vy bnNfZmQiKTsNCj4+ICsJCWdvdG8gb3V0Ow0KPj4gKwl9DQo+PiArDQo+PiArCW9wZW5fdHJlZV9m ZCA9IHN5c19vcGVuX3RyZWUoaW5mby0+dF9kaXIxX2ZkLCAiIiwNCj4+ICsJCQkJICAgICBBVF9F TVBUWV9QQVRIIHwNCj4+ICsJCQkJICAgICBBVF9OT19BVVRPTU9VTlQgfA0KPj4gKwkJCQkgICAg IEFUX1NZTUxJTktfTk9GT0xMT1cgfA0KPj4gKwkJCQkgICAgIE9QRU5fVFJFRV9DTE9FWEVDIHwN Cj4+ICsJCQkJICAgICBPUEVOX1RSRUVfQ0xPTkUpOw0KPj4gKwlpZiAob3Blbl90cmVlX2ZkIDwg MCkgew0KPj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogc3lzX29wZW5fdHJlZSIpOw0KPj4gKwkJ Z290byBvdXQ7DQo+PiArCX0NCj4+ICsNCj4+ICsJaWYgKHN5c19tb3VudF9zZXRhdHRyKG9wZW5f dHJlZV9mZCwgIiIsIEFUX0VNUFRZX1BBVEgsICZhdHRyLCBzaXplb2YoYXR0cikpKSB7DQo+PiAr CQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBzeXNfbW91bnRfc2V0YXR0ciIpOw0KPj4gKwkJZ290byBv dXQ7DQo+PiArCX0NCj4+ICsNCj4+ICsJc3VwcG9ydGVkID0gb3BlbmF0X3RtcGZpbGVfc3VwcG9y dGVkKG9wZW5fdHJlZV9mZCk7DQo+PiArDQo+PiArCS8qIE9ubHkgdW1hc2sgd2l0aCBTX0lYR1JQ IGJlY2F1c2UgaW5vZGUgc3RyaXAgU19JU0dJRCB3aWxsIGNoZWNrIG1vZGUNCj4+ICsJICogd2hl dGhlciBoYXMgZ3JvdXAgZXhlY3V0ZSBvciBzZWFyY2ggcGVybWlzc2lvbi4NCj4+ICsJICovDQo+ PiArCXVtYXNrKFNfSVhHUlApOw0KPj4gKwltb2RlID0gdW1hc2soU19JWEdSUCk7DQo+PiArCWlm ICghKG1vZGUgJiBTX0lYR1JQKSkNCj4+ICsJCWRpZSgiZmFpbHVyZTogdW1hc2siKTsNCj4+ICsN Cj4+ICsJLyoNCj4+ICsJICogQmVsb3cgd2UgdmVyaWZ5IHRoYXQgc2V0Z2lkIGluaGVyaXRhbmNl IGZvciBhIG5ld2x5IGNyZWF0ZWQgZmlsZSBvcg0KPj4gKwkgKiBkaXJlY3Rvcnkgd29ya3MgY29y cmVjdGx5LiBBcyBwYXJ0IG9mIHRoaXMgd2UgbmVlZCB0byB2ZXJpZnkgdGhhdA0KPj4gKwkgKiBu ZXdseSBjcmVhdGVkIGZpbGVzIG9yIGRpcmVjdG9yaWVzIGluaGVyaXQgdGhlaXIgZ2lkIGZyb20g dGhlaXINCj4+ICsJICogcGFyZW50IGRpcmVjdG9yeS4gU28gd2UgY2hhbmdlIHRoZSBwYXJlbnQg ZGlyZWN0b3JpZSdzIGdpZCB0byAxMDAwDQo+PiArCSAqIGFuZCBjcmVhdGUgYSBmaWxlIHdpdGgg ZnN7Zyx1fWlkIDAgYW5kIHZlcmlmeSB0aGF0IHRoZSBuZXdseSBjcmVhdGVkDQo+PiArCSAqIGZp bGUgYW5kIGRpcmVjdG9yeSBpbmhlcml0IGdpZCAxMDAwLCBub3QgMC4NCj4+ICsJICovDQo+PiAr CWlmIChmY2hvd25hdChpbmZvLT50X2RpcjFfZmQsICIiLCAtMSwgMTAwMCwgQVRfU1lNTElOS19O T0ZPTExPVyB8IEFUX0VNUFRZX1BBVEgpKSB7DQo+PiArCQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBm Y2hvd25hdCIpOw0KPj4gKwkJZ290byBvdXQ7DQo+PiArCX0NCj4+ICsNCj4+ICsJcGlkID0gZm9y aygpOw0KPj4gKwlpZiAocGlkIDwgMCkgew0KPj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogZm9y ayIpOw0KPj4gKwkJZ290byBvdXQ7DQo+PiArCX0NCj4+ICsJaWYgKHBpZCA9PSAwKSB7DQo+PiAr CQlpZiAoIWNhcHNfc3VwcG9ydGVkKCkpIHsNCj4+ICsJCQlsb2dfZGVidWcoInNraXA6IGNhcGFi aWxpdHkgbGlicmFyeSBub3QgaW5zdGFsbGVkIik7DQo+PiArCQkJZXhpdChFWElUX1NVQ0NFU1Mp Ow0KPj4gKwkJfQ0KPj4gKw0KPj4gKwkJaWYgKCFzd2l0Y2hfdXNlcm5zKGF0dHIudXNlcm5zX2Zk LCAwLCAwLCBmYWxzZSkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBzd2l0Y2hfdXNlcm5zIik7DQo+ PiArDQo+PiArCQlpZiAoIWNhcHNfZG93bl9mc2V0aWQoKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6 IGNhcHNfZG93bl9mc2V0aWQiKTsNCj4+ICsNCj4+ICsJCS8qIGNyZWF0ZSByZWd1bGFyIGZpbGUg dmlhIG9wZW4oKSAqLw0KPj4gKwkJZmlsZTFfZmQgPSBvcGVuYXQob3Blbl90cmVlX2ZkLCBGSUxF MSwgT19DUkVBVCB8IE9fRVhDTCB8IE9fQ0xPRVhFQywgU19JWEdSUCB8IFNfSVNHSUQpOw0KPj4g KwkJaWYgKGZpbGUxX2ZkIDwgMCkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNyZWF0ZSIpOw0KPj4g Kw0KPj4gKwkJLyogTmVpdGhlciBpbl9ncm91cF9wKCkgbm9yIGNhcGFibGVfd3J0X2lub2RlX3Vp ZGdpZCgpIHNvIHNldGdpZA0KPj4gKwkJICogYml0IG5lZWRzIHRvIGJlIHN0cmlwcGVkLg0KPj4g KwkJICovDQo+PiArCQlpZiAoaXNfc2V0Z2lkKG9wZW5fdHJlZV9mZCwgRklMRTEsIDApKQ0KPj4g KwkJCWRpZSgiZmFpbHVyZTogaXNfc2V0Z2lkIik7DQo+PiArDQo+PiArCQlpZiAoaXNfaXhncnAo b3Blbl90cmVlX2ZkLCBGSUxFMSwgMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19peGdycCIp Ow0KPj4gKw0KPj4gKwkJLyogY3JlYXRlIGRpcmVjdG9yeSAqLw0KPj4gKwkJaWYgKG1rZGlyYXQo b3Blbl90cmVlX2ZkLCBESVIxLCAwMDAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNyZWF0ZSIp Ow0KPj4gKw0KPj4gKwkJaWYgKHhmc19pcml4X3NnaWRfaW5oZXJpdF9lbmFibGVkKGluZm8tPnRf ZnN0eXBlKSkgew0KPj4gKwkJCS8qIFdlJ3JlIG5vdCBpbl9ncm91cF9wKCkuICovDQo+PiArCQkJ aWYgKGlzX3NldGdpZChvcGVuX3RyZWVfZmQsIERJUjEsIDApKQ0KPj4gKwkJCQlkaWUoImZhaWx1 cmU6IGlzX3NldGdpZCIpOw0KPj4gKwkJfSBlbHNlIHsNCj4+ICsJCQkvKiBEaXJlY3RvcmllcyBh bHdheXMgaW5oZXJpdCB0aGUgc2V0Z2lkIGJpdC4gKi8NCj4+ICsJCQlpZiAoIWlzX3NldGdpZChv cGVuX3RyZWVfZmQsIERJUjEsIDApKQ0KPj4gKwkJCQlkaWUoImZhaWx1cmU6IGlzX3NldGdpZCIp Ow0KPj4gKwkJfQ0KPj4gKw0KPj4gKwkJaWYgKGlzX2l4Z3JwKG9wZW5fdHJlZV9mZCwgRElSMSwg MCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19peGdycCIpOw0KPj4gKw0KPj4gKwkJLyogY3Jl YXRlIGEgc3BlY2lhbCBmaWxlIHZpYSBta25vZGF0KCkgdmZzX2NyZWF0ZSAqLw0KPj4gKwkJaWYg KG1rbm9kYXQob3Blbl90cmVlX2ZkLCBGSUxFMiwgU19JRlJFRyB8IFNfSVNHSUQgfCBTX0lYR1JQ LCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IG1rbm9kYXQiKTsNCj4+ICsNCj4+ICsJCWlmIChp c19zZXRnaWQob3Blbl90cmVlX2ZkLCBGSUxFMiwgMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBp c19zZXRnaWQiKTsNCj4+ICsNCj4+ICsJCWlmIChpc19peGdycChvcGVuX3RyZWVfZmQsIEZJTEUy LCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGlzX2l4Z3JwIik7DQo+PiArDQo+PiArCQkvKiBj cmVhdGUgYSB3aGl0ZW91dCBkZXZpY2UgdmlhIG1rbm9kYXQoKSB2ZnNfbWtub2QgKi8NCj4+ICsJ CWlmIChta25vZGF0KG9wZW5fdHJlZV9mZCwgQ0hSREVWMSwgU19JRkNIUiB8IFNfSVNHSUQgfCBT X0lYR1JQLCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IG1rbm9kYXQiKTsNCj4+ICsNCj4+ICsJ CWlmIChpc19zZXRnaWQob3Blbl90cmVlX2ZkLCBDSFJERVYxLCAwKSkNCj4+ICsJCQlkaWUoImZh aWx1cmU6IGlzX3NldGdpZCIpOw0KPj4gKw0KPj4gKwkJaWYgKGlzX2l4Z3JwKG9wZW5fdHJlZV9m ZCwgQ0hSREVWMSwgMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19peGdycCIpOw0KPj4gKw0K Pj4gKwkJLyoNCj4+ICsJCSAqIEluIHNldGdpZCBkaXJlY3RvcmllcyBuZXdseSBjcmVhdGVkIGZp bGVzIGFsd2F5cyBpbmhlcml0IHRoZQ0KPj4gKwkJICogZ2lkIGZyb20gdGhlIHBhcmVudCBkaXJl Y3RvcnkuIFZlcmlmeSB0aGF0IHRoZSBmaWxlIGlzIG93bmVkDQo+PiArCQkgKiBieSBnaWQgMTAw MCwgbm90IGJ5IGdpZCAwLg0KPj4gKwkJICovDQo+PiArCQlpZiAoIWV4cGVjdGVkX3VpZF9naWQo b3Blbl90cmVlX2ZkLCBGSUxFMSwgMCwgMCwgMTAwMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBj aGVjayBvd25lcnNoaXAiKTsNCj4+ICsNCj4+ICsJCS8qDQo+PiArCQkgKiBJbiBzZXRnaWQgZGly ZWN0b3JpZXMgbmV3bHkgY3JlYXRlZCBkaXJlY3RvcmllcyBhbHdheXMNCj4+ICsJCSAqIGluaGVy aXQgdGhlIGdpZCBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0b3J5LiBWZXJpZnkgdGhhdCB0aGUNCj4+ ICsJCSAqIGRpcmVjdG9yeSBpcyBvd25lZCBieSBnaWQgMTAwMCwgbm90IGJ5IGdpZCAwLg0KPj4g KwkJICovDQo+PiArCQlpZiAoIWV4cGVjdGVkX3VpZF9naWQob3Blbl90cmVlX2ZkLCBESVIxLCAw LCAwLCAxMDAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNoZWNrIG93bmVyc2hpcCIpOw0KPj4g Kw0KPj4gKwkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKG9wZW5fdHJlZV9mZCwgRklMRTIsIDAsIDAs IDEwMDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogY2hlY2sgb3duZXJzaGlwIik7DQo+PiArDQo+ PiArCQlpZiAoIWV4cGVjdGVkX3VpZF9naWQob3Blbl90cmVlX2ZkLCBDSFJERVYxLCAwLCAwLCAx MDAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNoZWNrIG93bmVyc2hpcCIpOw0KPj4gKw0KPj4g KwkJaWYgKHVubGlua2F0KG9wZW5fdHJlZV9mZCwgRklMRTEsIDApKQ0KPj4gKwkJCWRpZSgiZmFp bHVyZTogZGVsZXRlIik7DQo+PiArDQo+PiArCQlpZiAodW5saW5rYXQob3Blbl90cmVlX2ZkLCBE SVIxLCBBVF9SRU1PVkVESVIpKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+PiAr DQo+PiArCQlpZiAodW5saW5rYXQob3Blbl90cmVlX2ZkLCBGSUxFMiwgMCkpDQo+PiArCQkJZGll KCJmYWlsdXJlOiBkZWxldGUiKTsNCj4+ICsNCj4+ICsJCWlmICh1bmxpbmthdChvcGVuX3RyZWVf ZmQsIENIUkRFVjEsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+PiArDQo+ PiArCQkvKiBjcmVhdGUgdG1wZmlsZSB2aWEgZmlsZXN5c3RlbSB0bXBmaWxlIGFwaSAqLw0KPj4g KwkJaWYgKHN1cHBvcnRlZCkgew0KPj4gKwkJCXRtcGZpbGVfZmQgPSBvcGVuYXQob3Blbl90cmVl X2ZkLCAiLiIsIE9fVE1QRklMRSB8IE9fUkRXUiwgU19JWEdSUCB8IFNfSVNHSUQpOw0KPj4gKwkJ CWlmICh0bXBmaWxlX2ZkIDwgMCkNCj4+ICsJCQkJZGllKCJmYWlsdXJlOiBjcmVhdGUiKTsNCj4+ ICsJCQkvKiBsaW5rIHRoZSB0ZW1wb3JhcnkgZmlsZSBpbnRvIHRoZSBmaWxlc3lzdGVtLCBtYWtp bmcgaXQgcGVybWFuZW50ICovDQo+PiArCQkJc25wcmludGYocGF0aCwgUEFUSF9NQVgsICAiL3By b2Mvc2VsZi9mZC8lZCIsIHRtcGZpbGVfZmQpOw0KPj4gKwkJCWlmIChsaW5rYXQoQVRfRkRDV0Qs IHBhdGgsIG9wZW5fdHJlZV9mZCwgRklMRTMsIEFUX1NZTUxJTktfRk9MTE9XKSkNCj4+ICsJCQkJ ZGllKCJmYWlsdXJlOiBsaW5rYXQiKTsNCj4+ICsJCQlpZiAoY2xvc2UodG1wZmlsZV9mZCkpDQo+ PiArCQkJCWRpZSgiZmFpbHVyZTogY2xvc2UiKTsNCj4+ICsJCQlpZiAoaXNfc2V0Z2lkKG9wZW5f dHJlZV9mZCwgRklMRTMsIDApKQ0KPj4gKwkJCQlkaWUoImZhaWx1cmU6IGlzX3NldGdpZCIpOw0K Pj4gKwkJCWlmIChpc19peGdycChvcGVuX3RyZWVfZmQsIEZJTEUzLCAwKSkNCj4+ICsJCQkJZGll KCJmYWlsdXJlOiBpc19peGdycCIpOw0KPj4gKwkJCWlmICghZXhwZWN0ZWRfdWlkX2dpZChvcGVu X3RyZWVfZmQsIEZJTEUzLCAwLCAwLCAxMDAwKSkNCj4+ICsJCQkJZGllKCJmYWlsdXJlOiBjaGVj ayBvd25lcnNoaXAiKTsNCj4+ICsJCQlpZiAodW5saW5rYXQob3Blbl90cmVlX2ZkLCBGSUxFMywg MCkpDQo+PiArCQkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+PiArCQl9DQo+PiArDQo+PiAr CQlleGl0KEVYSVRfU1VDQ0VTUyk7DQo+PiArCX0NCj4+ICsJaWYgKHdhaXRfZm9yX3BpZChwaWQp KQ0KPj4gKwkJZ290byBvdXQ7DQo+PiArDQo+PiArCWZyZXQgPSAwOw0KPj4gKwlsb2dfZGVidWco IlJhbiB0ZXN0Iik7DQo+PiArb3V0Og0KPj4gKwlzYWZlX2Nsb3NlKGF0dHIudXNlcm5zX2ZkKTsN Cj4+ICsJc2FmZV9jbG9zZShmaWxlMV9mZCk7DQo+PiArCXNhZmVfY2xvc2Uob3Blbl90cmVlX2Zk KTsNCj4+ICsNCj4+ICsJcmV0dXJuIGZyZXQ7DQo+PiArfQ0KPj4gKw0KPj4gICBzdGF0aWMgY29u c3Qgc3RydWN0IHRlc3Rfc3RydWN0IHRfaWRtYXBwZWRfbW91bnRzW10gPSB7DQo+PiAgIAl7IGFj bHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJ1ZSwgICAicG9zaXggYWNscyBvbiByZWd1bGFyIG1vdW50cyIsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KPj4g ICAJeyBjcmVhdGVfaW5fdXNlcm5zLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRydWUsICAgImNyZWF0ZSBvcGVyYXRpb25zIGluIHVzZXIgbmFtZXNwYWNlIiwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSwNCj4+IEBAIC03NzQ1LDMgKzgxNjQsMTMgQEAgY29uc3Qgc3RydWN0IHRlc3Rfc3VpdGUgc19z ZXR4YXR0cl9maXhfNzA1MTkxYjAzZDUwID0gew0KPj4gICAJLnRlc3RzID0gdF9zZXR4YXR0cl9m aXhfNzA1MTkxYjAzZDUwLA0KPj4gICAJLm5yX3Rlc3RzID0gQVJSQVlfU0laRSh0X3NldHhhdHRy X2ZpeF83MDUxOTFiMDNkNTApLA0KPj4gICB9Ow0KPj4gKw0KPj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgdGVzdF9zdHJ1Y3QgdF9zZXRnaWRfY3JlYXRlX3VtYXNrX2lkbWFwcGVkW10gPSB7DQo+PiAr CXsgc2V0Z2lkX2NyZWF0ZV91bWFza19pZG1hcHBlZCwJCQkJCVRfUkVRVUlSRV9JRE1BUFBFRF9N T1VOVFMsCSJjcmVhdGUgb3BlcmF0aW9ucyBieSB1c2luZyB1bWFzayBpbiBkaXJlY3RvcmllcyB3 aXRoIHNldGdpZCBiaXQgc2V0IG9uIGlkbWFwcGVkIG1vdW50IiwJCX0sDQo+PiArCXsgc2V0Z2lk X2NyZWF0ZV91bWFza19pZG1hcHBlZF9pbl91c2VybnMsCQkJVF9SRVFVSVJFX0lETUFQUEVEX01P VU5UUywJImNyZWF0ZSBvcGVyYXRpb25zIGJ5IHVzaW5nIHVtYXNrIGluIGRpcmVjdG9yaWVzIHdp dGggc2V0Z2lkIGJpdCBzZXQgb24gaWRtYXBwZWQgbW91bnQgaW5zaWRlIHVzZXJucyIsCX0sDQo+ PiArfTsNCj4+ICsNCj4+ICtjb25zdCBzdHJ1Y3QgdGVzdF9zdWl0ZSBzX3NldGdpZF9jcmVhdGVf dW1hc2tfaWRtYXBwZWQgPSB7DQo+PiArCS50ZXN0cyA9IHRfc2V0Z2lkX2NyZWF0ZV91bWFza19p ZG1hcHBlZCwNCj4+ICsJLm5yX3Rlc3RzID0gQVJSQVlfU0laRSh0X3NldGdpZF9jcmVhdGVfdW1h c2tfaWRtYXBwZWQpLA0KPj4gK307DQo+PiBkaWZmIC0tZ2l0IGEvc3JjL3Zmcy9pZG1hcHBlZC1t b3VudHMuaCBiL3NyYy92ZnMvaWRtYXBwZWQtbW91bnRzLmgNCj4+IGluZGV4IGZmMjFlYTJjLi5h MzMyNDM5ZiAxMDA2NDQNCj4+IC0tLSBhL3NyYy92ZnMvaWRtYXBwZWQtbW91bnRzLmgNCj4+ICsr KyBiL3NyYy92ZnMvaWRtYXBwZWQtbW91bnRzLmgNCj4+IEBAIC0xNCw1ICsxNCw2IEBAIGV4dGVy biBjb25zdCBzdHJ1Y3QgdGVzdF9zdWl0ZSBzX2ZzY2Fwc19pbl9hbmNlc3Rvcl91c2VybnM7DQo+ PiAgIGV4dGVybiBjb25zdCBzdHJ1Y3QgdGVzdF9zdWl0ZSBzX25lc3RlZF91c2VybnM7DQo+PiAg IGV4dGVybiBjb25zdCBzdHJ1Y3QgdGVzdF9zdWl0ZSBzX3NldGF0dHJfZml4Xzk2ODIxOTcwODEw ODsNCj4+ICAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB0ZXN0X3N1aXRlIHNfc2V0eGF0dHJfZml4Xzcw NTE5MWIwM2Q1MDsNCj4+ICtleHRlcm4gY29uc3Qgc3RydWN0IHRlc3Rfc3VpdGUgc19zZXRnaWRf Y3JlYXRlX3VtYXNrX2lkbWFwcGVkOw0KPj4gICANCj4+ICAgI2VuZGlmIC8qIF9fSURNQVBQRURf TU9VTlRTX0ggKi8NCj4+IGRpZmYgLS1naXQgYS9zcmMvdmZzL3V0aWxzLmMgYi9zcmMvdmZzL3V0 aWxzLmMNCj4+IGluZGV4IDEzODhlZGRhLi42ZGI3YTExZCAxMDA2NDQNCj4+IC0tLSBhL3NyYy92 ZnMvdXRpbHMuYw0KPj4gKysrIGIvc3JjL3Zmcy91dGlscy5jDQo+PiBAQCAtODA5LDYgKzgwOSwy MCBAQCBib29sIGlzX3N0aWNreShpbnQgZGZkLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgZmxhZ3Mp DQo+PiAgIAlyZXR1cm4gKHN0LnN0X21vZGUgJiBTX0lTVlRYKSA+IDA7DQo+PiAgIH0NCj4+ICAg DQo+PiArLyppc19peGdycCAtIGNoZWNrIHdoZXRoZXIgZmlsZSBvciBkaXJlY3RvcnkgaXMgU19J WEdSUCAqLw0KPj4gK2Jvb2wgaXNfaXhncnAoaW50IGRmZCwgY29uc3QgY2hhciAqcGF0aCwgaW50 IGZsYWdzKQ0KPj4gK3sNCj4+ICsJaW50IHJldDsNCj4+ICsJc3RydWN0IHN0YXQgc3Q7DQo+PiAr DQo+PiArCXJldCA9IGZzdGF0YXQoZGZkLCBwYXRoLCAmc3QsIGZsYWdzKTsNCj4+ICsJaWYgKHJl dCA8IDApDQo+PiArCQlyZXR1cm4gZmFsc2U7DQo+PiArDQo+PiArCWVycm5vID0gMDsgLyogRG9u J3QgcmVwb3J0IG1pc2xlYWRpbmcgZXJybm8uICovDQo+PiArCXJldHVybiAoc3Quc3RfbW9kZSAm IFNfSVhHUlApOw0KPj4gK30NCj4+ICsNCj4+ICAgYm9vbCBzd2l0Y2hfcmVzaWRzKHVpZF90IHVp ZCwgZ2lkX3QgZ2lkKQ0KPj4gICB7DQo+PiAgIAlpZiAoc2V0cmVzZ2lkKGdpZCwgZ2lkLCBnaWQp KQ0KPj4gZGlmZiAtLWdpdCBhL3NyYy92ZnMvdXRpbHMuaCBiL3NyYy92ZnMvdXRpbHMuaA0KPj4g aW5kZXggN2ZiNzAyZmQuLmMwZGJlMzcwIDEwMDY0NA0KPj4gLS0tIGEvc3JjL3Zmcy91dGlscy5o DQo+PiArKysgYi9zcmMvdmZzL3V0aWxzLmgNCj4+IEBAIC0zNjgsNiArMzY4LDcgQEAgZXh0ZXJu IGJvb2wgZXhwZWN0ZWRfZmlsZV9zaXplKGludCBkZmQsIGNvbnN0IGNoYXIgKnBhdGgsIGludCBm bGFncywNCj4+ICAgZXh0ZXJuIGJvb2wgaXNfc2V0aWQoaW50IGRmZCwgY29uc3QgY2hhciAqcGF0 aCwgaW50IGZsYWdzKTsNCj4+ICAgZXh0ZXJuIGJvb2wgaXNfc2V0Z2lkKGludCBkZmQsIGNvbnN0 IGNoYXIgKnBhdGgsIGludCBmbGFncyk7DQo+PiAgIGV4dGVybiBib29sIGlzX3N0aWNreShpbnQg ZGZkLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgZmxhZ3MpOw0KPj4gK2V4dGVybiBib29sIGlzX2l4 Z3JwKGludCBkZmQsIGNvbnN0IGNoYXIgKnBhdGgsIGludCBmbGFncyk7DQo+PiAgIGV4dGVybiBi b29sIG9wZW5hdF90bXBmaWxlX3N1cHBvcnRlZChpbnQgZGlyZmQpOw0KPj4gICANCj4+ICAgI2Vu ZGlmIC8qIF9fSURNQVBfVVRJTFNfSCAqLw0KPj4gZGlmZiAtLWdpdCBhL3NyYy92ZnMvdmZzdGVz dC5jIGIvc3JjL3Zmcy92ZnN0ZXN0LmMNCj4+IGluZGV4IDI5YWMwYmVjLi44NDQ4MzYyZSAxMDA2 NDQNCj4+IC0tLSBhL3NyYy92ZnMvdmZzdGVzdC5jDQo+PiArKysgYi9zcmMvdmZzL3Zmc3Rlc3Qu Yw0KPj4gQEAgLTE3MzMsNiArMTczMywxODYgQEAgb3V0Og0KPj4gICAJcmV0dXJuIGZyZXQ7DQo+ PiAgIH0NCj4+ICAgDQo+PiArLyogVGhlIGN1cnJlbnRfdW1hc2soKSBpcyBzdHJpcHBlZCBmcm9t IHRoZSBtb2RlIGRpcmVjdGx5IGluIHRoZSB2ZnMgaWYgdGhlDQo+PiArICogZmlsZXN5c3RlbSBl aXRoZXIgZG9lc24ndCBzdXBwb3J0IGFjbHMgb3IgdGhlIGZpbGVzeXN0ZW0gaGFzIGJlZW4NCj4+ ICsgKiBtb3VudGVkIHdpdGhvdXQgcG9zaWMgYWNsIHN1cHBvcnQuDQo+PiArICoNCj4+ICsgKiBJ ZiB0aGUgZmlsZXN5c3RlbSBkb2VzIHN1cHBvcnQgYWNscyB0aGVuIGN1cnJlbnRfdW1hc2soKSBz dHJpcHBpbmcgaXMNCj4+ICsgKiBkZWZlcnJlZCB0byBwb3NpeF9hY2xfY3JlYXRlKCkuIFNvIHdo ZW4gdGhlIGZpbGVzeXN0ZW0gY2FsbHMNCj4+ICsgKiBwb3NpeF9hY2xfY3JlYXRlKCkgYW5kIHRo ZXJlIGFyZSBubyBhY2xzIHNldCBvciBub3Qgc3VwcG9ydGVkIHRoZW4NCj4+ICsgKiBjdXJyZW50 X3VtYXNrKCkgd2lsbCBiZSBzdHJpcHBlZC4NCj4+ICsgKg0KPj4gKyAqIFVzZSB1bWFzayhTX0lY R1JQKSB0byBjaGVjayB3aGV0aGVyIGlub2RlIHN0cmlwIFNfSVNHSUQgd29ya3MgY29ycmVjdGx5 Lg0KPj4gKyAqLw0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgc2V0Z2lkX2NyZWF0ZV91bWFzayhjb25z dCBzdHJ1Y3QgdmZzdGVzdF9pbmZvICppbmZvKQ0KPj4gK3sNCj4+ICsJaW50IGZyZXQgPSAtMTsN Cj4+ICsJaW50IGZpbGUxX2ZkID0gLUVCQURGOw0KPj4gKwlpbnQgdG1wZmlsZV9mZCA9IC1FQkFE RjsNCj4+ICsJcGlkX3QgcGlkOw0KPj4gKwlib29sIHN1cHBvcnRlZCA9IGZhbHNlOw0KPj4gKwlt b2RlX3QgbW9kZTsNCj4+ICsNCj4+ICsJaWYgKCFjYXBzX3N1cHBvcnRlZCgpKQ0KPj4gKwkJcmV0 dXJuIDA7DQo+PiArDQo+PiArCWlmIChmY2htb2QoaW5mby0+dF9kaXIxX2ZkLCBTX0lSVVNSIHwN Cj4+ICsJCQkgICAgICBTX0lXVVNSIHwNCj4+ICsJCQkgICAgICBTX0lSR1JQIHwNCj4+ICsJCQkg ICAgICBTX0lXR1JQIHwNCj4+ICsJCQkgICAgICBTX0lST1RIIHwNCj4+ICsJCQkgICAgICBTX0lX T1RIIHwNCj4+ICsJCQkgICAgICBTX0lYVVNSIHwNCj4+ICsJCQkgICAgICBTX0lYR1JQIHwNCj4+ ICsJCQkgICAgICBTX0lYT1RIIHwNCj4+ICsJCQkgICAgICBTX0lTR0lEKSwgMCkgew0KPj4gKwkJ bG9nX3N0ZGVycigiZmFpbHVyZTogZmNobW9kIik7DQo+PiArCQlnb3RvIG91dDsNCj4+ICsJfQ0K Pj4gKw0KPj4gKwkvKiBWZXJpZnkgdGhhdCB0aGUgc2V0Z2lkIGJpdCBnb3QgcmFpc2VkLiAqLw0K Pj4gKwlpZiAoIWlzX3NldGdpZChpbmZvLT50X2RpcjFfZmQsICIiLCBBVF9FTVBUWV9QQVRIKSkg ew0KPj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogaXNfc2V0Z2lkIik7DQo+PiArCQlnb3RvIG91 dDsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlzdXBwb3J0ZWQgPSBvcGVuYXRfdG1wZmlsZV9zdXBwb3J0 ZWQoaW5mby0+dF9kaXIxX2ZkKTsNCj4+ICsNCj4+ICsJLyogT25seSB1bWFzayB3aXRoIFNfSVhH UlAgYmVjYXVzZSBpbm9kZSBzdHJpcCBTX0lTR0lEIHdpbGwgY2hlY2sgbW9kZQ0KPj4gKwkgKiB3 aGV0aGVyIGhhcyBncm91cCBleGVjdXRlIG9yIHNlYXJjaCBwZXJtaXNzaW9uLg0KPj4gKwkgKi8N Cj4+ICsJdW1hc2soU19JWEdSUCk7DQo+PiArCW1vZGUgPSB1bWFzayhTX0lYR1JQKTsNCj4+ICsJ aWYgKCEobW9kZSAmIFNfSVhHUlApKQ0KPj4gKwkJZGllKCJmYWlsdXJlOiB1bWFzayIpOw0KPj4g Kw0KPj4gKwlwaWQgPSBmb3JrKCk7DQo+PiArCWlmIChwaWQgPCAwKSB7DQo+PiArCQlsb2dfc3Rk ZXJyKCJmYWlsdXJlOiBmb3JrIik7DQo+PiArCQlnb3RvIG91dDsNCj4+ICsJfQ0KPj4gKwlpZiAo cGlkID09IDApIHsNCj4+ICsJCWlmICghc3dpdGNoX2lkcygwLCAxMDAwMCkpDQo+PiArCQkJZGll KCJmYWlsdXJlOiBzd2l0Y2hfaWRzIik7DQo+PiArDQo+PiArCQlpZiAoIWNhcHNfZG93bl9mc2V0 aWQoKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNhcHNfZG93bl9mc2V0aWQiKTsNCj4+ICsNCj4+ ICsJCS8qIGNyZWF0ZSByZWd1bGFyIGZpbGUgdmlhIG9wZW4oKSAqLw0KPj4gKwkJZmlsZTFfZmQg PSBvcGVuYXQoaW5mby0+dF9kaXIxX2ZkLCBGSUxFMSwgT19DUkVBVCB8IE9fRVhDTCB8IE9fQ0xP RVhFQywgU19JWEdSUCB8IFNfSVNHSUQpOw0KPj4gKwkJaWYgKGZpbGUxX2ZkIDwgMCkNCj4+ICsJ CQlkaWUoImZhaWx1cmU6IGNyZWF0ZSIpOw0KPj4gKw0KPj4gKwkJLyogTmVpdGhlciBpbl9ncm91 cF9wKCkgbm9yIGNhcGFibGVfd3J0X2lub2RlX3VpZGdpZCgpIHNvIHNldGdpZA0KPj4gKwkJICog Yml0IG5lZWRzIHRvIGJlIHN0cmlwcGVkLg0KPj4gKwkJICovDQo+PiArCQlpZiAoaXNfc2V0Z2lk KGluZm8tPnRfZGlyMV9mZCwgRklMRTEsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfc2V0 Z2lkIik7DQo+PiArDQo+PiArCQlpZiAoaXNfaXhncnAoaW5mby0+dF9kaXIxX2ZkLCBGSUxFMSwg MCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19peGdycCIpOw0KPj4gKw0KPj4gKwkJaWYgKG1r ZGlyYXQoaW5mby0+dF9kaXIxX2ZkLCBESVIxLCAwMDAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6 IGNyZWF0ZSIpOw0KPj4gKw0KPj4gKwkJaWYgKHhmc19pcml4X3NnaWRfaW5oZXJpdF9lbmFibGVk KGluZm8tPnRfZnN0eXBlKSkgew0KPj4gKwkJCS8qIFdlJ3JlIG5vdCBpbl9ncm91cF9wKCkuICov DQo+PiArCQkJaWYgKGlzX3NldGdpZChpbmZvLT50X2RpcjFfZmQsIERJUjEsIDApKQ0KPj4gKwkJ CQlkaWUoImZhaWx1cmU6IGlzX3NldGdpZCIpOw0KPj4gKwkJfSBlbHNlIHsNCj4+ICsJCQkvKiBE aXJlY3RvcmllcyBhbHdheXMgaW5oZXJpdCB0aGUgc2V0Z2lkIGJpdC4gKi8NCj4+ICsJCQlpZiAo IWlzX3NldGdpZChpbmZvLT50X2RpcjFfZmQsIERJUjEsIDApKQ0KPj4gKwkJCQlkaWUoImZhaWx1 cmU6IGlzX3NldGdpZCIpOw0KPj4gKwkJfQ0KPj4gKw0KPj4gKwkJaWYgKGlzX2l4Z3JwKGluZm8t PnRfZGlyMV9mZCwgRElSMSwgMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19peGdycCIpOw0K Pj4gKw0KPj4gKwkJLyogY3JlYXRlIGEgc3BlY2lhbCBmaWxlIHZpYSBta25vZGF0KCkgdmZzX2Ny ZWF0ZSAqLw0KPj4gKwkJaWYgKG1rbm9kYXQoaW5mby0+dF9kaXIxX2ZkLCBGSUxFMiwgU19JRlJF RyB8IFNfSVNHSUQgfCBTX0lYR1JQLCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IG1rbm9kYXQi KTsNCj4+ICsNCj4+ICsJCWlmIChpc19zZXRnaWQoaW5mby0+dF9kaXIxX2ZkLCBGSUxFMiwgMCkp DQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsNCj4+ICsNCj4+ICsJCWlmIChpc19p eGdycChpbmZvLT50X2RpcjFfZmQsIEZJTEUyLCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGlz X2l4Z3JwIik7DQo+PiArDQo+PiArCQkvKiBjcmVhdGUgYSBjaGFyYWN0ZXIgZGV2aWNlIHZpYSBt a25vZGF0KCkgdmZzX21rbm9kICovDQo+PiArCQlpZiAobWtub2RhdChpbmZvLT50X2RpcjFfZmQs IENIUkRFVjEsIFNfSUZDSFIgfCBTX0lTR0lEIHwgU19JWEdSUCwgbWFrZWRldig1LCAxKSkpDQo+ PiArCQkJZGllKCJmYWlsdXJlOiBta25vZGF0Iik7DQo+PiArDQo+PiArCQlpZiAoaXNfc2V0Z2lk KGluZm8tPnRfZGlyMV9mZCwgQ0hSREVWMSwgMCkpDQo+PiArCQkJZGllKCJmYWlsdXJlOiBpc19z ZXRnaWQiKTsNCj4+ICsNCj4+ICsJCWlmIChpc19peGdycChpbmZvLT50X2RpcjFfZmQsIENIUkRF VjEsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4+ICsNCj4+ICsJCS8q DQo+PiArCQkgKiBJbiBzZXRnaWQgZGlyZWN0b3JpZXMgbmV3bHkgY3JlYXRlZCBmaWxlcyBhbHdh eXMgaW5oZXJpdCB0aGUNCj4+ICsJCSAqIGdpZCBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0b3J5LiBW ZXJpZnkgdGhhdCB0aGUgZmlsZSBpcyBvd25lZA0KPj4gKwkJICogYnkgZ2lkIDAsIG5vdCBieSBn aWQgMTAwMDAuDQo+PiArCQkgKi8NCj4+ICsJCWlmICghZXhwZWN0ZWRfdWlkX2dpZChpbmZvLT50 X2RpcjFfZmQsIEZJTEUxLCAwLCAwLCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNoZWNrIG93 bmVyc2hpcCIpOw0KPj4gKw0KPj4gKwkJLyoNCj4+ICsJCSAqIEluIHNldGdpZCBkaXJlY3Rvcmll cyBuZXdseSBjcmVhdGVkIGRpcmVjdG9yaWVzIGFsd2F5cw0KPj4gKwkJICogaW5oZXJpdCB0aGUg Z2lkIGZyb20gdGhlIHBhcmVudCBkaXJlY3RvcnkuIFZlcmlmeSB0aGF0IHRoZQ0KPj4gKwkJICog ZGlyZWN0b3J5IGlzIG93bmVkIGJ5IGdpZCAwLCBub3QgYnkgZ2lkIDEwMDAwLg0KPj4gKwkJICov DQo+PiArCQlpZiAoIWV4cGVjdGVkX3VpZF9naWQoaW5mby0+dF9kaXIxX2ZkLCBESVIxLCAwLCAw LCAwKSkNCj4+ICsJCQlkaWUoImZhaWx1cmU6IGNoZWNrIG93bmVyc2hpcCIpOw0KPj4gKw0KPj4g KwkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKGluZm8tPnRfZGlyMV9mZCwgRklMRTIsIDAsIDAsIDAp KQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogY2hlY2sgb3duZXJzaGlwIik7DQo+PiArDQo+PiArCQlp ZiAoIWV4cGVjdGVkX3VpZF9naWQoaW5mby0+dF9kaXIxX2ZkLCBDSFJERVYxLCAwLCAwLCAwKSkN Cj4+ICsJCQlkaWUoImZhaWx1cmU6IGNoZWNrIG93bmVyc2hpcCIpOw0KPj4gKw0KPj4gKwkJaWYg KHVubGlua2F0KGluZm8tPnRfZGlyMV9mZCwgRklMRTEsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVy ZTogZGVsZXRlIik7DQo+PiArDQo+PiArCQlpZiAodW5saW5rYXQoaW5mby0+dF9kaXIxX2ZkLCBE SVIxLCBBVF9SRU1PVkVESVIpKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+PiAr DQo+PiArCQlpZiAodW5saW5rYXQoaW5mby0+dF9kaXIxX2ZkLCBGSUxFMiwgMCkpDQo+PiArCQkJ ZGllKCJmYWlsdXJlOiBkZWxldGUiKTsNCj4+ICsNCj4+ICsJCWlmICh1bmxpbmthdChpbmZvLT50 X2RpcjFfZmQsIENIUkRFVjEsIDApKQ0KPj4gKwkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+ PiArDQo+PiArCQkvKiBjcmVhdGUgdG1wZmlsZSB2aWEgZmlsZXN5c3RlbSB0bXBmaWxlIGFwaSAq Lw0KPj4gKwkJaWYgKHN1cHBvcnRlZCkgew0KPj4gKwkJCXRtcGZpbGVfZmQgPSBvcGVuYXQoaW5m by0+dF9kaXIxX2ZkLCAiLiIsIE9fVE1QRklMRSB8IE9fUkRXUiwgU19JWEdSUCB8IFNfSVNHSUQp Ow0KPj4gKwkJCWlmICh0bXBmaWxlX2ZkIDwgMCkNCj4+ICsJCQkJZGllKCJmYWlsdXJlOiBjcmVh dGUiKTsNCj4+ICsJCQkvKiBsaW5rIHRoZSB0ZW1wb3JhcnkgZmlsZSBpbnRvIHRoZSBmaWxlc3lz dGVtLCBtYWtpbmcgaXQgcGVybWFuZW50ICovDQo+PiArCQkJaWYgKGxpbmthdCh0bXBmaWxlX2Zk LCAiIiwgaW5mby0+dF9kaXIxX2ZkLCBGSUxFMywgQVRfRU1QVFlfUEFUSCkpDQo+PiArCQkJCWRp ZSgiZmFpbHVyZTogbGlua2F0Iik7DQo+PiArCQkJaWYgKGNsb3NlKHRtcGZpbGVfZmQpKQ0KPj4g KwkJCQlkaWUoImZhaWx1cmU6IGNsb3NlIik7DQo+PiArCQkJaWYgKGlzX3NldGdpZChpbmZvLT50 X2RpcjFfZmQsIEZJTEUzLCAwKSkNCj4+ICsJCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsN Cj4+ICsJCQlpZiAoaXNfaXhncnAoaW5mby0+dF9kaXIxX2ZkLCBGSUxFMywgMCkpDQo+PiArCQkJ CWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4+ICsJCQlpZiAodW5saW5rYXQoaW5mby0+dF9k aXIxX2ZkLCBGSUxFMywgMCkpDQo+PiArCQkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+PiAr CQl9DQo+PiArDQo+PiArCQlleGl0KEVYSVRfU1VDQ0VTUyk7DQo+PiArCX0NCj4+ICsJaWYgKHdh aXRfZm9yX3BpZChwaWQpKQ0KPj4gKwkJZ290byBvdXQ7DQo+PiArDQo+PiArCWZyZXQgPSAwOw0K Pj4gKwlsb2dfZGVidWcoIlJhbiB0ZXN0Iik7DQo+PiArb3V0Og0KPj4gKwlzYWZlX2Nsb3NlKGZp bGUxX2ZkKTsNCj4+ICsJcmV0dXJuIGZyZXQ7DQo+PiArfQ0KPj4gKw0KPj4gICBzdGF0aWMgaW50 IHNldGF0dHJfdHJ1bmNhdGUoY29uc3Qgc3RydWN0IHZmc3Rlc3RfaW5mbyAqaW5mbykNCj4+ICAg ew0KPj4gICAJaW50IGZyZXQgPSAtMTsNCj4+IEBAIC0xODA3LDYgKzE5ODcsNyBAQCBzdGF0aWMg dm9pZCB1c2FnZSh2b2lkKQ0KPj4gICAJZnByaW50ZihzdGRlcnIsICItLXRlc3QtYnRyZnMgICAg ICAgICAgICAgICAgICAgICAgICBSdW4gYnRyZnMgc3BlY2lmaWMgaWRtYXBwZWQgbW91bnQgdGVz dHN1aXRlXG4iKTsNCj4+ICAgCWZwcmludGYoc3RkZXJyLCAiLS10ZXN0LXNldGF0dHItZml4LTk2 ODIxOTcwODEwOCAgICAgUnVuIHNldGF0dHIgcmVncmVzc2lvbiB0ZXN0c1xuIik7DQo+PiAgIAlm cHJpbnRmKHN0ZGVyciwgIi0tdGVzdC1zZXR4YXR0ci1maXgtNzA1MTkxYjAzZDUwICAgIFJ1biBz ZXR4YXR0ciByZWdyZXNzaW9uIHRlc3RzXG4iKTsNCj4+ICsJZnByaW50ZihzdGRlcnIsICItLXRl c3Qtc2V0Z2lkLWNyZWF0ZS11bWFzayAgICAgICAgICBSdW4gc2V0Z2lkIHdpdGggdW1hc2sgdGVz dHNcbiIpOw0KPj4gICANCj4+ICAgCV9leGl0KEVYSVRfU1VDQ0VTUyk7DQo+PiAgIH0NCj4+IEBA IC0xODI1LDYgKzIwMDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nb3B0c1td ID0gew0KPj4gICAJeyJ0ZXN0LWJ0cmZzIiwJCQkJbm9fYXJndW1lbnQsCQkwLAknYid9LA0KPj4g ICAJeyJ0ZXN0LXNldGF0dHItZml4LTk2ODIxOTcwODEwOCIsCW5vX2FyZ3VtZW50LAkJMCwJJ2kn fSwNCj4+ICAgCXsidGVzdC1zZXR4YXR0ci1maXgtNzA1MTkxYjAzZDUwIiwJbm9fYXJndW1lbnQs CQkwLAknaid9LA0KPj4gKwl7InRlc3Qtc2V0Z2lkLWNyZWF0ZS11bWFzayIsCQlub19hcmd1bWVu dCwJCTAsCSd1J30sDQo+PiAgIAl7TlVMTCwJCQkJCTAsCQkJMCwJICAwfSwNCj4+ICAgfTsNCj4+ ICAgDQo+PiBAQCAtMTg1MCw2ICsyMDMyLDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdF9z dWl0ZSBzX2Jhc2ljID0gew0KPj4gICAJLm5yX3Rlc3RzID0gQVJSQVlfU0laRSh0X2Jhc2ljKSwN Cj4+ICAgfTsNCj4+ICAgDQo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0X3N0cnVjdCB0X3Nl dGdpZF9jcmVhdGVfdW1hc2tbXSA9IHsNCj4+ICsJeyBzZXRnaWRfY3JlYXRlX3VtYXNrLAkJCQkJ CTAsCQkJImNyZWF0ZSBvcGVyYXRpb25zIGluIGRpcmVjdG9yaWVzIHdpdGggc2V0Z2lkIGJpdCBz ZXQgdW5kZXIgdW1hc2siLAkJCQl9LA0KPj4gK307DQo+PiArDQo+PiArc3RhdGljIGNvbnN0IHN0 cnVjdCB0ZXN0X3N1aXRlIHNfc2V0Z2lkX2NyZWF0ZV91bWFzayA9IHsNCj4+ICsJLnRlc3RzID0g dF9zZXRnaWRfY3JlYXRlX3VtYXNrLA0KPj4gKwkubnJfdGVzdHMgPSBBUlJBWV9TSVpFKHRfc2V0 Z2lkX2NyZWF0ZV91bWFzayksDQo+PiArfTsNCj4+ICsNCj4+ICAgc3RhdGljIGJvb2wgcnVuX3Rl c3Qoc3RydWN0IHZmc3Rlc3RfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0IHRlc3Rfc3RydWN0IHN1 aXRlW10sIHNpemVfdCBzdWl0ZV9zaXplKQ0KPj4gICB7DQo+PiAgIAlpbnQgaTsNCj4+IEBAIC0x OTQ3LDcgKzIxMzgsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KPj4gICAJ Ym9vbCBpZG1hcHBlZF9tb3VudHNfc3VwcG9ydGVkID0gZmFsc2UsIHRlc3RfYnRyZnMgPSBmYWxz ZSwNCj4+ICAgCSAgICAgdGVzdF9jb3JlID0gZmFsc2UsIHRlc3RfZnNjYXBzX3JlZ3Jlc3Npb24g PSBmYWxzZSwNCj4+ICAgCSAgICAgdGVzdF9uZXN0ZWRfdXNlcm5zID0gZmFsc2UsIHRlc3Rfc2V0 YXR0cl9maXhfOTY4MjE5NzA4MTA4ID0gZmFsc2UsDQo+PiAtCSAgICAgdGVzdF9zZXR4YXR0cl9m aXhfNzA1MTkxYjAzZDUwID0gZmFsc2U7DQo+PiArCSAgICAgdGVzdF9zZXR4YXR0cl9maXhfNzA1 MTkxYjAzZDUwID0gZmFsc2UsDQo+PiArCSAgICAgdGVzdF9zZXRnaWRfY3JlYXRlX3VtYXNrID0g ZmFsc2U7DQo+PiAgIA0KPj4gICAJaW5pdF92ZnN0ZXN0X2luZm8oJmluZm8pOw0KPj4gICANCj4+ IEBAIC0xOTg5LDYgKzIxODEsOSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0K Pj4gICAJCWNhc2UgJ2onOg0KPj4gICAJCQl0ZXN0X3NldHhhdHRyX2ZpeF83MDUxOTFiMDNkNTAg PSB0cnVlOw0KPj4gICAJCQlicmVhazsNCj4+ICsJCWNhc2UgJ3UnOg0KPj4gKwkJCXRlc3Rfc2V0 Z2lkX2NyZWF0ZV91bWFzayA9IHRydWU7DQo+PiArCQkJYnJlYWs7DQo+PiAgIAkJY2FzZSAnaCc6 DQo+PiAgIAkJCS8qIGZhbGx0aHJvdWdoICovDQo+PiAgIAkJZGVmYXVsdDoNCj4+IEBAIC0yMDY2 LDYgKzIyNjEsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCj4+ICAgCSAg ICAhcnVuX3N1aXRlKCZpbmZvLCAmc19zZXR4YXR0cl9maXhfNzA1MTkxYjAzZDUwKSkNCj4+ICAg CQlnb3RvIG91dDsNCj4+ICAgDQo+PiArCWlmICh0ZXN0X3NldGdpZF9jcmVhdGVfdW1hc2spIHsN Cj4+ICsJCWlmICghcnVuX3N1aXRlKCZpbmZvLCAmc19zZXRnaWRfY3JlYXRlX3VtYXNrKSkNCj4+ ICsJCQlnb3RvIG91dDsNCj4+ICsNCj4+ICsJCWlmICghcnVuX3N1aXRlKCZpbmZvLCAmc19zZXRn aWRfY3JlYXRlX3VtYXNrX2lkbWFwcGVkKSkNCj4+ICsJCQlnb3RvIG91dDsNCj4+ICsJfQ0KPj4g Kw0KPj4gICAJZnJldCA9IEVYSVRfU1VDQ0VTUzsNCj4+ICAgDQo+PiAgIG91dDoNCj4+IGRpZmYg LS1naXQgYS90ZXN0cy9nZW5lcmljLzY5MSBiL3Rlc3RzL2dlbmVyaWMvNjkxDQo+PiBuZXcgZmls ZSBtb2RlIDEwMDc1NQ0KPj4gaW5kZXggMDAwMDAwMDAuLmQ0ODc1ODU0DQo+PiAtLS0gL2Rldi9u dWxsDQo+PiArKysgYi90ZXN0cy9nZW5lcmljLzY5MQ0KPj4gQEAgLTAsMCArMSw0MCBAQA0KPj4g KyMhIC9iaW4vYmFzaA0KPj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4+ ICsjIENvcHlyaWdodCAoYykgMjAyMiBGdWppdHN1IExpbWl0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2 ZWQuDQo+PiArIw0KPj4gKyMgRlMgUUEgVGVzdCBOby4gNjkxDQo+PiArIw0KPj4gKyMgVGVzdCB0 aGF0IGlkbWFwcGVkIG1vdW50cyBzZXRnaWQncyBiZWhhdmUgY29ycmVjdGx5IHdoZW4gdXNpbmcN Cj4+ICsjIHVtYXNrKFNfSVhHUlApDQo+PiArIw0KPj4gKy4gLi9jb21tb24vcHJlYW1ibGUNCj4+ ICtfYmVnaW5fZnN0ZXN0IGF1dG8gcXVpY2sgY2FwIGlkbWFwcGVkIG1vdW50IHBlcm1zIHJ3IHVu bGluaw0KPj4gKw0KPj4gKyMgSW1wb3J0IGNvbW1vbiBmdW5jdGlvbnMuDQo+PiArLiAuL2NvbW1v bi9maWx0ZXINCj4+ICsNCj4+ICsjIHJlYWwgUUEgdGVzdCBzdGFydHMgaGVyZQ0KPj4gKw0KPj4g K19zdXBwb3J0ZWRfZnMgZ2VuZXJpYw0KPj4gK19yZXF1aXJlX3Rlc3QNCj4+ICtfcmVxdWlyZV9z Y3JhdGNoDQo+PiArDQo+PiArZWNobyAiU2lsZW5jZSBpcyBnb2xkZW4iDQo+PiArDQo+PiArJGhl cmUvc3JjL3Zmcy92ZnN0ZXN0IC0tdGVzdC1zZXRnaWQtY3JlYXRlLXVtYXNrIFwNCj4+ICsgICAg ICAgIC0tZGV2aWNlICIkVEVTVF9ERVYiIC0tbW91bnQgIiRURVNUX0RJUiIgLS1mc3R5cGUgIiRG U1RZUCINCj4+ICsNCj4+ICtfc2NyYXRjaF9ta2ZzID4gIiRzZXFyZXMuZnVsbCIgMj4mMQ0KPj4g K2V4cG9ydCBNT1VOVF9PUFRJT05TPSItbyBub2FjbCINCj4+ICsNCj4+ICsjIElmIGZpbGVzeXN0 ZW0gc3VwcG9ydHMgbm9hY2wgbW91bnQgb3B0aW9uLCBhbHNvIHRlc3Qgc2V0Z2lkIGJpdCB3aGV0 aGVyDQo+PiArIyB3YXMgc3RyaXBwZWQgY29ycmVjdGx5Lg0KPj4gKyMgbm9hY2wgd2lsbCBlYXJz ZSBhY2wgZmxhZyBpbiBzdXBlcmJsb2NrLCBzbyBrZXJuZWwgd2lsbCB1c2UgY3VycmVudF91bWFz aw0KPj4gKyMgaW4gdmZzIGRpcmVjdGx5IGluc3RlYWQgb2YgY2FsbGluZyBwb3NpeF9hY2xfY3Jl YXRlIG9uIHVuZGVyZmx5aW5nDQo+PiArIyBmaWxlc3lzdGVtLg0KPj4gK190cnlfc2NyYXRjaF9t b3VudCA+PiRzZXFyZXMuZnVsbCAyPiYxICYmIFwNCj4+ICsJJGhlcmUvc3JjL3Zmcy92ZnN0ZXN0 IC0tdGVzdC1zZXRnaWQtY3JlYXRlLXVtYXNrIFwNCj4+ICsgICAgICAgIC0tZGV2aWNlICIkU0NS QVRDSF9ERVYiIC0tbW91bnQgIiRTQ1JBVENIX01OVCIgLS1mc3R5cGUgIiRGU1RZUCINCj4+ICsN Cj4+ICtzdGF0dXM9MA0KPj4gK2V4aXQNCj4+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW5lcmljLzY5 MS5vdXQgYi90ZXN0cy9nZW5lcmljLzY5MS5vdXQNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ PiBpbmRleCAwMDAwMDAwMC4uMDA2YWVmNDMNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL3Rl c3RzL2dlbmVyaWMvNjkxLm91dA0KPj4gQEAgLTAsMCArMSwyIEBADQo+PiArUUEgb3V0cHV0IGNy ZWF0ZWQgYnkgNjkxDQo+PiArU2lsZW5jZSBpcyBnb2xkZW4NCj4+IC0tIA0KPj4gMi4yNy4wDQo+ Pg0KPiA=