Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3By3-000zZ4-1p for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Mar 2026 11:55:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3By2-000KsJ-0y for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Mar 2026 11:55:10 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3By1-000Ks7-1B for pgsql-hackers@lists.postgresql.org; Thu, 19 Mar 2026 11:55:09 +0000 Received: from mail-japaneastazlp170110002.outbound.protection.outlook.com ([2a01:111:f403:c405::2] helo=TYVP286CU001.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w3Bxx-00000000YBC-0aEb for pgsql-hackers@lists.postgresql.org; Thu, 19 Mar 2026 11:55:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=usCYRF1y685XsOq7lT2rxiMBAQ8ExIpliOIj2tD9tA+7koNsrWzX2kD1C76+4hYP2WlOFrmj4Tg/R4K/tVzo3KUhr5Mz4N/lxo5Saepj+9G8PRrFCzcAeC0nNE1RLUTa7mbN5k/bGibc46Ex5OLHjiQXEZDQhXbDVyyA5IsehPdTma1xYlgOcv+8z8Bwh+xh+3nf0OgKE8LsZidOzzQFNJJFyZ3UZdTPmdJM+5BafdFkgx8Z2wZGTXhd/5QtPZsQ7SaLcARFVCWPArnXmqGrlupW+k9UTTb5x9WEGBHxTpvcA690qvAnsJfv1PF2YN2q2tvkoqKF5Z6pJCTuXLquvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=qCQ07yydCGRtoeMFQItc/p5u2FWBJ3LTNH46GuubkJE=; b=Qn3basOxRGMokuICyWcef0SisIoZNkD9brvNj3waGIgPDnOtaISNXq6OzCmlWsrlFzAT8KFN1M5KPRHMYczG1U/+B6MTFLsYuZ1KH45EeK0u+QfN0SWMpuDgXnscR7qxj2C4D29dMZZaN6OnC9I1wDNzo80OGhwie1IfkQeW4my3VMScEmo8PenqoOXqs2AWGJ2SuBumL/+lm55CzU54d+OonTR1ljtQDCYhiqtBkULeJINDMxOWQiLo6OcoJTpssJIK6plKH9DtsdJjrQySG86F22hRUMFJPb3TmeHBzbdn+BNwL3d8+ls9EjqV7xrhruyw/SzSyTRw679cPCLRPw== 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.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qCQ07yydCGRtoeMFQItc/p5u2FWBJ3LTNH46GuubkJE=; b=qCp3cnW5HdO0CvNkrdP9ws94JUVDFUYIaYkTwhqnGQdh7P0SZXJx8nb7Vv5xJyErqrkC/1ykQfbURbvVI6HULvDHGINSKB01WSe1SsjIx8LZm8snGj3U7ZvmJoYb1ghJWOvCmRwbUwx6RhSfs4MVoh4tSlcWYI88Sap1hQ+Tt07rcdYbDpgL/urjGB5DRqkRxIRTK+vJIKsMv1Z+ZDCG5bickqb+PgpKrPPBaP2jYuq2TDORM9Sne9/3Zm4IDepN9a136GKLdBOUtVDTQ8EupakkLKoa7IYh7G73IofVHEibER9GrxscS4VU5pwFhNMYahdmqYBDiTvkzxzJ1Cjdmw== Received: from OSOPR01MB12153.jpnprd01.prod.outlook.com (2603:1096:604:2d9::5) by TYCPR01MB9464.jpnprd01.prod.outlook.com (2603:1096:400:198::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar 2026 11:55:01 +0000 Received: from OSOPR01MB12153.jpnprd01.prod.outlook.com ([fe80::8d72:af69:8ba6:6193]) by OSOPR01MB12153.jpnprd01.prod.outlook.com ([fe80::8d72:af69:8ba6:6193%4]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026 11:55:00 +0000 From: =?utf-8?B?S3Vyb2RhLCBIYXlhdG8v6buS55SwIOmavOS6ug==?= To: =?utf-8?B?S3Vyb2RhLCBIYXlhdG8v6buS55SwIOmavOS6ug==?= , 'Amit Kapila' , Gyan Sreejith CC: Shlok Kyal , vignesh C , Euler Taveira , "pgsql-hackers@lists.postgresql.org" , Peter Smith Subject: RE: [Proposal] Adding Log File Capability to pg_createsubscriber Thread-Topic: [Proposal] Adding Log File Capability to pg_createsubscriber Thread-Index: AQHcaVmNpX4ag7/WHkSyhV6StVc5xLUcDPeAgAEu6ICABBNdAIACj44AgAHIUoCAAQGIAIAAWXIAgAjxJICACKGiAIAXHbMAgArKiICAAMg5gIAIsMwAgAbOigCABAcfgIAD1xOAgAdcW4CAC3d2gIANiKYAgA2MYYCAAU/PgIAFgZQAgAJNPoCAByhcgIACc1KAgACx0YCAAOgDgIAABKYggAFvtOA= Date: Thu, 19 Mar 2026 11:55:00 +0000 Message-ID: References: <48261e54-c4f1-4bde-a4a9-4f3698a6b380@app.fastmail.com> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9ZWRkMzhhMDQtNzE3ZC00MzFlLWEzMmEtOTJjZGM5MmVh?= =?utf-8?B?ODdkO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjYtMDMtMThUMTM6MzE6NTVaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?B?ZC04MWUxLTQ4NTgtYTlkOC03MzZlMjY3ZmQ0Yzc7TVNJUF9MYWJlbF9hNzI5?= =?utf-8?B?NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfVGFnPTEwLCAzLCAw?= =?utf-8?Q?,_1;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OSOPR01MB12153:EE_|TYCPR01MB9464:EE_ x-ms-office365-filtering-correlation-id: a866e07a-4832-4fb0-fa17-08de85ae595e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|6049299003|366016|1800799024|1580799027|38070700021|3613699012|4053099003|18002099003|56012099003|22082099003; x-microsoft-antispam-message-info: Gru+zb/fZtXWVdteTqbR5fJ/qAr/xfxBhFDBhMwPj+nWUBnvizbB/jxLGfGhjaXyQVTNMa8U21N9AnbxgVvZf5o/uLVxGMf0Yie71NbLLHSrwxEAWY/aNxuECkFODM1g6QG0uNP8pOJJuoA2UVrUfG6itaZ9zaU/7NU0OcOfQA23LvwcUskem2Ijf2TqFCoF4DSL7zRihJop9gJukYT7jtZnx2N+xwqIMdjlXoN9+FKCuu7YgDPHrcBoFtGaNbStiC4kaNfuQP2IEm9p5xOqhZVNUyo4pJUAMgxDEGwOxZCkL8QbFwZ1ioskEXqDKZwx9ovc8JL81OjzxZ65kd3//zU+cNgPxZI1FUfgVUgUoEUUE8xF9uUANDsV/CiWF2FC/E3oqPrjn+49WoqyG6GqpH/jWDg6nBEvcGUlplnNgGFpT+JgUXicUY+Yl4wNogKgXTnmf9DVIvW2qBXHGB1ln8GFjvtxQ8JRtYOrduoksoZig7c/Xlawrn0D4MgnNwbwdjS9X/mgMpBEn0ldCWELNz9ehyq5SAu9MgIKyK7/Lwx499JxSpgecthq8by9dVNwsmeUFL9MsZhMNIIvj7ALeIIzd06Z7w4ioUgE9IKLZ5wwqRyOkoO97hdIfjNIm556oACgeiP2jBrE2uBjYqme1d6S0dT5MgmC9AqZydo4Onh3oAL+D1yBxfP7yZ/RPVtsYLSY9nZSlgxdj8NSPixyOG9Zp0Y2lYJCp0gAj9xx3zDy85dMMkovJr5g/tBD+QuxMWP9GpDRj8FTbdVLdM1d4TUJb1kIwCAoklMnL40w9eclpyZFGVZWqmWsON8HGpYLPNCp53s5dQEq1wTgkgXY2DawrNPRUBJ+z1uBi1yjXU8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSOPR01MB12153.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(6049299003)(366016)(1800799024)(1580799027)(38070700021)(3613699012)(4053099003)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SXphcC9XdE0xTkphUVFPTS93a3kzc1hkOTZXZW10TTVpMVBCcWFOVFQrU1NO?= =?utf-8?B?cGFsTGM1VWxrMHFycnpRZTFKdjMzNmZkUktETDQ0am9ka2RwbjBUMnFlK3NI?= =?utf-8?B?Tm1VdzBDN0hTbmx3MjZ4T2krcnlWTGdIT2dPRWlDSTNNaGdZMmhCQzJRK3JB?= =?utf-8?B?dXl4eE1Ka2c2Vkd1SDlFcVRoTUMxTVBhY1dUQzRpUktla1Zib3dqTnowUlcr?= =?utf-8?B?YXo2ZXlCR01YK3dDUDhDMnRWYnB2a05DckowUStRbTFyblJScjI3akhvSmNK?= =?utf-8?B?UVJSWHdKbzRHRlV3M084aWxEOTYvV3FnYlZBT3J0Sm00bVpoOXM2OWsyYVNL?= =?utf-8?B?cVRwUWhvZlJrMjFmdjBXZk1oSFhrNnBvdnBrV1NvQWV2T0lPUjZxdkY4NUhK?= =?utf-8?B?Z0RkTDlhaVExekRpS2ZOdXR6N1UzWnZvR2xhMjk0dnI0empHWjhBd01FQUdP?= =?utf-8?B?YUt1NiswM2UwZlVDRTRsWFVURmlMSkhpdnlhdHg3SGUzR0lobEQ0QmtMcHNL?= =?utf-8?B?NDBRODRvRE1IZTZ5ZmxoWkJGOVd5VTFxcUVrVTBZY2lxYVhmdnhja0dpSlVE?= =?utf-8?B?akcrYW9Ud2duS05aY3NSa0ZQUzNaNjg0U1VaYVoxTUlrRml0TWpDbE1TS0hz?= =?utf-8?B?M0oxYjUxdG5TUnpIWGFnd20yOFlweDBwWXFIUkJKZ1NFM1Y1amE3aGFVN0Zq?= =?utf-8?B?aFNDWG9Dd0hDenkvSThGQU9WNFQzKzNWdis0cUZmMmZqb1dneXlFZEdhUDI4?= =?utf-8?B?N3ROdTJ4SDFadm9QYmhYeXJaenByY0s4OWJtWU9SczJEMy9VMm83TFFEbFZ1?= =?utf-8?B?b1Y1Y2hhUnQ0QVprYXFtdmtGQUFpc0xLSlVNa2dRdnVZUFVBZGJuWHlDZXgy?= =?utf-8?B?d3RRQVVQNkp3Z0FROU5raXBsay9tU29ZSzBoUURuNEJ4bURpaTlTKzFxaTA3?= =?utf-8?B?U0lJUkpDbGRQY1MwYU1FMmRiL28yWDNydjg5UHVYZjA3R2RYMTg1dm43OXRT?= =?utf-8?B?OWM1T1F5MGxESFRVTytPcUpMZGZLWlh1ZVQyWExxNC8yZkx5RmtOdUNTUGc2?= =?utf-8?B?NlcxTEFYSGJsOGh0KzRHSkVNOTdrMDBZNWpXdlp6SGpKNDNWeXJZSktYaDBJ?= =?utf-8?B?dkMxeWdpRWRZU09iTnViRHhTNmhYSGY2NjZvNkEzTlRDd29KUEJiQWR3ODRH?= =?utf-8?B?QXF6VmpMWXlHd20vRTRmV2tSblR3Z2d0dXlsT2ZhWU56eWRzQVU1dVJZSVJv?= =?utf-8?B?cHc2OUx4YThVK3JwY2Q2SXdWZE1tMEtyanN0aTJpR1VsSmp1bGJ3T3hqZW85?= =?utf-8?B?cWpxM0RmdXdFWG9HQXNhSlFETTM4U2EyWE5Ta2poaXVnOEI1bHhQWFo2V2Uw?= =?utf-8?B?N3RGSE1SR01TT3l0MFYvYTJVQ3JZMWdtNXhWMTdXdlNVTHNLNElIeVhoSGZi?= =?utf-8?B?SDBjMEhkME1JV1R5N2EyRnpBU2VkWFF5d2JYN2FNa2RDZytQdityZUVadVVk?= =?utf-8?B?RHdVKzhjUnRhMUZnWThyY090T2JhZVdFbnhHem5MaUxBaXdYUTh5TFRJTzhX?= =?utf-8?B?eVpsa3cvbXhZbDJzTUpZSFJpeEJQYjA5ZGJCVTRNRzBWdnZTZTI4Z1gyNXB5?= =?utf-8?B?OWJ1WkVXeHdUUW5PYVY3SmE1WlBCT0NjK2R1elRublNWZjhyTHFVcDdOT1F2?= =?utf-8?B?RWNqMGZFUnhKL05iNnFYK2ZXYzdPenh4RnBObE9yQ0ZVRUlUalI0cGl0aDlZ?= =?utf-8?B?Q09KN3JPWlk2WWYrK21VUGZ3ZkJvdVUzaEZuQUVmK0VCYjJXMTdDeEt2VkJk?= =?utf-8?B?UjhnWW9zRTh4cFFpbUdYMFV3ZElzOXdSUEx4NFk2QWpUTThBc1JpdDVVM1Y2?= =?utf-8?B?a3BKZkxsYWY5akxPUGJKMHk4Q0t0UE9Pc2wybGlLeHRPYTBhMlJwUkZXREJn?= =?utf-8?B?c0h1NDJlUzBoQ21YbjRYVGt5NU9TTUtNMmNYbkpRQ0s3UCs2aEk0VWo5MkJv?= =?utf-8?B?dy9zV2JyN1ROUHFQU3NpNDNIOFhrSTEyenVFbUVneHNKTXozTThqWWR0ekZE?= =?utf-8?B?NGY2aHgxTjJ2QWJjNlhxYjNqNmN6ZWhvZktVUHhsY3N0UW0zRExrMVNGT0s1?= =?utf-8?B?bThKY0dPS1RtS0hLSTJsSk1Rc21hdTYrL0toYnE1SVEyc0wxYXQwd1BLNmxI?= =?utf-8?B?bmlHVE1abGh6S0taTFduVGQ5My80WTU2dWhmY2tQSDBTYVBtQjArY1pLcUdH?= =?utf-8?B?UTFGcDMrTnVjZnFjSzBmbkRkSEVlWXk3QmxrMmtuRlY1eDM1b0FKNWt1U21D?= =?utf-8?B?Rms1Y3AzYUZNZmFuUGxiNTdXMnZZWXU3aG5zWEg0N2lzTVFTdWJaRmw2MUNM?= =?utf-8?Q?zVtnR/V/wzau1H5U=3D?= Content-Type: multipart/mixed; boundary="_004_OSOPR01MB1215385EAC6A76650444E40B0F54FAOSOPR01MB12153jp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: Sd2cirTXi3RPXk3j550darle8JBexF2YBgF7zXKK1lKb3PPAdSkgWx9+MucZBXE4XQuGuXE5OP755mhd8k1oaNUqBRKvOuTKASXMw1zqmhPW59fBCVHVPtYbOJpdWm0Xr2zPVKWsiY3aqr4RIcBcDCBWY5h7I4gVpG6rNkaPNanNewJLfY60UUsl25F7rgKMFcATlS9C/5SqSp6eLh90mYCD9w1CvomCo9DwbzE9/z1/J+DGry4RoYINOhawp4J357EYXB77zmkVKaAngXjBC7V+A3D8n+Mf6Z09FETWBXYb4FcOzzCdQtb6NwKnzZhpbQRSKe0d4Plh8WpeRq+nXA== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OSOPR01MB12153.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a866e07a-4832-4fb0-fa17-08de85ae595e X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2026 11:55:00.2911 (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: l6pstMkBxWsW2b/KpWLfyLMoIcLAX806JgO7lp4qN1sXWKrM8VtnBa5ZuZN3dkvD6UuJ+u1e2Awk3QIkRdb9VsxCQyNc0pV05vXpiNG8CFY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB9464 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_OSOPR01MB1215385EAC6A76650444E40B0F54FAOSOPR01MB12153jp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCldoaWxlIGNoZWNraW5nIGFnYWluLCBJIGZvdW5kIGFuIGlzc3VlIGluIHRoZSBuZXcg bG9nZ2luZyBmdW5jdGlvbiAtIHNhbWUgdmFfbGlzdA0KaXMgdXNlZCB0d2ljZSwgYnV0IGl0IHdh cyB0aGUgdW5kZWZpbmVkIGJlaGF2aW9yLiB2YV9jb3B5KCkgaXMgdXNlZCB0byBmaXggdGhlIGlz c3VlLg0KDQpBbHNvLCBiZWxvdyBwb2ludHMgd2VyZSBmb3VuZCBhbmQgZml4ZWQgaW4gMDAwMy4g VGhhbmtzIFBldGVyIFNtaXRoIHRvIHdvcmsgb24uDQoNCmBgYA0KKyAgICAgICBwcmludGYoXygi ICAtbCwgLS1sb2dkaXI9TE9HRElSICAgICAgICAgICAgIGxvY2F0aW9uIGZvciB0aGUgbmV3IGxv ZyBkaXJlY3RvcnlcbiIpKTsNCmBgYA0KDQpCdXQgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0 IGV4aXN0aW5nIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQsIHJpZ2h0Pw0KDQpgYGANCitteSAkbG9n ZGlyID0gUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRlbXBkaXIgKyAiL2xvZ2RpciI7DQpgYGAN Cg0KSXNuJ3QgaXQgZW5vdWdoIHRvIGp1c3QgdXNlIHRlbXBkaXIgaGVyZT8gQXQgbGVhc3QsIEkg dGhpbmsgdXNpbmcgIisiIGlzIG5vdA0KYXBwcm9wcmlhdGUsICIuIiBpcyB1c2VkIHRvIGNvbm5l Y3Qgc3RyaW5ncy4NCg0KYGBgDQorICAgICAgIGlmIChvcHQtPmxvZ19kaXIgIT0gTlVMTCkNCisg ICAgICAgICAgICAgICBhcHBlbmRQUUV4cEJ1ZmZlcihwZ19jdGxfY21kLCAiIC1sICVzLyVzLyVz LmxvZyIsIG9wdC0+bG9nX2RpciwgbG9nX3RpbWVzdGFtcCwgU0VSVkVSX0xPR19GSUxFX05BTUUp Ow0KYGBgDQoNCkkgZG8gbm90IGhhdmUgMTAwJSBjb25maWRlbnQsIGJ1dCBkbyB3ZSBoYXZlIHRv IHF1b3RlIHRoZSBsb2dmaWxlIGhlcmU/DQoNCkJlc3QgcmVnYXJkcywNCkhheWF0byBLdXJvZGEN CkZVSklUU1UgTElNSVRFRA0KDQo= --_004_OSOPR01MB1215385EAC6A76650444E40B0F54FAOSOPR01MB12153jp_ Content-Type: application/octet-stream; name="v12-0001-pg_createsubscriber-use-own-reporting-functions.patch" Content-Description: v12-0001-pg_createsubscriber-use-own-reporting-functions.patch Content-Disposition: attachment; filename="v12-0001-pg_createsubscriber-use-own-reporting-functions.patch"; size=56376; creation-date="Thu, 19 Mar 2026 11:37:20 GMT"; modification-date="Thu, 19 Mar 2026 11:41:08 GMT" Content-Transfer-Encoding: base64 RnJvbSA1YWY2MmI5YTE5ODc4OTE2NjYyYTlhYTIyODFkNDUwZDE4Nzg1YzQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDIwOjIwOjUwICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MTIgMS8zXSBwZ19jcmVhdGVzdWJzY3JpYmVyOiB1c2Ugb3duIHJlcG9ydGluZyBmdW5jdGlv bnMKClRoaXMgY29tbWl0IGNvbnZlcnRzIGFsbCBwZ19sb2dfeHh4IGZhbWlsaWVzIHRvIGNhbGwg YSBuZXcgcmVwb3J0aW5nIGZ1bmN0aW9uCnBnX2NyZWF0ZXN1Yl9sb2coKS4gQWxzbywgcGdfZmF0 YWwoKSBpcyBvdmVyd3JpdHRlbiB0byB1c2UgaXRzIG93bi4KClRoaXMgY29tbWl0IGNoYW5nZXMg bm90aGluZyBmcm9tIHRoZSBvdXRzaWRlLCBidXQgaXMgbmVlZGVkIGZvciB0aGUgdXBjb21pbmcK Y29tbWl0LgotLS0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMg fCA3MTEgKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NTggaW5zZXJ0aW9u cygrKSwgMjUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRl c3Vic2NyaWJlci5jCmluZGV4IDJiYzg0NTA1YWFiLi4wNzcwZTE2MzA0MSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYworKysgYi9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCkBAIC0zMSw2ICszMSwxMiBAQAog I2luY2x1ZGUgImZlX3V0aWxzL3ZlcnNpb24uaCIKICNpbmNsdWRlICJnZXRvcHRfbG9uZy5oIgog CisvKgorICogRm9yIG5vdywgcGdfY3JlYXRlc3Vic2NyaWJlciBkb2VzIG5vdCB1c2UgY29tbW9u L2xvZ2dpbmcuYzsgdXNlIG91ciBvd24KKyAqIHBnX2ZhdGFsLgorICovCisjdW5kZWYgcGdfZmF0 YWwKKwogI2RlZmluZQlERUZBVUxUX1NVQl9QT1JUCSI1MDQzMiIKICNkZWZpbmUJT0JKRUNUVFlQ RV9QVUJMSUNBVElPTlMgIDB4MDAwMQogCkBAIC0xNDYsNiArMTUyLDExIEBAIHN0YXRpYyB2b2lk IGRyb3BfZXhpc3Rpbmdfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3Vi bmFtZSwKIAkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSk7CiBzdGF0aWMgdm9pZCBnZXRf cHVibGlzaGVyX2RhdGFiYXNlcyhzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwK IAkJCQkJCQkJCWJvb2wgZGJuYW1lc3BlY2lmaWVkKTsKK3N0YXRpYyB2b2lkIHBnX2NyZWF0ZXN1 Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCisJCQkJCQkJIGNvbnN0 IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCisJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQp OworcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJp Y3QgZm10LC4uLikKKwkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKICNkZWZpbmUJV0FJ VF9JTlRFUlZBTAkxCQkvKiAxIHNlY29uZCAqLwogCkBAIC0xNzQsNiArMTg1LDMyIEBAIHN0YXRp YyBib29sIHJlY292ZXJ5X2VuZGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzdGFuZGJ5X3J1bm5p bmcgPSBmYWxzZTsKIHN0YXRpYyBib29sIHJlY292ZXJ5X3BhcmFtc19zZXQgPSBmYWxzZTsKIAor c3RhdGljIHZvaWQKK3BnX2NyZWF0ZXN1Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVu dW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4u LikKK3sKKwl2YV9saXN0CQlhcmdzOworCisJdmFfc3RhcnQoYXJncywgZm10KTsKKworCXBnX2xv Z19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7CisKKwl2YV9lbmQoYXJncyk7Cit9 CisKK3N0YXRpYyB2b2lkCitwZ19mYXRhbChjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4u KQoreworCXZhX2xpc3QJCWFyZ3M7CisKKwl2YV9zdGFydChhcmdzLCBmbXQpOworCisJcGdfbG9n X2dlbmVyaWNfdihQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLCBmbXQsIGFyZ3MpOworCisJ dmFfZW5kKGFyZ3MpOworCisJZXhpdCgxKTsKK30KIAogLyoKICAqIENsZWFuIHVwIG9iamVjdHMg Y3JlYXRlZCBieSBwZ19jcmVhdGVzdWJzY3JpYmVyLgpAQCAtMjA1LDcgKzI0Miw4IEBAIGNsZWFu dXBfb2JqZWN0c19hdGV4aXQodm9pZCkKIAkJaWYgKGR1cmFibGVfcmVuYW1lKGNvbmZfZmlsZW5h bWUsIGNvbmZfZmlsZW5hbWVfZGlzYWJsZWQpICE9IDApCiAJCXsKIAkJCS8qIGR1cmFibGVfcmVu YW1lKCkgaGFzIGFscmVhZHkgbG9nZ2VkIHNvbWV0aGluZy4gKi8KLQkJCXBnX2xvZ193YXJuaW5n X2hpbnQoIkEgbWFudWFsIHJlbW92YWwgb2YgdGhlIHJlY292ZXJ5IHBhcmFtZXRlcnMgbWF5IGJl IHJlcXVpcmVkLiIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9H X0hJTlQsCisJCQkJCQkJICJBIG1hbnVhbCByZW1vdmFsIG9mIHRoZSByZWNvdmVyeSBwYXJhbWV0 ZXJzIG1heSBiZSByZXF1aXJlZC4iKTsKIAkJfQogCX0KIApAQCAtMjE5LDkgKzI1NywxMSBAQCBj bGVhbnVwX29iamVjdHNfYXRleGl0KHZvaWQpCiAJICovCiAJaWYgKHJlY292ZXJ5X2VuZGVkKQog CXsKLQkJcGdfbG9nX3dhcm5pbmcoImZhaWxlZCBhZnRlciB0aGUgZW5kIG9mIHJlY292ZXJ5Iik7 Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIlRoZSB0YXJnZXQgc2VydmVyIGNhbm5vdCBiZSB1c2Vk IGFzIGEgcGh5c2ljYWwgcmVwbGljYSBhbnltb3JlLiAgIgotCQkJCQkJCSJZb3UgbXVzdCByZWNy ZWF0ZSB0aGUgcGh5c2ljYWwgcmVwbGljYSBiZWZvcmUgY29udGludWluZy4iKTsKKwkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImZhaWxl ZCBhZnRlciB0aGUgZW5kIG9mIHJlY292ZXJ5Iik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJICJUaGUgdGFyZ2V0IHNlcnZlciBjYW5ub3Qg YmUgdXNlZCBhcyBhIHBoeXNpY2FsIHJlcGxpY2EgYW55bW9yZS4gICIKKwkJCQkJCSAiWW91IG11 c3QgcmVjcmVhdGUgdGhlIHBoeXNpY2FsIHJlcGxpY2EgYmVmb3JlIGNvbnRpbnVpbmcuIik7CiAJ fQogCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fZGJzOyBpKyspCkBAIC0yNTEsMTcgKzI5MSwy MSBAQCBjbGVhbnVwX29iamVjdHNfYXRleGl0KHZvaWQpCiAJCQkJICovCiAJCQkJaWYgKGRiaW5m by0+bWFkZV9wdWJsaWNhdGlvbikKIAkJCQl7Ci0JCQkJCXBnX2xvZ193YXJuaW5nKCJwdWJsaWNh dGlvbiBcIiVzXCIgY3JlYXRlZCBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHJpbWFyeSB3YXMgbGVm dCBiZWhpbmQiLAotCQkJCQkJCQkgICBkYmluZm8tPnB1Ym5hbWUsCi0JCQkJCQkJCSAgIGRiaW5m by0+ZGJuYW1lKTsKLQkJCQkJcGdfbG9nX3dhcm5pbmdfaGludCgiRHJvcCB0aGlzIHB1YmxpY2F0 aW9uIGJlZm9yZSB0cnlpbmcgYWdhaW4uIik7CisJCQkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X1dBUk5JTkcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCQkJICJwdWJsaWNhdGlvbiBcIiVzXCIg Y3JlYXRlZCBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHJpbWFyeSB3YXMgbGVmdCBiZWhpbmQiLAor CQkJCQkJCQkJIGRiaW5mby0+cHVibmFtZSwKKwkJCQkJCQkJCSBkYmluZm8tPmRibmFtZSk7CisJ CQkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJ CQkJICJEcm9wIHRoaXMgcHVibGljYXRpb24gYmVmb3JlIHRyeWluZyBhZ2Fpbi4iKTsKIAkJCQl9 CiAJCQkJaWYgKGRiaW5mby0+bWFkZV9yZXBsc2xvdCkKIAkJCQl7Ci0JCQkJCXBnX2xvZ193YXJu aW5nKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBjcmVhdGVkIGluIGRhdGFiYXNlIFwiJXNcIiBv biBwcmltYXJ5IHdhcyBsZWZ0IGJlaGluZCIsCi0JCQkJCQkJCSAgIGRiaW5mby0+cmVwbHNsb3Ru YW1lLAotCQkJCQkJCQkgICBkYmluZm8tPmRibmFtZSk7Ci0JCQkJCXBnX2xvZ193YXJuaW5nX2hp bnQoIkRyb3AgdGhpcyByZXBsaWNhdGlvbiBzbG90IHNvb24gdG8gYXZvaWQgcmV0ZW50aW9uIG9m IFdBTCBmaWxlcy4iKTsKKwkJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkJCQkgInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNyZWF0ZWQg aW4gZGF0YWJhc2UgXCIlc1wiIG9uIHByaW1hcnkgd2FzIGxlZnQgYmVoaW5kIiwKKwkJCQkJCQkJ CSBkYmluZm8tPnJlcGxzbG90bmFtZSwKKwkJCQkJCQkJCSBkYmluZm8tPmRibmFtZSk7CisJCQkJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJCQkJ ICJEcm9wIHRoaXMgcmVwbGljYXRpb24gc2xvdCBzb29uIHRvIGF2b2lkIHJldGVudGlvbiBvZiBX QUwgZmlsZXMuIik7CiAJCQkJfQogCQkJfQogCQl9CkBAIC0zNDIsNyArMzg2LDggQEAgZ2V0X2Jh c2VfY29ubmluZm8oY29uc3QgY2hhciAqY29ubmluZm8sIGNoYXIgKipkYm5hbWUpCiAJY29ubl9v cHRzID0gUFFjb25uaW5mb1BhcnNlKGNvbm5pbmZvLCAmZXJybXNnKTsKIAlpZiAoY29ubl9vcHRz ID09IE5VTEwpCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBwYXJzZSBjb25uZWN0aW9u IHN0cmluZzogJXMiLCBlcnJtc2cpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBwYXJzZSBjb25uZWN0aW9uIHN0cmlu ZzogJXMiLCBlcnJtc2cpOwogCQlQUWZyZWVtZW0oZXJybXNnKTsKIAkJcmV0dXJuIE5VTEw7CiAJ fQpAQCAtNDI2LDcgKzQ3MSw4IEBAIGdldF9leGVjX3BhdGgoY29uc3QgY2hhciAqYXJndjAsIGNv bnN0IGNoYXIgKnByb2duYW1lKQogCQkJCQkgcHJvZ25hbWUsIGZ1bGxfcGF0aCwgInBnX2NyZWF0 ZXN1YnNjcmliZXIiKTsKIAl9CiAKLQlwZ19sb2dfZGVidWcoIiVzIHBhdGggaXM6ICAlcyIsIHBy b2duYW1lLCBleGVjX3BhdGgpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJICIlcyBwYXRoIGlzOiAgJXMiLCBwcm9nbmFtZSwgZXhlY19wYXRo KTsKIAogCXJldHVybiBleGVjX3BhdGg7CiB9CkBAIC00NDMsOCArNDg5LDkgQEAgY2hlY2tfZGF0 YV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGF0YWRpcikKIAl1aW50MzIJCW1ham9yX3ZlcnNpb247 CiAJY2hhcgkgICAqdmVyc2lvbl9zdHI7CiAKLQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgaWYgZGly ZWN0b3J5IFwiJXNcIiBpcyBhIGNsdXN0ZXIgZGF0YSBkaXJlY3RvcnkiLAotCQkJCWRhdGFkaXIp OworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkg ImNoZWNraW5nIGlmIGRpcmVjdG9yeSBcIiVzXCIgaXMgYSBjbHVzdGVyIGRhdGEgZGlyZWN0b3J5 IiwKKwkJCQkJIGRhdGFkaXIpOwogCiAJaWYgKHN0YXQoZGF0YWRpciwgJnN0YXRidWYpICE9IDAp CiAJewpAQCAtNDYyLDkgKzUwOSwxMSBAQCBjaGVja19kYXRhX2RpcmVjdG9yeShjb25zdCBjaGFy ICpkYXRhZGlyKQogCW1ham9yX3ZlcnNpb24gPSBHRVRfUEdfTUFKT1JWRVJTSU9OX05VTShnZXRf cGdfdmVyc2lvbihkYXRhZGlyLCAmdmVyc2lvbl9zdHIpKTsKIAlpZiAobWFqb3JfdmVyc2lvbiAh PSBQR19NQUpPUlZFUlNJT05fTlVNKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJkYXRhIGRpcmVjdG9y eSBpcyBvZiB3cm9uZyB2ZXJzaW9uIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIkZpbGUgXCIl c1wiIGNvbnRhaW5zIFwiJXNcIiwgd2hpY2ggaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGlzIHBy b2dyYW0ncyB2ZXJzaW9uIFwiJXNcIi4iLAotCQkJCQkJCSJQR19WRVJTSU9OIiwgdmVyc2lvbl9z dHIsIFBHX01BSk9SVkVSU0lPTik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZGF0YSBkaXJlY3RvcnkgaXMgb2Ygd3JvbmcgdmVyc2lv biIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJ CQkJCSAiRmlsZSBcIiVzXCIgY29udGFpbnMgXCIlc1wiLCB3aGljaCBpcyBub3QgY29tcGF0aWJs ZSB3aXRoIHRoaXMgcHJvZ3JhbSdzIHZlcnNpb24gXCIlc1wiLiIsCisJCQkJCQkgIlBHX1ZFUlNJ T04iLCB2ZXJzaW9uX3N0ciwgUEdfTUFKT1JWRVJTSU9OKTsKIAkJZXhpdCgxKTsKIAl9CiB9CkBA IC01NDcsMTQgKzU5NiwxNiBAQCBzdG9yZV9wdWJfc3ViX2luZm8oY29uc3Qgc3RydWN0IENyZWF0 ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsCiAJCQlkYmluZm9baV0uc3VibmFtZSA9IE5VTEw7CiAJ CS8qIE90aGVyIGZpZWxkcyB3aWxsIGJlIGZpbGxlZCBsYXRlciAqLwogCi0JCXBnX2xvZ19kZWJ1 ZygicHVibGlzaGVyKCVkKTogcHVibGljYXRpb246ICVzIDsgcmVwbGljYXRpb24gc2xvdDogJXMg OyBjb25uZWN0aW9uIHN0cmluZzogJXMiLCBpLAotCQkJCQkgZGJpbmZvW2ldLnB1Ym5hbWUgPyBk YmluZm9baV0ucHVibmFtZSA6ICIoYXV0bykiLAotCQkJCQkgZGJpbmZvW2ldLnJlcGxzbG90bmFt ZSA/IGRiaW5mb1tpXS5yZXBsc2xvdG5hbWUgOiAiKGF1dG8pIiwKLQkJCQkJIGRiaW5mb1tpXS5w dWJjb25uaW5mbyk7Ci0JCXBnX2xvZ19kZWJ1Zygic3Vic2NyaWJlciglZCk6IHN1YnNjcmlwdGlv bjogJXMgOyBjb25uZWN0aW9uIHN0cmluZzogJXMsIHR3b19waGFzZTogJXMiLCBpLAotCQkJCQkg ZGJpbmZvW2ldLnN1Ym5hbWUgPyBkYmluZm9baV0uc3VibmFtZSA6ICIoYXV0bykiLAotCQkJCQkg ZGJpbmZvW2ldLnN1YmNvbm5pbmZvLAotCQkJCQkgZGJpbmZvcy50d29fcGhhc2UgPyAidHJ1ZSIg OiAiZmFsc2UiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJwdWJsaXNoZXIoJWQpOiBwdWJsaWNhdGlvbjogJXMgOyByZXBsaWNhdGlv biBzbG90OiAlcyA7IGNvbm5lY3Rpb24gc3RyaW5nOiAlcyIsIGksCisJCQkJCQkgZGJpbmZvW2ld LnB1Ym5hbWUgPyBkYmluZm9baV0ucHVibmFtZSA6ICIoYXV0bykiLAorCQkJCQkJIGRiaW5mb1tp XS5yZXBsc2xvdG5hbWUgPyBkYmluZm9baV0ucmVwbHNsb3RuYW1lIDogIihhdXRvKSIsCisJCQkJ CQkgZGJpbmZvW2ldLnB1YmNvbm5pbmZvKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVC VUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJzdWJzY3JpYmVyKCVkKTogc3Vic2NyaXB0aW9u OiAlcyA7IGNvbm5lY3Rpb24gc3RyaW5nOiAlcywgdHdvX3BoYXNlOiAlcyIsIGksCisJCQkJCQkg ZGJpbmZvW2ldLnN1Ym5hbWUgPyBkYmluZm9baV0uc3VibmFtZSA6ICIoYXV0bykiLAorCQkJCQkJ IGRiaW5mb1tpXS5zdWJjb25uaW5mbywKKwkJCQkJCSBkYmluZm9zLnR3b19waGFzZSA/ICJ0cnVl IiA6ICJmYWxzZSIpOwogCiAJCWlmIChudW1fcHVicyA+IDApCiAJCQlwdWJjZWxsID0gcHViY2Vs bC0+bmV4dDsKQEAgLTU4Miw4ICs2MzMsOSBAQCBjb25uZWN0X2RhdGFiYXNlKGNvbnN0IGNoYXIg KmNvbm5pbmZvLCBib29sIGV4aXRfb25fZXJyb3IpCiAJY29ubiA9IFBRY29ubmVjdGRiKGNvbm5p bmZvKTsKIAlpZiAoUFFzdGF0dXMoY29ubikgIT0gQ09OTkVDVElPTl9PSykKIAl7Ci0JCXBnX2xv Z19lcnJvcigiY29ubmVjdGlvbiB0byBkYXRhYmFzZSBmYWlsZWQ6ICVzIiwKLQkJCQkJIFBRZXJy b3JNZXNzYWdlKGNvbm4pKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19QUklNQVJZLAorCQkJCQkJICJjb25uZWN0aW9uIHRvIGRhdGFiYXNlIGZhaWxlZDogJXMiLAor CQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKIAkJUFFmaW5pc2goY29ubik7CiAKIAkJaWYg KGV4aXRfb25fZXJyb3IpCkBAIC01OTUsOCArNjQ3LDkgQEAgY29ubmVjdF9kYXRhYmFzZShjb25z dCBjaGFyICpjb25uaW5mbywgYm9vbCBleGl0X29uX2Vycm9yKQogCXJlcyA9IFBRZXhlYyhjb25u LCBBTFdBWVNfU0VDVVJFX1NFQVJDSF9QQVRIX1NRTCk7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJl cykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY2xl YXIgXCJzZWFyY2hfcGF0aFwiOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMp KTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJ CQkJICJjb3VsZCBub3QgY2xlYXIgXCJzZWFyY2hfcGF0aFwiOiAlcyIsCisJCQkJCQkgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCVBRY2xlYXIocmVzKTsKIAkJUFFmaW5pc2goY29ubik7 CiAKQEAgLTYzNSwyNyArNjg4LDMxIEBAIGdldF9wcmltYXJ5X3N5c2lkKGNvbnN0IGNoYXIgKmNv bm5pbmZvKQogCVBHcmVzdWx0ICAgKnJlczsKIAl1aW50NjQJCXN5c2lkOwogCi0JcGdfbG9nX2lu Zm8oImdldHRpbmcgc3lzdGVtIGlkZW50aWZpZXIgZnJvbSBwdWJsaXNoZXIiKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJnZXR0aW5nIHN5 c3RlbSBpZGVudGlmaWVyIGZyb20gcHVibGlzaGVyIik7CiAKIAljb25uID0gY29ubmVjdF9kYXRh YmFzZShjb25uaW5mbywgdHJ1ZSk7CiAKIAlyZXMgPSBQUWV4ZWMoY29ubiwgIlNFTEVDVCBzeXN0 ZW1faWRlbnRpZmllciBGUk9NIHBnX2NhdGFsb2cucGdfY29udHJvbF9zeXN0ZW0oKSIpOwogCWlm IChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19l cnJvcigiY291bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogJXMiLAotCQkJCQkgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjog JXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIAlpZiAoUFFudHVwbGVzKHJlcykgIT0gMSkKIAl7Ci0J CXBnX2xvZ19lcnJvcigiY291bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogZ290ICVkIHJv d3MsIGV4cGVjdGVkICVkIHJvdyIsCi0JCQkJCSBQUW50dXBsZXMocmVzKSwgMSk7CisJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQg bm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogZ290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJvdyIs CisJCQkJCQkgUFFudHVwbGVzKHJlcyksIDEpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4s IHRydWUpOwogCX0KIAogCXN5c2lkID0gc3RydG91NjQoUFFnZXR2YWx1ZShyZXMsIDAsIDApLCBO VUxMLCAxMCk7CiAKLQlwZ19sb2dfaW5mbygic3lzdGVtIGlkZW50aWZpZXIgaXMgJSIgUFJJdTY0 ICIgb24gcHVibGlzaGVyIiwgc3lzaWQpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8s IFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN5c3RlbSBpZGVudGlmaWVyIGlzICUiIFBSSXU2NCAi IG9uIHB1Ymxpc2hlciIsIHN5c2lkKTsKIAogCVBRY2xlYXIocmVzKTsKIAlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIGZhbHNlKTsKQEAgLTY3NSw3ICs3MzIsOCBAQCBnZXRfc3RhbmRieV9zeXNp ZChjb25zdCBjaGFyICpkYXRhZGlyKQogCWJvb2wJCWNyY19vazsKIAl1aW50NjQJCXN5c2lkOwog Ci0JcGdfbG9nX2luZm8oImdldHRpbmcgc3lzdGVtIGlkZW50aWZpZXIgZnJvbSBzdWJzY3JpYmVy Iik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJ CSAiZ2V0dGluZyBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIHN1YnNjcmliZXIiKTsKIAogCWNmID0g Z2V0X2NvbnRyb2xmaWxlKGRhdGFkaXIsICZjcmNfb2spOwogCWlmICghY3JjX29rKQpAQCAtNjgz LDcgKzc0MSw4IEBAIGdldF9zdGFuZGJ5X3N5c2lkKGNvbnN0IGNoYXIgKmRhdGFkaXIpCiAKIAlz eXNpZCA9IGNmLT5zeXN0ZW1faWRlbnRpZmllcjsKIAotCXBnX2xvZ19pbmZvKCJzeXN0ZW0gaWRl bnRpZmllciBpcyAlIiBQUkl1NjQgIiBvbiBzdWJzY3JpYmVyIiwgc3lzaWQpOworCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN5c3RlbSBpZGVu dGlmaWVyIGlzICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLCBzeXNpZCk7CiAKIAlwZ19mcmVl KGNmKTsKIApAQCAtNzA0LDcgKzc2Myw4IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0 IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCiAJY2hhcgkgICAqY21kX3N0 cjsKIAotCXBnX2xvZ19pbmZvKCJtb2RpZnlpbmcgc3lzdGVtIGlkZW50aWZpZXIgb2Ygc3Vic2Ny aWJlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAor CQkJCQkgIm1vZGlmeWluZyBzeXN0ZW0gaWRlbnRpZmllciBvZiBzdWJzY3JpYmVyIik7CiAKIAlj ZiA9IGdldF9jb250cm9sZmlsZShzdWJzY3JpYmVyX2RpciwgJmNyY19vayk7CiAJaWYgKCFjcmNf b2spCkBAIC03MjEsMzEgKzc4MSwzNyBAQCBtb2RpZnlfc3Vic2NyaWJlcl9zeXNpZChjb25zdCBz dHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKIAljZi0+c3lzdGVtX2lkZW50aWZp ZXIgfD0gZ2V0cGlkKCkgJiAweEZGRjsKIAogCWlmIChkcnlfcnVuKQotCQlwZ19sb2dfaW5mbygi ZHJ5LXJ1bjogd291bGQgc2V0IHN5c3RlbSBpZGVudGlmaWVyIHRvICUiIFBSSXU2NCAiIG9uIHN1 YnNjcmliZXIiLAotCQkJCQljZi0+c3lzdGVtX2lkZW50aWZpZXIpOworCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQg c2V0IHN5c3RlbSBpZGVudGlmaWVyIHRvICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLAorCQkJ CQkJIGNmLT5zeXN0ZW1faWRlbnRpZmllcik7CiAJZWxzZQogCXsKIAkJdXBkYXRlX2NvbnRyb2xm aWxlKHN1YnNjcmliZXJfZGlyLCBjZiwgdHJ1ZSk7Ci0JCXBnX2xvZ19pbmZvKCJzeXN0ZW0gaWRl bnRpZmllciBpcyAlIiBQUkl1NjQgIiBvbiBzdWJzY3JpYmVyIiwKLQkJCQkJY2YtPnN5c3RlbV9p ZGVudGlmaWVyKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkgInN5c3RlbSBpZGVudGlmaWVyIGlzICUiIFBSSXU2NCAiIG9uIHN1YnNjcmli ZXIiLAorCQkJCQkJIGNmLT5zeXN0ZW1faWRlbnRpZmllcik7CiAJfQogCiAJaWYgKGRyeV9ydW4p Ci0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBydW4gcGdfcmVzZXR3YWwgb24gdGhlIHN1 YnNjcmliZXIiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkgImRyeS1ydW46IHdvdWxkIHJ1biBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2Ny aWJlciIpOwogCWVsc2UKLQkJcGdfbG9nX2luZm8oInJ1bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhl IHN1YnNjcmliZXIiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkgInJ1bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsK IAogCWNtZF9zdHIgPSBwc3ByaW50ZigiXCIlc1wiIC1EIFwiJXNcIiA+IFwiJXNcIiIsIHBnX3Jl c2V0d2FsX3BhdGgsCiAJCQkJCSAgIHN1YnNjcmliZXJfZGlyLCBERVZOVUxMKTsKIAotCXBnX2xv Z19kZWJ1ZygicGdfcmVzZXR3YWwgY29tbWFuZCBpczogJXMiLCBjbWRfc3RyKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAicGdfcmVzZXR3 YWwgY29tbWFuZCBpczogJXMiLCBjbWRfc3RyKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCWlu dAkJCXJjID0gc3lzdGVtKGNtZF9zdHIpOwogCiAJCWlmIChyYyA9PSAwKQotCQkJcGdfbG9nX2lu Zm8oInN1Y2Nlc3NmdWxseSByZXNldCBXQUwgb24gdGhlIHN1YnNjcmliZXIiKTsKKwkJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAic3VjY2Vz c2Z1bGx5IHJlc2V0IFdBTCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCQllbHNlCiAJCQlwZ19mYXRh bCgiY291bGQgbm90IHJlc2V0IFdBTCBvbiBzdWJzY3JpYmVyOiAlcyIsIHdhaXRfcmVzdWx0X3Rv X3N0cihyYykpOwogCX0KQEAgLTc3MSwxNSArODM3LDE3IEBAIGdlbmVyYXRlX29iamVjdF9uYW1l KFBHY29ubiAqY29ubikKIAkJCQkgIldIRVJFIGRhdG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRf ZGF0YWJhc2UoKSIpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19P SykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiBkYXRhYmFzZSBPSUQ6ICVz IiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4g ZGF0YWJhc2UgT0lEOiAlcyIsCisJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJ CWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCiAJaWYgKFBRbnR1cGxlcyhy ZXMpICE9IDEpCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gZGF0YWJhc2Ug T0lEOiBnb3QgJWQgcm93cywgZXhwZWN0ZWQgJWQgcm93IiwKLQkJCQkJIFBRbnR1cGxlcyhyZXMp LCAxKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAor CQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIGRhdGFiYXNlIE9JRDogZ290ICVkIHJvd3MsIGV4cGVj dGVkICVkIHJvdyIsCisJCQkJCQkgUFFudHVwbGVzKHJlcyksIDEpOwogCQlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtODE5LDggKzg4Nyw5IEBAIGZpbmRfcHVibGlj YXRpb24oUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpwdWJuYW1lLCBjb25zdCBjaGFyICpkYm5h bWUpCiAJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJaWYgKFBRcmVzdWx0U3RhdHVz KHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qg ZmluZCBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJCSBw dWJuYW1lLCBkYm5hbWUsIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3QgZmluZCBw dWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCisJCQkJCQkgcHVibmFt ZSwgZGJuYW1lLCBQUWVycm9yTWVzc2FnZShjb25uKSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2Uo Y29ubiwgdHJ1ZSk7CiAJfQogCkBAIC04NzMsOCArOTQyLDkgQEAgc2V0dXBfcHVibGlzaGVyKHN0 cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCQlpZiAoZmluZF9wdWJsaWNhdGlvbihjb25u LCBkYmluZm9baV0ucHVibmFtZSwgZGJpbmZvW2ldLmRibmFtZSkpCiAJCXsKIAkJCS8qIFJldXNl IGV4aXN0aW5nIHB1YmxpY2F0aW9uIG9uIHB1Ymxpc2hlci4gKi8KLQkJCXBnX2xvZ19pbmZvKCJ1 c2UgZXhpc3RpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJ CQlkYmluZm9baV0ucHVibmFtZSwgZGJpbmZvW2ldLmRibmFtZSk7CisJCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgInVzZSBleGlzdGluZyBw dWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCQkgZGJpbmZvW2ld LnB1Ym5hbWUsIGRiaW5mb1tpXS5kYm5hbWUpOwogCQkJLyogRG9uJ3QgcmVtb3ZlIHByZS1leGlz dGluZyBwdWJsaWNhdGlvbiBpZiBhbiBlcnJvciBvY2N1cnMuICovCiAJCQlkYmluZm9baV0ubWFk ZV9wdWJsaWNhdGlvbiA9IGZhbHNlOwogCQl9CkBAIC05MTIsOCArOTgyLDkgQEAgc2V0dXBfcHVi bGlzaGVyKHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCQkJcmVzID0gUFFleGVjKGNv bm4sICJTRUxFQ1QgcGdfbG9nX3N0YW5kYnlfc25hcHNob3QoKSIpOwogCQkJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCQkJewotCQkJCXBnX2xvZ19lcnJvcigi Y291bGQgbm90IHdyaXRlIGFuIGFkZGl0aW9uYWwgV0FMIHJlY29yZDogJXMiLAotCQkJCQkJCSBQ UXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19F UlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCSAiY291bGQgbm90IHdyaXRlIGFuIGFkZGl0 aW9uYWwgV0FMIHJlY29yZDogJXMiLAorCQkJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVz KSk7CiAJCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJCX0KIAkJCVBRY2xl YXIocmVzKTsKQEAgLTkzOCw4ICsxMDA5LDkgQEAgc2VydmVyX2lzX2luX3JlY292ZXJ5KFBHY29u biAqY29ubikKIAogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykK IAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiByZWNvdmVyeSBwcm9ncmVzczog JXMiLAotCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFp biByZWNvdmVyeSBwcm9ncmVzczogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJl cykpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtOTcxLDcg KzEwNDMsOCBAQCBjaGVja19wdWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpk YmluZm8pCiAJaW50CQkJbWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9uczsKIAljaGFyCSAgICptYXhf c2xvdF93YWxfa2VlcF9zaXplOwogCi0JcGdfbG9nX2luZm8oImNoZWNraW5nIHNldHRpbmdzIG9u IHB1Ymxpc2hlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAorCQkJCQkgImNoZWNraW5nIHNldHRpbmdzIG9uIHB1Ymxpc2hlciIpOwogCiAJY29ubiA9 IGNvbm5lY3RfZGF0YWJhc2UoZGJpbmZvWzBdLnB1YmNvbm5pbmZvLCB0cnVlKTsKIApAQCAtOTgx LDcgKzEwNTQsOCBAQCBjaGVja19wdWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZv ICpkYmluZm8pCiAJICovCiAJaWYgKHNlcnZlcl9pc19pbl9yZWNvdmVyeShjb25uKSkKIAl7Ci0J CXBnX2xvZ19lcnJvcigicHJpbWFyeSBzZXJ2ZXIgY2Fubm90IGJlIGluIHJlY292ZXJ5Iik7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi cHJpbWFyeSBzZXJ2ZXIgY2Fubm90IGJlIGluIHJlY292ZXJ5Iik7CiAJCWRpc2Nvbm5lY3RfZGF0 YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCkBAIC0xMDA3LDggKzEwODEsOSBAQCBjaGVja19wdWJs aXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlpZiAoUFFyZXN1 bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJyb3IoImNv dWxkIG5vdCBvYnRhaW4gcHVibGlzaGVyIHNldHRpbmdzOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVy cm9yTWVzc2FnZShyZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHB1Ymxpc2hlciBzZXR0aW5nczog JXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTAyMiw0OCArMTA5Nyw2MyBAQCBjaGVja19w dWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlQUWNsZWFy KHJlcyk7CiAKLQlwZ19sb2dfZGVidWcoInB1Ymxpc2hlcjogd2FsX2xldmVsOiAlcyIsIHdhbF9s ZXZlbCk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJsaXNoZXI6IG1heF9yZXBsaWNhdGlvbl9zbG90czog JWQiLCBtYXhfcmVwc2xvdHMpOwotCXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyOiBjdXJyZW50IHJl cGxpY2F0aW9uIHNsb3RzOiAlZCIsIGN1cl9yZXBzbG90cyk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJs aXNoZXI6IG1heF93YWxfc2VuZGVyczogJWQiLCBtYXhfd2Fsc2VuZGVycyk7Ci0JcGdfbG9nX2Rl YnVnKCJwdWJsaXNoZXI6IGN1cnJlbnQgd2FsIHNlbmRlcnM6ICVkIiwgY3VyX3dhbHNlbmRlcnMp OwotCXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyOiBtYXhfcHJlcGFyZWRfdHJhbnNhY3Rpb25zOiAl ZCIsCi0JCQkJIG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMpOwotCXBnX2xvZ19kZWJ1ZygicHVi bGlzaGVyOiBtYXhfc2xvdF93YWxfa2VlcF9zaXplOiAlcyIsCi0JCQkJIG1heF9zbG90X3dhbF9r ZWVwX3NpemUpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJICJwdWJsaXNoZXI6IHdhbF9sZXZlbDogJXMiLCB3YWxfbGV2ZWwpOworCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNo ZXI6IG1heF9yZXBsaWNhdGlvbl9zbG90czogJWQiLCBtYXhfcmVwc2xvdHMpOworCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6 IGN1cnJlbnQgcmVwbGljYXRpb24gc2xvdHM6ICVkIiwgY3VyX3JlcHNsb3RzKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAicHVibGlzaGVy OiBtYXhfd2FsX3NlbmRlcnM6ICVkIiwgbWF4X3dhbHNlbmRlcnMpOworCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IGN1cnJl bnQgd2FsIHNlbmRlcnM6ICVkIiwgY3VyX3dhbHNlbmRlcnMpOworCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IG1heF9wcmVw YXJlZF90cmFuc2FjdGlvbnM6ICVkIiwKKwkJCQkJIG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMp OworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ ICJwdWJsaXNoZXI6IG1heF9zbG90X3dhbF9rZWVwX3NpemU6ICVzIiwKKwkJCQkJIG1heF9zbG90 X3dhbF9rZWVwX3NpemUpOwogCiAJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCBmYWxzZSk7CiAK IAlpZiAoc3RyY21wKHdhbF9sZXZlbCwgIm1pbmltYWwiKSA9PSAwKQogCXsKLQkJcGdfbG9nX2Vy cm9yKCJwdWJsaXNoZXIgcmVxdWlyZXMgXCJ3YWxfbGV2ZWxcIiA+PSBcInJlcGxpY2FcIiIpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkg InB1Ymxpc2hlciByZXF1aXJlcyBcIndhbF9sZXZlbFwiID49IFwicmVwbGljYVwiIik7CiAJCWZh aWxlZCA9IHRydWU7CiAJfQogCiAJaWYgKG1heF9yZXBzbG90cyAtIGN1cl9yZXBzbG90cyA8IG51 bV9kYnMpCiAJewotCQlwZ19sb2dfZXJyb3IoInB1Ymxpc2hlciByZXF1aXJlcyAlZCByZXBsaWNh dGlvbiBzbG90cywgYnV0IG9ubHkgJWQgcmVtYWluIiwKLQkJCQkJIG51bV9kYnMsIG1heF9yZXBz bG90cyAtIGN1cl9yZXBzbG90cyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkg ICJtYXhfcmVwbGljYXRpb25fc2xvdHMiLCBjdXJfcmVwc2xvdHMgKyBudW1fZGJzKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJwdWJs aXNoZXIgcmVxdWlyZXMgJWQgcmVwbGljYXRpb24gc2xvdHMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIs CisJCQkJCQkgbnVtX2RicywgbWF4X3JlcHNsb3RzIC0gY3VyX3JlcHNsb3RzKTsKKwkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJJbmNyZWFzZSB0 aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJ CQkgIm1heF9yZXBsaWNhdGlvbl9zbG90cyIsIGN1cl9yZXBzbG90cyArIG51bV9kYnMpOwogCQlm YWlsZWQgPSB0cnVlOwogCX0KIAogCWlmIChtYXhfd2Fsc2VuZGVycyAtIGN1cl93YWxzZW5kZXJz IDwgbnVtX2RicykKIAl7Ci0JCXBnX2xvZ19lcnJvcigicHVibGlzaGVyIHJlcXVpcmVzICVkIFdB TCBzZW5kZXIgcHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2Ricywg bWF4X3dhbHNlbmRlcnMgLSBjdXJfd2Fsc2VuZGVycyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJ bmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVk LiIsCi0JCQkJCQkgICJtYXhfd2FsX3NlbmRlcnMiLCBjdXJfd2Fsc2VuZGVycyArIG51bV9kYnMp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkgInB1Ymxpc2hlciByZXF1aXJlcyAlZCBXQUwgc2VuZGVyIHByb2Nlc3NlcywgYnV0IG9ubHkg JWQgcmVtYWluIiwKKwkJCQkJCSBudW1fZGJzLCBtYXhfd2Fsc2VuZGVycyAtIGN1cl93YWxzZW5k ZXJzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJ CQkJICJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxl YXN0ICVkLiIsCisJCQkJCQkgIm1heF93YWxfc2VuZGVycyIsIGN1cl93YWxzZW5kZXJzICsgbnVt X2Ricyk7CiAJCWZhaWxlZCA9IHRydWU7CiAJfQogCiAJaWYgKG1heF9wcmVwYXJlZF90cmFuc2Fj dGlvbnMgIT0gMCAmJiAhZGJpbmZvcy50d29fcGhhc2UpCiAJewotCQlwZ19sb2dfd2FybmluZygi dHdvX3BoYXNlIG9wdGlvbiB3aWxsIG5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBzbG90 cyIpOwotCQlwZ19sb2dfd2FybmluZ19kZXRhaWwoIlN1YnNjcmlwdGlvbnMgd2lsbCBiZSBjcmVh dGVkIHdpdGggdGhlIHR3b19waGFzZSBvcHRpb24gZGlzYWJsZWQuICAiCi0JCQkJCQkJICAiUHJl cGFyZWQgdHJhbnNhY3Rpb25zIHdpbGwgYmUgcmVwbGljYXRlZCBhdCBDT01NSVQgUFJFUEFSRUQu Iik7Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIllvdSBjYW4gdXNlIHRoZSBjb21tYW5kLWxpbmUg b3B0aW9uIC0tZW5hYmxlLXR3by1waGFzZSB0byBlbmFibGUgdHdvX3BoYXNlLiIpOworCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAidHdv X3BoYXNlIG9wdGlvbiB3aWxsIG5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBzbG90cyIp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfREVUQUlMLAorCQkJ CQkJICJTdWJzY3JpcHRpb25zIHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSB0d29fcGhhc2Ugb3B0 aW9uIGRpc2FibGVkLiAgIgorCQkJCQkJICJQcmVwYXJlZCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBy ZXBsaWNhdGVkIGF0IENPTU1JVCBQUkVQQVJFRC4iKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfV0FSTklORywgUEdfTE9HX0hJTlQsCisJCQkJCQkgIllvdSBjYW4gdXNlIHRoZSBjb21tYW5k LWxpbmUgb3B0aW9uIC0tZW5hYmxlLXR3by1waGFzZSB0byBlbmFibGUgdHdvX3BoYXNlLiIpOwog CX0KIAogCS8qCkBAIC0xMDczLDkgKzExNjMsMTEgQEAgY2hlY2tfcHVibGlzaGVyKGNvbnN0IHN0 cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCSAqLwogCWlmIChkcnlfcnVuICYmIChzdHJj bXAobWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZSwgIi0xIikgIT0gMCkpCiAJewotCQlwZ19sb2dfd2Fy bmluZygicmVxdWlyZWQgV0FMIGNvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGlzaGVyIik7 Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIlNldCB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIg XCIlc1wiIHRvIC0xIHRvIGVuc3VyZSB0aGF0IHJlcXVpcmVkIFdBTCBmaWxlcyBhcmUgbm90IHBy ZW1hdHVyZWx5IHJlbW92ZWQuIiwKLQkJCQkJCQkibWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZSIpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAicmVxdWlyZWQgV0FMIGNvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGlzaGVyIik7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJICJT ZXQgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byAtMSB0byBlbnN1cmUgdGhh dCByZXF1aXJlZCBXQUwgZmlsZXMgYXJlIG5vdCBwcmVtYXR1cmVseSByZW1vdmVkLiIsCisJCQkJ CQkgIm1heF9zbG90X3dhbF9rZWVwX3NpemUiKTsKIAl9CiAKIAlwZ19mcmVlKHdhbF9sZXZlbCk7 CkBAIC0xMTA2LDE0ICsxMTk4LDE2IEBAIGNoZWNrX3N1YnNjcmliZXIoY29uc3Qgc3RydWN0IExv Z2ljYWxSZXBJbmZvICpkYmluZm8pCiAJaW50CQkJbWF4X3JlcGxvcmlnaW5zOwogCWludAkJCW1h eF93cHJvY3M7CiAKLQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgc2V0dGluZ3Mgb24gc3Vic2NyaWJl ciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJ CQkgImNoZWNraW5nIHNldHRpbmdzIG9uIHN1YnNjcmliZXIiKTsKIAogCWNvbm4gPSBjb25uZWN0 X2RhdGFiYXNlKGRiaW5mb1swXS5zdWJjb25uaW5mbywgdHJ1ZSk7CiAKIAkvKiBUaGUgdGFyZ2V0 IHNlcnZlciBtdXN0IGJlIGEgc3RhbmRieSAqLwogCWlmICghc2VydmVyX2lzX2luX3JlY292ZXJ5 KGNvbm4pKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJ0YXJnZXQgc2VydmVyIG11c3QgYmUgYSBzdGFu ZGJ5Iik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAidGFyZ2V0IHNlcnZlciBtdXN0IGJlIGEgc3RhbmRieSIpOwogCQlkaXNjb25uZWN0 X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTEzNyw4ICsxMjMxLDkgQEAgY2hlY2tf c3Vic2NyaWJlcihjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCWlmIChQ UXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJv cigiY291bGQgbm90IG9idGFpbiBzdWJzY3JpYmVyIHNldHRpbmdzOiAlcyIsCi0JCQkJCSBQUXJl c3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1Is IFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHN1YnNjcmliZXIgc2V0 dGluZ3M6ICVzIiwKKwkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJZGlzY29u bmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAl9CiAKQEAgLTExNDgsMTIgKzEyNDMsMTYgQEAg Y2hlY2tfc3Vic2NyaWJlcihjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlp ZiAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCAzLCAwKSwgIiIpICE9IDApCiAJCXByaW1hcnlfc2xv dF9uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCAzLCAwKSk7CiAKLQlwZ19sb2dfZGVi dWcoInN1YnNjcmliZXI6IG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnM6ICVkIiwKLQkJ CQkgbWF4X2xyd29ya2Vycyk7Ci0JcGdfbG9nX2RlYnVnKCJzdWJzY3JpYmVyOiBtYXhfYWN0aXZl X3JlcGxpY2F0aW9uX29yaWdpbnM6ICVkIiwgbWF4X3JlcGxvcmlnaW5zKTsKLQlwZ19sb2dfZGVi dWcoInN1YnNjcmliZXI6IG1heF93b3JrZXJfcHJvY2Vzc2VzOiAlZCIsIG1heF93cHJvY3MpOwor CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJz dWJzY3JpYmVyOiBtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzOiAlZCIsCisJCQkJCSBt YXhfbHJ3b3JrZXJzKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BS SU1BUlksCisJCQkJCSAic3Vic2NyaWJlcjogbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5z OiAlZCIsIG1heF9yZXBsb3JpZ2lucyk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcs IFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN1YnNjcmliZXI6IG1heF93b3JrZXJfcHJvY2Vzc2Vz OiAlZCIsIG1heF93cHJvY3MpOwogCWlmIChwcmltYXJ5X3Nsb3RfbmFtZSkKLQkJcGdfbG9nX2Rl YnVnKCJzdWJzY3JpYmVyOiBwcmltYXJ5X3Nsb3RfbmFtZTogJXMiLCBwcmltYXJ5X3Nsb3RfbmFt ZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAic3Vic2NyaWJlcjogcHJpbWFyeV9zbG90X25hbWU6ICVzIiwgcHJpbWFyeV9zbG90X25h bWUpOwogCiAJUFFjbGVhcihyZXMpOwogCkBAIC0xMTYxLDI4ICsxMjYwLDM0IEBAIGNoZWNrX3N1 YnNjcmliZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlpZiAobWF4 X3JlcGxvcmlnaW5zIDwgbnVtX2RicykKIAl7Ci0JCXBnX2xvZ19lcnJvcigic3Vic2NyaWJlciBy ZXF1aXJlcyAlZCBhY3RpdmUgcmVwbGljYXRpb24gb3JpZ2lucywgYnV0IG9ubHkgJWQgcmVtYWlu IiwKLQkJCQkJIG51bV9kYnMsIG1heF9yZXBsb3JpZ2lucyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50 KCJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0 ICVkLiIsCi0JCQkJCQkgICJtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMiLCBudW1fZGJz KTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJ CQkJICJzdWJzY3JpYmVyIHJlcXVpcmVzICVkIGFjdGl2ZSByZXBsaWNhdGlvbiBvcmlnaW5zLCBi dXQgb25seSAlZCByZW1haW4iLAorCQkJCQkJIG51bV9kYnMsIG1heF9yZXBsb3JpZ2lucyk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiSW5j cmVhc2UgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4i LAorCQkJCQkJICJtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMiLCBudW1fZGJzKTsKIAkJ ZmFpbGVkID0gdHJ1ZTsKIAl9CiAKIAlpZiAobWF4X2xyd29ya2VycyA8IG51bV9kYnMpCiAJewot CQlwZ19sb2dfZXJyb3IoInN1YnNjcmliZXIgcmVxdWlyZXMgJWQgbG9naWNhbCByZXBsaWNhdGlv biB3b3JrZXJzLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2RicywgbWF4X2xyd29y a2Vycyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBw YXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkgICJtYXhfbG9naWNhbF9y ZXBsaWNhdGlvbl93b3JrZXJzIiwgbnVtX2Ricyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAic3Vic2NyaWJlciByZXF1aXJlcyAlZCBs b2dpY2FsIHJlcGxpY2F0aW9uIHdvcmtlcnMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIsCisJCQkJCQkg bnVtX2RicywgbWF4X2xyd29ya2Vycyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9S LCBQR19MT0dfSElOVCwKKwkJCQkJCSAiSW5jcmVhc2UgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4iLAorCQkJCQkJICJtYXhfbG9naWNhbF9yZXBsaWNh dGlvbl93b3JrZXJzIiwgbnVtX2Ricyk7CiAJCWZhaWxlZCA9IHRydWU7CiAJfQogCiAJaWYgKG1h eF93cHJvY3MgPCBudW1fZGJzICsgMSkKIAl7Ci0JCXBnX2xvZ19lcnJvcigic3Vic2NyaWJlciBy ZXF1aXJlcyAlZCB3b3JrZXIgcHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkg bnVtX2RicyArIDEsIG1heF93cHJvY3MpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiSW5jcmVhc2Ug dGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4iLAotCQkJ CQkJICAibWF4X3dvcmtlcl9wcm9jZXNzZXMiLCBudW1fZGJzICsgMSk7CisJCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAic3Vic2NyaWJlciBy ZXF1aXJlcyAlZCB3b3JrZXIgcHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAorCQkJCQkJ IG51bV9kYnMgKyAxLCBtYXhfd3Byb2NzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJS T1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJh bWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJCQkgIm1heF93b3JrZXJfcHJvY2Vz c2VzIiwgbnVtX2RicyArIDEpOwogCQlmYWlsZWQgPSB0cnVlOwogCX0KIApAQCAtMTIxNSwxOSAr MTMyMCwyMiBAQCBkcm9wX2V4aXN0aW5nX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0 IGNoYXIgKnN1Ym5hbWUsIGNvbnN0IGNoYXIgKmRibmFtZQogCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIERST1AgU1VCU0NSSVBUSU9OICVzOyIsIHN1Ym5hbWUpOwogCiAJaWYgKGRyeV9ydW4p Ci0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBkcm9wIHN1YnNjcmlwdGlvbiBcIiVzXCIg aW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc3VibmFtZSwgZGJuYW1lKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImRyeS1ydW46IHdv dWxkIGRyb3Agc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJ IHN1Ym5hbWUsIGRibmFtZSk7CiAJZWxzZQogCXsKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIHN1 YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc3VibmFtZSwgZGJu YW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkgImRyb3BwaW5nIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwK KwkJCQkJCSBzdWJuYW1lLCBkYm5hbWUpOwogCiAJCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeS0+ ZGF0YSk7CiAKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykK IAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgZHJvcCBzdWJzY3JpcHRpb24gXCIlc1wi OiAlcyIsCi0JCQkJCQkgc3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJj b3VsZCBub3QgZHJvcCBzdWJzY3JpcHRpb24gXCIlc1wiOiAlcyIsCisJCQkJCQkJIHN1Ym5hbWUs IFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25u LCB0cnVlKTsKIAkJfQogCkBAIC0xMjYxLDggKzEzNjksOSBAQCBjaGVja19hbmRfZHJvcF9leGlz dGluZ19zdWJzY3JpcHRpb25zKFBHY29ubiAqY29ubiwKIAogCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9i dGFpbiBwcmUtZXhpc3Rpbmcgc3Vic2NyaXB0aW9uczogJXMiLAotCQkJCQkgUFFyZXN1bHRFcnJv ck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFpbiBwcmUtZXhpc3Rpbmcgc3Vic2NyaXB0 aW9uczogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25u ZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTM3Myw3ICsxNDgyLDggQEAgc2V0 dXBfcmVjb3ZlcnkoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sIGNvbnN0IGNo YXIgKmRhdGFkaXIsIGNvbnN0IGMKIAkJCQkJCSAgbHNuKTsKIAl9CiAKLQlwZ19sb2dfZGVidWco InJlY292ZXJ5IHBhcmFtZXRlcnM6XG4lcyIsIHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhKTsK KwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAi cmVjb3ZlcnkgcGFyYW1ldGVyczpcbiVzIiwgcmVjb3Zlcnljb25mY29udGVudHMtPmRhdGEpOwog CiAJaWYgKCFkcnlfcnVuKQogCXsKQEAgLTE0MjcsOSArMTUzNywxMSBAQCBkcm9wX3ByaW1hcnlf cmVwbGljYXRpb25fc2xvdChzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbywgY29uc3QgY2hh ciAqc2xvdG5hbQogCX0KIAllbHNlCiAJewotCQlwZ19sb2dfd2FybmluZygiY291bGQgbm90IGRy b3AgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb24gcHJpbWFyeSIsCi0JCQkJCSAgIHNsb3RuYW1l KTsKLQkJcGdfbG9nX3dhcm5pbmdfaGludCgiRHJvcCB0aGlzIHJlcGxpY2F0aW9uIHNsb3Qgc29v biB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IGRyb3Ag cmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb24gcHJpbWFyeSIsCisJCQkJCQkgc2xvdG5hbWUpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJCQkJCSAi RHJvcCB0aGlzIHJlcGxpY2F0aW9uIHNsb3Qgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FM IGZpbGVzLiIpOwogCX0KIH0KIApAQCAtMTQ2MSw5ICsxNTczLDExIEBAIGRyb3BfZmFpbG92ZXJf cmVwbGljYXRpb25fc2xvdHMoc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJCX0KIAkJ ZWxzZQogCQl7Ci0JCQlwZ19sb2dfd2FybmluZygiY291bGQgbm90IG9idGFpbiBmYWlsb3ZlciBy ZXBsaWNhdGlvbiBzbG90IGluZm9ybWF0aW9uOiAlcyIsCi0JCQkJCQkgICBQUXJlc3VsdEVycm9y TWVzc2FnZShyZXMpKTsKLQkJCXBnX2xvZ193YXJuaW5nX2hpbnQoIkRyb3AgdGhlIGZhaWxvdmVy IHJlcGxpY2F0aW9uIHNsb3RzIG9uIHN1YnNjcmliZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24g b2YgV0FMIGZpbGVzLiIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIGZhaWxvdmVyIHJlcGxpY2F0 aW9uIHNsb3QgaW5mb3JtYXRpb246ICVzIiwKKwkJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2Uo cmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwK KwkJCQkJCQkgIkRyb3AgdGhlIGZhaWxvdmVyIHJlcGxpY2F0aW9uIHNsb3RzIG9uIHN1YnNjcmli ZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOwogCQl9CiAKIAkJUFFj bGVhcihyZXMpOwpAQCAtMTQ3MSw4ICsxNTg1LDEwIEBAIGRyb3BfZmFpbG92ZXJfcmVwbGljYXRp b25fc2xvdHMoc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJfQogCWVsc2UKIAl7Ci0J CXBnX2xvZ193YXJuaW5nKCJjb3VsZCBub3QgZHJvcCBmYWlsb3ZlciByZXBsaWNhdGlvbiBzbG90 Iik7Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIkRyb3AgdGhlIGZhaWxvdmVyIHJlcGxpY2F0aW9u IHNsb3RzIG9uIHN1YnNjcmliZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVz LiIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAiY291bGQgbm90IGRyb3AgZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdCIpOworCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiRHJv cCB0aGUgZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdHMgb24gc3Vic2NyaWJlciBzb29uIHRvIGF2 b2lkIHJldGVudGlvbiBvZiBXQUwgZmlsZXMuIik7CiAJfQogfQogCkBAIC0xNDk0LDExICsxNjEw LDEzIEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdjb25uICpjb25uLCBzdHJ1 Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlBc3NlcnQoY29ubiAhPSBOVUxMKTsKIAogCWlm IChkcnlfcnVuKQotCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgY3JlYXRlIHRoZSByZXBs aWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHVibGlzaGVyIiwKLQkJ CQkJc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiBvbiBwdWJsaXNoZXIi LAorCQkJCQkJIHNsb3RfbmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCWVsc2UKLQkJcGdfbG9nX2lu Zm8oImNyZWF0aW5nIHRoZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVz XCIgb24gcHVibGlzaGVyIiwKLQkJCQkJc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjcmVh dGluZyB0aGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIG9uIHB1 Ymxpc2hlciIsCisJCQkJCQkgc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CiAKIAlzbG90X25h bWVfZXNjID0gUFFlc2NhcGVMaXRlcmFsKGNvbm4sIHNsb3RfbmFtZSwgc3RybGVuKHNsb3RfbmFt ZSkpOwogCkBAIC0xNTA5LDE2ICsxNjI3LDE4IEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9u X3Nsb3QoUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCVBR ZnJlZW1lbShzbG90X25hbWVfZXNjKTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMi LCBzdHItPmRhdGEpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJICJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9y dW4pCiAJewogCQlyZXMgPSBQUWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNv dWxkIG5vdCBjcmVhdGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wi OiAlcyIsCi0JCQkJCQkgc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSwKLQkJCQkJCSBQUXJlc3Vs dEVycm9yTWVzc2FnZShyZXMpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImNvdWxkIG5vdCBjcmVhdGUgcmVwbGljYXRpb24gc2xv dCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCisJCQkJCQkJIHNsb3RfbmFtZSwgZGJp bmZvLT5kYm5hbWUsCisJCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJUFFj bGVhcihyZXMpOwogCQkJZGVzdHJveVBRRXhwQnVmZmVyKHN0cik7CiAJCQlyZXR1cm4gTlVMTDsK QEAgLTE1NDcsMTEgKzE2NjcsMTMgQEAgZHJvcF9yZXBsaWNhdGlvbl9zbG90KFBHY29ubiAqY29u biwgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sCiAJQXNzZXJ0KGNvbm4gIT0gTlVMTCk7 CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGRyb3AgdGhl IHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCXNsb3Rf bmFtZSwgZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZHJvcCB0aGUgcmVwbGljYXRp b24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBzbG90X25hbWUsIGRi aW5mby0+ZGJuYW1lKTsKIAllbHNlCi0JCXBnX2xvZ19pbmZvKCJkcm9wcGluZyB0aGUgcmVwbGlj YXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc2xvdF9uYW1lLCBk YmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJICJkcm9wcGluZyB0aGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4g ZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAog CXNsb3RfbmFtZV9lc2MgPSBQUWVzY2FwZUxpdGVyYWwoY29ubiwgc2xvdF9uYW1lLCBzdHJsZW4o c2xvdF9uYW1lKSk7CiAKQEAgLTE1NTksMTUgKzE2ODEsMTcgQEAgZHJvcF9yZXBsaWNhdGlvbl9z bG90KFBHY29ubiAqY29ubiwgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sCiAKIAlQUWZy ZWVtZW0oc2xvdF9uYW1lX2VzYyk7CiAKLQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwg c3RyLT5kYXRhKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1B UlksCisJCQkJCSAiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVu KQogCXsKIAkJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0 YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3QgZHJvcCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVz IiwKLQkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2Fn ZShyZXMpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJCQkgImNvdWxkIG5vdCBkcm9wIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRh dGFiYXNlIFwiJXNcIjogJXMiLAorCQkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lLCBQ UXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJCWRiaW5mby0+bWFkZV9yZXBsc2xvdCA9IGZh bHNlOwkvKiBkb24ndCB0cnkgYWdhaW4uICovCiAJCX0KIApAQCAtMTU4NywyNSArMTcxMSwzMiBA QCBwZ19jdGxfc3RhdHVzKGNvbnN0IGNoYXIgKnBnX2N0bF9jbWQsIGludCByYykKIAl7CiAJCWlm IChXSUZFWElURUQocmMpKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoInBnX2N0bCBmYWlsZWQgd2l0 aCBleGl0IGNvZGUgJWQiLCBXRVhJVFNUQVRVUyhyYykpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQ R19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAicGdfY3RsIGZhaWxlZCB3aXRo IGV4aXQgY29kZSAlZCIsCisJCQkJCQkJIFdFWElUU1RBVFVTKHJjKSk7CiAJCX0KIAkJZWxzZSBp ZiAoV0lGU0lHTkFMRUQocmMpKQogCQl7CiAjaWYgZGVmaW5lZChXSU4zMikKLQkJCXBnX2xvZ19l cnJvcigicGdfY3RsIHdhcyB0ZXJtaW5hdGVkIGJ5IGV4Y2VwdGlvbiAweCVYIiwKLQkJCQkJCSBX VEVSTVNJRyhyYykpOwotCQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiU2VlIEMgaW5jbHVkZSBmaWxl IFwibnRzdGF0dXMuaFwiIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBoZXhhZGVjaW1hbCB2YWx1 ZS4iKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCQkgInBnX2N0bCB3YXMgdGVybWluYXRlZCBieSBleGNlcHRpb24gMHglWCIsCisJCQkJ CQkJIFdURVJNU0lHKHJjKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdf TE9HX0RFVEFJTCwKKwkJCQkJCQkgIlNlZSBDIGluY2x1ZGUgZmlsZSBcIm50c3RhdHVzLmhcIiBm b3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgaGV4YWRlY2ltYWwgdmFsdWUuIik7CiAjZWxzZQotCQkJ cGdfbG9nX2Vycm9yKCJwZ19jdGwgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsICVkOiAlcyIsCi0J CQkJCQkgV1RFUk1TSUcocmMpLCBwZ19zdHJzaWduYWwoV1RFUk1TSUcocmMpKSk7CisJCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJwZ19j dGwgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsICVkOiAlcyIsCisJCQkJCQkJIFdURVJNU0lHKHJj KSwgcGdfc3Ryc2lnbmFsKFdURVJNU0lHKHJjKSkpOwogI2VuZGlmCiAJCX0KIAkJZWxzZQogCQl7 Ci0JCQlwZ19sb2dfZXJyb3IoInBnX2N0bCBleGl0ZWQgd2l0aCB1bnJlY29nbml6ZWQgc3RhdHVz ICVkIiwgcmMpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJCSAicGdfY3RsIGV4aXRlZCB3aXRoIHVucmVjb2duaXplZCBzdGF0dXMgJWQi LCByYyk7CiAJCX0KIAotCQlwZ19sb2dfZXJyb3JfZGV0YWlsKCJUaGUgZmFpbGVkIGNvbW1hbmQg d2FzOiAlcyIsIHBnX2N0bF9jbWQpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwg UEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiVGhlIGZhaWxlZCBjb21tYW5kIHdhczogJXMiLCBwZ19j dGxfY21kKTsKIAkJZXhpdCgxKTsKIAl9CiB9CkBAIC0xNjUwLDEyICsxNzgxLDE0IEBAIHN0YXJ0 X3N0YW5kYnlfc2VydmVyKGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0 LCBib29sIHJlc3RyaWN0ZWRfCiAJaWYgKHJlc3RyaWN0X2xvZ2ljYWxfd29ya2VyKQogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihwZ19jdGxfY21kLCAiIC1vIFwiLWMgbWF4X2xvZ2ljYWxfcmVwbGlj YXRpb25fd29ya2Vycz0wXCIiKTsKIAotCXBnX2xvZ19kZWJ1ZygicGdfY3RsIGNvbW1hbmQgaXM6 ICVzIiwgcGdfY3RsX2NtZC0+ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcs IFBHX0xPR19QUklNQVJZLAorCQkJCQkgInBnX2N0bCBjb21tYW5kIGlzOiAlcyIsIHBnX2N0bF9j bWQtPmRhdGEpOwogCXJjID0gc3lzdGVtKHBnX2N0bF9jbWQtPmRhdGEpOwogCXBnX2N0bF9zdGF0 dXMocGdfY3RsX2NtZC0+ZGF0YSwgcmMpOwogCXN0YW5kYnlfcnVubmluZyA9IHRydWU7CiAJZGVz dHJveVBRRXhwQnVmZmVyKHBnX2N0bF9jbWQpOwotCXBnX2xvZ19pbmZvKCJzZXJ2ZXIgd2FzIHN0 YXJ0ZWQiKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJICJzZXJ2ZXIgd2FzIHN0YXJ0ZWQiKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE2NjYs MTEgKzE3OTksMTMgQEAgc3RvcF9zdGFuZGJ5X3NlcnZlcihjb25zdCBjaGFyICpkYXRhZGlyKQog CiAJcGdfY3RsX2NtZCA9IHBzcHJpbnRmKCJcIiVzXCIgc3RvcCAtRCBcIiVzXCIgLXMiLCBwZ19j dGxfcGF0aCwKIAkJCQkJCSAgZGF0YWRpcik7Ci0JcGdfbG9nX2RlYnVnKCJwZ19jdGwgY29tbWFu ZCBpczogJXMiLCBwZ19jdGxfY21kKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywg UEdfTE9HX1BSSU1BUlksCisJCQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdfY3RsX2Nt ZCk7CiAJcmMgPSBzeXN0ZW0ocGdfY3RsX2NtZCk7CiAJcGdfY3RsX3N0YXR1cyhwZ19jdGxfY21k LCByYyk7CiAJc3RhbmRieV9ydW5uaW5nID0gZmFsc2U7Ci0JcGdfbG9nX2luZm8oInNlcnZlciB3 YXMgc3RvcHBlZCIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAorCQkJCQkgInNlcnZlciB3YXMgc3RvcHBlZCIpOwogfQogCiAvKgpAQCAtMTY4OSw3ICsx ODI0LDggQEAgd2FpdF9mb3JfZW5kX3JlY292ZXJ5KGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBjb25z dCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMKIAlib29sCQlyZWFkeSA9IGZhbHNlOwog CWludAkJCXRpbWVyID0gMDsKIAotCXBnX2xvZ19pbmZvKCJ3YWl0aW5nIGZvciB0aGUgdGFyZ2V0 IHNlcnZlciB0byByZWFjaCB0aGUgY29uc2lzdGVudCBzdGF0ZSIpOworCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgIndhaXRpbmcgZm9yIHRoZSB0 YXJnZXQgc2VydmVyIHRvIHJlYWNoIHRoZSBjb25zaXN0ZW50IHN0YXRlIik7CiAKIAljb25uID0g Y29ubmVjdF9kYXRhYmFzZShjb25uaW5mbywgdHJ1ZSk7CiAKQEAgLTE3MDcsNyArMTg0Myw4IEBA IHdhaXRfZm9yX2VuZF9yZWNvdmVyeShjb25zdCBjaGFyICpjb25uaW5mbywgY29uc3Qgc3RydWN0 IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zCiAJCWlmIChvcHQtPnJlY292ZXJ5X3RpbWVvdXQgPiAw ICYmIHRpbWVyID49IG9wdC0+cmVjb3ZlcnlfdGltZW91dCkKIAkJewogCQkJc3RvcF9zdGFuZGJ5 X3NlcnZlcihzdWJzY3JpYmVyX2Rpcik7Ci0JCQlwZ19sb2dfZXJyb3IoInJlY292ZXJ5IHRpbWVk IG91dCIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZ LAorCQkJCQkJCSAicmVjb3ZlcnkgdGltZWQgb3V0Iik7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNl KGNvbm4sIHRydWUpOwogCQl9CiAKQEAgLTE3MjEsOCArMTg1OCwxMCBAQCB3YWl0X2Zvcl9lbmRf cmVjb3ZlcnkoY29uc3QgY2hhciAqY29ubmluZm8sIGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3Jp YmVyT3B0aW9ucwogCWlmICghcmVhZHkpCiAJCXBnX2ZhdGFsKCJzZXJ2ZXIgZGlkIG5vdCBlbmQg cmVjb3ZlcnkiKTsKIAotCXBnX2xvZ19pbmZvKCJ0YXJnZXQgc2VydmVyIHJlYWNoZWQgdGhlIGNv bnNpc3RlbnQgc3RhdGUiKTsKLQlwZ19sb2dfaW5mb19oaW50KCJJZiBwZ19jcmVhdGVzdWJzY3Jp YmVyIGZhaWxzIGFmdGVyIHRoaXMgcG9pbnQsIHlvdSBtdXN0IHJlY3JlYXRlIHRoZSBwaHlzaWNh bCByZXBsaWNhIGJlZm9yZSBjb250aW51aW5nLiIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInRhcmdldCBzZXJ2ZXIgcmVhY2hlZCB0aGUg Y29uc2lzdGVudCBzdGF0ZSIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xP R19ISU5ULAorCQkJCQkgIklmIHBnX2NyZWF0ZXN1YnNjcmliZXIgZmFpbHMgYWZ0ZXIgdGhpcyBw b2ludCwgeW91IG11c3QgcmVjcmVhdGUgdGhlIHBoeXNpY2FsIHJlcGxpY2EgYmVmb3JlIGNvbnRp bnVpbmcuIik7CiB9CiAKIC8qCkBAIC0xNzQ5LDggKzE4ODgsOSBAQCBjcmVhdGVfcHVibGljYXRp b24oUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlyZXMgPSBQ UWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JF U19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gcHVibGlj YXRpb24gaW5mb3JtYXRpb246ICVzIiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkgImNvdWxkIG5vdCBvYnRhaW4gcHVibGljYXRpb24gaW5mb3JtYXRpb246ICVzIiwKKwkJCQkJ CSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25u LCB0cnVlKTsKIAl9CiAKQEAgLTE3NjMsOCArMTkwMywxMCBAQCBjcmVhdGVfcHVibGljYXRpb24o UEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAkJICogcGdfY3Jl YXRlc3Vic2NyaWJlcl8gcHJlZml4IGZvbGxvd2VkIGJ5IHRoZSBleGFjdCBkYXRhYmFzZSBvaWQg YW5kCiAJCSAqIGEgcmFuZG9tIG51bWJlci4KIAkJICovCi0JCXBnX2xvZ19lcnJvcigicHVibGlj YXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgZGJpbmZvLT5wdWJuYW1lKTsKLQkJcGdfbG9n X2Vycm9yX2hpbnQoIkNvbnNpZGVyIHJlbmFtaW5nIHRoaXMgcHVibGljYXRpb24gYmVmb3JlIGNv bnRpbnVpbmcuIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJCSAicHVibGljYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgZGJpbmZv LT5wdWJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5U LAorCQkJCQkJICJDb25zaWRlciByZW5hbWluZyB0aGlzIHB1YmxpY2F0aW9uIGJlZm9yZSBjb250 aW51aW5nLiIpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAt MTc3MiwyNCArMTkxNCwyOCBAQCBjcmVhdGVfcHVibGljYXRpb24oUEdjb25uICpjb25uLCBzdHJ1 Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlyZXNldFBRRXhwQnVmZmVyKHN0cik7CiAKIAlp ZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBwdWJsaWNh dGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5wdWJuYW1lLCBk YmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBjcmVhdGUgcHVibGljYXRpb24gXCIlc1wi IGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRi bmFtZSk7CiAJZWxzZQotCQlwZ19sb2dfaW5mbygiY3JlYXRpbmcgcHVibGljYXRpb24gXCIlc1wi IGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+cHVibmFtZSwgZGJpbmZvLT5kYm5h bWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAiY3JlYXRpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJ CQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CiAKIAlhcHBlbmRQUUV4cEJ1 ZmZlcihzdHIsICJDUkVBVEUgUFVCTElDQVRJT04gJXMgRk9SIEFMTCBUQUJMRVMiLAogCQkJCQkg IGlwdWJuYW1lX2VzYyk7CiAKLQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5k YXRhKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCSAiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVuKQogCXsK IAkJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90 IGNyZWF0ZSBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJ CQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2Uo cmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkJICJjb3VsZCBub3QgY3JlYXRlIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFz ZSBcIiVzXCI6ICVzIiwKKwkJCQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSwg UFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4s IHRydWUpOwogCQl9CiAJCVBRY2xlYXIocmVzKTsKQEAgLTE4MTksMjUgKzE5NjUsMjkgQEAgZHJv cF9wdWJsaWNhdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGNvbnN0IGNo YXIgKmRibmFtZSwKIAlwdWJuYW1lX2VzYyA9IFBRZXNjYXBlSWRlbnRpZmllcihjb25uLCBwdWJu YW1lLCBzdHJsZW4ocHVibmFtZSkpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJk cnktcnVuOiB3b3VsZCBkcm9wIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIi LAotCQkJCQlwdWJuYW1lLCBkYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZP LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZHJvcCBwdWJsaWNhdGlv biBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBwdWJuYW1lLCBkYm5hbWUpOwog CWVsc2UKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRh YmFzZSBcIiVzXCIiLAotCQkJCQlwdWJuYW1lLCBkYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJvcHBpbmcgcHVibGljYXRp b24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgcHVibmFtZSwgZGJuYW1lKTsK IAogCWFwcGVuZFBRRXhwQnVmZmVyKHN0ciwgIkRST1AgUFVCTElDQVRJT04gJXMiLCBwdWJuYW1l X2VzYyk7CiAKIAlQUWZyZWVtZW0ocHVibmFtZV9lc2MpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21t YW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcs IFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAog CWlmICghZHJ5X3J1bikKIAl7CiAJCXJlcyA9IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlp ZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQogCQl7Ci0JCQlwZ19s b2dfZXJyb3IoImNvdWxkIG5vdCBkcm9wIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBc IiVzXCI6ICVzIiwKLQkJCQkJCSBwdWJuYW1lLCBkYm5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdl KHJlcykpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZ LAorCQkJCQkJCSAiY291bGQgbm90IGRyb3AgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNl IFwiJXNcIjogJXMiLAorCQkJCQkJCSBwdWJuYW1lLCBkYm5hbWUsIFBRcmVzdWx0RXJyb3JNZXNz YWdlKHJlcykpOwogCQkJKm1hZGVfcHVibGljYXRpb24gPSBmYWxzZTsJLyogZG9uJ3QgdHJ5IGFn YWluLiAqLwogCiAJCQkvKgpAQCAtMTg3MiwxNSArMjAyMiwxNyBAQCBjaGVja19hbmRfZHJvcF9w dWJsaWNhdGlvbnMoUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykK IAogCWlmIChkcm9wX2FsbF9wdWJzKQogCXsKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIGFsbCBl eGlzdGluZyBwdWJsaWNhdGlvbnMgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5k Ym5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAiZHJvcHBpbmcgYWxsIGV4aXN0aW5nIHB1YmxpY2F0aW9ucyBpbiBkYXRhYmFzZSBc IiVzXCIiLAorCQkJCQkJIGRiaW5mby0+ZGJuYW1lKTsKIAogCQkvKiBGZXRjaCBhbGwgcHVibGlj YXRpb24gbmFtZXMgKi8KIAkJcmVzID0gUFFleGVjKGNvbm4sICJTRUxFQ1QgcHVibmFtZSBGUk9N IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb247Iik7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMp ICE9IFBHUkVTX1RVUExFU19PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0 YWluIHB1YmxpY2F0aW9uIGluZm9ybWF0aW9uOiAlcyIsCi0JCQkJCQkgUFFyZXN1bHRFcnJvck1l c3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHB1YmxpY2F0aW9uIGluZm9ybWF0aW9u OiAlcyIsCisJCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJUFFjbGVhcihy ZXMpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJfQpAQCAtMTkwMywx MSArMjA1NSwxMyBAQCBjaGVja19hbmRfZHJvcF9wdWJsaWNhdGlvbnMoUEdjb25uICpjb25uLCBz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAkJZWxzZQogCQl7CiAJCQlpZiAoZHJ5X3J1 bikKLQkJCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgcHJlc2VydmUgZXhpc3RpbmcgcHVi bGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCQkJZGJpbmZvLT5wdWJu YW1lLCBkYmluZm8tPmRibmFtZSk7CisJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCSAiZHJ5LXJ1bjogd291bGQgcHJlc2VydmUgZXhpc3Rp bmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkJCSBkYmlu Zm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAkJCWVsc2UKLQkJCQlwZ19sb2dfaW5mbygi cHJlc2VydmUgZXhpc3RpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIs Ci0JCQkJCQkJZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCQkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCSAicHJlc2VydmUg ZXhpc3RpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkJ CSBkYmluZm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAkJfQogCX0KIH0KQEAgLTE5NDEs MTEgKzIwOTUsMTMgQEAgY3JlYXRlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0 cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCXJlcGxzbG90bmFtZV9lc2MgPSBQUWVzY2Fw ZUxpdGVyYWwoY29ubiwgZGJpbmZvLT5yZXBsc2xvdG5hbWUsIHN0cmxlbihkYmluZm8tPnJlcGxz bG90bmFtZSkpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3Vs ZCBjcmVhdGUgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlk YmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBz dWJzY3JpcHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgZGJpbmZvLT5z dWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CiAJZWxzZQotCQlwZ19sb2dfaW5mbygiY3JlYXRpbmcg c3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlkYmluZm8tPnN1 Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNyZWF0aW5nIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4g ZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBkYmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJuYW1l KTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKHN0ciwKIAkJCQkJICAiQ1JFQVRFIFNVQlNDUklQVElP TiAlcyBDT05ORUNUSU9OICVzIFBVQkxJQ0FUSU9OICVzICIKQEAgLTE5NTksMTUgKzIxMTUsMTcg QEAgY3JlYXRlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBMb2dpY2Fs UmVwSW5mbyAqZGJpbmZvKQogCVBRZnJlZW1lbShwdWJjb25uaW5mb19lc2MpOwogCVBRZnJlZW1l bShyZXBsc2xvdG5hbWVfZXNjKTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMiLCBz dHItPmRhdGEpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJICJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9ydW4p CiAJewogCQlyZXMgPSBQUWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0U3Rh dHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3QgY3JlYXRlIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIs Ci0JCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBkYmluZm8tPmRibmFtZSwgUFFyZXN1bHRFcnJvck1l c3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkJICJjb3VsZCBub3QgY3JlYXRlIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4g ZGF0YWJhc2UgXCIlc1wiOiAlcyIsCisJCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5k Ym5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFz ZShjb25uLCB0cnVlKTsKIAkJfQogCQlQUWNsZWFyKHJlcyk7CkBAIC0yMDExLDE1ICsyMTY5LDE3 IEBAIHNldF9yZXBsaWNhdGlvbl9wcm9ncmVzcyhQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBM b2dpY2FsUmVwSW5mbyAqZGJpbmZvLCBjb25zCiAJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0 YSk7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJ cGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWluIHN1YnNjcmlwdGlvbiBPSUQ6ICVzIiwKLQkJ CQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xP R19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gc3Vic2Ny aXB0aW9uIE9JRDogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlk aXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIAogCWlmIChQUW50dXBsZXMocmVz KSAhPSAxICYmICFkcnlfcnVuKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWlu IHN1YnNjcmlwdGlvbiBPSUQ6IGdvdCAlZCByb3dzLCBleHBlY3RlZCAlZCByb3ciLAotCQkJCQkg UFFudHVwbGVzKHJlcyksIDEpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gc3Vic2NyaXB0aW9uIE9JRDog Z290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJvdyIsCisJCQkJCQkgUFFudHVwbGVzKHJlcyksIDEp OwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMjA0MywyNiAr MjIwMywzMCBAQCBzZXRfcmVwbGljYXRpb25fcHJvZ3Jlc3MoUEdjb25uICpjb25uLCBjb25zdCBz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbywgY29ucwogCW9yaWdpbm5hbWUgPSBwc3ByaW50 ZigicGdfJXUiLCBzdWJvaWQpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnkt cnVuOiB3b3VsZCBzZXQgdGhlIHJlcGxpY2F0aW9uIHByb2dyZXNzIChub2RlIG5hbWUgXCIlc1wi LCBMU04gJXMpIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCW9yaWdpbm5hbWUsIGxzbnN0ciwg ZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgc2V0IHRoZSByZXBsaWNhdGlvbiBwcm9n cmVzcyAobm9kZSBuYW1lIFwiJXNcIiwgTFNOICVzKSBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJ CQkJIG9yaWdpbm5hbWUsIGxzbnN0ciwgZGJpbmZvLT5kYm5hbWUpOwogCWVsc2UKLQkJcGdfbG9n X2luZm8oInNldHRpbmcgdGhlIHJlcGxpY2F0aW9uIHByb2dyZXNzIChub2RlIG5hbWUgXCIlc1wi LCBMU04gJXMpIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCW9yaWdpbm5hbWUsIGxzbnN0ciwg ZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAic2V0dGluZyB0aGUgcmVwbGljYXRpb24gcHJvZ3Jlc3MgKG5vZGUg bmFtZSBcIiVzXCIsIExTTiAlcykgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBvcmlnaW5u YW1lLCBsc25zdHIsIGRiaW5mby0+ZGJuYW1lKTsKIAogCXJlc2V0UFFFeHBCdWZmZXIoc3RyKTsK IAlhcHBlbmRQUUV4cEJ1ZmZlcihzdHIsCiAJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jl cGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCclcycsICclcycpIiwKIAkJCQkJICBvcmlnaW5uYW1l LCBsc25zdHIpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7 CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkg ImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCXJl cyA9IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAh PSBQR1JFU19UVVBMRVNfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNldCBy ZXBsaWNhdGlvbiBwcm9ncmVzcyBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIjogJXMiLAotCQkJCQkJ IGRiaW5mby0+c3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBu b3Qgc2V0IHJlcGxpY2F0aW9uIHByb2dyZXNzIGZvciBzdWJzY3JpcHRpb24gXCIlc1wiOiAlcyIs CisJCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJ CQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCQl9CiAJCVBRY2xlYXIocmVzKTsK QEAgLTIwOTMsMjMgKzIyNTcsMjcgQEAgZW5hYmxlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4s IGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCXN1Ym5hbWUgPSBQUWVzY2Fw ZUlkZW50aWZpZXIoY29ubiwgZGJpbmZvLT5zdWJuYW1lLCBzdHJsZW4oZGJpbmZvLT5zdWJuYW1l KSk7CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGVuYWJs ZSBzdWJzY3JpcHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+ c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZP LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZW5hYmxlIHN1YnNjcmlw dGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBkYmluZm8tPnN1Ym5hbWUs IGRiaW5mby0+ZGJuYW1lKTsKIAllbHNlCi0JCXBnX2xvZ19pbmZvKCJlbmFibGluZyBzdWJzY3Jp cHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+c3VibmFtZSwg ZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAiZW5hYmxpbmcgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFz ZSBcIiVzXCIiLAorCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCiAJ YXBwZW5kUFFFeHBCdWZmZXIoc3RyLCAiQUxURVIgU1VCU0NSSVBUSU9OICVzIEVOQUJMRSIsIHN1 Ym5hbWUpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CisJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNv bW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCXJlcyA9 IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQ R1JFU19DT01NQU5EX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBlbmFibGUg c3Vic2NyaXB0aW9uIFwiJXNcIjogJXMiLAotCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBub3QgZW5hYmxlIHN1YnNjcmlwdGlvbiBc IiVzXCI6ICVzIiwKKwkJCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2Fn ZShyZXMpKTsKIAkJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJCX0KIApAQCAt MjE1NCw3ICsyMzIyLDkgQEAgZ2V0X3B1Ymxpc2hlcl9kYXRhYmFzZXMoc3RydWN0IENyZWF0ZVN1 YnNjcmliZXJPcHRpb25zICpvcHQsCiAJcmVzID0gUFFleGVjKGNvbm4sICJTRUxFQ1QgZGF0bmFt ZSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdGlzdGVtcGxhdGUgPSBmYWxzZSBBTkQgZGF0YWxs b3djb25uIEFORCBkYXRjb25ubGltaXQgPD4gLTIgT1JERVIgQlkgMSIpOwogCWlmIChQUXJlc3Vs dFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291 bGQgbm90IG9idGFpbiBhIGxpc3Qgb2YgZGF0YWJhc2VzOiAlcyIsIFBRcmVzdWx0RXJyb3JNZXNz YWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gYSBsaXN0IG9mIGRhdGFiYXNlczogJXMiLAor CQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlQUWNsZWFyKHJlcyk7CiAJCWRp c2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQpAQCAtMjI1OCw5ICsyNDI4LDExIEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogI2lmbmRlZiBXSU4zMgogCWlmIChnZXRldWlk KCkgPT0gMCkKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY2Fubm90IGJlIGV4ZWN1dGVkIGJ5IFwicm9v dFwiIik7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJZb3UgbXVzdCBydW4gJXMgYXMgdGhlIFBvc3Rn cmVTUUwgc3VwZXJ1c2VyLiIsCi0JCQkJCQkgIHByb2duYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjYW5ub3QgYmUgZXhlY3V0 ZWQgYnkgXCJyb290XCIiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19ISU5ULAorCQkJCQkJICJZb3UgbXVzdCBydW4gJXMgYXMgdGhlIFBvc3RncmVTUUwgc3VwZXJ1 c2VyLiIsCisJCQkJCQkgcHJvZ25hbWUpOwogCQlleGl0KDEpOwogCX0KICNlbmRpZgpAQCAtMjM1 MSw3ICsyNTIzLDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJYnJlYWs7CiAJ CQlkZWZhdWx0OgogCQkJCS8qIGdldG9wdF9sb25nIGFscmVhZHkgZW1pdHRlZCBhIGNvbXBsYWlu dCAqLwotCQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBp bmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CisJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJS T1IsIFBHX0xPR19ISU5ULAorCQkJCQkJCQkgIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiIsCisJCQkJCQkJCSBwcm9nbmFtZSk7CiAJCQkJZXhpdCgxKTsKIAkJfQogCX0K QEAgLTIzNzIsOSArMjU0NiwxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCQlp ZiAoYmFkX3N3aXRjaCkKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJvcHRpb25zICVzIGFuZCAlcyBj YW5ub3QgYmUgdXNlZCB0b2dldGhlciIsCi0JCQkJCQkgYmFkX3N3aXRjaCwgIi1hLy0tYWxsIik7 Ci0JCQlwZ19sb2dfZXJyb3JfaGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3Jt YXRpb24uIiwgcHJvZ25hbWUpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBH X0xPR19QUklNQVJZLAorCQkJCQkJCSAib3B0aW9ucyAlcyBhbmQgJXMgY2Fubm90IGJlIHVzZWQg dG9nZXRoZXIiLAorCQkJCQkJCSBiYWRfc3dpdGNoLCAiLWEvLS1hbGwiKTsKKwkJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCQkgIlRyeSBcIiVzIC0t aGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsCisJCQkJCQkJIHByb2duYW1lKTsKIAkJCWV4 aXQoMSk7CiAJCX0KIAl9CkBAIC0yMzgyLDE3ICsyNTU5LDIxIEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCS8qIEFueSBub24tb3B0aW9uIGFyZ3VtZW50cz8gKi8KIAlpZiAob3B0aW5k IDwgYXJnYykKIAl7Ci0JCXBnX2xvZ19lcnJvcigidG9vIG1hbnkgY29tbWFuZC1saW5lIGFyZ3Vt ZW50cyAoZmlyc3QgaXMgXCIlc1wiKSIsCi0JCQkJCSBhcmd2W29wdGluZF0pOwotCQlwZ19sb2df ZXJyb3JfaGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJv Z25hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkgInRvbyBtYW55IGNvbW1hbmQtbGluZSBhcmd1bWVudHMgKGZpcnN0IGlzIFwiJXNc IikiLAorCQkJCQkJIGFyZ3Zbb3B0aW5kXSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VS Uk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5m b3JtYXRpb24uIiwgcHJvZ25hbWUpOwogCQlleGl0KDEpOwogCX0KIAogCS8qIFJlcXVpcmVkIGFy Z3VtZW50cyAqLwogCWlmIChzdWJzY3JpYmVyX2RpciA9PSBOVUxMKQogCXsKLQkJcGdfbG9nX2Vy cm9yKCJubyBzdWJzY3JpYmVyIGRhdGEgZGlyZWN0b3J5IHNwZWNpZmllZCIpOwotCQlwZ19sb2df ZXJyb3JfaGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJv Z25hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkgIm5vIHN1YnNjcmliZXIgZGF0YSBkaXJlY3Rvcnkgc3BlY2lmaWVkIik7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiVHJ5IFwi JXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUpOwogCQlleGl0KDEp OwogCX0KIApAQCAtMjQxOSwyMiArMjYwMCwyNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKIAkJICogaWRlbnRpY2FsIGVudHJpZXMgZm9yIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHJlcGxp Y2F0aW9uLiBJZiB0aGVyZSBpcwogCQkgKiBub3QsIHdlIHdvdWxkIGZhaWwgYW55d2F5LgogCQkg Ki8KLQkJcGdfbG9nX2Vycm9yKCJubyBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmcgc3BlY2lm aWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBp bmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9S LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAibm8gcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5n IHNwZWNpZmllZCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJ TlQsCisJCQkJCQkgIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsIHBy b2duYW1lKTsKIAkJZXhpdCgxKTsKIAl9CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8o IkV4ZWN1dGluZyBpbiBkcnktcnVuIG1vZGUuXG4iCi0JCQkJCSJUaGUgdGFyZ2V0IGRpcmVjdG9y eSB3aWxsIG5vdCBiZSBtb2RpZmllZC4iKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5G TywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgIkV4ZWN1dGluZyBpbiBkcnktcnVuIG1vZGUuXG4i CisJCQkJCQkgIlRoZSB0YXJnZXQgZGlyZWN0b3J5IHdpbGwgbm90IGJlIG1vZGlmaWVkLiIpOwog Ci0JcGdfbG9nX2luZm8oInZhbGlkYXRpbmcgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nIik7 CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAi dmFsaWRhdGluZyBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmciKTsKIAlwdWJfYmFzZV9jb25u aW5mbyA9IGdldF9iYXNlX2Nvbm5pbmZvKG9wdC5wdWJfY29ubmluZm9fc3RyLAogCQkJCQkJCQkJ CSAgJmRibmFtZV9jb25uaW5mbyk7CiAJaWYgKHB1Yl9iYXNlX2Nvbm5pbmZvID09IE5VTEwpCiAJ CWV4aXQoMSk7CiAKLQlwZ19sb2dfaW5mbygidmFsaWRhdGluZyBzdWJzY3JpYmVyIGNvbm5lY3Rp b24gc3RyaW5nIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCisJCQkJCSAidmFsaWRhdGluZyBzdWJzY3JpYmVyIGNvbm5lY3Rpb24gc3RyaW5nIik7CiAJ c3ViX2Jhc2VfY29ubmluZm8gPSBnZXRfc3ViX2Nvbm5pbmZvKCZvcHQpOwogCiAJLyoKQEAgLTI0 NTEsNyArMjYzNyw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJaWYgKG9wdC5k YXRhYmFzZV9uYW1lcy5oZWFkID09IE5VTEwpCiAJewotCQlwZ19sb2dfaW5mbygibm8gZGF0YWJh c2Ugd2FzIHNwZWNpZmllZCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJCSAibm8gZGF0YWJhc2Ugd2FzIHNwZWNpZmllZCIpOwogCiAJCS8q CiAJCSAqIFRyeSB0byBvYnRhaW4gdGhlIGRibmFtZSBmcm9tIHRoZSBwdWJsaXNoZXIgY29ubmlu Zm8uIElmIGRibmFtZQpAQCAtMjQ2MiwxNCArMjY0OSwxNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkJCXNpbXBsZV9zdHJpbmdfbGlzdF9hcHBlbmQoJm9wdC5kYXRhYmFzZV9uYW1l cywgZGJuYW1lX2Nvbm5pbmZvKTsKIAkJCW51bV9kYnMrKzsKIAotCQkJcGdfbG9nX2luZm8oImRh dGFiYXNlIG5hbWUgXCIlc1wiIHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGNvbm5l Y3Rpb24gc3RyaW5nIiwKLQkJCQkJCWRibmFtZV9jb25uaW5mbyk7CisJCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImRhdGFiYXNlIG5hbWUg XCIlc1wiIHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5n IiwKKwkJCQkJCQkgZGJuYW1lX2Nvbm5pbmZvKTsKIAkJfQogCQllbHNlCiAJCXsKLQkJCXBnX2xv Z19lcnJvcigibm8gZGF0YWJhc2UgbmFtZSBzcGVjaWZpZWQiKTsKLQkJCXBnX2xvZ19lcnJvcl9o aW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLAotCQkJCQkJCSAg cHJvZ25hbWUpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJCSAibm8gZGF0YWJhc2UgbmFtZSBzcGVjaWZpZWQiKTsKKwkJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCQkgIlRyeSBcIiVzIC0t aGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsCisJCQkJCQkJIHByb2duYW1lKTsKIAkJCWV4 aXQoMSk7CiAJCX0KIAl9CkBAIC0yNDc3LDIzICsyNjY3LDI5IEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCS8qIE51bWJlciBvZiBvYmplY3QgbmFtZXMgbXVzdCBtYXRjaCBudW1iZXIg b2YgZGF0YWJhc2VzICovCiAJaWYgKG51bV9wdWJzID4gMCAmJiBudW1fcHVicyAhPSBudW1fZGJz KQogCXsKLQkJcGdfbG9nX2Vycm9yKCJ3cm9uZyBudW1iZXIgb2YgcHVibGljYXRpb24gbmFtZXMg c3BlY2lmaWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBudW1iZXIgb2Ygc3BlY2lm aWVkIHB1YmxpY2F0aW9uIG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNwZWNp ZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCi0JCQkJCQkJbnVtX3B1YnMsIG51bV9kYnMpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkg Indyb25nIG51bWJlciBvZiBwdWJsaWNhdGlvbiBuYW1lcyBzcGVjaWZpZWQiKTsKKwkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ERVRBSUwsCisJCQkJCQkgIlRoZSBudW1i ZXIgb2Ygc3BlY2lmaWVkIHB1YmxpY2F0aW9uIG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVt YmVyIG9mIHNwZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCisJCQkJCQkgbnVtX3B1YnMs IG51bV9kYnMpOwogCQlleGl0KDEpOwogCX0KIAlpZiAobnVtX3N1YnMgPiAwICYmIG51bV9zdWJz ICE9IG51bV9kYnMpCiAJewotCQlwZ19sb2dfZXJyb3IoIndyb25nIG51bWJlciBvZiBzdWJzY3Jp cHRpb24gbmFtZXMgc3BlY2lmaWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBudW1i ZXIgb2Ygc3BlY2lmaWVkIHN1YnNjcmlwdGlvbiBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhlIG51 bWJlciBvZiBzcGVjaWZpZWQgZGF0YWJhc2UgbmFtZXMgKCVkKS4iLAotCQkJCQkJCW51bV9zdWJz LCBudW1fZGJzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJ3cm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0aW9uIG5hbWVzIHNwZWNpZmll ZCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJ CQkJCSAiVGhlIG51bWJlciBvZiBzcGVjaWZpZWQgc3Vic2NyaXB0aW9uIG5hbWVzICglZCkgbXVz dCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNwZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCisJ CQkJCQkgbnVtX3N1YnMsIG51bV9kYnMpOwogCQlleGl0KDEpOwogCX0KIAlpZiAobnVtX3JlcGxz bG90cyA+IDAgJiYgbnVtX3JlcGxzbG90cyAhPSBudW1fZGJzKQogCXsKLQkJcGdfbG9nX2Vycm9y KCJ3cm9uZyBudW1iZXIgb2YgcmVwbGljYXRpb24gc2xvdCBuYW1lcyBzcGVjaWZpZWQiKTsKLQkJ cGdfbG9nX2Vycm9yX2RldGFpbCgiVGhlIG51bWJlciBvZiBzcGVjaWZpZWQgcmVwbGljYXRpb24g c2xvdCBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhlIG51bWJlciBvZiBzcGVjaWZpZWQgZGF0YWJh c2UgbmFtZXMgKCVkKS4iLAotCQkJCQkJCW51bV9yZXBsc2xvdHMsIG51bV9kYnMpOworCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgIndyb25n IG51bWJlciBvZiByZXBsaWNhdGlvbiBzbG90IG5hbWVzIHNwZWNpZmllZCIpOworCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiVGhlIG51bWJl ciBvZiBzcGVjaWZpZWQgcmVwbGljYXRpb24gc2xvdCBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhl IG51bWJlciBvZiBzcGVjaWZpZWQgZGF0YWJhc2UgbmFtZXMgKCVkKS4iLAorCQkJCQkJIG51bV9y ZXBsc2xvdHMsIG51bV9kYnMpOwogCQlleGl0KDEpOwogCX0KIApAQCAtMjUwNCw5ICsyNzAwLDEx IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJZGJpbmZvcy5vYmplY3R0eXBlc190 b19jbGVhbiB8PSBPQkpFQ1RUWVBFX1BVQkxJQ0FUSU9OUzsKIAkJZWxzZQogCQl7Ci0JCQlwZ19s b2dfZXJyb3IoImludmFsaWQgb2JqZWN0IHR5cGUgXCIlc1wiIHNwZWNpZmllZCBmb3IgJXMiLAot CQkJCQkJIGNlbGwtPnZhbCwgIi0tY2xlYW4iKTsKLQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUaGUg dmFsaWQgdmFsdWUgaXM6IFwiJXNcIiIsICJwdWJsaWNhdGlvbnMiKTsKKwkJCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImludmFsaWQgb2Jq ZWN0IHR5cGUgXCIlc1wiIHNwZWNpZmllZCBmb3IgJXMiLAorCQkJCQkJCSBjZWxsLT52YWwsICIt LWNsZWFuIik7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQs CisJCQkJCQkJICJUaGUgdmFsaWQgdmFsdWUgaXM6IFwiJXNcIiIsICJwdWJsaWNhdGlvbnMiKTsK IAkJCWV4aXQoMSk7CiAJCX0KIAl9CkBAIC0yNTUwLDggKzI3NDgsMTAgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAJICovCiAJaWYgKHN0YXQocGlkZmlsZSwgJnN0YXRidWYpID09IDAp CiAJewotCQlwZ19sb2dfZXJyb3IoInN0YW5kYnkgc2VydmVyIGlzIHJ1bm5pbmciKTsKLQkJcGdf bG9nX2Vycm9yX2hpbnQoIlN0b3AgdGhlIHN0YW5kYnkgc2VydmVyIGFuZCB0cnkgYWdhaW4uIik7 CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAic3RhbmRieSBzZXJ2ZXIgaXMgcnVubmluZyIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xP R19FUlJPUiwgUEdfTE9HX0hJTlQsCisJCQkJCQkgIlN0b3AgdGhlIHN0YW5kYnkgc2VydmVyIGFu ZCB0cnkgYWdhaW4uIik7CiAJCWV4aXQoMSk7CiAJfQogCkBAIC0yNTYwLDcgKzI3NjAsOCBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkgKiBieSBjb21tYW5kLWxpbmUgb3B0aW9ucyku IFRoZSBnb2FsIGlzIHRvIGF2b2lkIGNvbm5lY3Rpb25zIGR1cmluZyB0aGUKIAkgKiB0cmFuc2Zv cm1hdGlvbiBzdGVwcy4KIAkgKi8KLQlwZ19sb2dfaW5mbygic3RhcnRpbmcgdGhlIHN0YW5kYnkg c2VydmVyIHdpdGggY29tbWFuZC1saW5lIG9wdGlvbnMiKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBH X0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJzdGFydGluZyB0aGUgc3RhbmRieSBz ZXJ2ZXIgd2l0aCBjb21tYW5kLWxpbmUgb3B0aW9ucyIpOwogCXN0YXJ0X3N0YW5kYnlfc2VydmVy KCZvcHQsIHRydWUsIGZhbHNlKTsKIAogCS8qIENoZWNrIGlmIHRoZSBzdGFuZGJ5IHNlcnZlciBp cyByZWFkeSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiAqLwpAQCAtMjU3Niw3ICsyNzc3LDggQEAg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJICogZ3VhcmFudGVlcyBpdCkgKmJlZm9yZSog Y3JlYXRpbmcgdGhlIHJlcGxpY2F0aW9uIHNsb3RzIGluCiAJICogc2V0dXBfcHVibGlzaGVyKCku CiAJICovCi0JcGdfbG9nX2luZm8oInN0b3BwaW5nIHRoZSBzdWJzY3JpYmVyIik7CisJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAic3RvcHBpbmcg dGhlIHN1YnNjcmliZXIiKTsKIAlzdG9wX3N0YW5kYnlfc2VydmVyKHN1YnNjcmliZXJfZGlyKTsK IAogCS8qIENyZWF0ZSB0aGUgcmVxdWlyZWQgb2JqZWN0cyBmb3IgZWFjaCBkYXRhYmFzZSBvbiBw dWJsaXNoZXIgKi8KQEAgLTI1OTAsNyArMjc5Miw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCSAqIHVudGlsIGFjY2VwdGluZyBjb25uZWN0aW9ucy4gV2UgZG9uJ3Qgd2FudCB0byBz dGFydCBsb2dpY2FsIHJlcGxpY2F0aW9uCiAJICogZHVyaW5nIHNldHVwLgogCSAqLwotCXBnX2xv Z19pbmZvKCJzdGFydGluZyB0aGUgc3Vic2NyaWJlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdf TE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN0YXJ0aW5nIHRoZSBzdWJzY3JpYmVy Iik7CiAJc3RhcnRfc3RhbmRieV9zZXJ2ZXIoJm9wdCwgdHJ1ZSwgdHJ1ZSk7CiAKIAkvKiBXYWl0 aW5nIHRoZSBzdWJzY3JpYmVyIHRvIGJlIHByb21vdGVkICovCkBAIC0yNjExLDcgKzI4MTQsOCBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlkcm9wX2ZhaWxvdmVyX3JlcGxpY2F0aW9u X3Nsb3RzKGRiaW5mb3MuZGJpbmZvKTsKIAogCS8qIFN0b3AgdGhlIHN1YnNjcmliZXIgKi8KLQlw Z19sb2dfaW5mbygic3RvcHBpbmcgdGhlIHN1YnNjcmliZXIiKTsKKwlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJzdG9wcGluZyB0aGUgc3Vic2Ny aWJlciIpOwogCXN0b3Bfc3RhbmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIpOwogCiAJLyogQ2hh bmdlIHN5c3RlbSBpZGVudGlmaWVyIGZyb20gc3Vic2NyaWJlciAqLwpAQCAtMjYxOSw3ICsyODIz LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAlzdWNjZXNzID0gdHJ1ZTsKIAot CXBnX2xvZ19pbmZvKCJEb25lISIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBH X0xPR19QUklNQVJZLAorCQkJCQkgIkRvbmUhIik7CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjIuNDcu MwoK --_004_OSOPR01MB1215385EAC6A76650444E40B0F54FAOSOPR01MB12153jp_ Content-Type: application/octet-stream; name="v12-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch" Content-Description: v12-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch Content-Disposition: attachment; filename="v12-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch"; size=15926; creation-date="Thu, 19 Mar 2026 11:37:19 GMT"; modification-date="Thu, 19 Mar 2026 11:41:08 GMT" Content-Transfer-Encoding: base64 RnJvbSAxMmU1MThhNzg2Zjk1MzJlMzI2NDk3NmUzZmU4YWJmNjM4YTVmZmRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAxNyBNYXIgMjAyNiAxOToxMDoyOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djEyIDIvM10gQWRkIGEgbmV3IGFyZ3VtZW50IC1sIDxsb2dkaXI+IHRvCiBwZ19jcmVhdGVzdWJz Y3JpYmVyLgoKRW5hYmxpbmcgdGhlIG9wdGlvbiB0byB3cml0ZSBtZXNzYWdlcyB0byBsb2cgZmls ZXMgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuCkEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVk IGlmIHJlcXVpcmVkLiBBIHN1YmRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGggdGltZXN0YW1wIGFz IGl0cyBuYW1lLCBhbmQgaXQgd2lsbCBjb250YWluIHR3byBuZXcgbG9nZmlsZXM6CjEuIHBnX2Ny ZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyAgLSBjYXB0dXJlcyBtZXNzYWdlcyByZWxhdGVkIHRv IHN0YXJ0aW5nIGFuZCBzdG9wcGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIuCjIuIHBnX2NyZWF0ZXN1 YnNjcmliZXJfaW50ZXJuYWwubG9nIC0gY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25vc3RpYyBvdXRw dXQgZnJvbSBwZ19jcmVhdGVzdWJzY3JpYmVyLgoKRm9yIGV4YW1wbGUsIGlmIHdlIHNwZWNpZnkg LWwgYWJjIGFzIGFuIGFyZ3VtZW50LCBhbmQgaWYgdGhlIHRpbWVzdGFtcCBvbiBydW5uaW5nIGl0 IGlzIDIwMjYwMTE5VDIwNDMxNy4yMDQsIGEgZGlyZWN0b3J5IGFiYyBpcyBjcmVhdGVkIGlmIGl0 IGRvZXNuJ3QgZXhpc3QgYWxyZWFkeSwgd2l0aCAyMDI2MDExOVQyMDQzMTcuMjA0IGFzIGl0cyBz dWJkaXJlY3RvcnkgYW5kIGl0IHdpbGwgY29udGFpbiB0aGUgdHdvIGxvZyBmaWxlcyBwZ19jcmVh dGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgYW5kIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwu bG9nCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgICAgIHwg IDI4ICsrKwogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwg MTkwICsrKysrKysrKysrKysrKysrLQogLi4uL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwg ICAgICAgICAgICAgIHwgIDQxICsrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjQ4IGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3Jl YXRlc3Vic2NyaWJlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVy LnNnbWwKaW5kZXggY2Y0NWZmMzU3M2QuLjI4OThhNWVhMTExIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbApAQCAtMTM2LDYgKzEzNiwzNCBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxvcHRpb24+LWwgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRpcmVjdG9yeTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgor ICAgICA8dGVybT48b3B0aW9uPi0tbG9nZGlyPTxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5kaXJlY3Rvcnk8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgPGxpc3RpdGVt PgorICAgICAgPHBhcmE+CisgICAgICAgU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgbG9nIGRpcmVj dG9yeS4gQSBuZXcgZGlyZWN0b3J5IGlzIGNyZWF0ZWQgd2l0aAorICAgICAgIHRoaXMgbmFtZSBp ZiBpdCBkb2VzIG5vdCBleGlzdC4gQSBzdWJkaXJlY3Rvcnkgd2l0aCBhIHRpbWVzdGFtcAorICAg ICAgIGluZGljYXRpbmcgdGhlIHRpbWUgYXQgd2hpY2ggcGdfY3JlYXRlc3Vic2NyaWJlciB3YXMg cnVuIHdpbGwgYmUgY3JlYXRlZC4KKyAgICAgICBUaGUgZm9sbG93aW5nIHR3byBsb2cgZmlsZXMg d2lsbCBiZSBjcmVhdGVkIGluIHRoZSBzdWJkaXJlY3Rvcnkgd2l0aCBhCisgICAgICAgdW1hc2sg b2YgMDc3IHNvIHRoYXQgYWNjZXNzIGlzIGRpc2FsbG93ZWQgdG8gb3RoZXIgdXNlcnMgYnkgZGVm YXVsdC4KKyAgICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICBwZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgd2hpY2gg Y2FwdHVyZXMgbG9ncyByZWxhdGVkIHRvIHN0b3BwaW5nCisgICAgICAgICAgYW5kIHN0YXJ0aW5n IHRoZSBzdGFuZGJ5IHNlcnZlciwKKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgcGdfY3Jl YXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgd2hpY2ggY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25v c3RpYworICAgICAgICAgIG91dHB1dCAodmFsaWRhdGlvbnMsIGNoZWNrcywgZXRjLikKKyAgICAg ICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L2l0ZW1pemVkbGlzdD4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgIDx0ZXJtPjxvcHRpb24+LW48L29wdGlvbj48L3Rlcm0+ CiAgICAgIDx0ZXJtPjxvcHRpb24+LS1kcnktcnVuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyBiL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKaW5kZXggMDc3MGUxNjMwNDEuLmJk MTViOWMxMDE1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vi c2NyaWJlci5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVy LmMKQEAgLTU1LDEwICs1NSwxNCBAQAogI2RlZmluZSBJTkNMVURFRF9DT05GX0ZJTEUJCQkicGdf Y3JlYXRlc3Vic2NyaWJlci5jb25mIgogI2RlZmluZSBJTkNMVURFRF9DT05GX0ZJTEVfRElTQUJM RUQJSU5DTFVERURfQ09ORl9GSUxFICIuZGlzYWJsZWQiCiAKKyNkZWZpbmUgU0VSVkVSX0xPR19G SUxFX05BTUUgInBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyIgorI2RlZmluZSBJTlRFUk5BTF9M T0dfRklMRV9OQU1FICJwZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsIgorCiAvKiBDb21tYW5k LWxpbmUgb3B0aW9ucyAqLwogc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zCiB7CiAJY2hh cgkgICAqY29uZmlnX2ZpbGU7CS8qIGNvbmZpZ3VyYXRpb24gZmlsZSAqLworCWNoYXIJICAgKmxv Z19kaXI7CQkvKiBsb2cgZGlyZWN0b3J5IG5hbWUgKi8KIAljaGFyCSAgICpwdWJfY29ubmluZm9f c3RyOwkvKiBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmcgKi8KIAljaGFyCSAgICpzb2NrZXRf ZGlyOwkJLyogZGlyZWN0b3J5IGZvciBVbml4LWRvbWFpbiBzb2NrZXQsIGlmIGFueSAqLwogCWNo YXIJICAgKnN1Yl9wb3J0OwkJLyogc3Vic2NyaWJlciBwb3J0IG51bWJlciAqLwpAQCAtMTU1LDgg KzE1OSwxNCBAQCBzdGF0aWMgdm9pZCBnZXRfcHVibGlzaGVyX2RhdGFiYXNlcyhzdHJ1Y3QgQ3Jl YXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwKIHN0YXRpYyB2b2lkIHBnX2NyZWF0ZXN1Yl9sb2co ZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCiAJCQkJCQkJIGNvbnN0IGNoYXIg KnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOworc3Rh dGljIHZvaWQgcGdfY3JlYXRlc3ViX2xvZ192KGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVt IHBnX2xvZ19wYXJ0IHBhcnQsCisJCQkJCQkJICAgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10 LCB2YV9saXN0IGFyZ3MpCisJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDApOwogcGdfbm9yZXR1 cm4gc3RhdGljIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikK IAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitzdGF0aWMgdm9pZCBpbnRlcm5hbF9sb2df ZmlsZV93cml0ZShlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwKKwkJCQkJCQkJCWNvbnN0IGNoYXIg KnBnX3Jlc3RyaWN0IGZtdCwgdmFfbGlzdCBhcmdzKQorCQkJcGdfYXR0cmlidXRlX3ByaW50Zigy LCAwKTsKIAogI2RlZmluZQlXQUlUX0lOVEVSVkFMCTEJCS8qIDEgc2Vjb25kICovCiAKQEAgLTE3 OCw2ICsxODgsMTAgQEAgc3RhdGljIHBnX3Bybmdfc3RhdGUgcHJuZ19zdGF0ZTsKIHN0YXRpYyBj aGFyICpwZ19jdGxfcGF0aCA9IE5VTEw7CiBzdGF0aWMgY2hhciAqcGdfcmVzZXR3YWxfcGF0aCA9 IE5VTEw7CiAKK3N0YXRpYyBGSUxFICppbnRlcm5hbF9sb2dfZmlsZV9mcCA9IE5VTEw7CS8qIEZp bGUgcHRyIHRvIGxvZyBhbGwgbWVzc2FnZXMgdG8gKi8KK3N0YXRpYyBjaGFyICpsb2dfdGltZXN0 YW1wID0gTlVMTDsJLyogVGltZXN0YW1wIHRvIGJlIHVzZWQgaW4gYWxsIGxvZyBmaWxlCisJCQkJ CQkJCQkgKiBuYW1lcyAqLworCiAvKiBzdGFuZGJ5IC8gc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9y eSAqLwogc3RhdGljIGNoYXIgKnN1YnNjcmliZXJfZGlyID0gTlVMTDsKIApAQCAtMTg1LDYgKzE5 OSwzMCBAQCBzdGF0aWMgYm9vbCByZWNvdmVyeV9lbmRlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wg c3RhbmRieV9ydW5uaW5nID0gZmFsc2U7CiBzdGF0aWMgYm9vbCByZWNvdmVyeV9wYXJhbXNfc2V0 ID0gZmFsc2U7CiAKK3N0YXRpYyB2b2lkCitwZ19jcmVhdGVzdWJfbG9nX3YoZW51bSBwZ19sb2df bGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkgICBjb25zdCBjaGFyICpw Z19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXJncykKK3sKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVf ZnAgIT0gTlVMTCkKKwl7CisJCS8qCisJCSAqIE91dHB1dCB0byBib3RoIHN0ZGVyciBhbmQgc3Bl Y2lmaWVkIGxvZyBmaWxlcyBpZiB0aGUgbG9nIGxldmVsIGlzCisJCSAqIHdhcm5pbmcgb3IgaGln aGVyLgorCQkgKi8KKwkJaWYgKGxldmVsID4gUEdfTE9HX0lORk8pCisJCXsKKwkJCXZhX2xpc3QJ CWFyZ19jcHk7CisKKwkJCXZhX2NvcHkoYXJnX2NweSwgYXJncyk7CisJCQlwZ19sb2dfZ2VuZXJp Y192KGxldmVsLCBwYXJ0LCBmbXQsIGFyZ19jcHkpOworCQkJdmFfZW5kKGFyZ19jcHkpOworCQl9 CisJCWludGVybmFsX2xvZ19maWxlX3dyaXRlKGxldmVsLCBmbXQsIGFyZ3MpOworCX0KKwllbHNl CisJCXBnX2xvZ19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7Cit9CisKIHN0YXRp YyB2b2lkCiBwZ19jcmVhdGVzdWJfbG9nKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBn X2xvZ19wYXJ0IHBhcnQsCiAJCQkJIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCkBA IC0xOTMsNyArMjMxLDcgQEAgcGdfY3JlYXRlc3ViX2xvZyhlbnVtIHBnX2xvZ19sZXZlbCBsZXZl bCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAogCiAJdmFfc3RhcnQoYXJncywgZm10KTsKIAotCXBn X2xvZ19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7CisJcGdfY3JlYXRlc3ViX2xv Z192KGxldmVsLCBwYXJ0LCBmbXQsIGFyZ3MpOwogCiAJdmFfZW5kKGFyZ3MpOwogfQpAQCAtMjA1 LDEwICsyNDMsMTEgQEAgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikK IAogCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7CiAKLQlwZ19sb2dfZ2VuZXJpY192KFBHX0xPR19FUlJP UiwgUEdfTE9HX1BSSU1BUlksIGZtdCwgYXJncyk7CisJcGdfY3JlYXRlc3ViX2xvZ192KFBHX0xP R19FUlJPUiwgUEdfTE9HX1BSSU1BUlksIGZtdCwgYXJncyk7CiAKIAl2YV9lbmQoYXJncyk7CiAK KwogCWV4aXQoMSk7CiB9CiAKQEAgLTMxMyw2ICszNTIsMTIgQEAgY2xlYW51cF9vYmplY3RzX2F0 ZXhpdCh2b2lkKQogCiAJaWYgKHN0YW5kYnlfcnVubmluZykKIAkJc3RvcF9zdGFuZGJ5X3NlcnZl cihzdWJzY3JpYmVyX2Rpcik7CisKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkK Kwl7CisJCWZjbG9zZShpbnRlcm5hbF9sb2dfZmlsZV9mcCk7CisJCWludGVybmFsX2xvZ19maWxl X2ZwID0gTlVMTDsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0zMjcsNiArMzcyLDcgQEAgdXNh Z2Uodm9pZCkKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNl cyBhbmQgZGF0YWJhc2VzIHRoYXQgZG9uJ3QgYWxsb3cgY29ubmVjdGlvbnNcbiIpKTsKIAlwcmlu dGYoXygiICAtZCwgLS1kYXRhYmFzZT1EQk5BTUUgICAgICAgICAgIGRhdGFiYXNlIGluIHdoaWNo IHRvIGNyZWF0ZSBhIHN1YnNjcmlwdGlvblxuIikpOwogCXByaW50ZihfKCIgIC1ELCAtLXBnZGF0 YT1EQVRBRElSICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBzdWJzY3JpYmVyIGRhdGEgZGly ZWN0b3J5XG4iKSk7CisJcHJpbnRmKF8oIiAgLWwsIC0tbG9nZGlyPUxPR0RJUiAgICAgICAgICAg ICBsb2NhdGlvbiBmb3IgdGhlIG5ldyBsb2cgZGlyZWN0b3J5XG4iKSk7CiAJcHJpbnRmKF8oIiAg LW4sIC0tZHJ5LXJ1biAgICAgICAgICAgICAgICAgICBkcnkgcnVuLCBqdXN0IHNob3cgd2hhdCB3 b3VsZCBiZSBkb25lXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXAsIC0tc3Vic2NyaWJlci1wb3J0PVBP UlQgICAgICBzdWJzY3JpYmVyIHBvcnQgbnVtYmVyIChkZWZhdWx0ICVzKVxuIiksIERFRkFVTFRf U1VCX1BPUlQpOwogCXByaW50ZihfKCIgIC1QLCAtLXB1Ymxpc2hlci1zZXJ2ZXI9Q09OTlNUUiAg cHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nXG4iKSk7CkBAIC03NjEsNiArODA3LDcgQEAgbW9k aWZ5X3N1YnNjcmliZXJfc3lzaWQoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25z ICpvcHQpCiAJYm9vbAkJY3JjX29rOwogCXN0cnVjdCB0aW1ldmFsIHR2OwogCisJY2hhcgkgICAq b3V0X2ZpbGU7CiAJY2hhcgkgICAqY21kX3N0cjsKIAogCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLApAQCAtNzk5LDggKzg0NiwxMyBAQCBtb2RpZnlfc3Vic2Ny aWJlcl9zeXNpZChjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKIAkJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCQkgInJ1 bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsKIAotCWNtZF9zdHIgPSBwc3By aW50ZigiXCIlc1wiIC1EIFwiJXNcIiA+IFwiJXNcIiIsIHBnX3Jlc2V0d2FsX3BhdGgsCi0JCQkJ CSAgIHN1YnNjcmliZXJfZGlyLCBERVZOVUxMKTsKKwlpZiAob3B0LT5sb2dfZGlyICE9IE5VTEwp CisJCW91dF9maWxlID0gcHNwcmludGYoIiVzLyVzLyVzLmxvZyIsIG9wdC0+bG9nX2RpciwgbG9n X3RpbWVzdGFtcCwgU0VSVkVSX0xPR19GSUxFX05BTUUpOworCWVsc2UKKwkJb3V0X2ZpbGUgPSBE RVZOVUxMOworCisJY21kX3N0ciA9IHBzcHJpbnRmKCJcIiVzXCIgLUQgXCIlc1wiID4+IFwiJXNc IiIsIHBnX3Jlc2V0d2FsX3BhdGgsCisJCQkJCSAgIHN1YnNjcmliZXJfZGlyLCBvdXRfZmlsZSk7 CiAKIAlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCiAJCQkJ CSAicGdfcmVzZXR3YWwgY29tbWFuZCBpczogJXMiLCBjbWRfc3RyKTsKQEAgLTEwMjMsNiArMTA3 NSwxMTAgQEAgc2VydmVyX2lzX2luX3JlY292ZXJ5KFBHY29ubiAqY29ubikKIAlyZXR1cm4gcmV0 ID09IDA7CiB9CiAKK3N0YXRpYyB2b2lkCitpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShlbnVtIHBn X2xvZ19sZXZlbCBsZXZlbCwgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LAorCQkJCQkJdmFf bGlzdCBhcmdzKQoreworCWlmIChsZXZlbCA8IF9fcGdfbG9nX2xldmVsKQorCQlyZXR1cm47CisK KwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJdmZwcmlu dGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIGZtdCwgYXJncyk7CisKKwlmcHJpbnRmKGludGVybmFs X2xvZ19maWxlX2ZwLCAiXG4iKTsKKwlmZmx1c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworfQor CisvKgorICogT3BlbiBhIG5ldyBsb2dmaWxlIHdpdGggcHJvcGVyIHBlcm1pc3Npb25zLgorICog RnJvbSBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5jCisgKi8KK3N0YXRpYyBGSUxF ICoKK2xvZ2ZpbGVfb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqbW9kZSkK K3sKKwlGSUxFCSAgICpmaDsKKwltb2RlX3QJCW91bWFzazsKKworCW91bWFzayA9IHVtYXNrKCht b2RlX3QpICgofihTX0lSVVNSIHwgU19JV1VTUikpICYgKFNfSVJXWFUgfCBTX0lSV1hHIHwgU19J UldYTykpKTsKKwlmaCA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsKKwl1bWFzayhvdW1hc2spOwor CisJaWYgKGZoKQorCXsKKwkJc2V0dmJ1ZihmaCwgTlVMTCwgUEdfSU9MQkYsIDApOworCisjaWZk ZWYgV0lOMzIKKwkJLyogdXNlIENSTEYgbGluZSBlbmRpbmdzIG9uIFdpbmRvd3MgKi8KKwkJX3Nl dG1vZGUoX2ZpbGVubyhmaCksIF9PX1RFWFQpOworI2VuZGlmCisJfQorCWVsc2UKKwkJcGdfZmF0 YWwoImNvdWxkIG5vdCBvcGVuIGxvZyBmaWxlIFwiJXNcIjogJW0iLAorCQkJCSBmaWxlbmFtZSk7 CisKKwlyZXR1cm4gZmg7Cit9CisKK3N0YXRpYyB2b2lkCittYWtlX2Rpcihjb25zdCBjaGFyICpk aXIpCit7CisJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKworCWlmIChzdGF0KGRpciwgJnN0YXRidWYp ID09IDApCisJCXJldHVybjsKKworCWlmIChlcnJubyAhPSBFTk9FTlQpCisJCXBnX2ZhdGFsKCJj b3VsZCBub3Qgc3RhdCBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7CisKKwlpZiAobWtkaXIo ZGlyLCBTX0lSV1hVKSA9PSAwKQorCXsKKwkJcGdfbG9nX2luZm8oImRpcmVjdG9yeSAlcyBjcmVh dGVkIiwgZGlyKTsKKwkJcmV0dXJuOworCX0KKworCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRl IGxvZyBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7Cit9CisKK3N0YXRpYyB2b2lkCittYWtl X291dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19kaXIpCit7CisJY2hhcgkJdGltZXN0YW1wWzEy OF07CisJc3RydWN0IHRpbWV2YWwgdHZhbDsKKwl0aW1lX3QJCW5vdzsKKwlzdHJ1Y3QgdG0JdG1i dWY7CisJY2hhcgkJdGltZXN0YW1wX2RpcltNQVhQR1BBVEhdOworCWludAkJCWxlbjsKKworCS8q IEdlbmVyYXRlIHRpbWVzdGFtcCAqLworCWdldHRpbWVvZmRheSgmdHZhbCwgTlVMTCk7CisJbm93 ID0gdHZhbC50dl9zZWM7CisKKwlzdHJmdGltZSh0aW1lc3RhbXAsIHNpemVvZih0aW1lc3RhbXAp LCAiJVklbSVkVCVIJU0lUyIsCisJCQkgbG9jYWx0aW1lX3IoJm5vdywgJnRtYnVmKSk7CisKKwkv KiBhcHBlbmQgbWlsbGlzZWNvbmRzICovCisJc25wcmludGYodGltZXN0YW1wICsgc3RybGVuKHRp bWVzdGFtcCksCisJCQkgc2l6ZW9mKHRpbWVzdGFtcCkgLSBzdHJsZW4odGltZXN0YW1wKSwgIi4l MDN1IiwKKwkJCSAodW5zaWduZWQgaW50KSAodHZhbC50dl91c2VjIC8gMTAwMCkpOworCisJbG9n X3RpbWVzdGFtcCA9IHBnX3N0cmR1cCh0aW1lc3RhbXApOworCisJLyogQ3JlYXRlIGJhc2UgZGly ZWN0b3J5IChpZ25vcmUgaWYgZXhpc3RzKSAqLworCW1ha2VfZGlyKGxvZ19kaXIpOworCisJLyog QnVpbGQgdGltZXN0YW1wIGRpcmVjdG9yeSBwYXRoICovCisJbGVuID0gc25wcmludGYodGltZXN0 YW1wX2RpciwgTUFYUEdQQVRILCAiJXMvJXMiLCBsb2dfZGlyLCB0aW1lc3RhbXApOworCisJaWYg KGxlbiA+PSBNQVhQR1BBVEgpCisJCXBnX2ZhdGFsKCJkaXJlY3RvcnkgcGF0aCBmb3IgbG9nIGZp bGVzLCAlcy8lcywgaXMgdG9vIGxvbmciLAorCQkJCSBsb2dfZGlyLCB0aW1lc3RhbXApOworCisJ LyogQ3JlYXRlIHRpbWVzdGFtcCBkaXJlY3RvcnkgKi8KKwltYWtlX2Rpcih0aW1lc3RhbXBfZGly KTsKK30KKwogLyoKICAqIElzIHRoZSBwcmltYXJ5IHNlcnZlciByZWFkeSBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbj8KICAqCkBAIC0xNzgxLDYgKzE5MzcsOSBAQCBzdGFydF9zdGFuZGJ5X3NlcnZl cihjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwgYm9vbCByZXN0cmlj dGVkXwogCWlmIChyZXN0cmljdF9sb2dpY2FsX3dvcmtlcikKIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocGdfY3RsX2NtZCwgIiAtbyBcIi1jIG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnM9 MFwiIik7CiAKKwlpZiAob3B0LT5sb2dfZGlyICE9IE5VTEwpCisJCWFwcGVuZFBRRXhwQnVmZmVy KHBnX2N0bF9jbWQsICIgLWwgJXMvJXMvJXMubG9nIiwgb3B0LT5sb2dfZGlyLCBsb2dfdGltZXN0 YW1wLCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CisKIAlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19E RUJVRywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdf Y3RsX2NtZC0+ZGF0YSk7CiAJcmMgPSBzeXN0ZW0ocGdfY3RsX2NtZC0+ZGF0YSk7CkBAIC0yMzUx LDYgKzI1MTAsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJhbGwiLCBub19h cmd1bWVudCwgTlVMTCwgJ2EnfSwKIAkJeyJkYXRhYmFzZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBO VUxMLCAnZCd9LAogCQl7InBnZGF0YSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnRCd9LAor CQl7ImxvZ2RpciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbCd9LAogCQl7ImRyeS1ydW4i LCBub19hcmd1bWVudCwgTlVMTCwgJ24nfSwKIAkJeyJzdWJzY3JpYmVyLXBvcnQiLCByZXF1aXJl ZF9hcmd1bWVudCwgTlVMTCwgJ3AnfSwKIAkJeyJwdWJsaXNoZXItc2VydmVyIiwgcmVxdWlyZWRf YXJndW1lbnQsIE5VTEwsICdQJ30sCkBAIC0yNDA5LDYgKzI1NjksNyBAQCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKIAkvKiBEZWZhdWx0IHNldHRpbmdzICovCiAJc3Vic2NyaWJlcl9kaXIg PSBOVUxMOwogCW9wdC5jb25maWdfZmlsZSA9IE5VTEw7CisJb3B0LmxvZ19kaXIgPSBOVUxMOwog CW9wdC5wdWJfY29ubmluZm9fc3RyID0gTlVMTDsKIAlvcHQuc29ja2V0X2RpciA9IE5VTEw7CiAJ b3B0LnN1Yl9wb3J0ID0gREVGQVVMVF9TVUJfUE9SVDsKQEAgLTI0MzksNyArMjYwMCw3IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJZ2V0X3Jlc3RyaWN0ZWRfdG9rZW4oKTsKIAot CXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpEOm5wOlA6czp0OlRVOnYi LAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpEOmw6bnA6UDpzOnQ6 VFU6diIsCiAJCQkJCQkJbG9uZ19vcHRpb25zLCAmb3B0aW9uX2luZGV4KSkgIT0gLTEpCiAJewog CQlzd2l0Y2ggKGMpCkBAIC0yNDYwLDYgKzI2MjEsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCQkJc3Vic2NyaWJlcl9kaXIgPSBwZ19zdHJkdXAob3B0YXJnKTsKIAkJCQljYW5v bmljYWxpemVfcGF0aChzdWJzY3JpYmVyX2Rpcik7CiAJCQkJYnJlYWs7CisJCQljYXNlICdsJzoK KwkJCQlvcHQubG9nX2RpciA9IHBnX3N0cmR1cChvcHRhcmcpOworCQkJCWNhbm9uaWNhbGl6ZV9w YXRoKG9wdC5sb2dfZGlyKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ24nOgogCQkJCWRyeV9ydW4g PSB0cnVlOwogCQkJCWJyZWFrOwpAQCAtMjUzMCw2ICsyNjk1LDE4IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogCQl9CiAJfQogCisJaWYgKG9wdC5sb2dfZGlyICE9IE5VTEwpCisJewor CQljaGFyCSAgICppbnRlcm5hbF9sb2dfZmlsZTsKKworCQltYWtlX291dHB1dF9kaXJzKG9wdC5s b2dfZGlyKTsKKwkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMvJXMubG9nIiwg b3B0LmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsCisJCQkJCQkJCQkgSU5URVJOQUxfTE9HX0ZJTEVf TkFNRSk7CisKKwkJaWYgKChpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IGxvZ2ZpbGVfb3BlbihpbnRl cm5hbF9sb2dfZmlsZSwgImEiKSkgPT0gTlVMTCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3Bl biBsb2cgZmlsZSBcIiVzXCI6ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOworCX0KKwogCS8qIFZh bGlkYXRlIHRoYXQgLS1hbGwgaXMgbm90IHVzZWQgd2l0aCBpbmNvbXBhdGlibGUgb3B0aW9ucyAq LwogCWlmIChvcHQuYWxsX2RicykKIAl7CkBAIC0yODI2LDUgKzMwMDMsOCBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIAlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKIAkJCQkJICJEb25lISIpOwogCisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9 IE5VTEwpCisJCWZjbG9zZShpbnRlcm5hbF9sb2dfZmlsZV9mcCk7CisKIAlyZXR1cm4gMDsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3Jp YmVyLnBsIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIu cGwKaW5kZXggMGMyN2ZjYTdiYjcuLjRkZGZiNjIxYTVkIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbAorKysgYi9zcmMvYmluL3Bn X2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbApAQCAtMTQsNiArMTQsNyBA QCBwcm9ncmFtX3ZlcnNpb25fb2soJ3BnX2NyZWF0ZXN1YnNjcmliZXInKTsKIHByb2dyYW1fb3B0 aW9uc19oYW5kbGluZ19vaygncGdfY3JlYXRlc3Vic2NyaWJlcicpOwogCiBteSAkZGF0YWRpciA9 IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGlyOworbXkgJGxvZ2RpciA9IFBvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGlyICsgIi9sb2dkaXIiOwogCiAjIEdlbmVyYXRlIGEgZGF0 YWJhc2Ugd2l0aCBhIG5hbWUgbWFkZSBvZiBhIHJhbmdlIG9mIEFTQ0lJIGNoYXJhY3RlcnMuCiAj IEV4dHJhY3RlZCBmcm9tIDAwMl9wZ191cGdyYWRlLnBsLgpAQCAtMzYyLDkgKzM2MywzNSBAQCBj b21tYW5kX29rKAogCQknLS1zdWJzY3JpcHRpb24nID0+ICdzdWIyJywKIAkJJy0tZGF0YWJhc2Un ID0+ICRkYjEsCiAJCSctLWRhdGFiYXNlJyA9PiAkZGIyLAorCQknLS1sb2dkaXInID0+ICRsb2dk aXIsCiAJXSwKIAkncnVuIHBnX2NyZWF0ZXN1YnNjcmliZXIgLS1kcnktcnVuIG9uIG5vZGUgUycp OwogCisjIENoZWNrIHRoYXQgdGhlIGxvZyBmaWxlcyB3ZXJlIGNyZWF0ZWQKK215IEBzZXJ2ZXJf bG9nX2ZpbGVzID0gZ2xvYiAiJGxvZ2Rpci8qL3BnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxv ZyI7Citpcyggc2NhbGFyKEBzZXJ2ZXJfbG9nX2ZpbGVzKSwgMSwgIgorICAgIHBnX2NyZWF0ZXN1 YnNjcmliZXJfc2VydmVyLmxvZyBmaWxlIHdhcyBjcmVhdGVkIik7CitteSAkc2VydmVyX2xvZ19m aWxlX3NpemUgPSAtcyAkc2VydmVyX2xvZ19maWxlc1swXTsKK2lzbnQoJHNlcnZlcl9sb2dfZmls ZV9zaXplLCAwLAorCSJwZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgZmlsZSBub3QgZW1w dHkiKTsKK215ICRzZXJ2ZXJfbG9nID0gc2x1cnBfZmlsZSgkc2VydmVyX2xvZ19maWxlc1swXSk7 CitsaWtlKAorCSRzZXJ2ZXJfbG9nLAorCXFyL2NvbnNpc3RlbnQgcmVjb3Zlcnkgc3RhdGUgcmVh Y2hlZC8sCisJInNlcnZlciByZWFjaGVkIGNvbnNpc3RlbnQgcmVjb3Zlcnkgc3RhdGUiKTsKKwor bXkgQGludGVybmFsX2xvZ19maWxlcyA9IGdsb2IgIiRsb2dkaXIvKi9wZ19jcmVhdGVzdWJzY3Jp YmVyX2ludGVybmFsLmxvZyI7Citpcyggc2NhbGFyKEBpbnRlcm5hbF9sb2dfZmlsZXMpLCAxLCAi CisgICAgcGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgZmlsZSB3YXMgY3JlYXRlZCIp OworbXkgJGludGVybmFsX2xvZ19maWxlX3NpemUgPSAtcyAkaW50ZXJuYWxfbG9nX2ZpbGVzWzBd OworaXNudCgkaW50ZXJuYWxfbG9nX2ZpbGVfc2l6ZSwgMCwKKwkicGdfY3JlYXRlc3Vic2NyaWJl cl9pbnRlcm5hbC5sb2cgZmlsZSBub3QgZW1wdHkiKTsKK215ICRpbnRlcm5hbF9sb2cgPSBzbHVy cF9maWxlKCRpbnRlcm5hbF9sb2dfZmlsZXNbMF0pOworbGlrZSgKKwkkaW50ZXJuYWxfbG9nLAor CXFyL3RhcmdldCBzZXJ2ZXIgcmVhY2hlZCB0aGUgY29uc2lzdGVudCBzdGF0ZS8sCisJImxvZyBz aG93cyBjb25zaXN0ZW50IHN0YXRlIHJlYWNoZWQiKTsKKwogIyBDaGVjayBpZiBub2RlIFMgaXMg c3RpbGwgYSBzdGFuZGJ5CiAkbm9kZV9zLT5zdGFydDsKIGlzKCRub2RlX3MtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAnU0VMRUNUIHBnX2NhdGFsb2cucGdfaXNfaW5fcmVjb3ZlcnkoKScpLApAQCAt NDQ0LDcgKzQ3MSw4IEBAIGlzKHNjYWxhcigoKSA9ICRzdGRlcnIgPX4gL3dvdWxkIGNyZWF0ZSBz dWJzY3JpcHRpb24vZyksCiAKICMgQ3JlYXRlIGEgdXNlci1kZWZpbmVkIHB1YmxpY2F0aW9uLCBh bmQgYSB0YWJsZSB0aGF0IGlzIG5vdCBhIG1lbWJlciBvZiB0aGF0CiAjIHB1YmxpY2F0aW9uLgot JG5vZGVfcC0+c2FmZV9wc3FsKCRkYjEsIHFxKAorJG5vZGVfcC0+c2FmZV9wc3FsKAorCSRkYjEs IHFxKAogCUNSRUFURSBQVUJMSUNBVElPTiB0ZXN0X3B1YjMgRk9SIFRBQkxFIHRibDE7CiAJQ1JF QVRFIFRBQkxFIG5vdF9yZXBsaWNhdGVkIChhIGludCk7CiApKTsKQEAgLTU0MCw4ICs1NjgsNyBA QCBzZWNvbmQgcm93CiB0aGlyZCByb3cpLAogCSJsb2dpY2FsIHJlcGxpY2F0aW9uIHdvcmtzIGlu IGRhdGFiYXNlICRkYjEiKTsKICRyZXN1bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJGRiMSwgJ1NF TEVDVCAqIEZST00gbm90X3JlcGxpY2F0ZWQnKTsKLWlzKCRyZXN1bHQsIHFxKCksCi0JInRhYmxl IGlzIG5vdCByZXBsaWNhdGVkIGluIGRhdGFiYXNlICRkYjEiKTsKK2lzKCRyZXN1bHQsIHFxKCks ICJ0YWJsZSBpcyBub3QgcmVwbGljYXRlZCBpbiBkYXRhYmFzZSAkZGIxIik7CiAKICMgQ2hlY2sg cmVzdWx0IGluIGRhdGFiYXNlICRkYjIKICRyZXN1bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJGRi MiwgJ1NFTEVDVCAqIEZST00gdGJsMicpOwpAQCAtNTU1LDggKzU4MiwxMCBAQCBteSAkc3lzaWRf cyA9ICRub2RlX3MtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogaXNudCgkc3lzaWRfcCwgJHN5c2lk X3MsICdzeXN0ZW0gaWRlbnRpZmllciB3YXMgY2hhbmdlZCcpOwogCiAjIFZlcmlmeSB0aGF0IHB1 YjIgd2FzIGNyZWF0ZWQgaW4gJGRiMgotaXMoJG5vZGVfcC0+c2FmZV9wc3FsKCRkYjIsICJTRUxF Q1QgQ09VTlQoKikgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3B1YjInIiks Ci0JJzEnLCAicHVibGljYXRpb24gcHViMiB3YXMgY3JlYXRlZCBpbiAkZGIyIik7CitpcyggJG5v ZGVfcC0+c2FmZV9wc3FsKAorCQkkZGIyLCAiU0VMRUNUIENPVU5UKCopIEZST00gcGdfcHVibGlj YXRpb24gV0hFUkUgcHVibmFtZSA9ICdwdWIyJyIpLAorCScxJywKKwkicHVibGljYXRpb24gcHVi MiB3YXMgY3JlYXRlZCBpbiAkZGIyIik7CiAKICMgR2V0IHN1YnNjcmlwdGlvbiBhbmQgcHVibGlj YXRpb24gbmFtZXMKICRyZXN1bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoCkBAIC01ODEsNyArNjEw LDcgQEAgJHJlc3VsdCA9ICRub2RlX3MtPnNhZmVfcHNxbCgKICAgICApCiApOwogCi1pcygkcmVz dWx0LCBxcSgkZGIxfHt0ZXN0X3B1YjN9CitpcyggJHJlc3VsdCwgcXEoJGRiMXx7dGVzdF9wdWIz fQogJGRiMnx7cHViMn0pLAogCSJzdWJzY3JpcHRpb25zIHVzZSB0aGUgY29ycmVjdCBwdWJsaWNh dGlvbnMiKTsKIAotLSAKMi40Ny4zCgo= --_004_OSOPR01MB1215385EAC6A76650444E40B0F54FAOSOPR01MB12153jp_ Content-Type: application/octet-stream; name="v12-0003-Address-comments-from-Hayato-Kuroda.patch" Content-Description: v12-0003-Address-comments-from-Hayato-Kuroda.patch Content-Disposition: attachment; filename="v12-0003-Address-comments-from-Hayato-Kuroda.patch"; size=8679; creation-date="Thu, 19 Mar 2026 11:37:19 GMT"; modification-date="Thu, 19 Mar 2026 11:41:08 GMT" Content-Transfer-Encoding: base64 RnJvbSBmY2QwMzZlMDA5OGQ3NGQ2NjFiNmRiZDRmOThiZjIxNmQ1MWEzNTY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDIxOjQzOjA4ICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MTIgMy8zXSBBZGRyZXNzIGNvbW1lbnRzIGZyb20gSGF5YXRvIEt1cm9kYQoKLS0tCiBkb2Mv c3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbCAgICAgfCAxNSArLS0KIHNyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgICB8IDkxICsrKysrKysrLS0t LS0tLS0tLS0KIC4uLi90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsICAgICAgICAgICAgICB8 ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKaW5kZXggMjg5OGE1 ZWExMTEuLmZmNjM1YmEyNmNiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0 ZXN1YnNjcmliZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmli ZXIuc2dtbApAQCAtMTQzLDIwICsxNDMsMjEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAg ICAgICA8cGFyYT4KICAgICAgICBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBsb2cgZGlyZWN0b3J5 LiBBIG5ldyBkaXJlY3RvcnkgaXMgY3JlYXRlZCB3aXRoCiAgICAgICAgdGhpcyBuYW1lIGlmIGl0 IGRvZXMgbm90IGV4aXN0LiBBIHN1YmRpcmVjdG9yeSB3aXRoIGEgdGltZXN0YW1wCi0gICAgICAg aW5kaWNhdGluZyB0aGUgdGltZSBhdCB3aGljaCBwZ19jcmVhdGVzdWJzY3JpYmVyIHdhcyBydW4g d2lsbCBiZSBjcmVhdGVkLgotICAgICAgIFRoZSBmb2xsb3dpbmcgdHdvIGxvZyBmaWxlcyB3aWxs IGJlIGNyZWF0ZWQgaW4gdGhlIHN1YmRpcmVjdG9yeSB3aXRoIGEKLSAgICAgICB1bWFzayBvZiAw Nzcgc28gdGhhdCBhY2Nlc3MgaXMgZGlzYWxsb3dlZCB0byBvdGhlciB1c2VycyBieSBkZWZhdWx0 LgorICAgICAgIGluZGljYXRpbmcgdGhlIHRpbWUgYXQgd2hpY2ggPGFwcGxpY2F0aW9uPnBnX2Ny ZWF0ZXN1YnNjcmliZXI8L2FwcGxpY2F0aW9uPgorICAgICAgIHdhcyBydW4gd2lsbCBiZSBjcmVh dGVkLiBUaGUgZm9sbG93aW5nIHR3byBsb2cgZmlsZXMgd2lsbCBiZSBjcmVhdGVkIGluCisgICAg ICAgdGhlIHN1YmRpcmVjdG9yeSB3aXRoIGEgdW1hc2sgb2YgMDc3IHNvIHRoYXQgYWNjZXNzIGlz IGRpc2FsbG93ZWQgdG8KKyAgICAgICBvdGhlciB1c2VycyBieSBkZWZhdWx0LgogICAgICAgIDxp dGVtaXplZGxpc3Q+CiAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgotICAgICAg ICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyB3aGljaCBjYXB0dXJlcyBsb2dzIHJl bGF0ZWQgdG8gc3RvcHBpbmcKLSAgICAgICAgICBhbmQgc3RhcnRpbmcgdGhlIHN0YW5kYnkgc2Vy dmVyLAorICAgICAgICAgIDxsaXRlcmFsPnBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZzwv bGl0ZXJhbD4gd2hpY2ggY2FwdHVyZXMgbG9ncworICAgICAgICAgIHJlbGF0ZWQgdG8gc3RvcHBp bmcgYW5kIHN0YXJ0aW5nIHRoZSBzdGFuZGJ5IHNlcnZlciwKICAgICAgICAgIDwvcGFyYT4KICAg ICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0g ICAgICAgICAgcGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgd2hpY2ggY2FwdHVyZXMg aW50ZXJuYWwgZGlhZ25vc3RpYwotICAgICAgICAgIG91dHB1dCAodmFsaWRhdGlvbnMsIGNoZWNr cywgZXRjLikKKyAgICAgICAgICA8bGl0ZXJhbD5wZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFs LmxvZzwvbGl0ZXJhbD4gd2hpY2ggY2FwdHVyZXMKKyAgICAgICAgICBpbnRlcm5hbCBkaWFnbm9z dGljIG91dHB1dCAodmFsaWRhdGlvbnMsIGNoZWNrcywgZXRjLikKICAgICAgICAgIDwvcGFyYT4K ICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3Bn X2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCmluZGV4IGJkMTViOWMxMDE1Li41YTJi YzQzY2U2MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNj cmliZXIuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5j CkBAIC0xODksOCArMTg5LDcgQEAgc3RhdGljIGNoYXIgKnBnX2N0bF9wYXRoID0gTlVMTDsKIHN0 YXRpYyBjaGFyICpwZ19yZXNldHdhbF9wYXRoID0gTlVMTDsKIAogc3RhdGljIEZJTEUgKmludGVy bmFsX2xvZ19maWxlX2ZwID0gTlVMTDsJLyogRmlsZSBwdHIgdG8gbG9nIGFsbCBtZXNzYWdlcyB0 byAqLwotc3RhdGljIGNoYXIgKmxvZ190aW1lc3RhbXAgPSBOVUxMOwkvKiBUaW1lc3RhbXAgdG8g YmUgdXNlZCBpbiBhbGwgbG9nIGZpbGUKLQkJCQkJCQkJCSAqIG5hbWVzICovCitzdGF0aWMgY2hh ciBsb2dkaXJbTUFYUEdQQVRIXTsJLyogRGlyZWN0b3J5IGxvZyBmaWxlcyBhcmUgcHV0IChpZiBz cGVjaWZpZWQpICovCiAKIC8qIHN0YW5kYnkgLyBzdWJzY3JpYmVyIGRhdGEgZGlyZWN0b3J5ICov CiBzdGF0aWMgY2hhciAqc3Vic2NyaWJlcl9kaXIgPSBOVUxMOwpAQCAtMzcyLDcgKzM3MSw3IEBA IHVzYWdlKHZvaWQpCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh YmFzZXMgYW5kIGRhdGFiYXNlcyB0aGF0IGRvbid0IGFsbG93IGNvbm5lY3Rpb25zXG4iKSk7CiAJ cHJpbnRmKF8oIiAgLWQsIC0tZGF0YWJhc2U9REJOQU1FICAgICAgICAgICBkYXRhYmFzZSBpbiB3 aGljaCB0byBjcmVhdGUgYSBzdWJzY3JpcHRpb25cbiIpKTsKIAlwcmludGYoXygiICAtRCwgLS1w Z2RhdGE9REFUQURJUiAgICAgICAgICAgIGxvY2F0aW9uIGZvciB0aGUgc3Vic2NyaWJlciBkYXRh IGRpcmVjdG9yeVxuIikpOwotCXByaW50ZihfKCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIgICAgICAg ICAgICAgbG9jYXRpb24gZm9yIHRoZSBuZXcgbG9nIGRpcmVjdG9yeVxuIikpOworCXByaW50Zihf KCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIgICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBsb2cg ZGlyZWN0b3J5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAgICAg ICAgICBkcnkgcnVuLCBqdXN0IHNob3cgd2hhdCB3b3VsZCBiZSBkb25lXG4iKSk7CiAJcHJpbnRm KF8oIiAgLXAsIC0tc3Vic2NyaWJlci1wb3J0PVBPUlQgICAgICBzdWJzY3JpYmVyIHBvcnQgbnVt YmVyIChkZWZhdWx0ICVzKVxuIiksIERFRkFVTFRfU1VCX1BPUlQpOwogCXByaW50ZihfKCIgIC1Q LCAtLXB1Ymxpc2hlci1zZXJ2ZXI9Q09OTlNUUiAgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5n XG4iKSk7CkBAIC04NDYsOCArODQ1LDEzIEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0 IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJCSAicnVubmluZyBwZ19yZXNldHdh bCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCi0JaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQotCQlv dXRfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcy8lcy5sb2ciLCBvcHQtPmxvZ19kaXIsIGxvZ190aW1l c3RhbXAsIFNFUlZFUl9MT0dfRklMRV9OQU1FKTsKKwkvKgorCSAqIFJlZGlyZWN0aW5nIHRoZSBv dXRwdXQgdG8gdGhlIGxvZ2ZpbGUgaWYgc3BlY2lmaWVkLiBTaW5jZSB0aGUgb3V0cHV0CisJICog d291bGQgYmUgdmVyeSBzaG9ydCwgYXJvdW5kIG9uZSBsaW5lLCB3ZSBkbyBub3QgcHJvdmlkZSBh IHNlcGFyYXRlIGZpbGUKKwkgKiBmb3IgaXQ7IGl0J3MgZG9uZSBhcyBhIHBhcnQgb2YgdGhlIHNl cnZlciBsb2cuCisJICovCisJaWYgKG9wdC0+bG9nX2RpcikKKwkJb3V0X2ZpbGUgPSBwc3ByaW50 ZigiJXMvJXMubG9nIiwgbG9nZGlyLCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CiAJZWxzZQogCQlv dXRfZmlsZSA9IERFVk5VTEw7CiAKQEAgLTEwNzksMTMgKzEwODMsMTMgQEAgc3RhdGljIHZvaWQK IGludGVybmFsX2xvZ19maWxlX3dyaXRlKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBjb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsCiAJCQkJCQl2YV9saXN0IGFyZ3MpCiB7Ci0JaWYgKGxldmVs IDwgX19wZ19sb2dfbGV2ZWwpCi0JCXJldHVybjsKKwlBc3NlcnQoaW50ZXJuYWxfbG9nX2ZpbGVf ZnApOwogCi0JaWYgKGludGVybmFsX2xvZ19maWxlX2ZwID09IE5VTEwpCisJLyogRG8gbm90aGlu ZyBpZiBsb2cgbGV2ZWwgaXMgdG9vIGxvdy4gKi8KKwlpZiAobGV2ZWwgPCBfX3BnX2xvZ19sZXZl bCkKIAkJcmV0dXJuOwogCi0JdmZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIGZtdCwgYXJn cyk7CisJdmZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIF8oZm10KSwgYXJncyk7CiAKIAlm cHJpbnRmKGludGVybmFsX2xvZ19maWxlX2ZwLCAiXG4iKTsKIAlmZmx1c2goaW50ZXJuYWxfbG9n X2ZpbGVfZnApOwpAQCAtMTEyMiwzMyArMTEyNiwxMiBAQCBsb2dmaWxlX29wZW4oY29uc3QgY2hh ciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm1vZGUpCiB9CiAKIHN0YXRpYyB2b2lkCi1tYWtlX2Rp cihjb25zdCBjaGFyICpkaXIpCi17Ci0Jc3RydWN0IHN0YXQgc3RhdGJ1ZjsKLQotCWlmIChzdGF0 KGRpciwgJnN0YXRidWYpID09IDApCi0JCXJldHVybjsKLQotCWlmIChlcnJubyAhPSBFTk9FTlQp Ci0JCXBnX2ZhdGFsKCJjb3VsZCBub3Qgc3RhdCBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7 Ci0KLQlpZiAobWtkaXIoZGlyLCBTX0lSV1hVKSA9PSAwKQotCXsKLQkJcGdfbG9nX2luZm8oImRp cmVjdG9yeSAlcyBjcmVhdGVkIiwgZGlyKTsKLQkJcmV0dXJuOwotCX0KLQotCXBnX2ZhdGFsKCJj b3VsZCBub3QgY3JlYXRlIGxvZyBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7Ci19Ci0KLXN0 YXRpYyB2b2lkCi1tYWtlX291dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19kaXIpCittYWtlX291 dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19iYXNlZGlyKQogewogCWNoYXIJCXRpbWVzdGFtcFsx MjhdOwogCXN0cnVjdCB0aW1ldmFsIHR2YWw7CiAJdGltZV90CQlub3c7CiAJc3RydWN0IHRtCXRt YnVmOwotCWNoYXIJCXRpbWVzdGFtcF9kaXJbTUFYUEdQQVRIXTsKIAlpbnQJCQlsZW47CiAKIAkv KiBHZW5lcmF0ZSB0aW1lc3RhbXAgKi8KQEAgLTExNjMsMjAgKzExNDYsMjAgQEAgbWFrZV9vdXRw dXRfZGlycyhjb25zdCBjaGFyICpsb2dfZGlyKQogCQkJIHNpemVvZih0aW1lc3RhbXApIC0gc3Ry bGVuKHRpbWVzdGFtcCksICIuJTAzdSIsCiAJCQkgKHVuc2lnbmVkIGludCkgKHR2YWwudHZfdXNl YyAvIDEwMDApKTsKIAotCWxvZ190aW1lc3RhbXAgPSBwZ19zdHJkdXAodGltZXN0YW1wKTsKLQot CS8qIENyZWF0ZSBiYXNlIGRpcmVjdG9yeSAoaWdub3JlIGlmIGV4aXN0cykgKi8KLQltYWtlX2Rp cihsb2dfZGlyKTsKLQogCS8qIEJ1aWxkIHRpbWVzdGFtcCBkaXJlY3RvcnkgcGF0aCAqLwotCWxl biA9IHNucHJpbnRmKHRpbWVzdGFtcF9kaXIsIE1BWFBHUEFUSCwgIiVzLyVzIiwgbG9nX2Rpciwg dGltZXN0YW1wKTsKKwlsZW4gPSBzbnByaW50Zihsb2dkaXIsIE1BWFBHUEFUSCwgIiVzLyVzIiwg bG9nX2Jhc2VkaXIsIHRpbWVzdGFtcCk7CiAKIAlpZiAobGVuID49IE1BWFBHUEFUSCkKIAkJcGdf ZmF0YWwoImRpcmVjdG9yeSBwYXRoIGZvciBsb2cgZmlsZXMsICVzLyVzLCBpcyB0b28gbG9uZyIs Ci0JCQkJIGxvZ19kaXIsIHRpbWVzdGFtcCk7CisJCQkJIGxvZ2RpciwgdGltZXN0YW1wKTsKKwor CS8qIENyZWF0ZSBiYXNlIGRpcmVjdG9yeSAoaWdub3JlIGlmIGV4aXN0cykgKi8KKwlpZiAobWtk aXIobG9nX2Jhc2VkaXIsIFNfSVJXWFUpIDwgMCAmJiBlcnJubyAhPSBFRVhJU1QpCisJCXBnX2Zh dGFsKCJjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgbG9nX2Jhc2VkaXIp OwogCi0JLyogQ3JlYXRlIHRpbWVzdGFtcCBkaXJlY3RvcnkgKi8KLQltYWtlX2Rpcih0aW1lc3Rh bXBfZGlyKTsKKwkvKiBDcmVhdGUgQkFTRV9ESVIvJHRpbWVzdGFtcCAqLworCWlmIChta2Rpcihs b2dkaXIsIFNfSVJXWFUpIDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0 b3J5IFwiJXNcIjogJW0iLCBsb2dkaXIpOwogfQogCiAvKgpAQCAtMTkzNyw4ICsxOTIwLDggQEAg c3RhcnRfc3RhbmRieV9zZXJ2ZXIoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25z ICpvcHQsIGJvb2wgcmVzdHJpY3RlZF8KIAlpZiAocmVzdHJpY3RfbG9naWNhbF93b3JrZXIpCiAJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnX2N0bF9jbWQsICIgLW8gXCItYyBtYXhfbG9naWNhbF9y ZXBsaWNhdGlvbl93b3JrZXJzPTBcIiIpOwogCi0JaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQot CQlhcHBlbmRQUUV4cEJ1ZmZlcihwZ19jdGxfY21kLCAiIC1sICVzLyVzLyVzLmxvZyIsIG9wdC0+ bG9nX2RpciwgbG9nX3RpbWVzdGFtcCwgU0VSVkVSX0xPR19GSUxFX05BTUUpOworCWlmIChvcHQt PmxvZ19kaXIpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHBnX2N0bF9jbWQsICIgLWwgXCIlcy8lcy5s b2dcIiIsIGxvZ2RpciwgU0VSVkVSX0xPR19GSUxFX05BTUUpOwogCiAJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAogCQkJCQkgInBnX2N0bCBjb21tYW5kIGlz OiAlcyIsIHBnX2N0bF9jbWQtPmRhdGEpOwpAQCAtMjY5NSwxOCArMjY3OCw2IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQogCi0JaWYgKG9wdC5sb2dfZGlyICE9IE5VTEwp Ci0JewotCQljaGFyCSAgICppbnRlcm5hbF9sb2dfZmlsZTsKLQotCQltYWtlX291dHB1dF9kaXJz KG9wdC5sb2dfZGlyKTsKLQkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMvJXMu bG9nIiwgb3B0LmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsCi0JCQkJCQkJCQkgSU5URVJOQUxfTE9H X0ZJTEVfTkFNRSk7Ci0KLQkJaWYgKChpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IGxvZ2ZpbGVfb3Bl bihpbnRlcm5hbF9sb2dfZmlsZSwgImEiKSkgPT0gTlVMTCkKLQkJCXBnX2ZhdGFsKCJjb3VsZCBu b3Qgb3BlbiBsb2cgZmlsZSBcIiVzXCI6ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOwotCX0KLQog CS8qIFZhbGlkYXRlIHRoYXQgLS1hbGwgaXMgbm90IHVzZWQgd2l0aCBpbmNvbXBhdGlibGUgb3B0 aW9ucyAqLwogCWlmIChvcHQuYWxsX2RicykKIAl7CkBAIC0yNzg0LDYgKzI3NTUsMTggQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWV4aXQoMSk7CiAJfQogCisJaWYgKG9wdC5sb2df ZGlyICE9IE5VTEwpCisJeworCQljaGFyCSAgICppbnRlcm5hbF9sb2dfZmlsZTsKKworCQltYWtl X291dHB1dF9kaXJzKG9wdC5sb2dfZGlyKTsKKwkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50 ZigiJXMvJXMubG9nIiwgbG9nZGlyLAorCQkJCQkJCQkJIElOVEVSTkFMX0xPR19GSUxFX05BTUUp OworCisJCWlmICgoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgPSBsb2dmaWxlX29wZW4oaW50ZXJuYWxf bG9nX2ZpbGUsICJhIikpID09IE5VTEwpCisJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gbG9n IGZpbGUgXCIlc1wiOiAlbSIsIGludGVybmFsX2xvZ19maWxlKTsKKwl9CisKIAlpZiAoZHJ5X3J1 bikKIAkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCiAJCQkJ CQkgIkV4ZWN1dGluZyBpbiBkcnktcnVuIG1vZGUuXG4iCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbCBiL3NyYy9iaW4vcGdfYmFz ZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCmluZGV4IDRkZGZiNjIxYTVkLi5k M2FmMTU2MTU1MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2Ny ZWF0ZXN1YnNjcmliZXIucGwKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2Ny ZWF0ZXN1YnNjcmliZXIucGwKQEAgLTE0LDcgKzE0LDcgQEAgcHJvZ3JhbV92ZXJzaW9uX29rKCdw Z19jcmVhdGVzdWJzY3JpYmVyJyk7CiBwcm9ncmFtX29wdGlvbnNfaGFuZGxpbmdfb2soJ3BnX2Ny ZWF0ZXN1YnNjcmliZXInKTsKIAogbXkgJGRhdGFkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czo6dGVtcGRpcjsKLW15ICRsb2dkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRp ciArICIvbG9nZGlyIjsKK215ICRsb2dkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVt cGRpcjsKIAogIyBHZW5lcmF0ZSBhIGRhdGFiYXNlIHdpdGggYSBuYW1lIG1hZGUgb2YgYSByYW5n ZSBvZiBBU0NJSSBjaGFyYWN0ZXJzLgogIyBFeHRyYWN0ZWQgZnJvbSAwMDJfcGdfdXBncmFkZS5w bC4KLS0gCjIuNDcuMwoK --_004_OSOPR01MB1215385EAC6A76650444E40B0F54FAOSOPR01MB12153jp_--