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 1w0wif-002Lj7-2w for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 07:14:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0wie-002E5V-12 for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 07:14:00 +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 1w0wid-002E5M-1e for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 07:14:00 +0000 Received: from mail-japanwestazon11011043.outbound.protection.outlook.com ([40.107.74.43] helo=OS0P286CU010.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 1w0wib-00000001txC-1CFn for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 07:13:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x0PXYkL4wjLDwIAhCUYRz9QP5kjRCCw93neeA8OI9XS8EDF9usaHhsDCa5Bw5iRuNe5AvRBZVUSsVC5vD0bRvmnR6fzi3NMKZ2UtTEdW/88mH5+QbZ7HIrEKmKjoEmCJ+7B/JbBwqNiw0YUifRrBBFRw5ZiNs2GjcYXBKHKHQ+oHouJyZf9xCTXfrscvQL2qAfM0Jwc3AB6R9ICAHBT1HAyU8L222AVAiXt0UQF4oer+vT3XWmUfS+JnRF5iN0wK8FXpgbg5SDlOcxkatudD1vsOvGvcYby/oxY94sbcPnEQN2eqRZyaB7i7FKp9JmdzF0Yh4qdTaz8mkBYf+ZL0hA== 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=03tf08Wfpgarijbi4/ZJMTiRP24zeX7uiUBz5GwmX/8=; b=p4yWMM0tHoxlu6VXYMtKCLaxAlJkVUIfN8nW5+Wx78ACfB+3J5mdhRFbw2JW2WJZjBb7vnOQ5FmcWBdZaQDSo/xing1kPuHv/a1I7kcd2eg0EKCgXDhbR6yn0FoS4MInVRFzDKy1a8NvE8RlU5zsLzquVmRch7DGNmYnI0kQIKBimyiXhvqn7DVVU1trEWg2ZfLxbXZRk/GWyOMyQp3uI73wo8wkRAErTl3Wq0t0F98BQZ3RmetKfJDszAkM1gECJOgaS0ECTDl6TElqK4kPBL+E5RPa2J8WYwyUWinheMlQO03opZm6DPuf12U4SBrhCjLSrvfmQp1Cd1onU/owQQ== 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=03tf08Wfpgarijbi4/ZJMTiRP24zeX7uiUBz5GwmX/8=; b=XVqMWbfxy+WLPEKjNSJhXbErs1yg6AYHj9H5shwn/pCDPINOwNK1eLkOb0yaJkmP2IxvJZn+J7Ra2gxJSAMxsnG1ZWXWVXXZngtU1UXLOjmmRaRkfOTJxftKYp/qIe4DQ7C828SYLd3kQjPgGZABlDVCj35iwV4tf6135XCvs5qK4Sd5JN6Cy4mAM8gwnRsOK6cn/Be4sFWwtWg6/5WdnOnh/bEgixHyv6/HX7nSRjpbjVcHttTvDIvgRNvUu2WAkfHQDlxTZtLg2Dln4DH+WkwUY6LqHLTLduHGAncIm1mdauINANlHYpQ3QQ5CHdp4mWLjmqtAzUkUpwNzLmdRBw== Received: from TY4PR01MB16907.jpnprd01.prod.outlook.com (2603:1096:405:338::22) by TYWPR01MB8839.jpnprd01.prod.outlook.com (2603:1096:400:16e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.16; Fri, 13 Mar 2026 07:13:47 +0000 Received: from TY4PR01MB16907.jpnprd01.prod.outlook.com ([fe80::bbb7:659c:a6e:927d]) by TY4PR01MB16907.jpnprd01.prod.outlook.com ([fe80::bbb7:659c:a6e:927d%4]) with mapi id 15.20.9700.013; Fri, 13 Mar 2026 07:13:48 +0000 From: "Zhijie Hou (Fujitsu)" To: shveta malik CC: Amit Kapila , Ajin Cherian , "Hayato Kuroda (Fujitsu)" , Ashutosh Sharma , PostgreSQL Hackers Subject: RE: [PATCH] Support automatic sequence replication Thread-Topic: [PATCH] Support automatic sequence replication Thread-Index: AQHclMAEzANLvjhWZU6Kdy4EwfRGq7VwxE4AgALLp4CAAdjUAIAAAIgAgAd6mACAAfU5gIAH/IAAgAEknICAACZ5gIAAMc0AgAMzVQCABBduAIAB47QAgABQMgCABLf1qYABZaZQgAMbtXCAA040gIABEEDAgAAYIICAABzGAIAAXW3QgAEuZgCABJIhAIAGcRQA Date: Fri, 13 Mar 2026 07:13:48 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-AS, 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?NTBfQWN0aW9uSWQ9Yjk2NjAzMzQtMmJmNi00YTRhLWFmMGItZDJkMDQyY2Y1?= =?utf-8?B?MzIwO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZXREYXRlPTIwMjYtMDMtMTNUMDU6MzU6MjJaO01TSVBfTGFiZWxfYTcyOTVj?= =?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: TY4PR01MB16907:EE_|TYWPR01MB8839:EE_ x-ms-office365-filtering-correlation-id: 12032f48-f1ad-4955-565f-08de80d0127a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|6049299003|1800799024|376014|38070700021|4053099003|56012099003|22082099003|18002099003|1580799027; x-microsoft-antispam-message-info: 79VgkDWWox4hB+Uv43nQM8XuUrzhwvfkvfGnpZ1I5VvExHAMtOx3ks2nVKITfDa+OmDOW+EQx09ZjPnoSwXQsi2VzSyRMU8BcCAdjLFLV7GJEIjP6F/6LVZJSw0KpFaMBparEA/I5WSl7L3oWnQxp3ILzPp1R6l6dVShyv6Kx7B1dPeOMqr2tHcG20BSHYURwlDgNa+XpmIj7odySILW89MyBy6OLEXNG41hETmIIBmFM0hluPc0L5RfYkw8Zbv4Hofh6rHHI5k9FuxnuZO+Oh+n0vLqA+pYxjehPIFvWruJjTpw5Y0JQNny07p8RblLiXQasj4Wpf8FiEiZCZkM+S2s5YpVKMTxz1IjPwVCHF20Ot4PSZb9u+dwhgaWYkzkEQ6ChY8PMoz05fnXcsES4Bl+4WpUTGA/Q5BCh57wxdS45AFvALkfzQ/0onHCai5ictrr3YWNOGoBwNNesHeq9iAYP8zmWiqb9umAWtRVpUx3d4qN1OTu+unC6ba6Y4HvnNkdFmyjeHQE0UPk7NXZbOy85clh/PME/IAfK94uDV3UJRW+iXUzCQRbJoax960y6GTUPKLAxBm0YLl6SPAUIAcNmqDKqDTGY/oZdEE6D518ntAW6b/dzieWCd8tXBPaS84EiPiNXKGLtcSBL+vL51Wq8Y4xKlo1HGU9FCArL3oaRQmdnUm752qa2aIV573t0UX4Hrvcs+bVNvadTOlODkEOYPWYg48UmcG3nUSRHXLHWDRyx0HGO+hucOnIVTQ/n0zwu2EdErV/PjPGUFswNLZbZDhftF5YlTVs6l0WvPE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY4PR01MB16907.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(6049299003)(1800799024)(376014)(38070700021)(4053099003)(56012099003)(22082099003)(18002099003)(1580799027);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q0h1U3VIc0NvR2NtM21UcFpMNzRWNXNSeWJKVisxMTUzNUlyQmJPTG1Cb0w0?= =?utf-8?B?QlhLakE4Ykw0YS9mck1sekdKRlcycGhlYXJQN2Y1WjFncFdCZkhOeFBJWktR?= =?utf-8?B?Um9Eem95TnU1dWh6ZEZCOTFOeWh1SVlWQjk5T0djNWkwUUNtYTVOalMycHNi?= =?utf-8?B?a2tWMFdvVk1PTnFSOTdmZ25GWUMvRVBCVzlwRVZnTnBVSGF4NDBMc09nQlpx?= =?utf-8?B?WmZ5KzFEdzJrTnozS25lRFJEL0F3ejBraFI1aEh2SU1jYm4wR1F3QXA2bFBT?= =?utf-8?B?ZjR5c09lc1FISGtDTmxucU90Qm9EOVdQUmRCY2ZTdXE3THNmb2ZlckFORW5E?= =?utf-8?B?ZmNoYmdMME1RRlhyYzRibC9tbFFsMjFSUnpKNlJnbEV5dWMyYVE4RElBL0tw?= =?utf-8?B?ZFh1NFFkaTVYWFNnZnRDdndtSkdyMjBIMWJkYmlRTC9rbVlteE12MlNKV1Q3?= =?utf-8?B?Q01MWkxpUE54SlErVHV3Y0NoM3lFbklzRUZGSHhZRzlRbkJJblJXV29zdEVT?= =?utf-8?B?UThTQUVVUDlyY0gvNlQwdytlT3pwRVM0Ui9NOWc3eWJNZ3Fld1NlbVBUYVdT?= =?utf-8?B?bVorK3k4L2N6QkZIZ3RXT09oMkwrek5DQkVLRi9BZVNoVSswdmY3RW5idWRQ?= =?utf-8?B?clVmei9zbEtaUnRnNFkwK1RXN0dVOWkwdTh5b0xoRHEwcDRwTlRRVGwyUlNv?= =?utf-8?B?MnZHbHVxMm1hY0NnSjBWcUQ2VGw3Q2NvSExVczJaLzh1VkF4SXdFMG9YVDhk?= =?utf-8?B?c0VFM3pwSnBleGlNRWdwenNrUE5WbEpuRlJGT21tOU9HbkZHS0VvSCs3ZzdC?= =?utf-8?B?UVpTdGxYWjd6M0l5STg3OHdQS0JsdCttaGlUczdhYjlGTjdzQzZFeDJpNVdJ?= =?utf-8?B?SS9GeXVNeU8vMU8vSytqRWFHK3FIaXBkTFRCdTFMZEl3RGVBYmFldTR4UVgv?= =?utf-8?B?bVprWEM2cy9lWWtCSVlkT3RkVTJqcU4vUWV5Q3FNYzVHc0VPdnVDbHFxNXMw?= =?utf-8?B?aHVlQlBaSkw2NlRoYXJFMnNGYmVQbmR1aU1neGx3UTNBdkplTE1OUStKTzhr?= =?utf-8?B?NG85eWJDeG5QTFROMTV4amx0NkI1bWo3MTgrQVljaUMvYk1NK00xMkx0cWNm?= =?utf-8?B?WUZuQXpPb2ZZcGlJV1F6SkpNaktvTDkwNzIyQSs5Rm04ZGRLV3NMUEg3by84?= =?utf-8?B?NEVKeHpjcHNSSjhWZVpKUXgyelZiVXc2REZnRzlyY1lMOVZ0VFlJNGU5KzNl?= =?utf-8?B?Vi9wMVBIVFdVOS9LNEYzWGVHL3ZVRVZZdGNCVG9wMWlJb2xvdlhSZGNMTVgr?= =?utf-8?B?VlJwNkMxMVVYc2Y2WTFsRFVDYWZLdi9jUFFHQ0tuMk5mcmRQNW42UHNBM0dy?= =?utf-8?B?eUhLRm9MV0l6aW5yaENmWHlZOWg1MzN3QjR5TlhNQk9zeGhPejF5YnR4Vy80?= =?utf-8?B?UzcvTnFRSjgxUys5QjhBT0k5OENEMXRldkVZaWJETjRYVG1qSFZteklGQnZn?= =?utf-8?B?aDlCQ09vTitXTFFnNUJOb3RWaDQ5QldUQitRS3h1dWorQzJkLzNjTHV2YWtR?= =?utf-8?B?R29GNHRRaUhlK3h3K2pKYXZyZHcrdWNDZHRvc0tNdW0rRFpHUlZ0RjljVFJu?= =?utf-8?B?LzVVS3F6dTErTGpheGZ4OWNRN3RjbDBla0kxa3JKNEllc1lOd0xmL29Sdmtv?= =?utf-8?B?NS85TUdudmRsdUNjM1hmQWZiZDRIclErNnl0SGxGYnR6Y0RmbnAvQk1CZldS?= =?utf-8?B?ZDE5SjhXQWtwRENrSVBoMTZOWGxsZklKeWJWY0hjK2YzRWZjaWxTNkk5NVVh?= =?utf-8?B?Vnd5ZDJwRjFRN0tyeFBtK3cyNVRWc2JMZWN3YTUycjgwUklBeHk2bjA0YSt2?= =?utf-8?B?dlZDdnhNdi9XaGFqdXZSQVFSZzZFNFBwMmlmbis2WVdWZmEzNzdwSGR0N2kx?= =?utf-8?B?aXh5NE5xZ0xoTHNKR0F2UGRwVXZxSlpZdTI0dFZKcHprSUZRZmxVT0wvdWli?= =?utf-8?B?M1FnbHV1THprbUd1UUoycndNYXkxUFhGYlZyYW5rZE9QMzg5b2xMR2tSWTRF?= =?utf-8?B?eExXREJ6dFlQYjl1NFZjSm9PbWVtSjN5MHFGbTB4cEJhZUUxWHdXSnV0Q2l3?= =?utf-8?B?VEJ2VlRuVkQ5aUdKMTRDWGg0STRoaXRjTVlqT2l6WlpJWCtIczduK1dOYVFR?= =?utf-8?B?K0JhZ25KdTZUNmg1VmFSb2FzRlE4WXp5M1IxSi9rOVlRbXlaUDZPNUQwUmlB?= =?utf-8?B?Y3diU3V3eEVsTndYSlNIRjY4NGJmWmdGdi83NE94bU1qcWFjK3hoSFd5elVG?= =?utf-8?B?NFZjb1gzUzZMQkJva082NFF3TS8wUUg2VXVaRTMwaS9DRGx6NnNxdz09?= Content-Type: multipart/mixed; boundary="_004_TY4PR01MB169072D89B6A978E60388B87A9445ATY4PR01MB16907jp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: RGPmgfXtbvD9WB1S5Wj7M/9s/Ql6tjvVI1f9vO5p6yxtkh3k3keGcjQG3VF/pIsyPXWCaMed6OA/rE2DrXhjUoNi7q+fq3nLYxpe4h0cYe8O8xj5PB8cJAZh4zz5TbuJDUP0V0ykl4OglTuRks9naOB3Ki9kQAcZol+QNR2VFk5BMeO7lU7cuv5lI1gj1DQ8cOLbW2QG1c+0Mi3WTODDHK9A7t/dQ47HdVDEvSsGw/gm+Kw2+h3I8UI8aKMdM86CFuArGUujz1JXAB71ILy9C5BcXWEyYzvllm2tYELjU4lVJIp2hRC+0C8T7lm8Yk6xw5qldqwle5y9Od1mBx9t+g== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY4PR01MB16907.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12032f48-f1ad-4955-565f-08de80d0127a X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2026 07:13:48.4708 (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: y21qlVKN4LbtxLtpswHD1KRCe/uK9U4OhcAqPZ2O7Ivyb+zStZ7bOLEeOJqNlxS3sYzsoan4n1Nbwl3VctYVyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB8839 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_TY4PR01MB169072D89B6A978E60388B87A9445ATY4PR01MB16907jp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gTW9uZGF5LCBNYXJjaCA5LCAyMDI2IDExOjEzIEFNIHNodmV0YSBtYWxpayA8c2h2ZXRhLm1h bGlrQGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0KPiBObyBtYWpvciBjb25jZXJucyBvbiAwMDEsIGp1 c3QgYSBmZXcgdHJpdmlhbCB0aGluZ3MuIERvIHRoZXNlIG9ubHkgaWYgeW91IGZlZWwNCj4gb2th eSBhYm91dCB0aGVzZS4NCj4gDQoNClRoYW5rcyBmb3IgdGhlIHJldmlld3MuIEkndmUgdXBkYXRl ZCB0aGUgcGF0Y2ggc2V0IGFkZHJlc3NpbmcgYWxsIGNvbW1lbnRzLg0KDQpJbiAwMDAxLCBhc2lk ZSBmcm9tIGFkZHJlc3NpbmcgY29tbWVudHMgaW4gWzFdWzJdWzNdWzRdLCBJJ3ZlIGNoYW5nZWQg dGhlDQpsb2dpYyB0byBkZWxheSB1cGRhdGluZyB0aGUgcGFnZSBMU04gZm9yIGVhY2ggc2VxdWVu Y2UgaW4NCnBnX3N1YnNjcmlwdGlvbl9yZWwuIEZyZXF1ZW50IGNhdGFsb2cgdXBkYXRlcyB3b3Vs ZCBnZW5lcmF0ZSBtYW55DQppbnZhbGlkYXRpb25zLCBkZWdyYWRpbmcgdGhlIHBlcmZvcm1hbmNl IG9mIHRoZSBhcHBseSB3b3JrZXIgd2hpY2gNCnJlbGllcyBvbiBjYWNoZWQgZGF0YSBmcm9tIHBn X3N1YnNjcmlwdGlvbl9yZWwuDQoNCjAwMDIgYWRkcyBjYWNoaW5nIG9mIHNlcXVlbmNlIGluZm9y bWF0aW9uIGZvciB0aGUgY3VycmVudCBzdWJzY3JpcHRpb24gaW4gdGhlDQpzZXF1ZW5jZSBzeW5j IHdvcmtlci4gVGhlIGNhY2hlIGlzIGludmFsaWRhdGVkIGltbWVkaWF0ZWx5IHdoZW4NCnBnX3N1 YnNjcmlwdGlvbl9yZWwgaXMgbW9kaWZpZWQuIENvbmN1cnJlbnQgY2hhbmdlcyB0byBzZXF1ZW5j ZSBuYW1lcyBvcg0KbmFtZXNwYWNlcyBhcmUgZGV0ZWN0ZWQgYmVmb3JlIHN5bmNocm9uaXphdGlv biwgYXMgdGhlIHdvcmtlciB2ZXJpZmllcyB0aGUNCnNlcXVlbmNlIGRhdGEgYXQgc3luYyB0aW1l Lg0KDQowMDAzIChmb3JtZXJseSAwMDAyKSBtb2RpZmllcyBSRUZSRVNIIFNFUVVFTkNFUyB0byBz eW5jaHJvbml6ZSBzZXF1ZW5jZSB2YWx1ZXMNCmRpcmVjdGx5IHdpdGhvdXQgbGF1bmNoaW5nIGEg d29ya2VyLg0KDQpbMV0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC8wMkVE QjNEMi00RTVBLTRFREUtQkFERi0zREY2MkQ3MDc4MzElNDBnbWFpbC5jb20NClsyXSBodHRwczov L3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL09TOVBSMDFNQjEyMTQ5RTQ2MTREQTk1OTYz NjcwNzcyRUVGNTc5QSU0ME9TOVBSMDFNQjEyMTQ5LmpwbnByZDAxLnByb2Qub3V0bG9vay5jb20N ClszXSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL0NBSnB5MHVBbUVranNC UzZSeFB2OWlEY0sya2ZKNSUzRGJxNE1xMXpNQ1F0YVlGb0RmYmJRJTQwbWFpbC5nbWFpbC5jb20N Cls0XSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL0NBSnB5MHVDMFRfdHA2 Mnp4Sk5fMmRfQSUzRFlwdmYxNGViakdGZXBja2VKdWdXNU9IT3lBJTQwbWFpbC5nbWFpbC5jb20N Cg0KQmVzdCBSZWdhcmRzLA0KSG91IHpqDQo= --_004_TY4PR01MB169072D89B6A978E60388B87A9445ATY4PR01MB16907jp_ Content-Type: application/octet-stream; name="v12-0003-Synchronize-sequences-directly-in-REFRESH-SEQUEN.patch" Content-Description: v12-0003-Synchronize-sequences-directly-in-REFRESH-SEQUEN.patch Content-Disposition: attachment; filename="v12-0003-Synchronize-sequences-directly-in-REFRESH-SEQUEN.patch"; size=16092; creation-date="Fri, 13 Mar 2026 07:10:01 GMT"; modification-date="Fri, 13 Mar 2026 07:13:47 GMT" Content-Transfer-Encoding: base64 RnJvbSA2NjE0ZGI5MTc0YzQ0MGUwZWQ4NTViZjczMDRjNzdlNGJiNDAwZDZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpE YXRlOiBGcmksIDEzIE1hciAyMDI2IDEzOjEwOjMwICswODAwClN1YmplY3Q6IFtQQVRDSCB2MTIg My8zXSBTeW5jaHJvbml6ZSBzZXF1ZW5jZXMgZGlyZWN0bHkgaW4gUkVGUkVTSCBTRVFVRU5DRVMK IGNvbW1hbmQKClRoZSBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggU0VRVUVOQ0VTIGNv bW1hbmQgY3VycmVudGx5IHNldHMgYWxsCnNlcXVlbmNlIHN0YXRlcyBpbiBwZ19zdWJzY3JpcHRp b25fcmVsIHRvIElOSVQgYW5kIHJlbGllcyBvbiB0aGUgc2VxdWVuY2Ugc3luYwp3b3JrZXIgdG8g cGVyZm9ybSB0aGUgYWN0dWFsIHN5bmNocm9uaXphdGlvbiBhbmQgdXBkYXRlIHN0YXRlcyB0byBS RUFEWS4KCldpdGggdGhlIHJlY2VudCBjaGFuZ2UgbWFraW5nIHRoZSBzZXF1ZW5jZSBzeW5jIHdv cmtlciBsb25nLWxpdmVkLCBtb3N0CnNlcXVlbmNlcyBhcmUgbm93IHN5bmNocm9uaXplZCBpbiB0 aGUgYmFja2dyb3VuZCwgcmVkdWNpbmcgdGhlIG5lZWQgZm9yClJFRlJFU0ggU0VRVUVOQ0VTLiBI b3dldmVyLCB0aGUgY29tbWFuZCByZW1haW5zIG5lY2Vzc2FyeSBmb3Igc2VxdWVuY2VzIHRoYXQK aGF2ZW4ndCBiZWVuIHN5bmNocm9uaXplZC4KClRoaXMgY29tbWl0IGVuaGFuY2VzIFJFRlJFU0gg U0VRVUVOQ0VTIHRvIHN5bmNocm9uaXplIHNlcXVlbmNlcyBkaXJlY3RseSB3aXRoaW4KdGhlIGNv bW1hbmQgaXRzZWxmLCBlbGltaW5hdGluZyB0aGUgb3ZlcmhlYWQgb2YgbGF1bmNoaW5nIGEgd29y a2VyIGFuZCB1cGRhdGluZwpjYXRhbG9nIGVudHJpZXMgdW5uZWNlc3NhcmlseS4KLS0tCiBkb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDUgKy0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICB8ICAyNyArKy0tCiAuLi4v cmVwbGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYyAgICAgICAgfCAxNDggKysrKysrKysr KysrKy0tLS0tCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmggICAgICAg fCAgIDUgKwogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3NlcXVlbmNlcy5wbCAgICAgIHwg IDQ5ICsrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNzYgaW5zZXJ0aW9ucygrKSwgNTggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggMzg2NWY2MTc4 MTYuLmUzNDcyY2M5NTJlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNh dGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAg LTE3OTEsOCArMTc5MSw5IEBAIFB1YmxpY2F0aW9uczoKIAogICA8cGFyYT4KICAgIEEgPGZpcnN0 dGVybT5zZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24gd29ya2VyPC9maXJzdHRlcm0+IHdpbGwgYmUg c3RhcnRlZAotICAgYWZ0ZXIgZXhlY3V0aW5nIGFueSBvZiB0aGUgYWJvdmUgc3Vic2NyaWJlciBj b21tYW5kcy4gVGhlIHdvcmtlciB3aWxsCi0gICByZW1haW4gcnVubmluZyBmb3IgdGhlIGxpZmUg b2YgdGhlIHN1YnNjcmlwdGlvbiwgcGVyaW9kaWNhbGx5CisgICBhZnRlciBleGVjdXRpbmcgPGNv bW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElPTjwvY29tbWFuZD4gb3IKKyAgIDxjb21tYW5kPkFMVEVS IFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTjwvY29tbWFuZD4gY29tbWFuZC4g VGhlCisgICB3b3JrZXIgd2lsbCByZW1haW4gcnVubmluZyBmb3IgdGhlIGxpZmUgb2YgdGhlIHN1 YnNjcmlwdGlvbiwgcGVyaW9kaWNhbGx5CiAgICBzeW5jaHJvbml6aW5nIGFsbCBwdWJsaXNoZWQg c2VxdWVuY2VzLgogICA8L3BhcmE+CiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5jCmluZGV4IDcyNDYzN2NmZjViLi5kN2ZiNjM0ZGYxMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMTI4OCwyNSArMTI4OCwyMCBAQCBBbHRl clN1YnNjcmlwdGlvbl9yZWZyZXNoX3NlcShTdWJzY3JpcHRpb24gKnN1YikKIAogCVBHX1RSWSgp OwogCXsKLQkJTGlzdAkgICAqc3VicmVsX3N0YXRlczsKLQogCQljaGVja19wdWJsaWNhdGlvbnNf b3JpZ2luX3NlcXVlbmNlcyh3cmNvbm4sIHN1Yi0+cHVibGljYXRpb25zLCB0cnVlLAogCQkJCQkJ CQkJCQlzdWItPm9yaWdpbiwgTlVMTCwgMCwgc3ViLT5uYW1lKTsKIAotCQkvKiBHZXQgbG9jYWwg c2VxdWVuY2UgbGlzdC4gKi8KLQkJc3VicmVsX3N0YXRlcyA9IEdldFN1YnNjcmlwdGlvblJlbGF0 aW9ucyhzdWItPm9pZCwgZmFsc2UsIHRydWUsIGZhbHNlKTsKLQkJZm9yZWFjaF9wdHIoU3Vic2Ny aXB0aW9uUmVsU3RhdGUsIHN1YnJlbCwgc3VicmVsX3N0YXRlcykKLQkJewotCQkJT2lkCQkJcmVs aWQgPSBzdWJyZWwtPnJlbGlkOwotCi0JCQlVcGRhdGVTdWJzY3JpcHRpb25SZWxTdGF0ZShzdWIt Pm9pZCwgcmVsaWQsIFNVQlJFTF9TVEFURV9JTklULAotCQkJCQkJCQkJICAgSW52YWxpZFhMb2dS ZWNQdHIsIGZhbHNlKTsKLQkJCWVyZXBvcnQoREVCVUcxLAotCQkJCQllcnJtc2dfaW50ZXJuYWwo InNlcXVlbmNlIFwiJXMuJXNcIiBvZiBzdWJzY3JpcHRpb24gXCIlc1wiIHNldCB0byBJTklUIHN0 YXRlIiwKLQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfcmVsX25hbWVzcGFjZShyZWxp ZCkpLAotCQkJCQkJCQkJZ2V0X3JlbF9uYW1lKHJlbGlkKSwKLQkJCQkJCQkJCXN1Yi0+bmFtZSkp OwotCQl9CisJCS8qCisJCSAqIFN0b3AgdGhlIHNlcXVlbmNlc3luYyB3b3JrZXIgdG8gcHJldmVu dCBjb25jdXJyZW50IHVwZGF0ZXMuIFRoaXMKKwkJICogYXZvaWRzIGEgcmFjZSBjb25kaXRpb24g d2hlcmUgdGhlIHNlcXVlbmNlIHZhbHVlIGNvdWxkIGJlIHVwZGF0ZWQKKwkJICogYnkgdGhpcyBj b21tYW5kIGFuZCB0aGVuIGltbWVkaWF0ZWx5IG1vdmVkIGJhY2t3YXJkIGJ5IGEKKwkJICogY29u Y3VycmVudGx5IHJ1bm5pbmcgd29ya2VyLiBTdG9wcGluZyB0aGUgd29ya2VyIGlzIHNhZmUgZXZl biBpZiBpdAorCQkgKiBhdHRlbXB0cyB0byByZXN0YXJ0LCBhcyBpdCB3aWxsIHdhaXQgb24gdGhl IHN1YnNjcmlwdGlvbiBsb2NrCisJCSAqIGFscmVhZHkgaGVsZCBieSB0aGlzIEFMVEVSIFNVQlND UklQVElPTiBjb21tYW5kLgorCQkgKi8KKwkJbG9naWNhbHJlcF93b3JrZXJfc3RvcChXT1JLRVJU WVBFX1NFUVVFTkNFU1lOQywgc3ViLT5vaWQsIEludmFsaWRPaWQpOworCisJCUFsdGVyU3ViU3lu Y1NlcXVlbmNlcyh3cmNvbm4sIHN1Yi0+b2lkLCBzdWItPm5hbWUsIHN1Yi0+cnVuYXNvd25lcik7 CiAJfQogCVBHX0ZJTkFMTFkoKTsKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3NlcXVlbmNlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9zZXF1ZW5jZXN5bmMuYwppbmRleCBhNDgwN2VlODAxNy4uOWVhMzVjMzg4ZjQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2VxdWVuY2VzeW5jLmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYwpAQCAtMjE2 LDcgKzIxNiw3IEBAIGdldF9zZXF1ZW5jZXNfc3RyaW5nKExpc3QgKnNlcWluZGV4ZXMsIExpc3Qg KnNlcWluZm9zLCBTdHJpbmdJbmZvIGJ1ZikKICAqLwogc3RhdGljIHZvaWQKIHJlcG9ydF9zZXF1 ZW5jZV9lcnJvcnMoTGlzdCAqbWlzbWF0Y2hlZF9zZXFzX2lkeCwgTGlzdCAqaW5zdWZmcGVybV9z ZXFzX2lkeCwKLQkJCQkJICAgTGlzdCAqbWlzc2luZ19zZXFzX2lkeCwgTGlzdCAqc2VxaW5mb3Mp CisJCQkJCSAgIExpc3QgKm1pc3Npbmdfc2Vxc19pZHgsIExpc3QgKnNlcWluZm9zLCBjaGFyICpz dWJuYW1lKQogewogCVN0cmluZ0luZm8Jc2Vxc3RyOwogCkBAIC0yNjIsNyArMjYyLDcgQEAgcmVw b3J0X3NlcXVlbmNlX2Vycm9ycyhMaXN0ICptaXNtYXRjaGVkX3NlcXNfaWR4LCBMaXN0ICppbnN1 ZmZwZXJtX3NlcXNfaWR4LAogCWVyZXBvcnQoRVJST1IsCiAJCQllcnJjb2RlKEVSUkNPREVfT0JK RUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJZXJybXNnKCJsb2dpY2FsIHJlcGxp Y2F0aW9uIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiBmYWlsZWQgZm9yIHN1YnNjcmlwdGlvbiBc IiVzXCIiLAotCQkJCSAgIE15U3Vic2NyaXB0aW9uLT5uYW1lKSk7CisJCQkJICAgc3VibmFtZSkp OwogfQogCiAvKgpAQCAtNDE5LDEwICs0MTksOSBAQCBjaGVja19zZXFfcHJpdmlsZWdlc19hbmRf ZHJpZnQoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mbywKICAqLwogc3RhdGljIENvcHlT ZXFSZXN1bHQKIGNvcHlfc2VxdWVuY2UoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mbywg UmVsYXRpb24gc2VxdWVuY2VfcmVsLAotCQkJICBib29sIHVwZGF0ZV9sc24pCisJCQkgIE9pZCBz dWJpZCwgYm9vbCBydW5fYXNfb3duZXIsIGJvb2wgdXBkYXRlX2xzbikKIHsKIAlVc2VyQ29udGV4 dCB1Y3h0OwotCWJvb2wJCXJ1bl9hc19vd25lciA9IE15U3Vic2NyaXB0aW9uLT5ydW5hc293bmVy OwogCU9pZAkJCXNlcW9pZCA9IHNlcWluZm8tPmxvY2FscmVsaWQ7CiAJQ29weVNlcVJlc3VsdCBy ZXN1bHQ7CiAJYm9vbAkJbmVlZF9sc25fdXBkYXRlID0gZmFsc2U7CkBAIC00NjYsOCArNDY1LDcg QEAgY29weV9zZXF1ZW5jZShMb2dpY2FsUmVwU2VxdWVuY2VJbmZvICpzZXFpbmZvLCBSZWxhdGlv biBzZXF1ZW5jZV9yZWwsCiAJCVhMb2dSZWNQdHIJbG9jYWxfcGFnZV9sc247CiAKIAkJLyogR2V0 IHRoZSBsb2NhbCBwYWdlIExTTiBmb3IgY29tcGFyaXNvbiB3aXRoIHRoZSByZW1vdGUgdmFsdWUg Ki8KLQkJKHZvaWQpIEdldFN1YnNjcmlwdGlvblJlbFN0YXRlKE15U3Vic2NyaXB0aW9uLT5vaWQs Ci0JCQkJCQkJCQkgICBSZWxhdGlvbkdldFJlbGlkKHNlcXVlbmNlX3JlbCksCisJCSh2b2lkKSBH ZXRTdWJzY3JpcHRpb25SZWxTdGF0ZShzdWJpZCwgUmVsYXRpb25HZXRSZWxpZChzZXF1ZW5jZV9y ZWwpLAogCQkJCQkJCQkJICAgJmxvY2FsX3BhZ2VfbHNuKTsKIAogCQluZWVkX2xzbl91cGRhdGUg PSAobG9jYWxfcGFnZV9sc24gIT0gc2VxaW5mby0+cGFnZV9sc24pOwpAQCAtNDc5LDcgKzQ3Nyw3 IEBAIGNvcHlfc2VxdWVuY2UoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mbywgUmVsYXRp b24gc2VxdWVuY2VfcmVsLAogCSAqIGN5Y2xlICh1cGRhdGVfbHNuIGlzIHRydWUpLgogCSAqLwog CWlmIChzZXFpbmZvLT5yZWxzdGF0ZSA9PSBTVUJSRUxfU1RBVEVfSU5JVCB8fCBuZWVkX2xzbl91 cGRhdGUpCi0JCVVwZGF0ZVN1YnNjcmlwdGlvblJlbFN0YXRlKE15U3Vic2NyaXB0aW9uLT5vaWQs IHNlcW9pZCwgU1VCUkVMX1NUQVRFX1JFQURZLAorCQlVcGRhdGVTdWJzY3JpcHRpb25SZWxTdGF0 ZShzdWJpZCwgc2Vxb2lkLCBTVUJSRUxfU1RBVEVfUkVBRFksCiAJCQkJCQkJCSAgIHNlcWluZm8t PnBhZ2VfbHNuLCBmYWxzZSk7CiAKIAlyZXR1cm4gQ09QWVNFUV9TVUNDRVNTOwpAQCAtNDk4LDcg KzQ5Niw4IEBAIGNvcHlfc2VxdWVuY2UoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mbywg UmVsYXRpb24gc2VxdWVuY2VfcmVsLAogICogUmV0dXJucyB0cnVlL2ZhbHNlIGlmIGFueSBzZXF1 ZW5jZXMgd2VyZSBhY3R1YWxseSBjb3BpZWQuCiAgKi8KIHN0YXRpYyBib29sCi1jb3B5X3NlcXVl bmNlcyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIExpc3QgKnNlcWluZm9zLCBib29sIHVwZGF0ZV9s c24pCitjb3B5X3NlcXVlbmNlcyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIExpc3QgKnNlcWluZm9z LCBPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsCisJCQkgICBib29sIHJ1bmFzb3duZXIsIGJvb2wg dXBkYXRlX2xzbikKIHsKIAlpbnQJCQljdXJfYmF0Y2hfYmFzZV9pbmRleCA9IDA7CiAJaW50CQkJ bl9zZXFpbmZvcyA9IGxpc3RfbGVuZ3RoKHNlcWluZm9zKTsKQEAgLTUyNywxMSArNTI2LDE2IEBA IGNvcHlfc2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgTGlzdCAqc2VxaW5mb3MsIGJv b2wgdXBkYXRlX2xzbikKIAkJaW50CQkJYmF0Y2hfbm9fZHJpZnQgPSAwOwogCQlpbnQJCQliYXRj aF9taXNzaW5nX2NvdW50OwogCQlSZWxhdGlvbglzZXF1ZW5jZV9yZWwgPSBOVUxMOworCQlib29s CQlzdGFydGVkX3R4ID0gZmFsc2U7CiAKIAkJV2FsUmN2RXhlY1Jlc3VsdCAqcmVzOwogCQlUdXBs ZVRhYmxlU2xvdCAqc2xvdDsKIAotCQlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCQlpZiAo IUlzVHJhbnNhY3Rpb25TdGF0ZSgpKQorCQl7CisJCQlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgp OworCQkJc3RhcnRlZF90eCA9IHRydWU7CisJCX0KIAogCQlmb3IgKGludCBpZHggPSBjdXJfYmF0 Y2hfYmFzZV9pbmRleDsgaWR4IDwgbl9zZXFpbmZvczsgaWR4KyspCiAJCXsKQEAgLTYyMywxNCAr NjI3LDE1IEBAIGNvcHlfc2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgTGlzdCAqc2Vx aW5mb3MsIGJvb2wgdXBkYXRlX2xzbikKIAkJCQkJCQkJCQkJCQkmc2VxaW5mbywgJnNlcWlkeCwg c2VxaW5mb3MpOwogCiAJCQlpZiAoc3luY19zdGF0dXMgPT0gQ09QWVNFUV9BTExPV0VEKQotCQkJ CXN5bmNfc3RhdHVzID0gY29weV9zZXF1ZW5jZShzZXFpbmZvLCBzZXF1ZW5jZV9yZWwsIHVwZGF0 ZV9sc24pOworCQkJCXN5bmNfc3RhdHVzID0gY29weV9zZXF1ZW5jZShzZXFpbmZvLCBzZXF1ZW5j ZV9yZWwsIHN1YmlkLAorCQkJCQkJCQkJCQlydW5hc293bmVyLCB1cGRhdGVfbHNuKTsKIAogCQkJ c3dpdGNoIChzeW5jX3N0YXR1cykKIAkJCXsKIAkJCQljYXNlIENPUFlTRVFfU1VDQ0VTUzoKIAkJ CQkJZWxvZyhERUJVRzEsCiAJCQkJCQkgImxvZ2ljYWwgcmVwbGljYXRpb24gc3luY2hyb25pemF0 aW9uIGhhcyB1cGRhdGVkIHNlcXVlbmNlIFwiJXMuJXNcIiBpbiBzdWJzY3JpcHRpb24gXCIlc1wi IiwKLQkJCQkJCSBzZXFpbmZvLT5uc3BuYW1lLCBzZXFpbmZvLT5zZXFuYW1lLCBNeVN1YnNjcmlw dGlvbi0+bmFtZSk7CisJCQkJCQkgc2VxaW5mby0+bnNwbmFtZSwgc2VxaW5mby0+c2VxbmFtZSwg c3VibmFtZSk7CiAJCQkJCWJhdGNoX3N1Y2NlZWRlZF9jb3VudCsrOwogCQkJCQlzZXF1ZW5jZV9j b3BpZWQgPSB0cnVlOwogCQkJCQlicmVhazsKQEAgLTcwMywxMyArNzA4LDE3IEBAIGNvcHlfc2Vx dWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgTGlzdCAqc2VxaW5mb3MsIGJvb2wgdXBkYXRl X2xzbikKIAogCQllbG9nKERFQlVHMSwKIAkJCSAibG9naWNhbCByZXBsaWNhdGlvbiBzZXF1ZW5j ZSBzeW5jaHJvbml6YXRpb24gZm9yIHN1YnNjcmlwdGlvbiBcIiVzXCIgLSBiYXRjaCAjJWQgPSAl ZCBhdHRlbXB0ZWQsICVkIHN1Y2NlZWRlZCwgJWQgbWlzbWF0Y2hlZCwgJWQgaW5zdWZmaWNpZW50 IHBlcm1pc3Npb24sICVkIG1pc3NpbmcgZnJvbSBwdWJsaXNoZXIsICVkIHNraXBwZWQsICVkIG5v IGRyaWZ0IiwKLQkJCSBNeVN1YnNjcmlwdGlvbi0+bmFtZSwKKwkJCSBzdWJuYW1lLAogCQkJIChj dXJfYmF0Y2hfYmFzZV9pbmRleCAvIE1BWF9TRVFVRU5DRVNfU1lOQ19QRVJfQkFUQ0gpICsgMSwK IAkJCSBiYXRjaF9zaXplLCBiYXRjaF9zdWNjZWVkZWRfY291bnQsIGJhdGNoX21pc21hdGNoZWRf Y291bnQsCiAJCQkgYmF0Y2hfaW5zdWZmcGVybV9jb3VudCwgYmF0Y2hfbWlzc2luZ19jb3VudCwg YmF0Y2hfc2tpcHBlZF9jb3VudCwgYmF0Y2hfbm9fZHJpZnQpOwogCi0JCS8qIENvbW1pdCB0aGlz IGJhdGNoLCBhbmQgcHJlcGFyZSBmb3IgbmV4dCBiYXRjaCAqLwotCQlDb21taXRUcmFuc2FjdGlv bkNvbW1hbmQoKTsKKwkJLyoKKwkJICogQ29tbWl0IHRoaXMgYmF0Y2ggaWYgc3RhcnRlZCBhIHRy YW5zYWN0aW9uLCBhbmQgcHJlcGFyZSBmb3IgbmV4dAorCQkgKiBiYXRjaC4KKwkJICovCisJCWlm IChzdGFydGVkX3R4KQorCQkJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiAKIAkJaWYgKGJh dGNoX21pc3NpbmdfY291bnQpCiAJCXsKQEAgLTczNCw3ICs3NDMsNyBAQCBjb3B5X3NlcXVlbmNl cyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIExpc3QgKnNlcWluZm9zLCBib29sIHVwZGF0ZV9sc24p CiAKIAkvKiBSZXBvcnQgbWlzbWF0Y2hlcywgcGVybWlzc2lvbiBpc3N1ZXMsIG9yIG1pc3Npbmcg c2VxdWVuY2VzICovCiAJcmVwb3J0X3NlcXVlbmNlX2Vycm9ycyhtaXNtYXRjaGVkX3NlcXNfaWR4 LCBpbnN1ZmZwZXJtX3NlcXNfaWR4LAotCQkJCQkJICAgbWlzc2luZ19zZXFzX2lkeCwgc2VxaW5m b3MpOworCQkJCQkJICAgbWlzc2luZ19zZXFzX2lkeCwgc2VxaW5mb3MsIHN1Ym5hbWUpOwogCiAJ cmV0dXJuIHNlcXVlbmNlX2NvcGllZDsKIH0KQEAgLTc1MCwzNyArNzU5LDI4IEBAIGludmFsaWRh dGVfc3luY2luZ19zZXF1ZW5jZV9pbmZvcyhEYXR1bSBhcmcsIFN5c0NhY2hlSWRlbnRpZmllciBj YWNoZWlkLAogfQogCiAvKgotICogR2V0IHRoZSBsaXN0IG9mIHNlcXVlbmNlIGluZm9ybWF0aW9u IGZvciB0aGUgY3VycmVudCBzdWJzY3JpcHRpb24uCisgKiBHZXQgdGhlIGxpc3Qgb2Ygc2VxdWVu Y2UgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBzdWJzY3JpcHRpb24gZnJvbQorICogY2F0YWxv Zy4KICAqCi0gKiBSZXR1cm4gY2FjaGVkIHNlcXVlbmNlIHN0YXRlcyBpZiB2YWxpZDsgb3RoZXJ3 aXNlIGZldGNoZXMgdGhlbSBmcm9tIHRoZQotICogY2F0YWxvZywgY2FjaGVzIHRoZSByZXN1bHQs IGFuZCByZXR1cm4gaXQuCisgKiBBbGwgZW50cmllcyBpbiB0aGUgcmV0dXJuZWQgbGlzdCBhcmUg YWxsb2NhdGVkIGluIHRoZSBzcGVjaWZpZWQgbWVtb3J5CisgKiBjb250ZXh0LgogICovCiBzdGF0 aWMgTGlzdCAqCi1mZXRjaF9zZXF1ZW5jZV9pbmZvcyh2b2lkKQorZmV0Y2hfc2VxdWVuY2VzX2Zy b21fY2F0YWxvZyhPaWQgc3ViaWQsIE1lbW9yeUNvbnRleHQgY3R4KQogewogCVJlbGF0aW9uCXJl bDsKIAlIZWFwVHVwbGUJdHVwOwogCVNjYW5LZXlEYXRhIHNrZXlbMV07CiAJU3lzU2NhbkRlc2Mg c2NhbjsKLQlPaWQJCQlzdWJpZCA9IE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQ7Ci0JTGlzdAkg ICAqdG1wX3NlcWluZm9zID0gTklMOworCUxpc3QJICAgKnNlcWluZm9zID0gTklMOworCWJvb2wJ CXN0YXJ0ZWRfdHggPSBmYWxzZTsKIAotCWlmIChzZXF1ZW5jZV9pbmZvc192YWxpZCkKLQkJcmV0 dXJuIHNlcXVlbmNlX2luZm9zOwotCi0JLyogRnJlZSB0aGUgZXhpc3RpbmcgaW52YWxpZCBjYWNo ZSBlbnRyaWVzICovCi0JZm9yZWFjaF9wdHIoTG9naWNhbFJlcFNlcXVlbmNlSW5mbywgc2VxaW5m bywgc2VxdWVuY2VfaW5mb3MpCisJaWYgKCFJc1RyYW5zYWN0aW9uU3RhdGUoKSkKIAl7Ci0JCXBm cmVlKHNlcWluZm8tPm5zcG5hbWUpOwotCQlwZnJlZShzZXFpbmZvLT5zZXFuYW1lKTsKLQkJcGZy ZWUoc2VxaW5mbyk7CisJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJCXN0YXJ0ZWRfdHgg PSB0cnVlOwogCX0KIAotCWxpc3RfZnJlZShzZXF1ZW5jZV9pbmZvcyk7Ci0Jc2VxdWVuY2VfaW5m b3MgPSBOSUw7Ci0KLQlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOwotCiAJcmVsID0gdGFibGVf b3BlbihTdWJzY3JpcHRpb25SZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCiAJLyog U2NhbiBmb3IgYWxsIHNlcXVlbmNlcyBiZWxvbmdpbmcgdG8gdGhpcyBzdWJzY3JpcHRpb24gKi8K QEAgLTgyMSwxNCArODIxLDE0IEBAIGZldGNoX3NlcXVlbmNlX2luZm9zKHZvaWQpCiAKIAkJQXNz ZXJ0KHJlbHN0YXRlID09IFNVQlJFTF9TVEFURV9JTklUIHx8IHJlbHN0YXRlID09IFNVQlJFTF9T VEFURV9SRUFEWSk7CiAKLQkJLyogQ2FjaGUgdGhlIGluZm9ybWF0aW9uIGluIGEgcGVybWFuZW50 IG1lbW9yeSBjb250ZXh0ICovCi0JCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNo ZU1lbW9yeUNvbnRleHQpOworCQkvKiBDYWNoZSB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGdpdmVu IG1lbW9yeSBjb250ZXh0ICovCisJCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhjdHgp OwogCQlzZXEgPSBwYWxsb2MwX29iamVjdChMb2dpY2FsUmVwU2VxdWVuY2VJbmZvKTsKIAkJc2Vx LT5sb2NhbHJlbGlkID0gc3VicmVsLT5zcnJlbGlkOwogCQlzZXEtPm5zcG5hbWUgPSBnZXRfbmFt ZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2Uoc2VxdWVuY2VfcmVsKSk7CiAJCXNlcS0+ c2VxbmFtZSA9IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoc2VxdWVuY2VfcmVsKSk7 CiAJCXNlcS0+cmVsc3RhdGUgPSByZWxzdGF0ZTsKLQkJdG1wX3NlcWluZm9zID0gbGFwcGVuZCh0 bXBfc2VxaW5mb3MsIHNlcSk7CisJCXNlcWluZm9zID0gbGFwcGVuZChzZXFpbmZvcywgc2VxKTsK IAkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CiAKIAkJdGFibGVfY2xvc2Uoc2VxdWVu Y2VfcmVsLCBOb0xvY2spOwpAQCAtODM4LDEwICs4MzgsMzggQEAgZmV0Y2hfc2VxdWVuY2VfaW5m b3Modm9pZCkKIAlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOwogCXRhYmxlX2Nsb3NlKHJlbCwgQWNj ZXNzU2hhcmVMb2NrKTsKIAotCXNlcXVlbmNlX2luZm9zID0gdG1wX3NlcWluZm9zOwotCXNlcXVl bmNlX2luZm9zX3ZhbGlkID0gdHJ1ZTsKKwlpZiAoc3RhcnRlZF90eCkKKwkJQ29tbWl0VHJhbnNh Y3Rpb25Db21tYW5kKCk7CiAKLQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwlyZXR1cm4g c2VxaW5mb3M7Cit9CisKKy8qCisgKiBHZXQgdGhlIGxpc3Qgb2Ygc2VxdWVuY2UgaW5mb3JtYXRp b24gZm9yIHRoZSBjdXJyZW50IHN1YnNjcmlwdGlvbi4KKyAqCisgKiBSZXR1cm4gY2FjaGVkIHNl cXVlbmNlIHN0YXRlcyBpZiB2YWxpZDsgb3RoZXJ3aXNlIGZldGNoZXMgdGhlbSBmcm9tIHRoZQor ICogY2F0YWxvZywgY2FjaGVzIHRoZSByZXN1bHQsIGFuZCByZXR1cm4gaXQuCisgKi8KK3N0YXRp YyBMaXN0ICoKK2ZldGNoX3NlcXVlbmNlX2luZm9zKHZvaWQpCit7CisJaWYgKHNlcXVlbmNlX2lu Zm9zX3ZhbGlkKQorCQlyZXR1cm4gc2VxdWVuY2VfaW5mb3M7CisKKwkvKiBGcmVlIHRoZSBleGlz dGluZyBpbnZhbGlkIGNhY2hlIGVudHJpZXMgKi8KKwlmb3JlYWNoX3B0cihMb2dpY2FsUmVwU2Vx dWVuY2VJbmZvLCBzZXFpbmZvLCBzZXF1ZW5jZV9pbmZvcykKKwl7CisJCXBmcmVlKHNlcWluZm8t Pm5zcG5hbWUpOworCQlwZnJlZShzZXFpbmZvLT5zZXFuYW1lKTsKKwkJcGZyZWUoc2VxaW5mbyk7 CisJfQorCisJbGlzdF9mcmVlKHNlcXVlbmNlX2luZm9zKTsKKwlzZXF1ZW5jZV9pbmZvcyA9IE5J TDsKKworCXNlcXVlbmNlX2luZm9zID0gZmV0Y2hfc2VxdWVuY2VzX2Zyb21fY2F0YWxvZyhNeVN1 YnNjcmlwdGlvbi0+b2lkLAorCQkJCQkJCQkJCQkJICBDYWNoZU1lbW9yeUNvbnRleHQpOworCXNl cXVlbmNlX2luZm9zX3ZhbGlkID0gdHJ1ZTsKIAogCXJldHVybiBzZXF1ZW5jZV9pbmZvczsKIH0K QEAgLTk0Niw2ICs5NzQsOSBAQCBzdGFydF9zZXF1ZW5jZV9zeW5jKHZvaWQpCiAJCQlzZXFpbmZv cyA9IGZldGNoX3NlcXVlbmNlX2luZm9zKCk7CiAKIAkJCXNlcXVlbmNlX2NvcGllZCA9IGNvcHlf c2VxdWVuY2VzKExvZ1JlcFdvcmtlcldhbFJjdkNvbm4sIHNlcWluZm9zLAorCQkJCQkJCQkJCQkg TXlTdWJzY3JpcHRpb24tPm9pZCwKKwkJCQkJCQkJCQkJIE15U3Vic2NyaXB0aW9uLT5uYW1lLAor CQkJCQkJCQkJCQkgTXlTdWJzY3JpcHRpb24tPnJ1bmFzb3duZXIsCiAJCQkJCQkJCQkJCSB1cGRh dGVfbHNuKTsKIAogCQkJTWVtb3J5Q29udGV4dFJlc2V0KFNlcXVlbmNlU3luY0NvbnRleHQpOwpA QCAtMTAxNSwzICsxMDQ2LDQwIEBAIFNlcXVlbmNlU3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9h cmcpCiAKIAlGaW5pc2hTeW5jV29ya2VyKCk7CiB9CisKKy8qCisgKiBXcmFwcGVyIGZvciBMb2dp Y2FsUmVwU3luY1NlcXVlbmNlcyB0byBzeW5jaHJvbml6ZSBhbGwgc2VxdWVuY2VzIG9mIGEKKyAq IHN1YnNjcmlwdGlvbiBmcm9tIG91dHNpZGUgdGhlIHNlcXVlbmNlc3luYyB3b3JrZXIuCisgKi8K K3ZvaWQKK0FsdGVyU3ViU3luY1NlcXVlbmNlcyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIE9pZCBz dWJpZCwgY2hhciAqc3VibmFtZSwKKwkJCQkJICBib29sIHJ1bmFzb3duZXIpCit7CisJTGlzdCAq c2VxaW5mb3M7CisKKwlBc3NlcnQoIVNlcXVlbmNlU3luY0NvbnRleHQpOworCisJLyoKKwkgKiBG ZXRjaCBzZXF1ZW5jZXMgZGlyZWN0bHkgZnJvbSB0aGUgY2F0YWxvZyByYXRoZXIgdGhhbiB1c2lu ZyB0aGUKKwkgKiBzZXF1ZW5jZSBjYWNoZSwgd2hpY2ggaXMgbWFpbnRhaW5lZCBvbmx5IGZvciB0 aGUgc2VxdWVuY2Ugc3luYworCSAqIHdvcmtlci4KKwkgKi8KKwlzZXFpbmZvcyA9IGZldGNoX3Nl cXVlbmNlc19mcm9tX2NhdGFsb2coc3ViaWQsIEN1cnJlbnRNZW1vcnlDb250ZXh0KTsKKworCVBH X1RSWSgpOworCXsKKwkJLyoKKwkJICogVXNlIHRoZSBjdXJyZW50IG1lbW9yeSBjb250ZXh0IGZv ciBzeW5jaHJvbml6YXRpb24uIFNpbmNlIHRoaXMgc2hvdWxkCisJCSAqIGJlIHNob3J0LWxpdmVk IGNvbW1hbmQgY29udGV4dCB0aGF0IHdpbGwgYmUgY2xlYW5lZCB1cCBhdXRvbWF0aWNhbGx5LAor CQkgKiB3ZSBjYW4gc2ltcGx5IGFzc2lnbiBpdCBhcyB0aGUgc3luY2hyb25pemF0aW9uIGNvbnRl eHQuCisJCSAqLworCQlTZXF1ZW5jZVN5bmNDb250ZXh0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7 CisKKwkJKHZvaWQpIGNvcHlfc2VxdWVuY2VzKGNvbm4sIHNlcWluZm9zLCBzdWJpZCwgc3VibmFt ZSwgcnVuYXNvd25lciwgdHJ1ZSk7CisJfQorCVBHX0ZJTkFMTFkoKTsKKwl7CisJCVNlcXVlbmNl U3luY0NvbnRleHQgPSBOVUxMOworCX0KKwlQR19FTkRfVFJZKCk7Cit9CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmggYi9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgKaW5kZXggN2Q3NDhhMjhkYTguLjczYWZkNzg1M2QwIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgKKysrIGIv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oCkBAIC0xNCw2ICsxNCw4IEBA CiAKICNpbmNsdWRlIDxzaWduYWwuaD4KIAorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyLmgiCisKIGV4dGVybiBQR0RMTElNUE9SVCB2b2xhdGlsZSBzaWdfYXRvbWljX3QgUGFyYWxs ZWxBcHBseU1lc3NhZ2VQZW5kaW5nOwogCiBleHRlcm4gdm9pZCBBcHBseVdvcmtlck1haW4oRGF0 dW0gbWFpbl9hcmcpOwpAQCAtMzEsNCArMzMsNyBAQCBleHRlcm4gdm9pZCBMb2dpY2FsUmVwV29y a2Vyc1dha2V1cEF0Q29tbWl0KE9pZCBzdWJpZCk7CiAKIGV4dGVybiB2b2lkIEF0RU9YYWN0X0xv Z2ljYWxSZXBXb3JrZXJzKGJvb2wgaXNDb21taXQpOwogCitleHRlcm4gdm9pZCBBbHRlclN1YlN5 bmNTZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBPaWQgc3ViaWQsCisJCQkJCQkJCSAg Y2hhciAqc3VibmFtZSwgYm9vbCBydW5hc293bmVyKTsKKwogI2VuZGlmCQkJCQkJCS8qIExPR0lD QUxXT1JLRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3Nl cXVlbmNlcy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9zZXF1ZW5jZXMucGwKaW5k ZXggYWYxOTA3MTNiMmIuLjhkMjVhYzQwY2UwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzZfc2VxdWVuY2VzLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz Nl9zZXF1ZW5jZXMucGwKQEAgLTE3Niw0ICsxNzYsNTMgQEAgJG5vZGVfc3Vic2NyaWJlci0+d2Fp dF9mb3JfbG9nKAogCXFyL1dBUk5JTkc6ICggW0EtWjAtOV0rOik/IG1pc3Npbmcgc2VxdWVuY2Ug b24gcHVibGlzaGVyIFwoInB1YmxpYy5yZWdyZXNzX3M0IlwpLywKIAkkbG9nX29mZnNldCk7CiAK KyMjIyMjIyMjIyMKKyMgQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFNFUVVFTkNFUyBz eW5jaHJvbml6ZXMgc2VxdWVuY2VzIG9ubGluZSwKKyMgZWxpbWluYXRpbmcgdGhlIG5lZWQgdG8g bGF1bmNoIGEgc2VxdWVuY2VzeW5jIHdvcmtlci4KKyMjIyMjIyMjIyMKKworIyBSZWR1Y2UgbWF4 X2xvZ2ljYWxfcmVwbGljYXRpb25fd29ya2VycyB0byBkaXNhbGxvdyBzZXF1ZW5jZSB3b3JrZXIg ZnJvbSBydW5uaW5nCiskbm9kZV9zdWJzY3JpYmVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5j b25mJywKKwlxcShtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzID0gMCkpOworJG5vZGVf c3Vic2NyaWJlci0+cmVzdGFydDsKKworIyBWZXJpZnkgdGhlcmUgaXMgbm8gbG9naWNhbCByZXBs aWNhdGlvbiBhcHBseSB3b3JrZXIgcnVubmluZworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zdGF0 X2FjdGl2aXR5IFdIRVJFIGJhY2tlbmRfdHlwZSA9ICdsb2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5 IHdvcmtlciciKTsKKworaXMoJHJlc3VsdCwgJzAnLCAnbm8gbG9naWNhbCByZXBsaWNhdGlvbiB3 b3JrZXIgaXMgcnVubmluZycpOworCisjIEluY3JlbWVudCBzZXF1ZW5jZSBvbiBwdWJsaXNoZXIK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXEoU0VMRUNUIG5leHR2 YWwoJ3JlZ3Jlc3NfczEnKTspKTsKKworIyBUaGUgY29tbWFuZCBzaG91bGQgZmFpbCBkdWUgdG8g bWlzc2luZyBzZXF1ZW5jZSAoJ3JlZ3Jlc3NfczQnKQorbXkgKCRjbWRyZXQsICRzdGRvdXQsICRz dGRlcnIpID0gJG5vZGVfc3Vic2NyaWJlci0+cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19zZXFfc3ViIFJFRlJFU0ggU0VRVUVOQ0VTOyIpOworCitsaWtlKAor CSRzdGRlcnIsCisJcXIvV0FSTklORzogIG1pc3Npbmcgc2VxdWVuY2Ugb24gcHVibGlzaGVyIFwo InB1YmxpYy5yZWdyZXNzX3M0IlwpLywKKwkib3V0cHV0IHRoZSB3YW5yaW5nIGZvciB0aGUgbWlz c2luZyBzZXF1ZW5jZSByZWdyZXNzX3M0Iik7CisKK2xpa2UoCisJJHN0ZGVyciwKKwlxci9FUlJP UjogIGxvZ2ljYWwgcmVwbGljYXRpb24gc2VxdWVuY2Ugc3luY2hyb25pemF0aW9uIGZhaWxlZCBm b3Igc3Vic2NyaXB0aW9uIFwicmVncmVzc19zZXFfc3ViXCIvLAorCSJ0aGUgY29tbWFuZCBmYWls ZWQgZHVlIHRvIHRoZSBtaXNzaW5nIHNlcXVlbmNlIHJlZ3Jlc3NfczQiKTsKKworIyBSZWZyZXNo IHRoZSBwdWJsaWNhdGlvbiB0byByZW1vdmUgdGhlIG1pc3Npbmcgc2VxdWVuY2UKKyRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc19zZXFfc3ViIFJFRlJFU0ggUFVCTElDQVRJT047Iik7CisKKyMgU3luYyB0aGUgc2VxdWVu Y2UgcmVncmVzc19zMQorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3NlcV9zdWIgUkVGUkVTSCBTRVFVRU5DRVM7Iik7 CisKKyMgR2V0IHRoZSBjdXJyZW50IHNlcXVlbmNlIHZhbHVlIG9uIHN1YnNjcmliZXIKKyRyZXN1 bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxcShTRUxFQ1Qg bGFzdF92YWx1ZSBGUk9NIHJlZ3Jlc3NfczE7KSk7CisKK2lzKCRyZXN1bHQsICcyMDEnLCAnc2Vx dWVuY2UgcmVncmVzc19zMSBpcyBzeW5jZWQgbm93Jyk7CisKIGRvbmVfdGVzdGluZygpOwotLSAK Mi41My4wLndpbmRvd3MuMgoK --_004_TY4PR01MB169072D89B6A978E60388B87A9445ATY4PR01MB16907jp_ Content-Type: application/octet-stream; name="v12-0001-Support-automatic-sequence-replication.patch" Content-Description: v12-0001-Support-automatic-sequence-replication.patch Content-Disposition: attachment; filename="v12-0001-Support-automatic-sequence-replication.patch"; size=47465; creation-date="Fri, 13 Mar 2026 07:10:01 GMT"; modification-date="Fri, 13 Mar 2026 07:13:47 GMT" Content-Transfer-Encoding: base64 RnJvbSBjZTQ3MzNhYjRmM2VkOTYwODEyOTA2YTM0NTgwNzY1MGNiODQ4NWIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpE YXRlOiBGcmksIDEzIE1hciAyMDI2IDEzOjI4OjI3ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MTIg MS8zXSBTdXBwb3J0IGF1dG9tYXRpYyBzZXF1ZW5jZSByZXBsaWNhdGlvbi4KCkN1cnJlbnRseSwg c2VxdWVuY2UgdmFsdWVzIGFyZSBzeW5jaHJvbml6ZWQgZnJvbSBwdWJsaXNoZXIgdG8gc3Vic2Ny aWJlciBvbmx5CndoZW4gdGhlIHVzZXIgbWFudWFsbHkgcnVucyBBTFRFUiBTVUJTQ1JJUFRJT04g Li4uIFJFRlJFU0ggUFVCTElDQVRJT04gKHdoaWNoCmFmZmVjdHMgb25seSBuZXdseSBzdWJzY3Jp YmVkIHNlcXVlbmNlcykgb3IgUkVGUkVTSCBTRVFVRU5DRVMuIFRoZSBzZXF1ZW5jZSBzeW5jCndv cmtlciBleGl0cyBpbW1lZGlhdGVseSBhZnRlciBjb21wbGV0aW5nIGVhY2ggc3luY2hyb25pemF0 aW9uIHJvdW5kLgoKVGhlIHByaW1hcnkgdXNlIGNhc2UgZm9yIHNlcXVlbmNlIHJlcGxpY2F0aW9u IGlzIGR1cmluZyB1cGdyYWRlcywgd2hlcmUgaXQncwpyZWNvbW1lbmRlZCB0aGF0IHVzZXJzIGVu c3VyZSBzZXF1ZW5jZXMgYXJlIGluIHN5bmMgYnkgcnVubmluZyBSRUZSRVNIIFNFUVVFTkNFUwpi ZWZvcmUgZmluaXNoaW5nIHRoZSB1cGdyYWRlLiBIb3dldmVyLCB0aGlzIGNvbW1hbmQgY2FuIGJl IHNsb3cgd2hlbgpzeW5jaHJvbml6aW5nIGEgbGFyZ2UgbnVtYmVyIG9mIHNlcXVlbmNlcywgcG90 ZW50aWFsbHkgaW5jcmVhc2luZyBkb3dudGltZS4KClRvIGFkZHJlc3MgdGhpcywgdGhpcyBjb21t aXQgbWFrZXMgdGhlIHNlcXVlbmNlIHN5bmMgd29ya2VyIGxvbmctbGl2ZWQsCmNvbnRpbnVvdXNs eSBtb25pdG9yaW5nIHNlcXVlbmNlcyBhbmQgcmVzeW5jaHJvbml6aW5nIHRoZW0gd2hlbiBkcmlm dCBpcwpkZXRlY3RlZC4gVGhlIHdvcmtlciB1c2VzIGFuIGFkYXB0aXZlIHNsZWVwIGludGVydmFs OiBpdCBzdGFydHMgYXQgMiBzZWNvbmRzLApkb3VibGVzIHVwIHRvIGEgbWF4aW11bSBvZiAzMCBz ZWNvbmRzIHdoZW4gbm8gZHJpZnQgaXMgb2JzZXJ2ZWQsIGFuZCByZXNldHMgdG8KdGhlIG1pbmlt dW0gaW50ZXJ2YWwgb25jZSBkcmlmdCBpcyBmb3VuZC4KCldpdGggdGhpcyBjaGFuZ2UsIG1vc3Qg c2VxdWVuY2VzIGFyZSBzaWxlbnRseSBzeW5jaHJvbml6ZWQgaW4gdGhlIGJhY2tncm91bmQsCmVs aW1pbmF0aW5nIHRoZSBuZWVkIHRvIHJ1biBSRUZSRVNIIFNFUVVFTkNFUyBmb3IgdGhlIG1ham9y aXR5IG9mIGNhc2VzLgoKSG93ZXZlciwgZnJlcXVlbnRseSB1cGRhdGVkIHNlcXVlbmNlcyBtYXkg c3RpbGwgbGFnIGJlaGluZCwgcmVxdWlyaW5nIGEgZmluYWwKUkVGUkVTSCBTRVFVRU5DRVMgYmVm b3JlIHVwZ3JhZGUgY29tcGxldGlvbi4gVXNlcnMgY2FuIG1vbml0b3IgcHJvZ3Jlc3MgYnkKY2hl Y2tpbmcgd2hldGhlciBzZXF1ZW5jZSBzdGF0ZXMgdHJhbnNpdGlvbiBmcm9tIElOSVQgdG8gUkVB RFkgaW4KcGdfc3Vic2NyaXB0aW9uX3JlbC4KClRoZSBSRUZSRVNIIFNFUVVFTkNFUyBjb21tYW5k IGlzIHJldGFpbmVkIGZvciB0aGlzIGZpbmFsIHN5bmNocm9uaXphdGlvbiBzdGVwLAp0aG91Z2gg aXQgY3VycmVudGx5IHVwZGF0ZXMgYWxsIHNlcXVlbmNlIHN0YXRlcyB0byBJTklULCB3aGljaCBo YXMgcm9vbSBmb3IKaW1wcm92ZW1lbnQuIEEgZnV0dXJlIHBhdGNoIHdpbGwgZW5oYW5jZSB0aGlz IGNvbW1hbmQgdG8gc3luY2hyb25pemUgc2VxdWVuY2VzCmRpcmVjdGx5IHdpdGhvdXQgbGF1bmNo aW5nIGEgd29ya2VyLCByZWR1Y2luZyBjYXRhbG9nIG92ZXJoZWFkLgotLS0KIGRvYy9zcmMvc2dt bC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgICAgICAgICB8ICAzOSArLQogZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgICA1IC0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlcXVlbmNlLmMgICAgICAgICAgICAgICB8ICA0MSArKwogLi4uL3JlcGxpY2F0aW9u L2xvZ2ljYWwvc2VxdWVuY2VzeW5jLmMgICAgICAgIHwgNDI0ICsrKysrKysrKysrKystLS0tLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zeW5jdXRpbHMuYyAgIHwgIDQ2ICstCiBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgMTEgKwogLi4u L3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0ICAgICAgIHwgICAxICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5oICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmggICAgIHwgICAyICstCiBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMjZfc3RhdHMucGwgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM2X3NlcXVlbmNlcy5wbCAgICAgIHwgIDgxICstLS0KIDEyIGZpbGVzIGNo YW5nZWQsIDQzNyBpbnNlcnRpb25zKCspLCAyMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dp Y2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggNzJjOGQzZDU5YmQuLjM4NjVmNjE3ODE2IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTE3OTEsOCArMTc5MSw5IEBAIFB1 YmxpY2F0aW9uczoKIAogICA8cGFyYT4KICAgIEEgPGZpcnN0dGVybT5zZXF1ZW5jZSBzeW5jaHJv bml6YXRpb24gd29ya2VyPC9maXJzdHRlcm0+IHdpbGwgYmUgc3RhcnRlZAotICAgYWZ0ZXIgZXhl Y3V0aW5nIGFueSBvZiB0aGUgYWJvdmUgc3Vic2NyaWJlciBjb21tYW5kcywgYW5kIHdpbGwgZXhp dCBvbmNlIHRoZQotICAgc2VxdWVuY2VzIGFyZSBzeW5jaHJvbml6ZWQuCisgICBhZnRlciBleGVj dXRpbmcgYW55IG9mIHRoZSBhYm92ZSBzdWJzY3JpYmVyIGNvbW1hbmRzLiBUaGUgd29ya2VyIHdp bGwKKyAgIHJlbWFpbiBydW5uaW5nIGZvciB0aGUgbGlmZSBvZiB0aGUgc3Vic2NyaXB0aW9uLCBw ZXJpb2RpY2FsbHkKKyAgIHN5bmNocm9uaXppbmcgYWxsIHB1Ymxpc2hlZCBzZXF1ZW5jZXMuCiAg IDwvcGFyYT4KICAgPHBhcmE+CiAgICBUaGUgYWJpbGl0eSB0byBsYXVuY2ggYSBzZXF1ZW5jZSBz eW5jaHJvbml6YXRpb24gd29ya2VyIGlzIGxpbWl0ZWQgYnkgdGhlCkBAIC0xODIxLDE4ICsxODIy LDI2IEBAIFB1YmxpY2F0aW9uczoKICAgPHNlY3QyIGlkPSJzZXF1ZW5jZXMtb3V0LW9mLXN5bmMi PgogICAgPHRpdGxlPlJlZnJlc2hpbmcgT3V0LW9mLVN5bmMgU2VxdWVuY2VzPC90aXRsZT4KICAg IDxwYXJhPgotICAgIFN1YnNjcmliZXIgc2VxdWVuY2UgdmFsdWVzIHdpbGwgYmVjb21lIG91dCBv ZiBzeW5jIGFzIHRoZSBwdWJsaXNoZXIKLSAgICBhZHZhbmNlcyB0aGVtLgorICAgIFN1YnNjcmli ZXIgc2VxdWVuY2UgdmFsdWVzIGNhbiBiZWNvbWUgb3V0IG9mIHN5bmMgYXMgdGhlIHB1Ymxpc2hl ciBhZHZhbmNlcworICAgIHRoZW0gYW5kIHRoZSBzZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24gd29y a2VyIGhhcyBub3QgeWV0IGNhdWdodCB1cC4KICAgIDwvcGFyYT4KICAgIDxwYXJhPgogICAgIFRv IGRldGVjdCB0aGlzLCBjb21wYXJlIHRoZQogICAgIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGct c3Vic2NyaXB0aW9uLXJlbCI+cGdfc3Vic2NyaXB0aW9uX3JlbDwvbGluaz4uPHN0cnVjdGZpZWxk PnNyc3VibHNuPC9zdHJ1Y3RmaWVsZD4KICAgICBvbiB0aGUgc3Vic2NyaWJlciB3aXRoIHRoZSA8 c3RydWN0ZmllbGQ+cGFnZV9sc248L3N0cnVjdGZpZWxkPiBvYnRhaW5lZAogICAgIGZyb20gdGhl IDxsaW5rIGxpbmtlbmQ9ImZ1bmMtcGctZ2V0LXNlcXVlbmNlLWRhdGEiPjxmdW5jdGlvbj5wZ19n ZXRfc2VxdWVuY2VfZGF0YTwvZnVuY3Rpb24+PC9saW5rPgotICAgIGZ1bmN0aW9uIGZvciB0aGUg c2VxdWVuY2Ugb24gdGhlIHB1Ymxpc2hlci4gVGhlbiBydW4KKyAgICBmdW5jdGlvbiBmb3IgdGhl IHNlcXVlbmNlIG9uIHRoZSBwdWJsaXNoZXIuIElmIGRyaWZ0IGlzIGRldGVjdGVkLCB0aGUgdXNl cgorICAgIGNhbiB3YWl0IGZvciB0aGUgc2VxdWVuY2Ugc3luY2hyb25pemF0aW9uIHdvcmtlciB0 byBjYXRjaCB1cCAoYnkKKyAgICBwZXJpb2RpY2FsbHkgY2hlY2tpbmcgd2hldGhlciB0aGUgTFNO cyBtYXRjaCkuCisgICA8L3BhcmE+CisgICA8cGFyYT4KKyAgICBOb3RlIHRoYXQgdGhlIHNlcXVl bmNlIHN5bmNocm9uaXphdGlvbiB3b3JrZXIgdXBkYXRlcworICAgIDxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctc3Vic2NyaXB0aW9uLXJlbCI+cGdfc3Vic2NyaXB0aW9uX3JlbDwvbGluaz4uPHN0 cnVjdGZpZWxkPnNyc3VibHNuPC9zdHJ1Y3RmaWVsZD4KKyAgICBwZXJpb2RpY2FsbHkuIFRvIHJl ZHVjZSB0aGUgZGVsYXkgYW5kIGZvcmNlIGFuIGltbWVkaWF0ZSB1cGRhdGUsIGV4ZWN1dGUgdGhl CiAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1yZWZyZXNo LXNlcXVlbmNlcyI+Ci0gICAgPGNvbW1hbmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNI IFNFUVVFTkNFUzwvY29tbWFuZD48L2xpbms+IHRvCi0gICAgcmUtc3luY2hyb25pemUgaWYgbmVj ZXNzYXJ5LgorICAgIDxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBTRVFV RU5DRVM8L2NvbW1hbmQ+PC9saW5rPiBjb21tYW5kLAorICAgIHdoaWNoIHVwZGF0ZXMgdGhlIHBh Z2UgTFNOIGltbWVkaWF0ZWx5IGFmdGVyIHN5bmNocm9uaXppbmcgdGhlIHNlcXVlbmNlCisgICAg dmFsdWUuCiAgICA8L3BhcmE+CiAgICA8d2FybmluZz4KICAgICA8cGFyYT4KQEAgLTIzMzksMTUg KzIzNDgsMTMgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0 aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKIAogICAgPGxpc3RpdGVtPgogICAg IDxwYXJhPgotICAgICBJbmNyZW1lbnRhbCBzZXF1ZW5jZSBjaGFuZ2VzIGFyZSBub3QgcmVwbGlj YXRlZC4gIEFsdGhvdWdoIHRoZSBkYXRhIGluCi0gICAgIHNlcmlhbCBvciBpZGVudGl0eSBjb2x1 bW5zIGJhY2tlZCBieSBzZXF1ZW5jZXMgd2lsbCBiZSByZXBsaWNhdGVkIGFzIHBhcnQKLSAgICAg b2YgdGhlIHRhYmxlLCB0aGUgc2VxdWVuY2VzIHRoZW1zZWx2ZXMgZG8gbm90IHJlcGxpY2F0ZSBv bmdvaW5nIGNoYW5nZXMuCi0gICAgIE9uIHRoZSBzdWJzY3JpYmVyLCBhIHNlcXVlbmNlIHdpbGwg cmV0YWluIHRoZSBsYXN0IHZhbHVlIGl0IHN5bmNocm9uaXplZAotICAgICBmcm9tIHRoZSBwdWJs aXNoZXIuIElmIHRoZSBzdWJzY3JpYmVyIGlzIHVzZWQgYXMgYSByZWFkLW9ubHkgZGF0YWJhc2Us Ci0gICAgIHRoZW4gdGhpcyBzaG91bGQgdHlwaWNhbGx5IG5vdCBiZSBhIHByb2JsZW0uICBJZiwg aG93ZXZlciwgc29tZSBraW5kIG9mCi0gICAgIHN3aXRjaG92ZXIgb3IgZmFpbG92ZXIgdG8gdGhl IHN1YnNjcmliZXIgZGF0YWJhc2UgaXMgaW50ZW5kZWQsIHRoZW4gdGhlCi0gICAgIHNlcXVlbmNl cyB3b3VsZCBuZWVkIHRvIGJlIHVwZGF0ZWQgdG8gdGhlIGxhdGVzdCB2YWx1ZXMsIGVpdGhlciBi eQotICAgICBleGVjdXRpbmcgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBh cmFtcy1yZWZyZXNoLXNlcXVlbmNlcyI+CisgICAgIEluY3JlbWVudGFsIHNlcXVlbmNlIGNoYW5n ZXMgYXJlIGNvbnRpbnVvdXNseSByZXBsaWNhdGVkLiBJZiwgaG93ZXZlciwKKyAgICAgc29tZSBr aW5kIG9mIHN3aXRjaG92ZXIgb3IgZmFpbG92ZXIgdG8gdGhlIHN1YnNjcmliZXIgZGF0YWJhc2Ug aXMKKyAgICAgaW50ZW5kZWQsIHRoZW4gdGhlIHNlcXVlbmNlcyByZXBsaWNhdGlvbiBjb3VsZCBi ZSBsYWdnaW5nIGJlaGluZCBhbmQKKyAgICAgdGhlIHNlcXVlbmNlcyBvbiB0aGUgc3Vic2NyaWJl ciBzaG91bGQgYmUgY29tcGFyZWQgd2l0aCB0aGF0IG9mIHRoZQorICAgICBwdWJsaXNoZXIgdG8g bWFrZSBzdXJlIHRoYXQgdGhleSBhcmUgdXAgdG8gZGF0ZSwgaWYgbm90IHRoZXkKKyAgICAgbmVl ZCB0byBiZSB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgdmFsdWVzLCBlaXRoZXIgYnkgZXhlY3V0aW5n CisgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtcmVmcmVz aC1zZXF1ZW5jZXMiPgogICAgICA8Y29tbWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJF U0ggU0VRVUVOQ0VTPC9jb21tYW5kPjwvbGluaz4KICAgICAgb3IgYnkgY29weWluZyB0aGUgY3Vy cmVudCBkYXRhIGZyb20gdGhlIHB1Ymxpc2hlciAocGVyaGFwcyB1c2luZwogICAgICA8Y29tbWFu ZD5wZ19kdW1wPC9jb21tYW5kPikgb3IgYnkgZGV0ZXJtaW5pbmcgYSBzdWZmaWNpZW50bHkgaGln aCB2YWx1ZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24u c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggZjIx NWZiMGU1YTIuLmVlOTZlNDgyM2EzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0 aW9uLnNnbWwKQEAgLTIwMiwxMSArMjAyLDYgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAg ICAgICAgICBQcmV2aW91c2x5IHN1YnNjcmliZWQgdGFibGVzIGFyZSBub3QgY29waWVkLCBldmVu IGlmIGEgdGFibGUncyByb3cKICAgICAgICAgICBmaWx0ZXIgPGxpdGVyYWw+V0hFUkU8L2xpdGVy YWw+IGNsYXVzZSBoYXMgc2luY2UgYmVlbiBtb2RpZmllZC4KICAgICAgICAgIDwvcGFyYT4KLSAg ICAgICAgIDxwYXJhPgotICAgICAgICAgIFByZXZpb3VzbHkgc3Vic2NyaWJlZCBzZXF1ZW5jZXMg YXJlIG5vdCByZS1zeW5jaHJvbml6ZWQuIFRvIGRvIHRoYXQsCi0gICAgICAgICAgdXNlIDxsaW5r IGxpbmtlbmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtcmVmcmVzaC1zZXF1ZW5jZXMi PgotICAgICAgICAgIDxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBTRVFV RU5DRVM8L2NvbW1hbmQ+PC9saW5rPi4KLSAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDxwYXJh PgogICAgICAgICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJzZXF1ZW5jZS1kZWZpbml0aW9uLW1pc21h dGNoZXMiLz4gZm9yIHJlY29tbWVuZGF0aW9ucyBvbiBob3cKICAgICAgICAgICB0byBoYW5kbGUg YW55IHdhcm5pbmdzIGFib3V0IHNlcXVlbmNlIGRlZmluaXRpb24gZGlmZmVyZW5jZXMgYmV0d2Vl bgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVuY2UuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMKaW5kZXggZTFiODA4YmJiNjAuLjkyYWU1YWFiNDg4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMKQEAgLTkyOSw2ICs5MjksNDcgQEAgbGFzdHZhbChQR19G VU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCisvKgorICogUmVh ZCB0aGUgY3VycmVudCBzZXF1ZW5jZSB2YWx1ZXMgKGxhc3RfdmFsdWUgYW5kIGlzX2NhbGxlZCkK KyAqCisgKiBUaGlzIGlzIGEgcmVhZC1vbmx5IG9wZXJhdGlvbiB1c2VkIGJ5IGxvZ2ljYWwgcmVw bGljYXRpb24gc2VxdWVuY2UKKyAqIHN5bmNocm9uaXphdGlvbiB0byBkZXRlY3QgZHJpZnQuIFRo ZSBjYWxsZXIgbXVzdCBob2xkIGEgbG9jayBvbiB0aGUgc2VxdWVuY2UuCisgKgorICogUmV0dXJu IGZhbHNlIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZSBzdWZmaWNpZW50IHByaXZpbGVnZXMg dG8gYWNjZXNzIHRoZQorICogc2VxdWVuY2UsIHRydWUgb3RoZXJ3aXNlLgorICovCitib29sCitH ZXRTZXF1ZW5jZShSZWxhdGlvbiBzZXFyZWwsIGludDY0ICpsYXN0X3ZhbHVlLCBib29sICppc19j YWxsZWQpCit7CisJQnVmZmVyCQlidWY7CisJSGVhcFR1cGxlRGF0YSBzZXF0dXBsZTsKKwlGb3Jt X3BnX3NlcXVlbmNlX2RhdGEgc2VxOworCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChz ZXFyZWwpOworCisJLyogQ29uZmlybSB0aGF0IHRoZSByZWxhdGlvbiBpcyBhIHNlcXVlbmNlIGFu ZCBpcyBsb2NrZWQgKi8KKwlBc3NlcnQoc2VxcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lO RF9TRVFVRU5DRSk7CisJQXNzZXJ0KENoZWNrUmVsYXRpb25Mb2NrZWRCeU1lKHNlcXJlbCwgQWNj ZXNzU2hhcmVMb2NrLCB0cnVlKSk7CisKKwlpZiAocGdfY2xhc3NfYWNsY2hlY2socmVsaWQsIEdl dFVzZXJJZCgpLCBBQ0xfU0VMRUNUKSAhPSBBQ0xDSEVDS19PSykKKwl7CisJCSpsYXN0X3ZhbHVl ID0gMDsKKwkJKmlzX2NhbGxlZCA9IGZhbHNlOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyog UmVhZCB0aGUgc2VxdWVuY2UgdHVwbGUgKi8KKwlzZXEgPSByZWFkX3NlcV90dXBsZShzZXFyZWws ICZidWYsICZzZXF0dXBsZSk7CisKKwkvKiBFeHRyYWN0IHRoZSB2YWx1ZXMgKi8KKwkqbGFzdF92 YWx1ZSA9IHNlcS0+bGFzdF92YWx1ZTsKKwkqaXNfY2FsbGVkID0gc2VxLT5pc19jYWxsZWQ7CisK KwkvKiBSZWxlYXNlIGJ1ZmZlciAqLworCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVmKTsKKworCXJl dHVybiB0cnVlOworfQorCiAvKgogICogTWFpbiBpbnRlcm5hbCBwcm9jZWR1cmUgdGhhdCBoYW5k bGVzIDIgJiAzIGFyZyBmb3JtcyBvZiBTRVRWQUwuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvc2VxdWVuY2VzeW5jLmMKaW5kZXggOWM5MmZkZGQ2MjQuLmYwNGM1MGY2 Y2FlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NlcXVlbmNl c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2VxdWVuY2VzeW5j LmMKQEAgLTE5LDI1ICsxOSwzMiBAQAogICogQ1JFQVRFIFNVQlNDUklQVElPTgogICogQUxURVIg U1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJQ0FUSU9OCiAgKgotICogRXhlY3V0aW5nIHRo ZSBmb2xsb3dpbmcgY29tbWFuZCByZXNldHMgYWxsIHNlcXVlbmNlcyBpbiB0aGUgc3Vic2NyaXB0 aW9uIHRvCi0gKiBzdGF0ZSBJTklULCB0cmlnZ2VyaW5nIHJlLXN5bmNocm9uaXphdGlvbjoKLSAq IEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBTRVFVRU5DRVMKLSAqCi0gKiBUaGUgYXBw bHkgd29ya2VyIHBlcmlvZGljYWxseSBzY2FucyBwZ19zdWJzY3JpcHRpb25fcmVsIGZvciBzZXF1 ZW5jZXMgaW4KLSAqIElOSVQgc3RhdGUuIFdoZW4gc3VjaCBzZXF1ZW5jZXMgYXJlIGZvdW5kLCBp dCBzcGF3bnMgYSBzZXF1ZW5jZXN5bmMgd29ya2VyCi0gKiB0byBoYW5kbGUgc3luY2hyb25pemF0 aW9uLgotICoKLSAqIEEgc2luZ2xlIHNlcXVlbmNlc3luYyB3b3JrZXIgaXMgcmVzcG9uc2libGUg Zm9yIHN5bmNocm9uaXppbmcgYWxsIHNlcXVlbmNlcy4KLSAqIEl0IGJlZ2lucyBieSByZXRyaWV2 aW5nIHRoZSBsaXN0IG9mIHNlcXVlbmNlcyB0aGF0IGFyZSBmbGFnZ2VkIGZvcgotICogc3luY2hy b25pemF0aW9uLCBpLmUuLCB0aG9zZSBpbiB0aGUgSU5JVCBzdGF0ZS4gVGhlc2Ugc2VxdWVuY2Vz IGFyZSB0aGVuCi0gKiBwcm9jZXNzZWQgaW4gYmF0Y2hlcywgYWxsb3dpbmcgbXVsdGlwbGUgZW50 cmllcyB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aGluIGEKLSAqIHNpbmdsZSB0cmFuc2FjdGlvbi4g VGhlIHdvcmtlciBmZXRjaGVzIHRoZSBjdXJyZW50IHNlcXVlbmNlIHZhbHVlcyBhbmQgcGFnZQot ICogTFNOcyBmcm9tIHRoZSByZW1vdGUgcHVibGlzaGVyLCB1cGRhdGVzIHRoZSBjb3JyZXNwb25k aW5nIHNlcXVlbmNlcyBvbiB0aGUKLSAqIGxvY2FsIHN1YnNjcmliZXIsIGFuZCBmaW5hbGx5IG1h cmtzIGVhY2ggc2VxdWVuY2UgYXMgUkVBRFkgdXBvbiBzdWNjZXNzZnVsCisgKiBUaGUgYXBwbHkg d29ya2VyIHBlcmlvZGljYWxseSBzY2FucyBwZ19zdWJzY3JpcHRpb25fcmVsIGZvciBzZXF1ZW5j ZXMuCisgKiBXaGVuIHNlcXVlbmNlcyBhcmUgZm91bmQsIGl0IHNwYXducyBhIHNlcXVlbmNlc3lu YyB3b3JrZXIgdG8gaGFuZGxlCiAgKiBzeW5jaHJvbml6YXRpb24uCiAgKgorICogQSBzaW5nbGUg c2VxdWVuY2VzeW5jIHdvcmtlciBpcyByZXNwb25zaWJsZSBmb3Igc3luY2hyb25pemluZyBhbGwg c2VxdWVuY2VzCisgKiBmb3IgYSBzdWJzY3JpcHRpb24uIEl0IGJlZ2lucyBieSByZXRyaWV2aW5n IHRoZSBsaXN0IG9mIHNlcXVlbmNlcy4gVGhlc2UKKyAqIHNlcXVlbmNlcyBhcmUgdGhlbiBwcm9j ZXNzZWQgaW4gYmF0Y2hlcywgYWxsb3dpbmcgbXVsdGlwbGUgZW50cmllcyB0byBiZQorICogc3lu Y2hyb25pemVkIHdpdGhpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbi4gVGhlIHdvcmtlciBmZXRjaGVz IHRoZSBjdXJyZW50CisgKiBzZXF1ZW5jZSB2YWx1ZXMgYW5kIHBhZ2UgTFNOcyBmcm9tIHRoZSBy ZW1vdGUgcHVibGlzaGVyIGFuZCB1cGRhdGVzIHRoZQorICogY29ycmVzcG9uZGluZyBzZXF1ZW5j ZXMgb24gdGhlIGxvY2FsIHN1YnNjcmliZXIuIFNlcXVlbmNlcyBpbiB0aGUgSU5JVAorICogc3Rh dGUgYXJlIHVuY29uZGl0aW9uYWxseSB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgdmFsdWVzIGZyb20g dGhlIHB1Ymxpc2hlcgorICogYW5kIHRoZW4gbW92ZWQgdG8gdGhlIFJFQURZIHN0YXRlLiBGb3Ig c2VxdWVuY2VzIGFscmVhZHkgaW4gdGhlIFJFQURZCisgKiBzdGF0ZSwgdGhlIHdvcmtlciBjaGVj a3MgZm9yIGRyaWZ0IGFuZCB1cGRhdGVzIHRoZW0gb25seSB3aGVuIG5lZWRlZC4KKyAqCiAgKiBT ZXF1ZW5jZSBzdGF0ZSB0cmFuc2l0aW9ucyBmb2xsb3cgdGhpcyBwYXR0ZXJuOgotICogICBJTklU IC0+IFJFQURZCisKKyAqICAgICAgIChzeW5jaHJvbml6ZSkKKyAqICBJTklUIC0tLS0tLS0tLS0t LS0tPiBSRUFEWSAtPi0rCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICAgfCAoY2hl Y2stZHJpZnQvc3luY2hyb25pemUpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg fAorICogICAgICAgICAgICAgICAgICAgICAgICAgKy0tPC0tLSsKKyAqCisgKiBCZXR3ZWVuIGN5 Y2xlcywgdGhlIHdvcmtlciBzbGVlcHMgZm9yIFNFUVNZTkNfTUlOX1NMRUVQX01TLiBJZiBubyBk cmlmdCBpcworICogb2JzZXJ2ZWQgaW4gYW55IHNlcXVlbmNlLCB0aGUgc2xlZXAgaW50ZXJ2YWwg ZG91YmxlcyBhZnRlciBlYWNoIHdha2UgY3ljbGUKKyAqIHVwIHRvIFNFUVNZTkNfTUFYX1NMRUVQ X01TLiBXaGVuIGRyaWZ0IGlzIGRldGVjdGVkLCB0aGUgaW50ZXJ2YWwgcmVzZXRzIHRvCisgKiB0 aGUgbWluaW11bSB0byBlbnN1cmUgdGltZWx5IHVwZGF0ZXMuCiAgKgogICogVG8gYXZvaWQgY3Jl YXRpbmcgdG9vIG1hbnkgdHJhbnNhY3Rpb25zLCB1cCB0byBNQVhfU0VRVUVOQ0VTX1NZTkNfUEVS X0JBVENICiAgKiBzZXF1ZW5jZXMgYXJlIHN5bmNocm9uaXplZCBwZXIgdHJhbnNhY3Rpb24uIFRo ZSBsb2NrcyBvbiB0aGUgc2VxdWVuY2UKQEAgLTYwLDYgKzY3LDcgQEAKICNpbmNsdWRlICJwb3N0 bWFzdGVyL2ludGVycnVwdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIu aCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2xhdGNoLmgiCiAjaW5jbHVkZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVkZSAidXRpbHMv YnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgpAQCAtNzAsMzEgKzc4LDQy IEBACiAjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUu aCIKICNpbmNsdWRlICJ1dGlscy91c2VyY29udGV4dC5oIgorI2luY2x1ZGUgInV0aWxzL3dhaXRf ZXZlbnQuaCIKIAogI2RlZmluZSBSRU1PVEVfU0VRX0NPTF9DT1VOVCAxMAogCiB0eXBlZGVmIGVu dW0gQ29weVNlcVJlc3VsdAogewogCUNPUFlTRVFfU1VDQ0VTUywKKwlDT1BZU0VRX0FMTE9XRUQs CiAJQ09QWVNFUV9NSVNNQVRDSCwKIAlDT1BZU0VRX0lOU1VGRklDSUVOVF9QRVJNLAotCUNPUFlT RVFfU0tJUFBFRAorCUNPUFlTRVFfU0tJUFBFRCwKKwlDT1BZU0VRX05PX0RSSUZULAogfSBDb3B5 U2VxUmVzdWx0OwogCi1zdGF0aWMgTGlzdCAqc2VxaW5mb3MgPSBOSUw7CisvKiBTbGVlcCBpbnRl cnZhbHMgZm9yIHN5bmMgKi8KKyNkZWZpbmUgU0VRU1lOQ19NSU5fU0xFRVBfTVMgMjAwMAkvKiAy IHNlY29uZHMgKi8KKyNkZWZpbmUgU0VRU1lOQ19NQVhfU0xFRVBfTVMgMzAwMDAJLyogMzAgc2Vj b25kcyAqLworCitzdGF0aWMgTWVtb3J5Q29udGV4dCBTZXF1ZW5jZVN5bmNDb250ZXh0ID0gTlVM TDsKIAogLyoKLSAqIEFwcGx5IHdvcmtlciBkZXRlcm1pbmVzIGlmIHNlcXVlbmNlIHN5bmNocm9u aXphdGlvbiBpcyBuZWVkZWQuCisgKiBBcHBseSB3b3JrZXIgZGV0ZXJtaW5lcyB3aGV0aGVyIGEg c2VxdWVuY2Ugc3luYyB3b3JrZXIgaXMgbmVlZGVkLgogICoKICAqIFN0YXJ0IGEgc2VxdWVuY2Vz eW5jIHdvcmtlciBpZiBvbmUgaXMgbm90IGFscmVhZHkgcnVubmluZy4gVGhlIGFjdGl2ZQogICog c2VxdWVuY2VzeW5jIHdvcmtlciB3aWxsIGhhbmRsZSBhbGwgcGVuZGluZyBzZXF1ZW5jZSBzeW5j aHJvbml6YXRpb24uIElmIGFueQogICogc2VxdWVuY2VzIHJlbWFpbiB1bnN5bmNocm9uaXplZCBh ZnRlciBpdCBleGl0cywgYSBuZXcgd29ya2VyIGNhbiBiZSBzdGFydGVkCiAgKiBpbiB0aGUgbmV4 dCBpdGVyYXRpb24uCisgKgorICogVGhlIHBvaW50ZXIgdG8gdGhlIHNlcXVlbmNlc3luYyB3b3Jr ZXIgaXMgY2FjaGVkIHRvIGF2b2lkIHNjYW5uaW5nIHRoZQorICogd29ya2VycyBhcnJheSBlYWNo IHRpbWUgdmlhIGxvZ2ljYWxyZXBfd29ya2VyX2ZpbmQoKS4KICAqLwogdm9pZAotUHJvY2Vzc1Nl cXVlbmNlc0ZvclN5bmModm9pZCkKK01heWJlTGF1bmNoU2VxdWVuY2VTeW5jV29ya2VyKHZvaWQp CiB7Ci0JTG9naWNhbFJlcFdvcmtlciAqc2VxdWVuY2VzeW5jX3dvcmtlcjsKKwlzdGF0aWMgTG9n aWNhbFJlcFdvcmtlciAqc2VxdWVuY2VzeW5jX3dvcmtlciA9IE5VTEw7CisKIAlpbnQJCQluc3lu Y3dvcmtlcnM7CiAJYm9vbAkJaGFzX3BlbmRpbmdfc2VxdWVuY2VzOwogCWJvb2wJCXN0YXJ0ZWRf dHg7CkBAIC0xMTIsNiArMTMxLDE5IEBAIFByb2Nlc3NTZXF1ZW5jZXNGb3JTeW5jKHZvaWQpCiAK IAlMV0xvY2tBY3F1aXJlKExvZ2ljYWxSZXBXb3JrZXJMb2NrLCBMV19TSEFSRUQpOwogCisJLyoK KwkgKiBRdWljayBleGl0IGlmIHRoZSBzZXF1ZW5jZSBzeW5jIHdvcmtlciBmb3IgdGhlIGN1cnJl bnQgc3Vic2NyaXB0aW9uIGlzCisJICogYWxyZWFkeSBhbGl2ZS4KKwkgKi8KKwlpZiAoc2VxdWVu Y2VzeW5jX3dvcmtlciAmJgorCQlzZXF1ZW5jZXN5bmNfd29ya2VyLT5wcm9jICYmCisJCWlzU2Vx dWVuY2VTeW5jV29ya2VyKHNlcXVlbmNlc3luY193b3JrZXIpICYmCisJCXNlcXVlbmNlc3luY193 b3JrZXItPnN1YmlkID09IE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQpCisJeworCQlMV0xvY2tS ZWxlYXNlKExvZ2ljYWxSZXBXb3JrZXJMb2NrKTsKKwkJcmV0dXJuOworCX0KKwogCS8qIENoZWNr IGlmIHRoZXJlIGlzIGEgc2VxdWVuY2VzeW5jIHdvcmtlciBhbHJlYWR5IHJ1bm5pbmc/ICovCiAJ c2VxdWVuY2VzeW5jX3dvcmtlciA9IGxvZ2ljYWxyZXBfd29ya2VyX2ZpbmQoV09SS0VSVFlQRV9T RVFVRU5DRVNZTkMsCiAJCQkJCQkJCQkJCQkgTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwKQEAg LTE0NCw3ICsxNzYsNyBAQCBQcm9jZXNzU2VxdWVuY2VzRm9yU3luYyh2b2lkKQogICogZm9yIHRo ZSBnaXZlbiBsaXN0IG9mIHNlcXVlbmNlIGluZGV4ZXMuCiAgKi8KIHN0YXRpYyB2b2lkCi1nZXRf c2VxdWVuY2VzX3N0cmluZyhMaXN0ICpzZXFpbmRleGVzLCBTdHJpbmdJbmZvIGJ1ZikKK2dldF9z ZXF1ZW5jZXNfc3RyaW5nKExpc3QgKnNlcWluZGV4ZXMsIExpc3QgKnNlcWluZm9zLCBTdHJpbmdJ bmZvIGJ1ZikKIHsKIAlyZXNldFN0cmluZ0luZm8oYnVmKTsKIAlmb3JlYWNoX2ludChzZXFpZHgs IHNlcWluZGV4ZXMpCkBAIC0xNzEsNyArMjAzLDcgQEAgZ2V0X3NlcXVlbmNlc19zdHJpbmcoTGlz dCAqc2VxaW5kZXhlcywgU3RyaW5nSW5mbyBidWYpCiAgKi8KIHN0YXRpYyB2b2lkCiByZXBvcnRf c2VxdWVuY2VfZXJyb3JzKExpc3QgKm1pc21hdGNoZWRfc2Vxc19pZHgsIExpc3QgKmluc3VmZnBl cm1fc2Vxc19pZHgsCi0JCQkJCSAgIExpc3QgKm1pc3Npbmdfc2Vxc19pZHgpCisJCQkJCSAgIExp c3QgKm1pc3Npbmdfc2Vxc19pZHgsIExpc3QgKnNlcWluZm9zKQogewogCVN0cmluZ0luZm8Jc2Vx c3RyOwogCkBAIC0xODMsNyArMjE1LDcgQEAgcmVwb3J0X3NlcXVlbmNlX2Vycm9ycyhMaXN0ICpt aXNtYXRjaGVkX3NlcXNfaWR4LCBMaXN0ICppbnN1ZmZwZXJtX3NlcXNfaWR4LAogCiAJaWYgKG1p c21hdGNoZWRfc2Vxc19pZHgpCiAJewotCQlnZXRfc2VxdWVuY2VzX3N0cmluZyhtaXNtYXRjaGVk X3NlcXNfaWR4LCBzZXFzdHIpOworCQlnZXRfc2VxdWVuY2VzX3N0cmluZyhtaXNtYXRjaGVkX3Nl cXNfaWR4LCBzZXFpbmZvcywgc2Vxc3RyKTsKIAkJZXJlcG9ydChXQVJOSU5HLAogCQkJCWVycmNv ZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJZXJybXNn X3BsdXJhbCgibWlzbWF0Y2hlZCBvciByZW5hbWVkIHNlcXVlbmNlIG9uIHN1YnNjcmliZXIgKCVz KSIsCkBAIC0xOTQsNyArMjI2LDcgQEAgcmVwb3J0X3NlcXVlbmNlX2Vycm9ycyhMaXN0ICptaXNt YXRjaGVkX3NlcXNfaWR4LCBMaXN0ICppbnN1ZmZwZXJtX3NlcXNfaWR4LAogCiAJaWYgKGluc3Vm ZnBlcm1fc2Vxc19pZHgpCiAJewotCQlnZXRfc2VxdWVuY2VzX3N0cmluZyhpbnN1ZmZwZXJtX3Nl cXNfaWR4LCBzZXFzdHIpOworCQlnZXRfc2VxdWVuY2VzX3N0cmluZyhpbnN1ZmZwZXJtX3NlcXNf aWR4LCBzZXFpbmZvcywgc2Vxc3RyKTsKIAkJZXJlcG9ydChXQVJOSU5HLAogCQkJCWVycmNvZGUo RVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJZXJybXNnX3Bs dXJhbCgiaW5zdWZmaWNpZW50IHByaXZpbGVnZXMgb24gc2VxdWVuY2UgKCVzKSIsCkBAIC0yMDUs NyArMjM3LDcgQEAgcmVwb3J0X3NlcXVlbmNlX2Vycm9ycyhMaXN0ICptaXNtYXRjaGVkX3NlcXNf aWR4LCBMaXN0ICppbnN1ZmZwZXJtX3NlcXNfaWR4LAogCiAJaWYgKG1pc3Npbmdfc2Vxc19pZHgp CiAJewotCQlnZXRfc2VxdWVuY2VzX3N0cmluZyhtaXNzaW5nX3NlcXNfaWR4LCBzZXFzdHIpOwor CQlnZXRfc2VxdWVuY2VzX3N0cmluZyhtaXNzaW5nX3NlcXNfaWR4LCBzZXFpbmZvcywgc2Vxc3Ry KTsKIAkJZXJlcG9ydChXQVJOSU5HLAogCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lO X1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJZXJybXNnX3BsdXJhbCgibWlzc2luZyBzZXF1ZW5j ZSBvbiBwdWJsaXNoZXIgKCVzKSIsCkBAIC0yMjksNyArMjYxLDggQEAgcmVwb3J0X3NlcXVlbmNl X2Vycm9ycyhMaXN0ICptaXNtYXRjaGVkX3NlcXNfaWR4LCBMaXN0ICppbnN1ZmZwZXJtX3NlcXNf aWR4LAogICovCiBzdGF0aWMgQ29weVNlcVJlc3VsdAogZ2V0X2FuZF92YWxpZGF0ZV9zZXFfaW5m byhUdXBsZVRhYmxlU2xvdCAqc2xvdCwgUmVsYXRpb24gKnNlcXVlbmNlX3JlbCwKLQkJCQkJCSAg TG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqKnNlcWluZm8sIGludCAqc2VxaWR4KQorCQkJCQkJICBM b2dpY2FsUmVwU2VxdWVuY2VJbmZvICoqc2VxaW5mbywgaW50ICpzZXFpZHgsCisJCQkJCQkgIExp c3QgKnNlcWluZm9zKQogewogCWJvb2wJCWlzbnVsbDsKIAlpbnQJCQljb2wgPSAwOwpAQCAtMjQw LDcgKzI3Myw3IEBAIGdldF9hbmRfdmFsaWRhdGVfc2VxX2luZm8oVHVwbGVUYWJsZVNsb3QgKnNs b3QsIFJlbGF0aW9uICpzZXF1ZW5jZV9yZWwsCiAJaW50NjQJCXJlbW90ZV9taW47CiAJaW50NjQJ CXJlbW90ZV9tYXg7CiAJYm9vbAkJcmVtb3RlX2N5Y2xlOwotCUNvcHlTZXFSZXN1bHQgcmVzdWx0 ID0gQ09QWVNFUV9TVUNDRVNTOworCUNvcHlTZXFSZXN1bHQgcmVzdWx0ID0gQ09QWVNFUV9BTExP V0VEOwogCUhlYXBUdXBsZQl0dXA7CiAJRm9ybV9wZ19zZXF1ZW5jZSBsb2NhbF9zZXE7CiAJTG9n aWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mb19sb2NhbDsKQEAgLTMyNSwzMiArMzU4LDc3IEBA IGdldF9hbmRfdmFsaWRhdGVfc2VxX2luZm8oVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFJlbGF0aW9u ICpzZXF1ZW5jZV9yZWwsCiB9CiAKIC8qCi0gKiBBcHBseSByZW1vdGUgc2VxdWVuY2Ugc3RhdGUg dG8gbG9jYWwgc2VxdWVuY2UgYW5kIG1hcmsgaXQgYXMKLSAqIHN5bmNocm9uaXplZCAoUkVBRFkp LgorICogQ2hlY2sgd2hldGhlciB0aGUgdXNlciBoYXMgcmVxdWlyZWQgcHJpdmlsZWdlcyBvbiB0 aGUgc2VxdWVuY2UgYW5kCisgKiB3aGV0aGVyIHRoZSBzZXF1ZW5jZSBoYXMgZHJpZnRlZC4KICAq Lwogc3RhdGljIENvcHlTZXFSZXN1bHQKLWNvcHlfc2VxdWVuY2UoTG9naWNhbFJlcFNlcXVlbmNl SW5mbyAqc2VxaW5mbywgT2lkIHNlcW93bmVyKQorY2hlY2tfc2VxX3ByaXZpbGVnZXNfYW5kX2Ry aWZ0KExvZ2ljYWxSZXBTZXF1ZW5jZUluZm8gKnNlcWluZm8sCisJCQkJCQkJICAgUmVsYXRpb24g c2VxdWVuY2VfcmVsKQogewotCVVzZXJDb250ZXh0IHVjeHQ7CiAJQWNsUmVzdWx0CWFjbHJlc3Vs dDsKKwlPaWQJCQlzZXFvaWQgPSBzZXFpbmZvLT5sb2NhbHJlbGlkOworCisJLyogUGVyZm9ybSBk cmlmdCBjaGVjayBpZiBpdCdzIG5vdCB0aGUgaW5pdGlhbCBzeW5jICovCisJaWYgKHNlcWluZm8t PnJlbHN0YXRlID09IFNVQlJFTF9TVEFURV9SRUFEWSkKKwl7CisJCWludDY0CQlsb2NhbF9sYXN0 X3ZhbHVlOworCQlib29sCQlsb2NhbF9pc19jYWxsZWQ7CisKKwkJLyoKKwkJICogU2tpcCBzeW5j aHJvbml6YXRpb24gaWYgdGhlIGN1cnJlbnQgdXNlciBkb2VzIG5vdCBoYXZlIHN1ZmZpY2llbnQK KwkJICogcHJpdmlsZWdlcyB0byByZWFkIHRoZSBzZXF1ZW5jZSBkYXRhLgorCQkgKi8KKwkJaWYg KCFHZXRTZXF1ZW5jZShzZXF1ZW5jZV9yZWwsICZsb2NhbF9sYXN0X3ZhbHVlLCAmbG9jYWxfaXNf Y2FsbGVkKSkKKwkJCXJldHVybiBDT1BZU0VRX0lOU1VGRklDSUVOVF9QRVJNOworCisJCS8qCisJ CSAqIFNraXAgc3luY2hyb25pemF0aW9uIGlmIHRoZSBzZXF1ZW5jZSBoYXMgbm90IGRyaWZ0ZWQg ZnJvbSB0aGUKKwkJICogcHVibGlzaGVyJ3MgdmFsdWUuCisJCSAqLworCQlpZiAobG9jYWxfbGFz dF92YWx1ZSA9PSBzZXFpbmZvLT5sYXN0X3ZhbHVlICYmCisJCQlsb2NhbF9pc19jYWxsZWQgPT0g c2VxaW5mby0+aXNfY2FsbGVkKQorCQkJcmV0dXJuIENPUFlTRVFfTk9fRFJJRlQ7CisJfQorCisJ LyogVmVyaWZ5IHRoYXQgdGhlIGN1cnJlbnQgdXNlciBjYW4gdXBkYXRlIHRoZSBzZXF1ZW5jZSAq LworCWFjbHJlc3VsdCA9IHBnX2NsYXNzX2FjbGNoZWNrKHNlcW9pZCwgR2V0VXNlcklkKCksIEFD TF9VUERBVEUpOworCisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJcmV0dXJuIENP UFlTRVFfSU5TVUZGSUNJRU5UX1BFUk07CisKKwlyZXR1cm4gQ09QWVNFUV9BTExPV0VEOworfQor CisvKgorICogQXBwbHkgcmVtb3RlIHNlcXVlbmNlIHN0YXRlIHRvIGxvY2FsIHNlcXVlbmNlLiBG b3Igc2VxdWVuY2VzIGluIElOSVQgc3RhdGUsCisgKiBhbHdheXMgc3luY2hyb25pemUgYW5kIHRo ZW4gbW92ZSB0aGVtIHRvIFJFQURZIHN0YXRlIHVwb24gY29tcGxldGlvbi4gRm9yCisgKiBzZXF1 ZW5jZXMgYWxyZWFkeSBpbiBSRUFEWSBzdGF0ZSwgc3luY2hyb25pemUgb25seSBpZiBkcmlmdCBp cyBkZXRlY3RlZC4KKyAqLworc3RhdGljIENvcHlTZXFSZXN1bHQKK2NvcHlfc2VxdWVuY2UoTG9n aWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mbywgUmVsYXRpb24gc2VxdWVuY2VfcmVsLAorCQkJ ICBib29sIHVwZGF0ZV9sc24pCit7CisJVXNlckNvbnRleHQgdWN4dDsKIAlib29sCQlydW5fYXNf b3duZXIgPSBNeVN1YnNjcmlwdGlvbi0+cnVuYXNvd25lcjsKIAlPaWQJCQlzZXFvaWQgPSBzZXFp bmZvLT5sb2NhbHJlbGlkOworCUNvcHlTZXFSZXN1bHQgcmVzdWx0OworCWJvb2wJCW5lZWRfbHNu X3VwZGF0ZSA9IGZhbHNlOwogCiAJLyoKIAkgKiBJZiB0aGUgdXNlciBkaWQgbm90IG9wdCB0byBy dW4gYXMgdGhlIG93bmVyIG9mIHRoZSBzdWJzY3JpcHRpb24KIAkgKiAoJ3J1bl9hc19vd25lcicp LCB0aGVuIGNvcHkgdGhlIHNlcXVlbmNlIGFzIHRoZSBvd25lciBvZiB0aGUgc2VxdWVuY2UuCiAJ ICovCiAJaWYgKCFydW5fYXNfb3duZXIpCi0JCVN3aXRjaFRvVW50cnVzdGVkVXNlcihzZXFvd25l ciwgJnVjeHQpOworCQlTd2l0Y2hUb1VudHJ1c3RlZFVzZXIoc2VxdWVuY2VfcmVsLT5yZF9yZWwt PnJlbG93bmVyLCAmdWN4dCk7CiAKLQlhY2xyZXN1bHQgPSBwZ19jbGFzc19hY2xjaGVjayhzZXFv aWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlyZXN1bHQgPSBjaGVja19zZXFfcHJpdmls ZWdlc19hbmRfZHJpZnQoc2VxaW5mbywgc2VxdWVuY2VfcmVsKTsKIAotCWlmIChhY2xyZXN1bHQg IT0gQUNMQ0hFQ0tfT0spCisJaWYgKHJlc3VsdCAhPSBDT1BZU0VRX0FMTE9XRUQpCiAJewogCQlp ZiAoIXJ1bl9hc19vd25lcikKIAkJCVJlc3RvcmVVc2VyQ29udGV4dCgmdWN4dCk7CiAKLQkJcmV0 dXJuIENPUFlTRVFfSU5TVUZGSUNJRU5UX1BFUk07CisJCXJldHVybiByZXN1bHQ7CiAJfQogCiAJ LyoKQEAgLTM2NywyMCArNDQ1LDQ3IEBAIGNvcHlfc2VxdWVuY2UoTG9naWNhbFJlcFNlcXVlbmNl SW5mbyAqc2VxaW5mbywgT2lkIHNlcW93bmVyKQogCQlSZXN0b3JlVXNlckNvbnRleHQoJnVjeHQp OwogCiAJLyoKLQkgKiBSZWNvcmQgdGhlIHJlbW90ZSBzZXF1ZW5jZSdzIExTTiBpbiBwZ19zdWJz Y3JpcHRpb25fcmVsIGFuZCBtYXJrIHRoZQotCSAqIHNlcXVlbmNlIGFzIFJFQURZLgorCSAqIElm IExTTiB1cGRhdGVzIGFyZSByZXF1ZXN0ZWQsIGNoZWNrIHdoZXRoZXIgdGhlIHJlbW90ZSBMU04g ZGlmZmVycyBmcm9tCisJICogdGhlIGxvY2FsbHkgc3RvcmVkIHZhbHVlLgogCSAqLwotCVVwZGF0 ZVN1YnNjcmlwdGlvblJlbFN0YXRlKE15U3Vic2NyaXB0aW9uLT5vaWQsIHNlcW9pZCwgU1VCUkVM X1NUQVRFX1JFQURZLAotCQkJCQkJCSAgIHNlcWluZm8tPnBhZ2VfbHNuLCBmYWxzZSk7CisJaWYg KHVwZGF0ZV9sc24pCisJeworCQlYTG9nUmVjUHRyCWxvY2FsX3BhZ2VfbHNuOworCisJCS8qIEdl dCB0aGUgbG9jYWwgcGFnZSBMU04gZm9yIGNvbXBhcmlzb24gd2l0aCB0aGUgcmVtb3RlIHZhbHVl ICovCisJCSh2b2lkKSBHZXRTdWJzY3JpcHRpb25SZWxTdGF0ZShNeVN1YnNjcmlwdGlvbi0+b2lk LAorCQkJCQkJCQkJICAgUmVsYXRpb25HZXRSZWxpZChzZXF1ZW5jZV9yZWwpLAorCQkJCQkJCQkJ ICAgJmxvY2FsX3BhZ2VfbHNuKTsKKworCQluZWVkX2xzbl91cGRhdGUgPSAobG9jYWxfcGFnZV9s c24gIT0gc2VxaW5mby0+cGFnZV9sc24pOworCX0KKworCS8qCisJICogVXBkYXRlIHRoZSBjYXRh bG9nIGlmIGVpdGhlciB0aGUgc2VxdWVuY2UgaXMgaW4gSU5JVCBzdGF0ZSBhbmQgbmVlZHMgdG8K KwkgKiB0cmFuc2l0aW9uIHRvIFJFQURZLCBvciB0aGUgTFNOIGhhcyBjaGFuZ2VkIGFuZCB0aGlz IGlzIGFuIExTTiB1cGRhdGUKKwkgKiBjeWNsZSAodXBkYXRlX2xzbiBpcyB0cnVlKS4KKwkgKi8K KwlpZiAoc2VxaW5mby0+cmVsc3RhdGUgPT0gU1VCUkVMX1NUQVRFX0lOSVQgfHwgbmVlZF9sc25f dXBkYXRlKQorCQlVcGRhdGVTdWJzY3JpcHRpb25SZWxTdGF0ZShNeVN1YnNjcmlwdGlvbi0+b2lk LCBzZXFvaWQsIFNVQlJFTF9TVEFURV9SRUFEWSwKKwkJCQkJCQkJICAgc2VxaW5mby0+cGFnZV9s c24sIGZhbHNlKTsKIAogCXJldHVybiBDT1BZU0VRX1NVQ0NFU1M7CiB9CiAKIC8qCiAgKiBDb3B5 IGV4aXN0aW5nIGRhdGEgb2Ygc2VxdWVuY2VzIGZyb20gdGhlIHB1Ymxpc2hlci4KKyAqCisgKiBT ZXF1ZW5jZXMgaW4gSU5JVCBzdGF0ZSBhcmUgYWx3YXlzIHN5bmNocm9uaXplZC4gU2VxdWVuY2Vz IGluIFJFQURZIHN0YXRlIGFyZQorICogc3luY2hyb25pemVkIG9ubHkgd2hlbiBkcmlmdCBpcyBk ZXRlY3RlZC4KKyAqCisgKiBXaGVuICd1cGRhdGVfbHNuJyBpcyB0cnVlLCB1cGRhdGUgdGhlIHBh Z2UgTFNOIGluIHBnX3N1YnNjcmlwdGlvbl9yZWwgZm9yIGFueQorICogc3luY2hyb25pemVkIHNl cXVlbmNlcyB3aG9zZSBMU04gaGFzIGNoYW5nZWQuIFdoZW4gZmFsc2UsIHRoZSBMU04gaXMgdXBk YXRlZAorICogb25seSBmb3Igc2VxdWVuY2VzIHRyYW5zaXRpb25pbmcgZnJvbSBJTklUIHRvIFJF QURZIHN0YXRlLgorICoKKyAqIFJldHVybnMgdHJ1ZS9mYWxzZSBpZiBhbnkgc2VxdWVuY2VzIHdl cmUgYWN0dWFsbHkgY29waWVkLgogICovCi1zdGF0aWMgdm9pZAotY29weV9zZXF1ZW5jZXMoV2Fs UmVjZWl2ZXJDb25uICpjb25uKQorc3RhdGljIGJvb2wKK2NvcHlfc2VxdWVuY2VzKFdhbFJlY2Vp dmVyQ29ubiAqY29ubiwgTGlzdCAqc2VxaW5mb3MsIGJvb2wgdXBkYXRlX2xzbikKIHsKIAlpbnQJ CQljdXJfYmF0Y2hfYmFzZV9pbmRleCA9IDA7CiAJaW50CQkJbl9zZXFpbmZvcyA9IGxpc3RfbGVu Z3RoKHNlcWluZm9zKTsKQEAgLTM5MCwxMyArNDk1LDEwIEBAIGNvcHlfc2VxdWVuY2VzKFdhbFJl Y2VpdmVyQ29ubiAqY29ubikKIAlTdHJpbmdJbmZvCXNlcXN0ciA9IG1ha2VTdHJpbmdJbmZvKCk7 CiAJU3RyaW5nSW5mbwljbWQgPSBtYWtlU3RyaW5nSW5mbygpOwogCU1lbW9yeUNvbnRleHQgb2xk Y3R4OworCWJvb2wJCXNlcXVlbmNlX2NvcGllZCA9IGZhbHNlOwogCiAjZGVmaW5lIE1BWF9TRVFV RU5DRVNfU1lOQ19QRVJfQkFUQ0ggMTAwCiAKLQllbG9nKERFQlVHMSwKLQkJICJsb2dpY2FsIHJl cGxpY2F0aW9uIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiBmb3Igc3Vic2NyaXB0aW9uIFwiJXNc IiAtIHRvdGFsIHVuc3luY2hyb25pemVkOiAlZCIsCi0JCSBNeVN1YnNjcmlwdGlvbi0+bmFtZSwg bl9zZXFpbmZvcyk7Ci0KIAl3aGlsZSAoY3VyX2JhdGNoX2Jhc2VfaW5kZXggPCBuX3NlcWluZm9z KQogCXsKIAkJT2lkCQkJc2VxUm93W1JFTU9URV9TRVFfQ09MX0NPVU5UXSA9IHtJTlQ4T0lELCBJ TlQ4T0lELApAQCAtNDA2LDYgKzUwOCw3IEBAIGNvcHlfc2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29u biAqY29ubikKIAkJaW50CQkJYmF0Y2hfbWlzbWF0Y2hlZF9jb3VudCA9IDA7CiAJCWludAkJCWJh dGNoX3NraXBwZWRfY291bnQgPSAwOwogCQlpbnQJCQliYXRjaF9pbnN1ZmZwZXJtX2NvdW50ID0g MDsKKwkJaW50CQkJYmF0Y2hfbm9fZHJpZnQgPSAwOwogCQlpbnQJCQliYXRjaF9taXNzaW5nX2Nv dW50OwogCQlSZWxhdGlvbglzZXF1ZW5jZV9yZWwgPSBOVUxMOwogCkBAIC01MDEsMjggKzYwNCwy OCBAQCBjb3B5X3NlcXVlbmNlcyhXYWxSZWNlaXZlckNvbm4gKmNvbm4pCiAJCQl9CiAKIAkJCXN5 bmNfc3RhdHVzID0gZ2V0X2FuZF92YWxpZGF0ZV9zZXFfaW5mbyhzbG90LCAmc2VxdWVuY2VfcmVs LAotCQkJCQkJCQkJCQkJCSZzZXFpbmZvLCAmc2VxaWR4KTsKLQkJCWlmIChzeW5jX3N0YXR1cyA9 PSBDT1BZU0VRX1NVQ0NFU1MpCi0JCQkJc3luY19zdGF0dXMgPSBjb3B5X3NlcXVlbmNlKHNlcWlu Zm8sCi0JCQkJCQkJCQkJCXNlcXVlbmNlX3JlbC0+cmRfcmVsLT5yZWxvd25lcik7CisJCQkJCQkJ CQkJCQkJJnNlcWluZm8sICZzZXFpZHgsIHNlcWluZm9zKTsKKworCQkJaWYgKHN5bmNfc3RhdHVz ID09IENPUFlTRVFfQUxMT1dFRCkKKwkJCQlzeW5jX3N0YXR1cyA9IGNvcHlfc2VxdWVuY2Uoc2Vx aW5mbywgc2VxdWVuY2VfcmVsLCB1cGRhdGVfbHNuKTsKIAogCQkJc3dpdGNoIChzeW5jX3N0YXR1 cykKIAkJCXsKIAkJCQljYXNlIENPUFlTRVFfU1VDQ0VTUzoKIAkJCQkJZWxvZyhERUJVRzEsCi0J CQkJCQkgImxvZ2ljYWwgcmVwbGljYXRpb24gc3luY2hyb25pemF0aW9uIGZvciBzdWJzY3JpcHRp b24gXCIlc1wiLCBzZXF1ZW5jZSBcIiVzLiVzXCIgaGFzIGZpbmlzaGVkIiwKLQkJCQkJCSBNeVN1 YnNjcmlwdGlvbi0+bmFtZSwgc2VxaW5mby0+bnNwbmFtZSwKLQkJCQkJCSBzZXFpbmZvLT5zZXFu YW1lKTsKKwkJCQkJCSAibG9naWNhbCByZXBsaWNhdGlvbiBzeW5jaHJvbml6YXRpb24gaGFzIHVw ZGF0ZWQgc2VxdWVuY2UgXCIlcy4lc1wiIGluIHN1YnNjcmlwdGlvbiBcIiVzXCIiLAorCQkJCQkJ IHNlcWluZm8tPm5zcG5hbWUsIHNlcWluZm8tPnNlcW5hbWUsIE15U3Vic2NyaXB0aW9uLT5uYW1l KTsKIAkJCQkJYmF0Y2hfc3VjY2VlZGVkX2NvdW50Kys7CisJCQkJCXNlcXVlbmNlX2NvcGllZCA9 IHRydWU7CiAJCQkJCWJyZWFrOwogCQkJCWNhc2UgQ09QWVNFUV9NSVNNQVRDSDoKIAogCQkJCQkv KgotCQkJCQkgKiBSZW1lbWJlciBtaXNtYXRjaGVkIHNlcXVlbmNlcyBpbiBhIGxvbmctbGl2ZWQg bWVtb3J5Ci0JCQkJCSAqIGNvbnRleHQgc2luY2UgdGhlc2Ugd2lsbCBiZSB1c2VkIGFmdGVyIHRo ZSB0cmFuc2FjdGlvbgotCQkJCQkgKiBpcyBjb21taXR0ZWQuCisJCQkJCSAqIFJlbWVtYmVyIG1p c21hdGNoZWQgc2VxdWVuY2VzIGluIFNlcXVlbmNlU3luY0NvbnRleHQKKwkJCQkJICogc2luY2Ug dGhlc2Ugd2lsbCBiZSB1c2VkIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiBpcworCQkJCQkgKiBjb21t aXR0ZWQuCiAJCQkJCSAqLwotCQkJCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBw bHlDb250ZXh0KTsKKwkJCQkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNlcXVlbmNl U3luY0NvbnRleHQpOwogCQkJCQltaXNtYXRjaGVkX3NlcXNfaWR4ID0gbGFwcGVuZF9pbnQobWlz bWF0Y2hlZF9zZXFzX2lkeCwKIAkJCQkJCQkJCQkJCQkgIHNlcWlkeCk7CiAJCQkJCU1lbW9yeUNv bnRleHRTd2l0Y2hUbyhvbGRjdHgpOwpAQCAtNTMxLDExICs2MzQsMTEgQEAgY29weV9zZXF1ZW5j ZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uKQogCQkJCWNhc2UgQ09QWVNFUV9JTlNVRkZJQ0lFTlRf UEVSTToKIAogCQkJCQkvKgotCQkJCQkgKiBSZW1lbWJlciBzZXF1ZW5jZXMgd2l0aCBpbnN1ZmZp Y2llbnQgcHJpdmlsZWdlcyBpbiBhCi0JCQkJCSAqIGxvbmctbGl2ZWQgbWVtb3J5IGNvbnRleHQg c2luY2UgdGhlc2Ugd2lsbCBiZSB1c2VkCi0JCQkJCSAqIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiBp cyBjb21taXR0ZWQuCisJCQkJCSAqIFJlbWVtYmVyIHNlcXVlbmNlcyB3aXRoIGluc3VmZmljaWVu dCBwcml2aWxlZ2VzIGluCisJCQkJCSAqIFNlcXVlbmNlU3luY0NvbnRleHQgc2luY2UgdGhlc2Ug d2lsbCBiZSB1c2VkIGFmdGVyIHRoZQorCQkJCQkgKiB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQu CiAJCQkJCSAqLwotCQkJCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250 ZXh0KTsKKwkJCQkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNlcXVlbmNlU3luY0Nv bnRleHQpOwogCQkJCQlpbnN1ZmZwZXJtX3NlcXNfaWR4ID0gbGFwcGVuZF9pbnQoaW5zdWZmcGVy bV9zZXFzX2lkeCwKIAkJCQkJCQkJCQkJCQkgIHNlcWlkeCk7CiAJCQkJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjdHgpOwpAQCAtNTU4LDYgKzY2MSwxMyBAQCBjb3B5X3NlcXVlbmNlcyhXYWxS ZWNlaXZlckNvbm4gKmNvbm4pCiAJCQkJCQliYXRjaF9za2lwcGVkX2NvdW50Kys7CiAJCQkJCX0K IAkJCQkJYnJlYWs7CisJCQkJY2FzZSBDT1BZU0VRX05PX0RSSUZUOgorCQkJCQkvKiBOb3RoaW5n IHRvIGRvICovCisJCQkJCWJhdGNoX25vX2RyaWZ0Kys7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1 bHQ6CisJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgc2VxdWVuY2UgcmVwbGljYXRpb24g cmVzdWx0OiAlZCIsIChpbnQpIHN5bmNfc3RhdHVzKTsKKwogCQkJfQogCiAJCQlpZiAoc2VxdWVu Y2VfcmVsKQpAQCAtNTcyLDE0ICs2ODIsMTUgQEAgY29weV9zZXF1ZW5jZXMoV2FsUmVjZWl2ZXJD b25uICpjb25uKQogCQliYXRjaF9taXNzaW5nX2NvdW50ID0gYmF0Y2hfc2l6ZSAtIChiYXRjaF9z dWNjZWVkZWRfY291bnQgKwogCQkJCQkJCQkJCQliYXRjaF9taXNtYXRjaGVkX2NvdW50ICsKIAkJ CQkJCQkJCQkJYmF0Y2hfaW5zdWZmcGVybV9jb3VudCArCi0JCQkJCQkJCQkJCWJhdGNoX3NraXBw ZWRfY291bnQpOworCQkJCQkJCQkJCQliYXRjaF9za2lwcGVkX2NvdW50ICsKKwkJCQkJCQkJCQkJ YmF0Y2hfbm9fZHJpZnQpOwogCiAJCWVsb2coREVCVUcxLAotCQkJICJsb2dpY2FsIHJlcGxpY2F0 aW9uIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiAtIGJh dGNoICMlZCA9ICVkIGF0dGVtcHRlZCwgJWQgc3VjY2VlZGVkLCAlZCBtaXNtYXRjaGVkLCAlZCBp bnN1ZmZpY2llbnQgcGVybWlzc2lvbiwgJWQgbWlzc2luZyBmcm9tIHB1Ymxpc2hlciwgJWQgc2tp cHBlZCIsCisJCQkgImxvZ2ljYWwgcmVwbGljYXRpb24gc2VxdWVuY2Ugc3luY2hyb25pemF0aW9u IGZvciBzdWJzY3JpcHRpb24gXCIlc1wiIC0gYmF0Y2ggIyVkID0gJWQgYXR0ZW1wdGVkLCAlZCBz dWNjZWVkZWQsICVkIG1pc21hdGNoZWQsICVkIGluc3VmZmljaWVudCBwZXJtaXNzaW9uLCAlZCBt aXNzaW5nIGZyb20gcHVibGlzaGVyLCAlZCBza2lwcGVkLCAlZCBubyBkcmlmdCIsCiAJCQkgTXlT dWJzY3JpcHRpb24tPm5hbWUsCiAJCQkgKGN1cl9iYXRjaF9iYXNlX2luZGV4IC8gTUFYX1NFUVVF TkNFU19TWU5DX1BFUl9CQVRDSCkgKyAxLAogCQkJIGJhdGNoX3NpemUsIGJhdGNoX3N1Y2NlZWRl ZF9jb3VudCwgYmF0Y2hfbWlzbWF0Y2hlZF9jb3VudCwKLQkJCSBiYXRjaF9pbnN1ZmZwZXJtX2Nv dW50LCBiYXRjaF9taXNzaW5nX2NvdW50LCBiYXRjaF9za2lwcGVkX2NvdW50KTsKKwkJCSBiYXRj aF9pbnN1ZmZwZXJtX2NvdW50LCBiYXRjaF9taXNzaW5nX2NvdW50LCBiYXRjaF9za2lwcGVkX2Nv dW50LCBiYXRjaF9ub19kcmlmdCk7CiAKIAkJLyogQ29tbWl0IHRoaXMgYmF0Y2gsIGFuZCBwcmVw YXJlIGZvciBuZXh0IGJhdGNoICovCiAJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwpAQCAt NjA3LDQ3ICs3MTgsNTAgQEAgY29weV9zZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uKQog CiAJLyogUmVwb3J0IG1pc21hdGNoZXMsIHBlcm1pc3Npb24gaXNzdWVzLCBvciBtaXNzaW5nIHNl cXVlbmNlcyAqLwogCXJlcG9ydF9zZXF1ZW5jZV9lcnJvcnMobWlzbWF0Y2hlZF9zZXFzX2lkeCwg aW5zdWZmcGVybV9zZXFzX2lkeCwKLQkJCQkJCSAgIG1pc3Npbmdfc2Vxc19pZHgpOworCQkJCQkJ ICAgbWlzc2luZ19zZXFzX2lkeCwgc2VxaW5mb3MpOworCisJcmV0dXJuIHNlcXVlbmNlX2NvcGll ZDsKIH0KIAogLyoKICAqIElkZW50aWZpZXMgc2VxdWVuY2VzIHRoYXQgcmVxdWlyZSBzeW5jaHJv bml6YXRpb24gYW5kIGluaXRpYXRlcyB0aGUKICAqIHN5bmNocm9uaXphdGlvbiBwcm9jZXNzLgor ICoKKyAqIFJldHVybnMgdHJ1ZSBpZiBzZXF1ZW5jZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCiAgKi8K LXN0YXRpYyB2b2lkCi1Mb2dpY2FsUmVwU3luY1NlcXVlbmNlcyh2b2lkKQorc3RhdGljIGJvb2wK K0xvZ2ljYWxSZXBTeW5jU2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgYm9vbCB1cGRh dGVfbHNuKQogewotCWNoYXIJICAgKmVycjsKLQlib29sCQltdXN0X3VzZV9wYXNzd29yZDsKIAlS ZWxhdGlvbglyZWw7CiAJSGVhcFR1cGxlCXR1cDsKLQlTY2FuS2V5RGF0YSBza2V5WzJdOworCVNj YW5LZXlEYXRhIHNrZXlbMV07CiAJU3lzU2NhbkRlc2Mgc2NhbjsKIAlPaWQJCQlzdWJpZCA9IE15 TG9naWNhbFJlcFdvcmtlci0+c3ViaWQ7Ci0JU3RyaW5nSW5mb0RhdGEgYXBwX25hbWU7CisJYm9v bAkJc2VxdWVuY2VfY29waWVkID0gZmFsc2U7CisJTGlzdAkgICAqc2VxaW5mb3MgPSBOSUw7CisJ TWVtb3J5Q29udGV4dCBvbGRjdHg7CisKKwlBc3NlcnQoU2VxdWVuY2VTeW5jQ29udGV4dCk7CiAK IAlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOwogCiAJcmVsID0gdGFibGVfb3BlbihTdWJzY3Jp cHRpb25SZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCisJLyogU2NhbiBmb3IgYWxs IHNlcXVlbmNlcyBiZWxvbmdpbmcgdG8gdGhpcyBzdWJzY3JpcHRpb24gKi8KIAlTY2FuS2V5SW5p dCgmc2tleVswXSwKIAkJCQlBbnVtX3BnX3N1YnNjcmlwdGlvbl9yZWxfc3JzdWJpZCwKIAkJCQlC VEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCiAJCQkJT2JqZWN0SWRHZXREYXR1bShzdWJp ZCkpOwogCi0JU2NhbktleUluaXQoJnNrZXlbMV0sCi0JCQkJQW51bV9wZ19zdWJzY3JpcHRpb25f cmVsX3Nyc3Vic3RhdGUsCi0JCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX0NIQVJFUSwKLQkJ CQlDaGFyR2V0RGF0dW0oU1VCUkVMX1NUQVRFX0lOSVQpKTsKLQogCXNjYW4gPSBzeXN0YWJsZV9i ZWdpbnNjYW4ocmVsLCBJbnZhbGlkT2lkLCBmYWxzZSwKLQkJCQkJCQkgIE5VTEwsIDIsIHNrZXkp OworCQkJCQkJCSAgTlVMTCwgMSwgc2tleSk7CisKIAl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0 dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKIAl7CiAJCUZvcm1fcGdfc3Vic2NyaXB0aW9u X3JlbCBzdWJyZWw7CiAJCUxvZ2ljYWxSZXBTZXF1ZW5jZUluZm8gKnNlcTsKIAkJUmVsYXRpb24J c2VxdWVuY2VfcmVsOwotCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKwkJY2hhcgkJcmVsc3RhdGU7 CiAKIAkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKIApAQCAtNjY2LDE4ICs3ODAsMjEgQEAgTG9n aWNhbFJlcFN5bmNTZXF1ZW5jZXModm9pZCkKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJcmVsc3Rh dGUgPSBzdWJyZWwtPnNyc3Vic3RhdGU7CisKKwkJQXNzZXJ0KHJlbHN0YXRlID09IFNVQlJFTF9T VEFURV9JTklUIHx8IHJlbHN0YXRlID09IFNVQlJFTF9TVEFURV9SRUFEWSk7CisKIAkJLyoKIAkJ ICogV29ya2VyIG5lZWRzIHRvIHByb2Nlc3Mgc2VxdWVuY2VzIGFjcm9zcyB0cmFuc2FjdGlvbiBi b3VuZGFyeSwgc28KLQkJICogYWxsb2NhdGUgdGhlbSB1bmRlciBsb25nLWxpdmVkIGNvbnRleHQu CisJCSAqIGFsbG9jYXRlIHRoZW0gdW5kZXIgU2VxdWVuY2VTeW5jQ29udGV4dC4KIAkJICovCi0J CW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhBcHBseUNvbnRleHQpOwotCisJCW9sZGN0 eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTZXF1ZW5jZVN5bmNDb250ZXh0KTsKIAkJc2VxID0g cGFsbG9jMF9vYmplY3QoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyk7CiAJCXNlcS0+bG9jYWxyZWxp ZCA9IHN1YnJlbC0+c3JyZWxpZDsKIAkJc2VxLT5uc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1l KFJlbGF0aW9uR2V0TmFtZXNwYWNlKHNlcXVlbmNlX3JlbCkpOwogCQlzZXEtPnNlcW5hbWUgPSBw c3RyZHVwKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHNlcXVlbmNlX3JlbCkpOworCQlzZXEtPnJl bHN0YXRlID0gcmVsc3RhdGU7CiAJCXNlcWluZm9zID0gbGFwcGVuZChzZXFpbmZvcywgc2VxKTsK LQogCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKIAogCQl0YWJsZV9jbG9zZShzZXF1 ZW5jZV9yZWwsIE5vTG9jayk7CkBAIC02OTMsMzYgKzgxMCwxNiBAQCBMb2dpY2FsUmVwU3luY1Nl cXVlbmNlcyh2b2lkKQogCSAqIEV4aXQgZWFybHkgaWYgbm8gY2F0YWxvZyBlbnRyaWVzIGZvdW5k LCBsaWtlbHkgZHVlIHRvIGNvbmN1cnJlbnQgZHJvcHMuCiAJICovCiAJaWYgKCFzZXFpbmZvcykK LQkJcmV0dXJuOwotCi0JLyogSXMgdGhlIHVzZSBvZiBhIHBhc3N3b3JkIG1hbmRhdG9yeT8gKi8K LQltdXN0X3VzZV9wYXNzd29yZCA9IE15U3Vic2NyaXB0aW9uLT5wYXNzd29yZHJlcXVpcmVkICYm Ci0JCSFNeVN1YnNjcmlwdGlvbi0+b3duZXJzdXBlcnVzZXI7CisJCXJldHVybiBmYWxzZTsKIAot CWluaXRTdHJpbmdJbmZvKCZhcHBfbmFtZSk7Ci0JYXBwZW5kU3RyaW5nSW5mbygmYXBwX25hbWUs ICJwZ18ldV9zZXF1ZW5jZV9zeW5jXyIgVUlOVDY0X0ZPUk1BVCwKLQkJCQkJIE15U3Vic2NyaXB0 aW9uLT5vaWQsIEdldFN5c3RlbUlkZW50aWZpZXIoKSk7CisJLyogUHJvY2VzcyBzZXF1ZW5jZXMg Ki8KKwlzZXF1ZW5jZV9jb3BpZWQgPSBjb3B5X3NlcXVlbmNlcyhjb25uLCBzZXFpbmZvcywgdXBk YXRlX2xzbik7CiAKLQkvKgotCSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHVi bGlzaGVyIGZvciBzZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24uCi0JICovCi0JTG9nUmVwV29ya2Vy V2FsUmN2Q29ubiA9Ci0JCXdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0aW9uLT5jb25uaW5mbywg dHJ1ZSwgdHJ1ZSwKLQkJCQkJICAgbXVzdF91c2VfcGFzc3dvcmQsCi0JCQkJCSAgIGFwcF9uYW1l LmRhdGEsICZlcnIpOwotCWlmIChMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID09IE5VTEwpCi0JCWVy ZXBvcnQoRVJST1IsCi0JCQkJZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCi0J CQkJZXJybXNnKCJzZXF1ZW5jZXN5bmMgd29ya2VyIGZvciBzdWJzY3JpcHRpb24gXCIlc1wiIGNv dWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVzIiwKLQkJCQkJICAgTXlTdWJzY3Jp cHRpb24tPm5hbWUsIGVycikpOwotCi0JcGZyZWUoYXBwX25hbWUuZGF0YSk7Ci0KLQljb3B5X3Nl cXVlbmNlcyhMb2dSZXBXb3JrZXJXYWxSY3ZDb25uKTsKKwlyZXR1cm4gc2VxdWVuY2VfY29waWVk OwogfQogCiAvKgotICogRXhlY3V0ZSB0aGUgaW5pdGlhbCBzeW5jIHdpdGggZXJyb3IgaGFuZGxp bmcuIERpc2FibGUgdGhlIHN1YnNjcmlwdGlvbiwKKyAqIEV4ZWN1dGUgdGhlIHNlcXVlbmNlIHN5 bmMgd2l0aCBlcnJvciBoYW5kbGluZy4gRGlzYWJsZSB0aGUgc3Vic2NyaXB0aW9uLAogICogaWYg cmVxdWlyZWQuCiAgKgogICogTm90ZSB0aGF0IHdlIGRvbid0IGhhbmRsZSBGQVRBTCBlcnJvcnMg d2hpY2ggYXJlIHByb2JhYmx5IGJlY2F1c2Ugb2Ygc3lzdGVtCkBAIC03MzUsOCArODMyLDExNyBA QCBzdGFydF9zZXF1ZW5jZV9zeW5jKHZvaWQpCiAKIAlQR19UUlkoKTsKIAl7Ci0JCS8qIENhbGwg aW5pdGlhbCBzeW5jLiAqLwotCQlMb2dpY2FsUmVwU3luY1NlcXVlbmNlcygpOworCQljaGFyCSAg ICplcnI7CisJCWJvb2wJCW11c3RfdXNlX3Bhc3N3b3JkOworCQlTdHJpbmdJbmZvRGF0YSBhcHBf bmFtZTsKKwkJbG9uZwkJc2xlZXBfbXMgPSBTRVFTWU5DX01JTl9TTEVFUF9NUzsKKwkJVGltZXN0 YW1wVHogbmV4dF9sc25fdXBkYXRlID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOworCisJCS8qIElz IHRoZSB1c2Ugb2YgYSBwYXNzd29yZCBtYW5kYXRvcnk/ICovCisJCW11c3RfdXNlX3Bhc3N3b3Jk ID0gTXlTdWJzY3JpcHRpb24tPnBhc3N3b3JkcmVxdWlyZWQgJiYKKwkJCSFNeVN1YnNjcmlwdGlv bi0+b3duZXJzdXBlcnVzZXI7CisKKwkJaW5pdFN0cmluZ0luZm8oJmFwcF9uYW1lKTsKKwkJYXBw ZW5kU3RyaW5nSW5mbygmYXBwX25hbWUsICJwZ18ldV9zZXF1ZW5jZV9zeW5jXyIgVUlOVDY0X0ZP Uk1BVCwKKwkJCQkJCSBNeVN1YnNjcmlwdGlvbi0+b2lkLCBHZXRTeXN0ZW1JZGVudGlmaWVyKCkp OworCisJCS8qCisJCSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHVibGlzaGVy IGZvciBzZXF1ZW5jZQorCQkgKiBzeW5jaHJvbml6YXRpb24uCisJCSAqLworCQlMb2dSZXBXb3Jr ZXJXYWxSY3ZDb25uID0KKwkJCXdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0aW9uLT5jb25uaW5m bywgdHJ1ZSwgdHJ1ZSwKKwkJCQkJCSAgIG11c3RfdXNlX3Bhc3N3b3JkLAorCQkJCQkJICAgYXBw X25hbWUuZGF0YSwgJmVycik7CisJCWlmIChMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID09IE5VTEwp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfQ09OTkVDVElPTl9GQUlM VVJFKSwKKwkJCQkJZXJybXNnKCJzZXF1ZW5jZXN5bmMgd29ya2VyIGZvciBzdWJzY3JpcHRpb24g XCIlc1wiIGNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVzIiwKKwkJCQkJCSAg IE15U3Vic2NyaXB0aW9uLT5uYW1lLCBlcnIpKTsKKworCQlwZnJlZShhcHBfbmFtZS5kYXRhKTsK KworCQkvKgorCQkgKiBJbml0IHRoZSBTZXF1ZW5jZVN5bmNDb250ZXh0IHdoaWNoIHdlIGNsZWFu IHVwIGFmdGVyIGVhY2ggc2VxdWVuY2UKKwkJICogc3luY2hyb25pemF0aW9uLgorCQkgKi8KKwkJ U2VxdWVuY2VTeW5jQ29udGV4dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShBcHBseUNvbnRleHQs CisJCQkJCQkJCQkJCQkJIlNlcXVlbmNlU3luY0NvbnRleHQiLAorCQkJCQkJCQkJCQkJCUFMTE9D U0VUX0RFRkFVTFRfU0laRVMpOworCisJCWZvciAoOzspCisJCXsKKwkJCWJvb2wJCXNlcXVlbmNl X2NvcGllZCA9IGZhbHNlOworCQkJTWVtb3J5Q29udGV4dCBvbGRjdHg7CisJCQlib29sCQl1cGRh dGVfbHNuOworCQkJVGltZXN0YW1wVHogbm93ID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOworCisJ CQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCisJCQlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykK KwkJCXsKKwkJCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJCQkJUHJvY2Vzc0NvbmZp Z0ZpbGUoUEdDX1NJR0hVUCk7CisJCQl9CisKKwkJCS8qIFByb2Nlc3MgYW55IGludmFsaWRhdGlv biBtZXNzYWdlcyB0aGF0IG1pZ2h0IGhhdmUgYWNjdW11bGF0ZWQgKi8KKwkJCUFjY2VwdEludmFs aWRhdGlvbk1lc3NhZ2VzKCk7CisJCQltYXliZV9yZXJlYWRfc3Vic2NyaXB0aW9uKCk7CisKKwkJ CS8qCisJCQkgKiBXZSBhdm9pZCB1cGRhdGluZyBwZ19zdWJzY3JpcHRpb25fcmVsJ3MgcGFnZSBM U04gaW4gZXZlcnkgY3ljbGUKKwkJCSAqIHRvIHByZXZlbnQgZXhjZXNzaXZlIGNhdGFsb2cgaW52 YWxpZGF0aW9ucywgd2hpY2ggd291bGQgc2xvdworCQkJICogdGhlIGFwcGx5IHdvcmtlciB0aGF0 IHJlbGllcyBvbiB0aGlzIGNhY2hlIChzZWUKKwkJCSAqIEZldGNoUmVsYXRpb25TdGF0ZXMpLiBJ bnN0ZWFkLCB1cGRhdGVzIG9jY3VyIGV2ZXJ5IDMwIHNlY29uZHMuCisJCQkgKi8KKwkJCXVwZGF0 ZV9sc24gPSAobm93ID49IG5leHRfbHNuX3VwZGF0ZSk7CisKKwkJCS8qCisJCQkgKiBQZXJmb3Jt IHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiB1bmRlciBTZXF1ZW5jZVN5bmNDb250ZXh0IGFuZAor CQkJICogcmVzZXQgaXQgZWFjaCBjeWNsZSB0byBhdm9pZCBtYW51YWwgbWVtb3J5IG1hbmFnZW1l bnQuCisJCQkgKi8KKwkJCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTZXF1ZW5jZVN5 bmNDb250ZXh0KTsKKworCQkJLyoKKwkJCSAqIFN5bmNocm9uaXplIGFsbCBzZXF1ZW5jZXMgKGJv dGggUkVBRFkgYW5kIElOSVQgc3RhdGVzKS4KKwkJCSAqLworCQkJc2VxdWVuY2VfY29waWVkID0g TG9naWNhbFJlcFN5bmNTZXF1ZW5jZXMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwKKwkJCQkJCQkJ CQkJCQkgIHVwZGF0ZV9sc24pOworCisJCQlNZW1vcnlDb250ZXh0UmVzZXQoU2VxdWVuY2VTeW5j Q29udGV4dCk7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKKworCQkJLyoKKwkJ CSAqIEFkanVzdCBzbGVlcCBpbnRlcnZhbCBiYXNlZCBvbiBzeW5jIGFjdGl2aXR5LiBJZiBzZXF1 ZW5jZXMgd2VyZQorCQkJICogY29waWVkLCByZXNldCB0byB0aGUgbWluaW11bSBpbnRlcnZhbCB0 byBwb2xsIG1vcmUgZnJlcXVlbnRseS4KKwkJCSAqIE90aGVyd2lzZSwgZXhwb25lbnRpYWxseSBi YWNrIG9mZiB1cCB0byB0aGUgbWF4aW11bSBpbnRlcnZhbC4KKwkJCSAqLworCQkJaWYgKHNlcXVl bmNlX2NvcGllZCkKKwkJCQlzbGVlcF9tcyA9IFNFUVNZTkNfTUlOX1NMRUVQX01TOworCQkJZWxz ZQorCQkJCXNsZWVwX21zID0gTWluKHNsZWVwX21zICogMiwgU0VRU1lOQ19NQVhfU0xFRVBfTVMp OworCisJCQkvKiBSZWZyZXNoIHRpbWVzdGFtcCBhZnRlciBwb3RlbnRpYWxseSB0aW1lLWNvbnN1 bWluZyBzeW5jIHdvcmsgKi8KKwkJCW5vdyA9IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsKKworCQkJ LyoKKwkJCSAqIFNjaGVkdWxlIHRoZSBuZXh0IExTTiB1cGRhdGUuIElmIHdlIGp1c3QgcGVyZm9y bWVkIGFuIHVwZGF0ZSwKKwkJCSAqIHNldCB0aGUgbmV4dCB1cGRhdGUgdGltZSB0byAzMCBzZWNv bmRzIGZyb20gbm93LiBPdGhlcndpc2UsCisJCQkgKiBlbnN1cmUgdGhlIHNsZWVwIGludGVydmFs IGRvZXNuJ3QgZXhjZWVkIHRoZSB0aW1lIHJlbWFpbmluZworCQkJICogdW50aWwgdGhlIG5leHQg dXBkYXRlLgorCQkJICovCisJCQlpZiAodXBkYXRlX2xzbikKKwkJCQluZXh0X2xzbl91cGRhdGUg PSBUaW1lc3RhbXBUelBsdXNNaWxsaXNlY29uZHMobm93LCBTRVFTWU5DX01BWF9TTEVFUF9NUyk7 CisJCQllbHNlCisJCQkJc2xlZXBfbXMgPSBNaW4oc2xlZXBfbXMsIFRpbWVzdGFtcERpZmZlcmVu Y2VNaWxsaXNlY29uZHMobm93LCBuZXh0X2xzbl91cGRhdGUpKTsKKworCQkJLyogU2xlZXAgZm9y IHRoZSBjb25maWd1cmVkIGludGVydmFsICovCisJCQkodm9pZCkgV2FpdExhdGNoKE15TGF0Y2gs CisJCQkJCQkJIFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRI LAorCQkJCQkJCSBzbGVlcF9tcywKKwkJCQkJCQkgV0FJVF9FVkVOVF9MT0dJQ0FMX1NFUVNZTkNf TUFJTik7CisJCQlSZXNldExhdGNoKE15TGF0Y2gpOworCQl9CiAJfQogCVBHX0NBVENIKCk7CiAJ ewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zeW5jdXRpbHMu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc3luY3V0aWxzLmMKaW5kZXggZWY2 MWNhMDQzN2QuLjNhMGRjODY2OWY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3N5bmN1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvc3luY3V0aWxzLmMKQEAgLTE3Miw3ICsxNzIsNyBAQCBQcm9jZXNzU3luY2luZ1JlbGF0aW9u cyhYTG9nUmVjUHRyIGN1cnJlbnRfbHNuKQogCiAJCWNhc2UgV09SS0VSVFlQRV9BUFBMWToKIAkJ CVByb2Nlc3NTeW5jaW5nVGFibGVzRm9yQXBwbHkoY3VycmVudF9sc24pOwotCQkJUHJvY2Vzc1Nl cXVlbmNlc0ZvclN5bmMoKTsKKwkJCU1heWJlTGF1bmNoU2VxdWVuY2VTeW5jV29ya2VyKCk7CiAJ CQlicmVhazsKIAogCQljYXNlIFdPUktFUlRZUEVfU0VRVUVOQ0VTWU5DOgpAQCAtMTkxLDEzICsx OTEsMTMgQEAgUHJvY2Vzc1N5bmNpbmdSZWxhdGlvbnMoWExvZ1JlY1B0ciBjdXJyZW50X2xzbikK ICAqCiAgKiBUaGUgcGdfc3Vic2NyaXB0aW9uX3JlbCBjYXRhbG9nIGlzIHNoYXJlZCBieSB0YWJs ZXMgYW5kIHNlcXVlbmNlcy4gQ2hhbmdlcwogICogdG8gZWl0aGVyIHNlcXVlbmNlcyBvciB0YWJs ZXMgY2FuIGFmZmVjdCB0aGUgdmFsaWRpdHkgb2YgcmVsYXRpb24gc3RhdGVzLCBzbwotICogd2Ug aWRlbnRpZnkgbm9uLVJFQURZIHRhYmxlcyBhbmQgbm9uLVJFQURZIHNlcXVlbmNlcyB0b2dldGhl ciB0byBlbnN1cmUKKyAqIHdlIGlkZW50aWZ5IG5vbi1SRUFEWSB0YWJsZXMgYW5kIHNlcXVlbmNl cyAoaW4gYW55IHN0YXRlKSB0b2dldGhlciB0byBlbnN1cmUKICAqIGNvbnNpc3RlbmN5LgogICoK ICAqIGhhc19wZW5kaW5nX3N1YnRhYmxlczogdHJ1ZSBpZiB0aGUgc3Vic2NyaXB0aW9uIGhhcyBv bmUgb3IgbW9yZSB0YWJsZXMgdGhhdAogICogYXJlIG5vdCBpbiBSRUFEWSBzdGF0ZSwgb3RoZXJ3 aXNlIGZhbHNlLgogICogaGFzX3BlbmRpbmdfc3Vic2VxdWVuY2VzOiB0cnVlIGlmIHRoZSBzdWJz Y3JpcHRpb24gaGFzIG9uZSBvciBtb3JlIHNlcXVlbmNlcwotICogdGhhdCBhcmUgbm90IGluIFJF QURZIHN0YXRlLCBvdGhlcndpc2UgZmFsc2UuCisgKiAoaW4gYW55IHN0YXRlKSwgb3RoZXJ3aXNl IGZhbHNlLgogICovCiB2b2lkCiBGZXRjaFJlbGF0aW9uU3RhdGVzKGJvb2wgKmhhc19wZW5kaW5n X3N1YnRhYmxlcywKQEAgLTIwNSwyMyArMjA1LDIyIEBAIEZldGNoUmVsYXRpb25TdGF0ZXMoYm9v bCAqaGFzX3BlbmRpbmdfc3VidGFibGVzLAogCQkJCQlib29sICpzdGFydGVkX3R4KQogewogCS8q Ci0JICogaGFzX3N1YnRhYmxlcyBhbmQgaGFzX3N1YnNlcXVlbmNlc19ub25fcmVhZHkgYXJlIGRl Y2xhcmVkIGFzIHN0YXRpYywKLQkgKiBzaW5jZSB0aGUgc2FtZSB2YWx1ZSBjYW4gYmUgdXNlZCB1 bnRpbCB0aGUgc3lzdGVtIHRhYmxlIGlzIGludmFsaWRhdGVkLgorCSAqIGhhc19zdWJ0YWJsZXMg YW5kIGhhc19zdWJzZXF1ZW5jZXMgYXJlIGRlY2xhcmVkIGFzIHN0YXRpYywgc2luY2UgdGhlCisJ ICogc2FtZSB2YWx1ZSBjYW4gYmUgdXNlZCB1bnRpbCB0aGUgc3lzdGVtIHRhYmxlIGlzIGludmFs aWRhdGVkLgogCSAqLwogCXN0YXRpYyBib29sIGhhc19zdWJ0YWJsZXMgPSBmYWxzZTsKLQlzdGF0 aWMgYm9vbCBoYXNfc3Vic2VxdWVuY2VzX25vbl9yZWFkeSA9IGZhbHNlOworCXN0YXRpYyBib29s IGhhc19zdWJzZXF1ZW5jZXMgPSBmYWxzZTsKIAogCSpzdGFydGVkX3R4ID0gZmFsc2U7Ci0KIAlp ZiAocmVsYXRpb25fc3RhdGVzX3ZhbGlkaXR5ICE9IFNZTkNfUkVMQVRJT05TX1NUQVRFX1ZBTElE KQogCXsKIAkJTWVtb3J5Q29udGV4dCBvbGRjdHg7CiAJCUxpc3QJICAgKnJzdGF0ZXM7CisJCUxp c3QJICAgKnNlcV9zdGF0ZXM7CiAJCVN1YnNjcmlwdGlvblJlbFN0YXRlICpyc3RhdGU7CiAKIAkJ cmVsYXRpb25fc3RhdGVzX3ZhbGlkaXR5ID0gU1lOQ19SRUxBVElPTlNfU1RBVEVfUkVCVUlMRF9T VEFSVEVEOwotCQloYXNfc3Vic2VxdWVuY2VzX25vbl9yZWFkeSA9IGZhbHNlOwotCisJCWhhc19z dWJzZXF1ZW5jZXMgPSBmYWxzZTsKIAkJLyogQ2xlYW4gdGhlIG9sZCBsaXN0cy4gKi8KIAkJbGlz dF9mcmVlX2RlZXAodGFibGVfc3RhdGVzX25vdF9yZWFkeSk7CiAJCXRhYmxlX3N0YXRlc19ub3Rf cmVhZHkgPSBOSUw7CkBAIC0yMzEsMjcgKzIzMCwyOCBAQCBGZXRjaFJlbGF0aW9uU3RhdGVzKGJv b2wgKmhhc19wZW5kaW5nX3N1YnRhYmxlcywKIAkJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7 CiAJCQkqc3RhcnRlZF90eCA9IHRydWU7CiAJCX0KLQotCQkvKiBGZXRjaCB0YWJsZXMgYW5kIHNl cXVlbmNlcyB0aGF0IGFyZSBpbiBub24tUkVBRFkgc3RhdGUuICovCi0JCXJzdGF0ZXMgPSBHZXRT dWJzY3JpcHRpb25SZWxhdGlvbnMoTXlTdWJzY3JpcHRpb24tPm9pZCwgdHJ1ZSwgdHJ1ZSwKKwkJ LyogRmV0Y2ggdGFibGVzIHRoYXQgYXJlIGluIG5vbi1SRUFEWSBzdGF0ZS4gKi8KKwkJcnN0YXRl cyA9IEdldFN1YnNjcmlwdGlvblJlbGF0aW9ucyhNeVN1YnNjcmlwdGlvbi0+b2lkLCB0cnVlLCBm YWxzZSwKIAkJCQkJCQkJCQkgICB0cnVlKTsKLQorCQkvKiBGZXRjaCBhbGwgc2VxdWVuY2VzIChy ZWdhcmRsZXNzIG9mIHN0YXRlKS4gKi8KKwkJc2VxX3N0YXRlcyA9IEdldFN1YnNjcmlwdGlvblJl bGF0aW9ucyhNeVN1YnNjcmlwdGlvbi0+b2lkLCBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJICBm YWxzZSk7CiAJCS8qIEFsbG9jYXRlIHRoZSB0cmFja2luZyBpbmZvIGluIGEgcGVybWFuZW50IG1l bW9yeSBjb250ZXh0LiAqLwogCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQ2FjaGVN ZW1vcnlDb250ZXh0KTsKIAkJZm9yZWFjaF9wdHIoU3Vic2NyaXB0aW9uUmVsU3RhdGUsIHN1YnJl bCwgcnN0YXRlcykKIAkJewotCQkJaWYgKGdldF9yZWxfcmVsa2luZChzdWJyZWwtPnJlbGlkKSA9 PSBSRUxLSU5EX1NFUVVFTkNFKQotCQkJCWhhc19zdWJzZXF1ZW5jZXNfbm9uX3JlYWR5ID0gdHJ1 ZTsKLQkJCWVsc2UKLQkJCXsKLQkJCQlyc3RhdGUgPSBwYWxsb2Nfb2JqZWN0KFN1YnNjcmlwdGlv blJlbFN0YXRlKTsKLQkJCQltZW1jcHkocnN0YXRlLCBzdWJyZWwsIHNpemVvZihTdWJzY3JpcHRp b25SZWxTdGF0ZSkpOwotCQkJCXRhYmxlX3N0YXRlc19ub3RfcmVhZHkgPSBsYXBwZW5kKHRhYmxl X3N0YXRlc19ub3RfcmVhZHksCi0JCQkJCQkJCQkJCQkgcnN0YXRlKTsKLQkJCX0KKwkJCXJzdGF0 ZSA9IHBhbGxvY19vYmplY3QoU3Vic2NyaXB0aW9uUmVsU3RhdGUpOworCQkJbWVtY3B5KHJzdGF0 ZSwgc3VicmVsLCBzaXplb2YoU3Vic2NyaXB0aW9uUmVsU3RhdGUpKTsKKwkJCXRhYmxlX3N0YXRl c19ub3RfcmVhZHkgPSBsYXBwZW5kKHRhYmxlX3N0YXRlc19ub3RfcmVhZHksCisJCQkJCQkJCQkJ CSByc3RhdGUpOwogCQl9CisKKwkJLyogQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzZXF1ZW5jZXMu ICovCisJCWhhc19zdWJzZXF1ZW5jZXMgPSAoc2VxX3N0YXRlcyAhPSBOSUwpOwogCQlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKIAorCQlsaXN0X2ZyZWVfZGVlcChzZXFfc3RhdGVzKTsK KwogCQkvKgogCQkgKiBEb2VzIHRoZSBzdWJzY3JpcHRpb24gaGF2ZSB0YWJsZXM/CiAJCSAqCkBA IC0yNzcsNSArMjc3LDUgQEAgRmV0Y2hSZWxhdGlvblN0YXRlcyhib29sICpoYXNfcGVuZGluZ19z dWJ0YWJsZXMsCiAJCSpoYXNfcGVuZGluZ19zdWJ0YWJsZXMgPSBoYXNfc3VidGFibGVzOwogCiAJ aWYgKGhhc19wZW5kaW5nX3N1YnNlcXVlbmNlcykKLQkJKmhhc19wZW5kaW5nX3N1YnNlcXVlbmNl cyA9IGhhc19zdWJzZXF1ZW5jZXNfbm9uX3JlYWR5OworCQkqaGFzX3BlbmRpbmdfc3Vic2VxdWVu Y2VzID0gaGFzX3N1YnNlcXVlbmNlczsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3dvcmtlci5jCmluZGV4IDAzMzg1ODc1MmQ5Li5iMWNmYTdmNTViYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC01MTAwLDYgKzUxMDAsOSBAQCBtYXliZV9y ZXJlYWRfc3Vic2NyaXB0aW9uKHZvaWQpCiAJICogd29ya2VyIHdvbid0IHJlc3RhcnQgaWYgdGhl IHN0cmVhbWluZyBvcHRpb24ncyB2YWx1ZSBpcyBjaGFuZ2VkIGZyb20KIAkgKiAncGFyYWxsZWwn IHRvIGFueSBvdGhlciB2YWx1ZSBvciB0aGUgc2VydmVyIGRlY2lkZXMgbm90IHRvIHN0cmVhbSB0 aGUKIAkgKiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbi4KKwkgKgorCSAqIE5vdGU6IHNvbWUgcGFy YW1ldGVycyBtYXkgbm90IGJlIHJlbGV2YW50IHRvIHRoZSBzZXF1ZW5jZSBzeW5jIHdvcmtlciwK KwkgKiBidXQgZXhpdCBhbnl3YXkuCiAJICovCiAJaWYgKHN0cmNtcChuZXdzdWItPmNvbm5pbmZv LCBNeVN1YnNjcmlwdGlvbi0+Y29ubmluZm8pICE9IDAgfHwKIAkJc3RyY21wKG5ld3N1Yi0+bmFt ZSwgTXlTdWJzY3JpcHRpb24tPm5hbWUpICE9IDAgfHwKQEAgLTUxMTUsNiArNTExOCwxMCBAQCBt YXliZV9yZXJlYWRfc3Vic2NyaXB0aW9uKHZvaWQpCiAJCQllcmVwb3J0KExPRywKIAkJCQkJKGVy cm1zZygibG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxlbCBhcHBseSB3b3JrZXIgZm9yIHN1YnNj cmlwdGlvbiBcIiVzXCIgd2lsbCBzdG9wIGJlY2F1c2Ugb2YgYSBwYXJhbWV0ZXIgY2hhbmdlIiwK IAkJCQkJCQlNeVN1YnNjcmlwdGlvbi0+bmFtZSkpKTsKKwkJZWxzZSBpZiAoYW1fc2VxdWVuY2Vz eW5jX3dvcmtlcigpKQorCQkJZXJlcG9ydChMT0csCisJCQkJCShlcnJtc2coImxvZ2ljYWwgcmVw bGljYXRpb24gc2VxdWVuY2Ugc3luY2hyb25pemF0aW9uIHdvcmtlciBmb3Igc3Vic2NyaXB0aW9u IFwiJXNcIiB3aWxsIHN0b3AgYmVjYXVzZSBvZiBhIHBhcmFtZXRlciBjaGFuZ2UiLAorCQkJCQkJ CU15U3Vic2NyaXB0aW9uLT5uYW1lKSkpOwogCQllbHNlCiAJCQllcmVwb3J0KExPRywKIAkJCQkJ KGVycm1zZygibG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXIgZm9yIHN1YnNjcmlwdGlvbiBcIiVz XCIgd2lsbCByZXN0YXJ0IGJlY2F1c2Ugb2YgYSBwYXJhbWV0ZXIgY2hhbmdlIiwKQEAgLTUxMzMs NiArNTE0MCwxMCBAQCBtYXliZV9yZXJlYWRfc3Vic2NyaXB0aW9uKHZvaWQpCiAJCQllcmVwb3J0 KExPRywKIAkJCQkJZXJybXNnKCJsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIGFwcGx5IHdv cmtlciBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiB3aWxsIHN0b3AgYmVjYXVzZSB0aGUgc3Vic2Ny aXB0aW9uIG93bmVyJ3Mgc3VwZXJ1c2VyIHByaXZpbGVnZXMgaGF2ZSBiZWVuIHJldm9rZWQiLAog CQkJCQkJICAgTXlTdWJzY3JpcHRpb24tPm5hbWUpKTsKKwkJZWxzZSBpZiAoYW1fc2VxdWVuY2Vz eW5jX3dvcmtlcigpKQorCQkJZXJlcG9ydChMT0csCisJCQkJCWVycm1zZygibG9naWNhbCByZXBs aWNhdGlvbiBzZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24gd29ya2VyIGZvciBzdWJzY3JpcHRpb24g XCIlc1wiIHdpbGwgc3RvcCBiZWNhdXNlIHRoZSBzdWJzY3JpcHRpb24gb3duZXIncyBzdXBlcnVz ZXIgcHJpdmlsZWdlcyBoYXZlIGJlZW4gcmV2b2tlZCIsCisJCQkJCQkgICBNeVN1YnNjcmlwdGlv bi0+bmFtZSkpOwogCQllbHNlCiAJCQllcmVwb3J0KExPRywKIAkJCQkJZXJybXNnKCJsb2dpY2Fs IHJlcGxpY2F0aW9uIHdvcmtlciBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiB3aWxsIHJlc3RhcnQg YmVjYXVzZSB0aGUgc3Vic2NyaXB0aW9uIG93bmVyJ3Mgc3VwZXJ1c2VyIHByaXZpbGVnZXMgaGF2 ZSBiZWVuIHJldm9rZWQiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv d2FpdF9ldmVudF9uYW1lcy50eHQgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2 ZW50X25hbWVzLnR4dAppbmRleCA0YWE4NjRmZTNjMy4uYTkxMDg1ZTc3MjMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CkBAIC02MSw2ICs2 MSw3IEBAIElPX1dPUktFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBJTyBXb3JrZXIg cHJvY2Vzcy4iCiBMT0dJQ0FMX0FQUExZX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIGxv Z2ljYWwgcmVwbGljYXRpb24gYXBwbHkgcHJvY2Vzcy4iCiBMT0dJQ0FMX0xBVU5DSEVSX01BSU4J IldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gbGF1bmNoZXIgcHJv Y2Vzcy4iCiBMT0dJQ0FMX1BBUkFMTEVMX0FQUExZX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29w IG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gcGFyYWxsZWwgYXBwbHkgcHJvY2Vzcy4iCitMT0dJQ0FM X1NFUVNZTkNfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNhdGlv biBzZXF1ZW5jZSBzeW5jIHByb2Nlc3MuIgogUkVDT1ZFUllfV0FMX1NUUkVBTQkiV2FpdGluZyBp biBtYWluIGxvb3Agb2Ygc3RhcnR1cCBwcm9jZXNzIGZvciBXQUwgdG8gYXJyaXZlLCBkdXJpbmcg c3RyZWFtaW5nIHJlY292ZXJ5LiIKIFJFUExJQ0FUSU9OX1NMT1RTWU5DX01BSU4JIldhaXRpbmcg aW4gbWFpbiBsb29wIG9mIHNsb3Qgc3luY2hyb25pemF0aW9uLiIKIFJFUExJQ0FUSU9OX1NMT1RT WU5DX1NIVVRET1dOCSJXYWl0aW5nIGZvciBzbG90IHN5bmMgd29ya2VyIHRvIHNodXQgZG93bi4i CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oCmluZGV4IDUwMjY0MGQz MDE4Li44NjU3NGI2OTE2OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb25fcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25f cmVsLmgKQEAgLTk2LDYgKzk2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTG9naWNhbFJlcFNlcXVlbmNl SW5mbwogCWNoYXIJICAgKnNlcW5hbWU7CiAJY2hhcgkgICAqbnNwbmFtZTsKIAlPaWQJCQlsb2Nh bHJlbGlkOworCWNoYXIJCXJlbHN0YXRlOwogCiAJLyogU2VxdWVuY2UgaW5mb3JtYXRpb24gcmV0 cmlldmVkIGZyb20gdGhlIHB1Ymxpc2hlciBub2RlICovCiAJWExvZ1JlY1B0cglwYWdlX2xzbjsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3NlcXVlbmNlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXF1ZW5jZS5oCmluZGV4IDJjM2M0YTNmMDc0Li5mZDRmNjliZGQxYyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2VxdWVuY2UuaAorKysgYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXF1ZW5jZS5oCkBAIC00Nyw2ICs0Nyw3IEBAIGV4dGVybiBPYmplY3RBZGRy ZXNzIEFsdGVyU2VxdWVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclNlcVN0bXQgKnN0bXQp OwogZXh0ZXJuIHZvaWQgU2VxdWVuY2VDaGFuZ2VQZXJzaXN0ZW5jZShPaWQgcmVsaWQsIGNoYXIg bmV3cmVscGVyc2lzdGVuY2UpOwogZXh0ZXJuIHZvaWQgRGVsZXRlU2VxdWVuY2VUdXBsZShPaWQg cmVsaWQpOwogZXh0ZXJuIHZvaWQgUmVzZXRTZXF1ZW5jZShPaWQgc2VxX3JlbGlkKTsKK2V4dGVy biBib29sIEdldFNlcXVlbmNlKFJlbGF0aW9uIHNlcXJlbCwgaW50NjQgKmxhc3RfdmFsdWUsIGJv b2wgKmlzX2NhbGxlZCk7CiBleHRlcm4gdm9pZCBTZXRTZXF1ZW5jZShPaWQgcmVsaWQsIGludDY0 IG5leHQsIGJvb2wgaXNjYWxsZWQpOwogZXh0ZXJuIHZvaWQgUmVzZXRTZXF1ZW5jZUNhY2hlcyh2 b2lkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVy bmFsLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAppbmRleCA0 ZWNiZGNmYWRhYy4uYTQxY2IwNDVmMTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dvcmtlcl9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtl cl9pbnRlcm5hbC5oCkBAIC0yODYsNyArMjg2LDcgQEAgZXh0ZXJuIHZvaWQgVXBkYXRlVHdvUGhh c2VTdGF0ZShPaWQgc3Vib2lkLCBjaGFyIG5ld19zdGF0ZSk7CiAKIGV4dGVybiB2b2lkIFByb2Nl c3NTeW5jaW5nVGFibGVzRm9yU3luYyhYTG9nUmVjUHRyIGN1cnJlbnRfbHNuKTsKIGV4dGVybiB2 b2lkIFByb2Nlc3NTeW5jaW5nVGFibGVzRm9yQXBwbHkoWExvZ1JlY1B0ciBjdXJyZW50X2xzbik7 Ci1leHRlcm4gdm9pZCBQcm9jZXNzU2VxdWVuY2VzRm9yU3luYyh2b2lkKTsKK2V4dGVybiB2b2lk IE1heWJlTGF1bmNoU2VxdWVuY2VTeW5jV29ya2VyKHZvaWQpOwogCiBwZ19ub3JldHVybiBleHRl cm4gdm9pZCBGaW5pc2hTeW5jV29ya2VyKHZvaWQpOwogZXh0ZXJuIHZvaWQgSW52YWxpZGF0ZVN5 bmNpbmdSZWxTdGF0ZXMoRGF0dW0gYXJnLCBTeXNDYWNoZUlkZW50aWZpZXIgY2FjaGVpZCwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyNl9zdGF0cy5wbCBiL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAyNl9zdGF0cy5wbAppbmRleCA1ZDQ1NzA2MGEwMi4uMmZlMjA5ZjQ2 MWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyNl9zdGF0cy5wbAorKysg Yi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjZfc3RhdHMucGwKQEAgLTE2LDYgKzE2LDggQEAg JG5vZGVfcHVibGlzaGVyLT5zdGFydDsKICMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZS4KIG15ICRu b2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmli ZXInKTsKICRub2RlX3N1YnNjcmliZXItPmluaXQ7Ciskbm9kZV9zdWJzY3JpYmVyLT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJywKKwkibWF4X2xvZ2ljYWxfcmVwbGljYXRpb25fd29ya2Vy cyA9IDEwIik7CiAkbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKIAogCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfc2VxdWVuY2VzLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM2X3NlcXVlbmNlcy5wbAppbmRleCA0NzE3ODBhMzU4NS4uYWYxOTA3MTNiMmIgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9zZXF1ZW5jZXMucGwKKysrIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3NlcXVlbmNlcy5wbApAQCAtNzUsMTggKzc1LDE0 IEBAIGlzKCRyZXN1bHQsICcxMDB8dCcsCiAKICMjIyMjIyMjIyMKICMjIEFMVEVSIFNVQlNDUklQ VElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTiBzaG91bGQgY2F1c2Ugc3luYyBvZiBuZXcKLSMg c2VxdWVuY2VzIG9mIHRoZSBwdWJsaXNoZXIsIGJ1dCBjaGFuZ2VzIHRvIGV4aXN0aW5nIHNlcXVl bmNlcyBzaG91bGQKLSMgbm90IGJlIHN5bmNlZC4KKyMgc2VxdWVuY2VzIG9mIHRoZSBwdWJsaXNo ZXIuCiAjIyMjIyMjIyMjCiAKLSMgQ3JlYXRlIGEgbmV3IHNlcXVlbmNlICdyZWdyZXNzX3MyJywg YW5kIHVwZGF0ZSBleGlzdGluZyBzZXF1ZW5jZSAncmVncmVzc19zMScKKyMgQ3JlYXRlIGEgbmV3 IHNlcXVlbmNlICdyZWdyZXNzX3MyJwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAJJ3Bv c3RncmVzJywgcXEoCiAJQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfczI7CiAJSU5TRVJUIElOVE8g cmVncmVzc19zZXFfdGVzdCBTRUxFQ1QgbmV4dHZhbCgncmVncmVzc19zMicpIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTAwKTsKLQotCS0tIEV4aXN0aW5nIHNlcXVlbmNlCi0JSU5TRVJUIElOVE8g cmVncmVzc19zZXFfdGVzdCBTRUxFQ1QgbmV4dHZhbCgncmVncmVzc19zMScpIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTAwKTsKICkpOwogCiAjIERvIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVG UkVTSCBQVUJMSUNBVElPTgpAQCAtOTcsMTkgKzkzLDYgQEAgJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgKICRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bv c3RncmVzJywgJHN5bmNlZF9xdWVyeSkKICAgb3IgZGllICJUaW1lZCBvdXQgd2hpbGUgd2FpdGlu ZyBmb3Igc3Vic2NyaWJlciB0byBzeW5jaHJvbml6ZSBkYXRhIjsKIAotJHJlc3VsdCA9ICRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKAotCSdwb3N0Z3JlcycsIHFxKAotCVNFTEVDVCBsYXN0X3Zh bHVlLCBpc19jYWxsZWQgRlJPTSByZWdyZXNzX3MxOwotKSk7Ci1pcygkcmVzdWx0LCAnMjAwfHQn LCAnQ2hlY2sgc2VxdWVuY2UgdmFsdWUgaW4gdGhlIHB1Ymxpc2hlcicpOwotCi0jIENoZWNrIC0g ZXhpc3Rpbmcgc2VxdWVuY2UgKCdyZWdyZXNzX3MxJykgaXMgbm90IHN5bmNlZAotJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKLQkncG9zdGdyZXMnLCBxcSgKLQlTRUxFQ1Qg bGFzdF92YWx1ZSwgaXNfY2FsbGVkIEZST00gcmVncmVzc19zMTsKLSkpOwotaXMoJHJlc3VsdCwg JzEwMHx0JywgJ1JFRlJFU0ggUFVCTElDQVRJT04gd2lsbCBub3Qgc3luYyBleGlzdGluZyBzZXF1 ZW5jZScpOwotCiAjIENoZWNrIC0gbmV3bHkgcHVibGlzaGVkIHNlcXVlbmNlICgncmVncmVzc19z MicpIGlzIHN5bmNlZAogJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKIAkn cG9zdGdyZXMnLCBxcSgKQEAgLTExOSwxNiArMTAyLDEzIEBAIGlzKCRyZXN1bHQsICcxMDB8dCcs CiAJJ1JFRlJFU0ggUFVCTElDQVRJT04gd2lsbCBzeW5jIG5ld2x5IHB1Ymxpc2hlZCBzZXF1ZW5j ZScpOwogCiAjIyMjIyMjIyMjCi0jIFRlc3Q6IFJFRlJFU0ggU0VRVUVOQ0VTIGFuZCBSRUZSRVNI IFBVQkxJQ0FUSU9OIChjb3B5X2RhdGEgPSBmYWxzZSkKLSMKLSMgMS4gQUxURVIgU1VCU0NSSVBU SU9OIC4uLiBSRUZSRVNIIFNFUVVFTkNFUyBzaG91bGQgcmUtc3luY2hyb25pemUgYWxsCi0jICAg IGV4aXN0aW5nIHNlcXVlbmNlcywgYnV0IG5vdCBzeW5jaHJvbml6ZSBuZXdseSBhZGRlZCBvbmVz LgotIyAyLiBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT04gd2l0aCAo Y29weV9kYXRhID0gZmFsc2UpIHNob3VsZAotIyAgICBhbHNvIG5vdCB1cGRhdGUgc2VxdWVuY2Ug dmFsdWVzIGZvciBuZXdseSBhZGRlZCBzZXF1ZW5jZXMuCisjIFRlc3Q6CisjIDEuIEF1dG9tYXRp YyB1cGRhdGUgb2YgZXhpc3Rpbmcgc2VxdWVuY2UgdmFsdWVzCisjIDIuIE5ld2x5IGFkZGVkIHNl cXVlbmNlcyBhcmUgbm90IGF1dG9tYXRpY2FsbHkgdXBkYXRlZC4KICMjIyMjIyMjIyMKIAotIyBD cmVhdGUgYSBuZXcgc2VxdWVuY2UgJ3JlZ3Jlc3NfczMnLCBhbmQgdXBkYXRlIHRoZSBleGlzdGlu ZyBzZXF1ZW5jZQotIyAncmVncmVzc19zMicuCisjIENyZWF0ZSBhIG5ldyBzZXF1ZW5jZSAncmVn cmVzc19zMycsIGFuZCB1cGRhdGUgdGhlIGV4aXN0aW5nIHNlcXVlbmNlcworIyAncmVncmVzc19z MicgYW5kICdyZWdyZXNzX3MxJy4KICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAogCSdwb3N0 Z3JlcycsIHFxKAogCUNSRUFURSBTRVFVRU5DRSByZWdyZXNzX3MzOwpAQCAtMTM2LDUzICsxMTYs MjggQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAKIAktLSBFeGlzdGluZyBzZXF1ZW5j ZQogCUlOU0VSVCBJTlRPIHJlZ3Jlc3Nfc2VxX3Rlc3QgU0VMRUNUIG5leHR2YWwoJ3JlZ3Jlc3Nf czInKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMCk7CisJSU5TRVJUIElOVE8gcmVncmVzc19z ZXFfdGVzdCBTRUxFQ1QgbmV4dHZhbCgncmVncmVzc19zMScpIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTAwKTsKICkpOwogCi0jIDEuIERvIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBT RVFVRU5DRVMKLSRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCi0JJ3Bvc3Rn cmVzJywgcXEoCi0JQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc2VxX3N1YiBSRUZSRVNIIFNF UVVFTkNFUzsKLSkpOwotJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdy ZXMnLCAkc3luY2VkX3F1ZXJ5KQotICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZv ciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOwotCiAjIENoZWNrIC0gZXhpc3Rpbmcg c2VxdWVuY2VzICgncmVncmVzc19zMScgYW5kICdyZWdyZXNzX3MyJykgYXJlIHN5bmNlZAotJHJl c3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKLQkncG9zdGdyZXMnLCBxcSgKLQlT RUxFQ1QgbGFzdF92YWx1ZSwgaXNfY2FsbGVkIEZST00gcmVncmVzc19zMTsKLSkpOwotaXMoJHJl c3VsdCwgJzIwMHx0JywgJ1JFRlJFU0ggU0VRVUVOQ0VTIHdpbGwgc3luYyBleGlzdGluZyBzZXF1 ZW5jZXMnKTsKLSRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCi0JJ3Bvc3Rn cmVzJywgcXEoCi0JU0VMRUNUIGxhc3RfdmFsdWUsIGlzX2NhbGxlZCBGUk9NIHJlZ3Jlc3NfczI7 Ci0pKTsKLWlzKCRyZXN1bHQsICcyMDB8dCcsICdSRUZSRVNIIFNFUVVFTkNFUyB3aWxsIHN5bmMg ZXhpc3Rpbmcgc2VxdWVuY2VzJyk7CiAKLSMgQ2hlY2sgLSBuZXdseSBwdWJsaXNoZWQgc2VxdWVu Y2UgKCdyZWdyZXNzX3MzJykgaXMgbm90IHN5bmNlZAotJHJlc3VsdCA9ICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgKLQkncG9zdGdyZXMnLCBxcSgKLQlTRUxFQ1QgbGFzdF92YWx1ZSwgaXNf Y2FsbGVkIEZST00gcmVncmVzc19zMzsKLSkpOwotaXMoJHJlc3VsdCwgJzF8ZicsCi0JJ1JFRlJF U0ggU0VRVUVOQ0VTIHdpbGwgbm90IHN5bmMgbmV3bHkgcHVibGlzaGVkIHNlcXVlbmNlJyk7Cisj IFBvbGwgdW50aWwgcmVncmVzc19zMSByZWZsZWN0cyB0aGUgdXBkYXRlZCBzZXF1ZW5jZSB2YWx1 ZQorJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLAorICAgIHFx KFNFTEVDVCBsYXN0X3ZhbHVlID0gMjAwIEFORCBpc19jYWxsZWQgPSAndCcgRlJPTSByZWdyZXNz X3MxOykpCisgIG9yIGRpZSAiVGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHJlZ3Jlc3NfczEg c2VxdWVuY2UgdG8gc3luYyI7CiAKLSMgMi4gRG8gQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZS RVNIIFBVQkxJQ0FUSU9OIHdpdGggY29weV9kYXRhIGFzIGZhbHNlCi0kcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKAotCSdwb3N0Z3JlcycsIHFxKAotCUFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3NlcV9zdWIgUkVGUkVTSCBQVUJMSUNBVElPTiBXSVRIIChjb3B5X2RhdGEg PSBmYWxzZSk7Ci0pKTsKLSRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3Rn cmVzJywgJHN5bmNlZF9xdWVyeSkKLSAgb3IgZGllICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBm b3Igc3Vic2NyaWJlciB0byBzeW5jaHJvbml6ZSBkYXRhIjsKKyMgUG9sbCB1bnRpbCByZWdyZXNz X3MyIHJlZmxlY3RzIHRoZSB1cGRhdGVkIHNlcXVlbmNlIHZhbHVlCiskbm9kZV9zdWJzY3JpYmVy LT5wb2xsX3F1ZXJ5X3VudGlsKCdwb3N0Z3JlcycsCisgICAgcXEoU0VMRUNUIGxhc3RfdmFsdWUg PSAyMDAgQU5EIGlzX2NhbGxlZCA9ICd0JyBGUk9NIHJlZ3Jlc3NfczI7KSkKKyAgb3IgZGllICJU aW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3IgcmVncmVzc19zMiBzZXF1ZW5jZSB0byBzeW5jIjsK IAotIyBDaGVjayAtIG5ld2x5IHB1Ymxpc2hlZCBzZXF1ZW5jZSAoJ3JlZ3Jlc3NfczMnKSBpcyBu b3Qgc3luY2VkIHdpdGggY29weV9kYXRhCi0jIGFzIGZhbHNlLgorIyBDaGVjayAtIG5ld2x5IHB1 Ymxpc2hlZCBzZXF1ZW5jZSAoJ3JlZ3Jlc3NfczMnKSBpcyBub3Qgc3luY2VkCiAkcmVzdWx0ID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAogCSdwb3N0Z3JlcycsIHFxKAogCVNFTEVDVCBs YXN0X3ZhbHVlLCBpc19jYWxsZWQgRlJPTSByZWdyZXNzX3MzOwogKSk7CiBpcygkcmVzdWx0LCAn MXxmJywKLQknUkVGUkVTSCBQVUJMSUNBVElPTiB3aWxsIG5vdCBzeW5jIG5ld2x5IHB1Ymxpc2hl ZCBzZXF1ZW5jZSB3aXRoIGNvcHlfZGF0YSBhcyBmYWxzZScKLSk7CisJJ05ld2x5IHB1Ymxpc2hl ZCBzZXF1ZW5jZXMgYXJlIG5vdCBzeW5jZWQgYXV0b21hdGljYWxseScpOwogCiAjIyMjIyMjIyMj CiAjIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTiBzaG91bGQgcmVw b3J0IGFuIGVycm9yIHdoZW46Ci0tIAoyLjUzLjAud2luZG93cy4yCgo= --_004_TY4PR01MB169072D89B6A978E60388B87A9445ATY4PR01MB16907jp_ Content-Type: application/octet-stream; name="v12-0002-Cache-sequence-information-in-the-sequence-sync-.patch" Content-Description: v12-0002-Cache-sequence-information-in-the-sequence-sync-.patch Content-Disposition: attachment; filename="v12-0002-Cache-sequence-information-in-the-sequence-sync-.patch"; size=6358; creation-date="Fri, 13 Mar 2026 07:10:01 GMT"; modification-date="Fri, 13 Mar 2026 07:13:48 GMT" Content-Transfer-Encoding: base64 RnJvbSA1MmI2NDliMzkzNDNhMTc5ZjQ4NTcxODliMjA5YzZmYjg2MmJmZTEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpE YXRlOiBGcmksIDEzIE1hciAyMDI2IDEyOjM3OjI1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MTIg Mi8zXSBDYWNoZSBzZXF1ZW5jZSBpbmZvcm1hdGlvbiBpbiB0aGUgc2VxdWVuY2Ugc3luYwogd29y a2VyCgpQcmV2aW91c2x5LCB0aGUgc2VxdWVuY2Ugc3luYyB3b3JrZXIgd291bGQgZmV0Y2ggc2Vx dWVuY2UgbWV0YWRhdGEgZnJvbQp0aGUgY2F0YWxvZyBlYWNoIHRpbWUgaXQgbmVlZGVkIHRvIHN5 bmNocm9uaXplIHNlcXVlbmNlcy4gVGhpcyBjb3VsZCBiZQppbmVmZmljaWVudCB3aGVuIG1hbnkg c2VxdWVuY2VzIGFyZSBpbnZvbHZlZCwgYXMgdGhlIHdvcmtlciB3b3VsZCBuZWVkCnRvIHJlcGVh dGVkbHkgb3BlbiBhbmQgc2NhbiBwZ19zdWJzY3JpcHRpb25fcmVsLgoKVG8gaW1wcm92ZSB0aGlz LCBpbnRyb2R1Y2UgYSBjYWNoZSBmb3Igc2VxdWVuY2UgaW5mb3JtYXRpb24gaW4gdGhlIHNlcXVl bmNlIHN5bmMKd29ya2VyLiBUaGUgY2FjaGUgaXMgcG9wdWxhdGVkIG9uIGZpcnN0IHVzZSBhbmQg a2VwdCBhY3Jvc3Mgc3luY2hyb25pemF0aW9uCmN5Y2xlcy4gSXQgaXMgaW52YWxpZGF0ZWQgd2hl biBwZ19zdWJzY3JpcHRpb25fcmVsIGlzIG1vZGlmaWVkLCBlbnN1cmluZyB0aGF0CmNoYW5nZXMg dG8gc3Vic2NyaXB0aW9uIHJlbGF0aW9ucyBhcmUgcmVmbGVjdGVkIHByb21wdGx5LgotLS0KIC4u Li9yZXBsaWNhdGlvbi9sb2dpY2FsL3NlcXVlbmNlc3luYy5jICAgICAgICB8IDkzICsrKysrKysr KysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NlcXVl bmNlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMu YwppbmRleCBmMDRjNTBmNmNhZS4uYTQ4MDdlZTgwMTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2VxdWVuY2VzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYwpAQCAtOTgsNiArOTgsMTkgQEAgdHlwZWRl ZiBlbnVtIENvcHlTZXFSZXN1bHQKIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU2VxdWVuY2VTeW5j Q29udGV4dCA9IE5VTEw7CiAKKy8qCisgKiBDYWNoZWQgbGlzdCBvZiBzZXF1ZW5jZSBpbmZvcm1h dGlvbiAoTG9naWNhbFJlcFNlcXVlbmNlSW5mbykgZm9yIHRoZSBjdXJyZW50CisgKiBzdWJzY3Jp cHRpb24uIFRoZSBjYWNoZSBpcyBpbnZhbGlkYXRlZCB3aGVuIHBnX3N1YnNjcmlwdGlvbl9yZWwg aXMgbW9kaWZpZWQuCisgKgorICogTm90ZTogVG8gYXZvaWQgdGhlIGNvc3Qgb2Ygc2VhcmNoaW5n IGZvciBhIHNwZWNpZmljIHNlcXVlbmNlIG9uIHJlbGNhY2hlCisgKiBpbnZhbGlkYXRpb24sIHdl IGRvIG5vdCBpbnZhbGlkYXRlIHRoZSBjYWNoZSBpbW1lZGlhdGVseSB3aGVuIGEgc2VxdWVuY2Ug aXMKKyAqIGFsdGVyZWQgKGUuZy4sIHJlbmFtZWQgb3IgbW92ZWQgdG8gYW5vdGhlciBuYW1lc3Bh Y2UpLiBJbnN0ZWFkLCB3ZSB2YWxpZGF0ZQorICogdGhlIHNlcXVlbmNlIG5hbWUgYW5kIG5hbWVz cGFjZSB3aGVuIG5leHQgYXR0ZW1wdGluZyB0byBzeW5jIGl0LCBhdCB3aGljaAorICogcG9pbnQg d2UgdmVyaWZ5IHRoZSBsb2NhbCBzZXF1ZW5jZSBzdGF0ZS4KKyAqLworc3RhdGljIExpc3QgKnNl cXVlbmNlX2luZm9zID0gTklMOworc3RhdGljIGJvb2wgc2VxdWVuY2VfaW5mb3NfdmFsaWQgPSBm YWxzZTsKKwogLyoKICAqIEFwcGx5IHdvcmtlciBkZXRlcm1pbmVzIHdoZXRoZXIgYSBzZXF1ZW5j ZSBzeW5jIHdvcmtlciBpcyBuZWVkZWQuCiAgKgpAQCAtNDk5LDYgKzUxMiw5IEBAIGNvcHlfc2Vx dWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgTGlzdCAqc2VxaW5mb3MsIGJvb2wgdXBkYXRl X2xzbikKIAogI2RlZmluZSBNQVhfU0VRVUVOQ0VTX1NZTkNfUEVSX0JBVENIIDEwMAogCisJaWYg KHNlcWluZm9zID09IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCiAJd2hpbGUgKGN1cl9iYXRjaF9i YXNlX2luZGV4IDwgbl9zZXFpbmZvcykKIAl7CiAJCU9pZAkJCXNlcVJvd1tSRU1PVEVfU0VRX0NP TF9DT1VOVF0gPSB7SU5UOE9JRCwgSU5UOE9JRCwKQEAgLTcyNCwyNCArNzQwLDQ0IEBAIGNvcHlf c2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgTGlzdCAqc2VxaW5mb3MsIGJvb2wgdXBk YXRlX2xzbikKIH0KIAogLyoKLSAqIElkZW50aWZpZXMgc2VxdWVuY2VzIHRoYXQgcmVxdWlyZSBz eW5jaHJvbml6YXRpb24gYW5kIGluaXRpYXRlcyB0aGUKLSAqIHN5bmNocm9uaXphdGlvbiBwcm9j ZXNzLgorICogQ2FsbGJhY2sgZnJvbSBzeXNjYWNoZSBpbnZhbGlkYXRpb24uCisgKi8KK3N0YXRp YyB2b2lkCitpbnZhbGlkYXRlX3N5bmNpbmdfc2VxdWVuY2VfaW5mb3MoRGF0dW0gYXJnLCBTeXND YWNoZUlkZW50aWZpZXIgY2FjaGVpZCwKKwkJCQkJCQkJICB1aW50MzIgaGFzaHZhbHVlKQorewor CXNlcXVlbmNlX2luZm9zX3ZhbGlkID0gZmFsc2U7Cit9CisKKy8qCisgKiBHZXQgdGhlIGxpc3Qg b2Ygc2VxdWVuY2UgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50IHN1YnNjcmlwdGlvbi4KICAq Ci0gKiBSZXR1cm5zIHRydWUgaWYgc2VxdWVuY2VzIGhhdmUgYmVlbiB1cGRhdGVkLgorICogUmV0 dXJuIGNhY2hlZCBzZXF1ZW5jZSBzdGF0ZXMgaWYgdmFsaWQ7IG90aGVyd2lzZSBmZXRjaGVzIHRo ZW0gZnJvbSB0aGUKKyAqIGNhdGFsb2csIGNhY2hlcyB0aGUgcmVzdWx0LCBhbmQgcmV0dXJuIGl0 LgogICovCi1zdGF0aWMgYm9vbAotTG9naWNhbFJlcFN5bmNTZXF1ZW5jZXMoV2FsUmVjZWl2ZXJD b25uICpjb25uLCBib29sIHVwZGF0ZV9sc24pCitzdGF0aWMgTGlzdCAqCitmZXRjaF9zZXF1ZW5j ZV9pbmZvcyh2b2lkKQogewogCVJlbGF0aW9uCXJlbDsKIAlIZWFwVHVwbGUJdHVwOwogCVNjYW5L ZXlEYXRhIHNrZXlbMV07CiAJU3lzU2NhbkRlc2Mgc2NhbjsKIAlPaWQJCQlzdWJpZCA9IE15TG9n aWNhbFJlcFdvcmtlci0+c3ViaWQ7Ci0JYm9vbAkJc2VxdWVuY2VfY29waWVkID0gZmFsc2U7Ci0J TGlzdAkgICAqc2VxaW5mb3MgPSBOSUw7Ci0JTWVtb3J5Q29udGV4dCBvbGRjdHg7CisJTGlzdAkg ICAqdG1wX3NlcWluZm9zID0gTklMOworCisJaWYgKHNlcXVlbmNlX2luZm9zX3ZhbGlkKQorCQly ZXR1cm4gc2VxdWVuY2VfaW5mb3M7CiAKLQlBc3NlcnQoU2VxdWVuY2VTeW5jQ29udGV4dCk7CisJ LyogRnJlZSB0aGUgZXhpc3RpbmcgaW52YWxpZCBjYWNoZSBlbnRyaWVzICovCisJZm9yZWFjaF9w dHIoTG9naWNhbFJlcFNlcXVlbmNlSW5mbywgc2VxaW5mbywgc2VxdWVuY2VfaW5mb3MpCisJewor CQlwZnJlZShzZXFpbmZvLT5uc3BuYW1lKTsKKwkJcGZyZWUoc2VxaW5mby0+c2VxbmFtZSk7CisJ CXBmcmVlKHNlcWluZm8pOworCX0KKworCWxpc3RfZnJlZShzZXF1ZW5jZV9pbmZvcyk7CisJc2Vx dWVuY2VfaW5mb3MgPSBOSUw7CiAKIAlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOwogCkBAIC03 NjIsNiArNzk4LDcgQEAgTG9naWNhbFJlcFN5bmNTZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpj b25uLCBib29sIHVwZGF0ZV9sc24pCiAJCUxvZ2ljYWxSZXBTZXF1ZW5jZUluZm8gKnNlcTsKIAkJ UmVsYXRpb24Jc2VxdWVuY2VfcmVsOwogCQljaGFyCQlyZWxzdGF0ZTsKKwkJTWVtb3J5Q29udGV4 dCBvbGRjdHg7CiAKIAkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKIApAQCAtNzg0LDE3ICs4MjEs MTQgQEAgTG9naWNhbFJlcFN5bmNTZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBib29s IHVwZGF0ZV9sc24pCiAKIAkJQXNzZXJ0KHJlbHN0YXRlID09IFNVQlJFTF9TVEFURV9JTklUIHx8 IHJlbHN0YXRlID09IFNVQlJFTF9TVEFURV9SRUFEWSk7CiAKLQkJLyoKLQkJICogV29ya2VyIG5l ZWRzIHRvIHByb2Nlc3Mgc2VxdWVuY2VzIGFjcm9zcyB0cmFuc2FjdGlvbiBib3VuZGFyeSwgc28K LQkJICogYWxsb2NhdGUgdGhlbSB1bmRlciBTZXF1ZW5jZVN5bmNDb250ZXh0LgotCQkgKi8KLQkJ b2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNlcXVlbmNlU3luY0NvbnRleHQpOworCQkv KiBDYWNoZSB0aGUgaW5mb3JtYXRpb24gaW4gYSBwZXJtYW5lbnQgbWVtb3J5IGNvbnRleHQgKi8K KwkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKENhY2hlTWVtb3J5Q29udGV4dCk7CiAJ CXNlcSA9IHBhbGxvYzBfb2JqZWN0KExvZ2ljYWxSZXBTZXF1ZW5jZUluZm8pOwogCQlzZXEtPmxv Y2FscmVsaWQgPSBzdWJyZWwtPnNycmVsaWQ7CiAJCXNlcS0+bnNwbmFtZSA9IGdldF9uYW1lc3Bh Y2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShzZXF1ZW5jZV9yZWwpKTsKIAkJc2VxLT5zZXFu YW1lID0gcHN0cmR1cChSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShzZXF1ZW5jZV9yZWwpKTsKIAkJ c2VxLT5yZWxzdGF0ZSA9IHJlbHN0YXRlOwotCQlzZXFpbmZvcyA9IGxhcHBlbmQoc2VxaW5mb3Ms IHNlcSk7CisJCXRtcF9zZXFpbmZvcyA9IGxhcHBlbmQodG1wX3NlcWluZm9zLCBzZXEpOwogCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKIAogCQl0YWJsZV9jbG9zZShzZXF1ZW5jZV9y ZWwsIE5vTG9jayk7CkBAIC04MDQsMTggKzgzOCwxMiBAQCBMb2dpY2FsUmVwU3luY1NlcXVlbmNl cyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGJvb2wgdXBkYXRlX2xzbikKIAlzeXN0YWJsZV9lbmRz Y2FuKHNjYW4pOwogCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAotCUNvbW1p dFRyYW5zYWN0aW9uQ29tbWFuZCgpOwotCi0JLyoKLQkgKiBFeGl0IGVhcmx5IGlmIG5vIGNhdGFs b2cgZW50cmllcyBmb3VuZCwgbGlrZWx5IGR1ZSB0byBjb25jdXJyZW50IGRyb3BzLgotCSAqLwot CWlmICghc2VxaW5mb3MpCi0JCXJldHVybiBmYWxzZTsKKwlzZXF1ZW5jZV9pbmZvcyA9IHRtcF9z ZXFpbmZvczsKKwlzZXF1ZW5jZV9pbmZvc192YWxpZCA9IHRydWU7CiAKLQkvKiBQcm9jZXNzIHNl cXVlbmNlcyAqLwotCXNlcXVlbmNlX2NvcGllZCA9IGNvcHlfc2VxdWVuY2VzKGNvbm4sIHNlcWlu Zm9zLCB1cGRhdGVfbHNuKTsKKwlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKIAotCXJldHVy biBzZXF1ZW5jZV9jb3BpZWQ7CisJcmV0dXJuIHNlcXVlbmNlX2luZm9zOwogfQogCiAvKgpAQCAt ODMwLDYgKzg1OCwxNCBAQCBzdGFydF9zZXF1ZW5jZV9zeW5jKHZvaWQpCiB7CiAJQXNzZXJ0KGFt X3NlcXVlbmNlc3luY193b3JrZXIoKSk7CiAKKwkvKgorCSAqIFNldHVwIGNhbGxiYWNrIGZvciBz eXNjYWNoZSBzbyB0aGF0IHdlIGtub3cgd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBpbgorCSAqIHRo ZSBzdWJzY3JpcHRpb24gcmVsYXRpb24gc3RhdGUuCisJICovCisJQ2FjaGVSZWdpc3RlclN5c2Nh Y2hlQ2FsbGJhY2soU1VCU0NSSVBUSU9OUkVMTUFQLAorCQkJCQkJCQkgIGludmFsaWRhdGVfc3lu Y2luZ19zZXF1ZW5jZV9pbmZvcywKKwkJCQkJCQkJICAoRGF0dW0pIDApOworCiAJUEdfVFJZKCk7 CiAJewogCQljaGFyCSAgICplcnI7CkBAIC04NzUsNiArOTExLDcgQEAgc3RhcnRfc2VxdWVuY2Vf c3luYyh2b2lkKQogCQkJYm9vbAkJc2VxdWVuY2VfY29waWVkID0gZmFsc2U7CiAJCQlNZW1vcnlD b250ZXh0IG9sZGN0eDsKIAkJCWJvb2wJCXVwZGF0ZV9sc247CisJCQlMaXN0CSAgICpzZXFpbmZv czsKIAkJCVRpbWVzdGFtcFR6IG5vdyA9IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsKIAogCQkJQ0hF Q0tfRk9SX0lOVEVSUlVQVFMoKTsKQEAgLTkwNiw4ICs5NDMsMTAgQEAgc3RhcnRfc2VxdWVuY2Vf c3luYyh2b2lkKQogCQkJLyoKIAkJCSAqIFN5bmNocm9uaXplIGFsbCBzZXF1ZW5jZXMgKGJvdGgg UkVBRFkgYW5kIElOSVQgc3RhdGVzKS4KIAkJCSAqLwotCQkJc2VxdWVuY2VfY29waWVkID0gTG9n aWNhbFJlcFN5bmNTZXF1ZW5jZXMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwKLQkJCQkJCQkJCQkJ CQkgIHVwZGF0ZV9sc24pOworCQkJc2VxaW5mb3MgPSBmZXRjaF9zZXF1ZW5jZV9pbmZvcygpOwor CisJCQlzZXF1ZW5jZV9jb3BpZWQgPSBjb3B5X3NlcXVlbmNlcyhMb2dSZXBXb3JrZXJXYWxSY3ZD b25uLCBzZXFpbmZvcywKKwkJCQkJCQkJCQkJIHVwZGF0ZV9sc24pOwogCiAJCQlNZW1vcnlDb250 ZXh0UmVzZXQoU2VxdWVuY2VTeW5jQ29udGV4dCk7CiAJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3R4KTsKLS0gCjIuNTMuMC53aW5kb3dzLjIKCg== --_004_TY4PR01MB169072D89B6A978E60388B87A9445ATY4PR01MB16907jp_--