Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRWZg-0006pt-FR for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Feb 2023 11:00:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pRWZf-0000Zk-Cf for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Feb 2023 11:00:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRWZe-0000Zb-Ve for pgsql-hackers@lists.postgresql.org; Mon, 13 Feb 2023 11:00:43 +0000 Received: from esa3.fujitsucc.c3s2.iphmx.com ([68.232.151.212]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRWZa-0000LH-AH for pgsql-hackers@lists.postgresql.org; Mon, 13 Feb 2023 11:00:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1676286038; x=1707822038; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=zKu0uC9yDzENpwC1nCFHR5MApqLjmN1sslWBdxL8vDg=; b=jRMRZYE8xVTowusoPKEVShE2c2PuaIqpl3Om1dslAgDEZ5z/O1JgdbFb bYNfog+mTHTUEWWJpJ0qmOGYH9ev2tJH28UhjUd2/M6qPyR2ByBjR5mQY 2r/GbDt7jdDMJF1Tp4V+ykdSTPgRGwtlHrdcC/JwEcp4M5hvOiN71FCM0 aCuUDkI8eCsw98n94JYNzwzmmYw3UYJB/pjIwHT1GlncA2nFiZyU44F3H BEeuI0Ry1wkUO+YfIsdT7Dxnf41ZctLpNtjiVrZTuAWACILmib3cckNua t7P6OJw5/9WJ1j+a4GqqG8jILEt3K+7MCMELX7o6FiUFiI3Fg5xxCZRcG w==; X-IronPort-AV: E=McAfee;i="6500,9779,10619"; a="84913860" X-IronPort-AV: E=Sophos;i="5.97,293,1669042800"; d="scan'208";a="84913860" Received: from mail-tyzapc01lp2040.outbound.protection.outlook.com (HELO APC01-TYZ-obe.outbound.protection.outlook.com) ([104.47.110.40]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Feb 2023 20:00:35 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hKTMfQVcyTzrSR3nN06qKEy3lG7x3G36uljaTrBuRfikQunEsQ9RsB0WVJldl7W0katnRzvRR8Mdw4Vvy1REjkpQw9scuBUy3qTd80P9tXASlXcany4RawC/QNiC2NbJ07Z6v3QqsHmu457pc94JndG+WAMaxyf/629h5rV0Ad/0dShnENK8oGyzFb7iZ1xUfufb+WywctsZtQ/nVUeEs6U+TJmgxHgQJ1DgDVikgR9Po0A2n95AIWMku4nKnjEtBT3XKd7VBi/YEOvCl0D7UQ8IyoUAwMDF8IlHkF3qSK1EOAYTMMeZkThzpg9t5LG6XohQ1n0tP2tiOTlWVNVIbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zKu0uC9yDzENpwC1nCFHR5MApqLjmN1sslWBdxL8vDg=; b=b/9T07HopKaEYUxzdkIN9QBpMIqyfMKH3aLJ5iAjeZJmRtZX9CvylqqL+R4Fh4RWBOFMwDUGwocVhoK/YgFuIwGaKDILZzvhM69HKBnrcxSk3zm9UyLHpzwQ6eaF0N6/7kCG5cWuRDXIEsDpo/q6KhS4R04c7wP7t9Wf9pLugnow3r12ARj+fh0BO5xbDo+moIqK2cxkDqgyPksfq+6H61nPAzq+Fo6Na8waOIPN96l7/aOP6qkKyRo1n+j+Qt4UTKaPm0FHuR2iyBbR57N8zCggM2/MaYdoNpA65yFVBL9kgsZIVQi1pmOvklmmE5NW7OE0ggrRRfrWoduyB9AB1A== 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 Received: from OSZPR01MB6310.jpnprd01.prod.outlook.com (2603:1096:604:f7::9) by TYWPR01MB10001.jpnprd01.prod.outlook.com (2603:1096:400:1d5::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.24; Mon, 13 Feb 2023 11:00:31 +0000 Received: from OSZPR01MB6310.jpnprd01.prod.outlook.com ([fe80::dd83:55c2:b961:f53d]) by OSZPR01MB6310.jpnprd01.prod.outlook.com ([fe80::dd83:55c2:b961:f53d%3]) with mapi id 15.20.6086.024; Mon, 13 Feb 2023 11:00:31 +0000 From: "shiy.fnst@fujitsu.com" To: =?utf-8?B?w5ZuZGVyIEthbGFjxLE=?= , Amit Kapila CC: Marco Slot , Tom Lane , Andres Freund , "wangw.fnst@fujitsu.com" , PostgreSQL Hackers Subject: RE: [PATCH] Use indexes on the subscriber when REPLICA IDENTITY is full on the publisher Thread-Topic: [PATCH] Use indexes on the subscriber when REPLICA IDENTITY is full on the publisher Thread-Index: AQHYlfR7hf0+d/C4EkWQSOVngV415q2Ds22AgAGwZACAAVjRgIAAp0wAgAFDuYCAAfjlAIAVnJQAgAUWeQCAByaZAIALYnOAgAQe1+CAAPJNAIBQzYTQgADl8QCABa1vgIAAnAmAgAJCyOCAAjPXgIAhRLMAgCd0kQCACRS1gIApNn4AgAM5QoCAAAlUAIAQwyqAgAsHsICABLrhgIAEaA8AgBFyYKA= Date: Mon, 13 Feb 2023 11:00:31 +0000 Message-ID: References: <20221206184756.2fdpd4epvyftutoe@awork3.anarazel.de> <3466340.1673117404@sss.pgh.pa.us> <20230109200347.ps43ri7llrxusgu5@awork3.anarazel.de> <4184492.1673296630@sss.pgh.pa.us> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9NjU2MTBiYzktZGE1My00YTgxLTg0ZWQtZjYwZDQ2YTJj?= =?utf-8?B?M2Y2O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFRO+/ou++gA==?= =?utf-8?B?776LO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX1NldERhdGU9MjAyMy0wMi0xM1QxMDo1OToyMlo7TVNJUF9MYWJl?= =?utf-8?B?bF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfU2l0ZUlk?= =?utf-8?Q?=3Da19f121d-81e1-4858-a9d8-736e267fd4c7;?= 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: OSZPR01MB6310:EE_|TYWPR01MB10001:EE_ x-ms-office365-filtering-correlation-id: cc9082af-d670-447e-ec58-08db0db1862f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uOEzg6Zobiv14NJ3VJ/Hdq3+ry3xE/JRpgbtekIaTaVXXH6xkXGACaFM0rfB9j/HjwwWlzLJNO7YuIG4A95BT2WGKg16NhMEXY36NX7HUP+LvRzDVi6WnwrFhg4rWHgGCyVPZGlZiXoUetszU+OdLOBzhAdWvVJelKw4axhUOaXL48xJIiycFAmzksMfMPC4MfeXNtx1WIInG6NM+FRvFbjDLOgwiXeHElnDCN5zuedKtUE9slloWYOVGhHaxy/UwfzSAD55bCSRHDA5KQwUaI9xfXxxEf9Zdcg+UNy9uCsv3RjzwQ3guOuR8pF1yLhHGuzQkxwVgaVkh5QV8iJkk1A0RXIXH4iEpGLpbA3MOad4lNjdT3r24XH62IlYiYa1GfEnzLr6oEK4+4VYU0FCGzMfahFdsPNaWyvio/tbWQpxGW8EDidQJ43d7Nt8182oJQVCSl4/+0NxdfGnyR2+rAt+eKhPjbSUGm/12trX0ooV5IEKB3XDoRjMauPI8nJ1i35/sxmRISvR5Nc/qQoom/s2XXu3H5PQkFY63fM/PLIyMTK+NTZ7V6m1mwepiH+QDlpYQEVhnfWdMiI0rpMkidr6onJ29kdavxLDPcOdLUVeBd7ES7tZdv6lUfQ2hBg3OM3JzOooSwL58qzgVbklQE7IuNR8nNqhqMqeaPk7fODNTVI/b92IB+I0YSKwLMObWJpvBWxLpmgHJ7TN84abpxc2nHrRb25+idcWIlDO4lo= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSZPR01MB6310.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(366004)(376002)(346002)(39860400002)(136003)(396003)(451199018)(1590799015)(478600001)(85182001)(38100700002)(122000001)(66446008)(4326008)(66556008)(76116006)(8676002)(82960400001)(83380400001)(66946007)(66476007)(54906003)(110136005)(64756008)(316002)(26005)(7696005)(6506007)(186003)(9686003)(53546011)(8936002)(71200400001)(38070700005)(41300700001)(66574015)(5660300002)(33656002)(55016003)(86362001)(2906002)(52536014)(1580799012);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?alZ6Vmg1SklvcVJVeVlqQVFMUi80ZEo2VkcxNzJMS2JnVWloTnMxZDRKSnJQ?= =?utf-8?B?OWlFM3E3VFBGdXp2aGs4SmJMb0Jzend2dzZnSy9pMlJvYWJ6aTNyMlJhdm9p?= =?utf-8?B?THMxUGorOFdSRllRWUNvZmF0MlgzZzFUWlhac0I3NmZpR28xM2ZSU2JUNHJu?= =?utf-8?B?d0tYTEFBcDY0TTdmUUpmNmpaeTE0OVV3TFBkR3VIaGxVODRkVUJ0SnVHL00r?= =?utf-8?B?RStNcUJheWxwVmE4cEk3N2Y3WG9PVFpaaVF3Ui9Pc2VGRlZMQkJzbjNqTzZ4?= =?utf-8?B?aE84RFhvTWJvWEV2Y3dsdXVPc01NaFY5c3FVS04xWlFrNnRJaHUwd1kySEFn?= =?utf-8?B?ejd1UkhnamhycUdRNDVsbzR4KzBGMlBKZE5DUnRRSFJvOER5djV5YXlqRGZW?= =?utf-8?B?aGNTVHo2dFYxUm0zbU1WZmwwOFV3N2hTbno1dGVqV2J2UjY5ZTFxc1R0R3Vh?= =?utf-8?B?U3JISDVyd2dGcXRVRDFjb3dnREJMYmhjTXByWncwZzNCWUE4TFpORFFrNk9G?= =?utf-8?B?UjBMTXhIeGhLOGJLbGRBRjRRQkZ0VlV3bGxpaENWV2NrRVRGM21xUlBKZkFG?= =?utf-8?B?UUtuaDdENXlrM3h4VWlaMjFUdVBNZE9Ob1MrRGtxcitabE1sZ2RnZG16ZDJm?= =?utf-8?B?bnhFMjNNcVpNNmp0TENGZ0kvbjMzZk14dGs5WTFaNnlnaHNEQS9PVXVMYVQr?= =?utf-8?B?VjRYaVJ5N1UvQklvODZyS2FrdjhRRUlxVHBmbW1wTTAwQURvSThuaDNmeFhH?= =?utf-8?B?T0xCMFpiaDlmK0lUcXpSdFRBYTZENzYzblFaQjVvcjdKVDNwVVVyUXhjUXox?= =?utf-8?B?N24wRHVGNUFGWVV6MG1IZVZTMlNhMWplb2hnYVEvOUJ6K0lrNnkzSHByWjNQ?= =?utf-8?B?bUQ2YmpnVjlHYThHTnlFOHVGc0IzTm1kSnVrVEkrUXBVT3VrZzV2Rm5hTVlv?= =?utf-8?B?a21sYy9MWmpSSndBQlIwR0U2dlpUQmkzZHNCcGV2NUZyajRuYjkwemFLdHNu?= =?utf-8?B?Qm5LTDRXRld5NDhoenlKMnZvOFlOUGVTRUg2Wkt5Ukh5ai94RlBMOWlkQSt4?= =?utf-8?B?eGNObFZkdCs1SHJRZFhOYzJyemdKTDB0V0lrK0F3UXRzWWhZbUJCdnJlWVNF?= =?utf-8?B?bjk2Q3BWZG1LRlpoVWw2RE1nZXVOR2ViL0MyY05YL3ovUnh6TmdzSVNSSWo3?= =?utf-8?B?cG8vS0lORHFlV05vQkE1QU9YZGdKeWMrMDZqcS8xaHZrT1pmMnVqdDI5SXpk?= =?utf-8?B?YjU5SGo0NlVHY24rNlRpUUErM2RvWmpnSlltM044VzRnNUIrSWVjUVZrdUlt?= =?utf-8?B?dzdwVVV3ZjFoejBScmRCR3dDbi9kOGNIQ2IzbEdpeVczSktGL1BjTUJIZnpa?= =?utf-8?B?b25UNnB2Y2UwamhGdENtUkF1Ky9zNk1lM1orMVQ4TW5VTWxESTk3MDdkZXFR?= =?utf-8?B?VDZzcU1WMWszZ1ozYjJvT1ZVa2M5cE9JeURnVmsvbmVSeHBCMEVKd3ErM1Fo?= =?utf-8?B?bkR1NTBidnVHWVQzQ0RmZEY3UmUrekFGSzBCQURlcnpVQ2hzSXFDOUJ1N0hP?= =?utf-8?B?NGxsRGlHVkwzNEhEcG9jU0VNMytvbzZQNnlsSkNZSGN0MmlhU1JMd2t4emZv?= =?utf-8?B?S3h3MzduQzR6d2N3bkNBZmxiRzFkaUFlMzloTWtDQUgwdzZDOHdyNjQ5SEk5?= =?utf-8?B?QkczVkxLSjFGYUVZakxvbnBPcUNKMW9ieW10VFYrWlRuOXhNMEIwZVdUZ3Ft?= =?utf-8?B?bnlNUmZBeTZaeVdRd245bXFhRzBDZVppS1VsWTFEVTFzSDg5YjcvUzBBRWE5?= =?utf-8?B?V2wyc3ZqRTh4eFI1N1B1RmhvSVZCd1VKcEEvQ2RraVU4OVVEKzBVb0lYMnov?= =?utf-8?B?ZzZFMWE5TjRMSmZtanpWMjhVQ0ZaVys0ODg0VCtjUHkxbVBzZlFhSzVVcmRW?= =?utf-8?B?c1BTaVo5MUM1MllUN200ZUlKbEY0bGc1TG1zV1JHWVlNQzF4UUJPOWFhNEcx?= =?utf-8?B?SmQ3Yk80U09SdzdBbjdpUXBWVDlaVEhBOUJCdzNUTGdhLzZudzVMeTA5c0dM?= =?utf-8?B?NExZNlBGWFd1QWMrczhmUXdabWxQMnVUN2VlZ25CNTFjRXM1UmhGa0hEdERG?= =?utf-8?Q?oQ0SRWPOCpeundP6J9+9H1kw6?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cYCdTMwabjKjlULrkahtiA8lkuB9+9vNh9muXx6Zm++csZOOx//q5j7A1wQGyX3WyHhbpxyxYAftCcPSRqJ7P8usSmGtpkeKkT8ZUNcGKHU7Rd2ZYG9PWcL8lfoVeVqrDYrem6iBcG6Ew1j+SAmh1LPzeOiGWLh2r2Vsw6ItmGIGW4+YmAO6d3HtK27Q4B7nd1IPURQKwPtj8Q0sDIciuYuev61dVLGtd/SjElA2orOf4uoVa4HIfxzIWb4iJZ/uvk5amCxyCdeSD4090JdeSDez2QGwP/f3cKKotrrrKH4j0hUKFKaBAja//lOXz8tBhY5dqpAiS9mn/ue+K8vuszGyZM94PXQVE/b69td+RwnEWQlGjsRjC4R3yMZusFmStr1ZRVtug+rCzq0zV8EQxG1fF5UPxUQBtkYSez5pTCTzeHJX9LZplsGlDFRdG8/wPy4cthkEIXwmy7E5503VHFu6V81dUKDgF79Sl7CDrPzgj4DkuH7HCfk9m0sUcUrZJZuXrLvT7SozCYvwayhr7rY53UG5m85yvPneBpoJWpu8Gys/tuDdTzphKfTR9lRCAKhbndLYPMVS/WDDOkpLXoZQtVv32ANyCl/P75k3KBdzOtM2ejGuifwhJKTMUHep+EMYqkaqzJnOvNPmM77V+N3aaPovuaD4ZZAADueFZfmDH9kZkT8AiMT/6q2w7W6uyj0Tzi5Q5serHX1HemXgCOARPYQPKRE8VwHjkmXOwfskaogpcf+Uiiv+1Jmwr59pG9+n9KRwFqsO/CJitsfN7lk/t0LO+s3rwUX6huw7hhkcnm0fm1LFL4/EzSRH+atL4QLkMTWN8SfCjsfGTr9R8UZUnD4Z7tQGMkNKM9OjRjoASQFF0aHeaTf6QIr15Ciz X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OSZPR01MB6310.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc9082af-d670-447e-ec58-08db0db1862f X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2023 11:00:31.4404 (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: G/VUX8CBo+mC2V4a0t7PC0UZkzECdX50SRBgdK54p8jEcdvu+XaydkFkonwDXmdyPa0+M2Kp3tWypJ39TwoZAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB10001 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gVGh1LCBGZWIgMiwgMjAyMyA0OjM0IFBNIMOWbmRlciBLYWxhY8SxIDxvbmRlcmthbGFjaUBn bWFpbC5jb20+IHdyb3RlOg0KPg0KPj4NCj4+IGFuZCBpZiB0aGVyZSdzIG1vcmUNCj4+IHRoYW4g b25lIGNhbmRpZGF0ZSBpbmRleCBwaWNrIGFueSBvbmUuIEFkZGl0aW9uYWxseSwgd2UgY2FuIGFs bG93DQo+PiBkaXNhYmxpbmcgdGhlIHVzZSBvZiBhbiBpbmRleCBzY2FuIGZvciB0aGlzIHBhcnRp Y3VsYXIgY2FzZS4gSWYgd2UgYXJlDQo+PiB0b28gd29ycmllZCBhYm91dCBBUEkgY2hhbmdlIGZv ciBhbGxvd2luZyB1c2VycyB0byBzcGVjaWZ5IHRoZSBpbmRleA0KPj4gdGhlbiB3ZSBjYW4gZG8g dGhhdCBsYXRlciBvciBhcyBhIHNlcGFyYXRlIHBhdGNoLg0KPj4NCj4NCj4gT24gdjIzLCBJIGRy b3BwZWQgdGhlIHBsYW5uZXIgc3VwcG9ydCBmb3IgcGlja2luZyB0aGUgaW5kZXguIEluc3RlYWQs IGl0IHNpbXBseQ0KPiBpdGVyYXRlcyBvdmVyIHRoZSBpbmRleGVzIGFuZCBwaWNrcyB0aGUgZmly c3Qgb25lIHRoYXQgaXMgc3VpdGFibGUuDQo+DQo+IEknbSBjdXJyZW50bHkgdGhpbmtpbmcgb24g aG93IHRvIGVuYWJsZSB1c2VycyB0byBvdmVycmlkZSB0aGlzIGRlY2lzaW9uLg0KPiBPbmUgb3B0 aW9uIEknbSBsZWFuaW5nIHRvd2FyZHMgaXMgdG8gYWRkIGEgc3ludGF4IGxpa2UgdGhlIGZvbGxv d2luZzoNCj4NCj4gQUxURVIgU1VCU0NSSVBUSU9OIC4uIEFMVEVSIFRBQkxFIC4uLiBTRVQgSU5E RVggLi4uDQo+DQo+IFRob3VnaCwgdGhhdCBzaG91bGQgcHJvYmFibHkgYmUgYSBzZXBlcmF0ZSBw YXRjaC4gSSdtIGdvaW5nIHRvIHdvcmsNCj4gb24gdGhhdCwgYnV0IHN0aWxsIHdhbnRlZCB0byBz aGFyZSB2MjMgZ2l2ZW4gcGlja2luZyB0aGUgaW5kZXggc291bmRzDQo+IGNvbXBsZW1lbnRhcnks IG5vdCBzdHJpY3RseSByZXF1aXJlZCBhdCB0aGlzIHBvaW50Lg0KPg0KDQpUaGFua3MgZm9yIHlv dXIgcGF0Y2guIEhlcmUgYXJlIHNvbWUgY29tbWVudHMuDQoNCjEuDQpJIG5vdGljZWQgdGhhdCBn ZXRfdXNhYmxlX2luZGV4b2lkKCkgaXMgY2FsbGVkIGluIGFwcGx5X2hhbmRsZV91cGRhdGVfaW50 ZXJuYWwoKQ0KYW5kIGFwcGx5X2hhbmRsZV9kZWxldGVfaW50ZXJuYWwoKSB0byBnZXQgdGhlIHVz YWJsZSBpbmRleC4gQ291bGQgdXNhYmxlSW5kZXhPaWQNCmJlIGEgcGFyYW1ldGVyIG9mIHRoZXNl IHR3byBmdW5jdGlvbnM/IEJlY2F1c2Ugd2UgaGF2ZSBnb3QgdGhlDQpMb2dpY2FsUmVwUmVsTWFw RW50cnkgd2hlbiBjYWxsaW5nIHRoZW0gYW5kIGlmIHdlIGRvIHNvLCB3ZSBjYW4gZ2V0DQp1c2Fi bGVJbmRleE9pZCB3aXRob3V0IGdldF91c2FibGVfaW5kZXhvaWQoKS4gT3RoZXJ3aXNlIGZvciBw YXJ0aXRpb25lZCB0YWJsZXMsDQpsb2dpY2FscmVwX3BhcnRpdGlvbl9vcGVuKCkgaXMgY2FsbGVk IGluIGdldF91c2FibGVfaW5kZXhvaWQoKSBhbmQgc2VhcmNoaW5nDQp0aGUgZW50cnkgdmlhIGhh c2hfc2VhcmNoKCkgd2lsbCBpbmNyZWFzZSBjb3N0Lg0KDQoyLg0KKwkJCSAqIFRoaXMgYXR0cmli dXRlIGlzIGFuIGV4cHJlc3Npb24sIGFuZA0KKwkJCSAqIFN1aXRhYmxlSW5kZXhQYXRoc0ZvclJl cElkZW50RnVsbCgpIHdhcyBjYWxsZWQgZWFybGllciB3aGVuIHRoZQ0KKwkJCSAqIGluZGV4IGZv ciBzdWJzY3JpYmVyIHdhcyBzZWxlY3RlZC4gVGhlcmUsIHRoZSBpbmRleGVzDQorCQkJICogY29t cHJpc2luZyAqb25seSogZXhwcmVzc2lvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZWxpbWluYXRlZC4N Cg0KVGhlIGNvbW1lbnQgbG9va3MgbmVlZCB0byBiZSB1cGRhdGVkOg0KU3VpdGFibGVJbmRleFBh dGhzRm9yUmVwSWRlbnRGdWxsDQotPg0KRmluZFVzYWJsZUluZGV4Rm9yUmVwbGljYUlkZW50aXR5 RnVsbA0KDQozLg0KDQogCS8qIEJ1aWxkIHNjYW5rZXkgZm9yIGV2ZXJ5IGF0dHJpYnV0ZSBpbiB0 aGUgaW5kZXguICovDQotCWZvciAoYXR0b2ZmID0gMDsgYXR0b2ZmIDwgSW5kZXhSZWxhdGlvbkdl dE51bWJlck9mS2V5QXR0cmlidXRlcyhpZHhyZWwpOyBhdHRvZmYrKykNCisJZm9yIChpbmRleF9h dHRvZmYgPSAwOyBpbmRleF9hdHRvZmYgPCBJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZLZXlBdHRy aWJ1dGVzKGlkeHJlbCk7DQorCQkgaW5kZXhfYXR0b2ZmKyspDQogCXsNCg0KU2hvdWxkIHRoZSBj b21tZW50IGJlIGNoYW5nZWQ/IEJlY2F1c2Ugd2Ugc2tpcCB0aGUgYXR0cmlidXRlcyB0aGF0IGFy ZSBleHByZXNzaW9ucy4NCg0KNC4NCisJCQlBc3NlcnQoUmVsYXRpb25HZXRSZXBsaWNhSW5kZXgo cmVsKSAhPSBSZWxhdGlvbkdldFJlbGlkKGlkeHJlbCkgJiYNCisJCQkJICAgUmVsYXRpb25HZXRQ cmltYXJ5S2V5SW5kZXgocmVsKSAhPSBSZWxhdGlvbkdldFJlbGlkKGlkeHJlbCkpOw0KDQpNYXli ZSB3ZSBjYW4gY2FsbCB0aGUgbmV3IGZ1bmN0aW9uIGlkeElzUmVsYXRpb25JZGVudGl0eU9yUEso KT8NCg0KUmVnYXJkcywNClNoaSBZdQ0K