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.94.2) (envelope-from ) id 1uBYYx-003LaP-94 for pgsql-bugs@arkaria.postgresql.org; Sun, 04 May 2025 12:35:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uBYYw-000VF3-69 for pgsql-bugs@arkaria.postgresql.org; Sun, 04 May 2025 12:35:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uBYYv-000VEv-SN for pgsql-bugs@lists.postgresql.org; Sun, 04 May 2025 12:35:17 +0000 Received: from loire.is.ed.ac.uk ([129.215.16.10]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uBYYt-0006mU-0b for pgsql-bugs@lists.postgresql.org; Sun, 04 May 2025 12:35:17 +0000 Received: from exseed.ed.ac.uk (hbdat3.is.ed.ac.uk [129.215.235.38]) by loire.is.ed.ac.uk (8.15.2/8.15.2) with ESMTPS id 544CZA6i2708511 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 4 May 2025 13:35:10 +0100 Received: from hbdkb4.is.ed.ac.uk (129.215.235.39) by hbdat3.is.ed.ac.uk (129.215.235.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Sun, 4 May 2025 13:35:10 +0100 Received: from AM0PR83CU005.outbound.protection.outlook.com (40.93.65.11) by hbdkb4.is.ed.ac.uk (129.215.235.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10 via Frontend Transport; Sun, 4 May 2025 13:35:10 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M5euUVy6qcLm2bLHMx/LKx8cWoYoIYtucKxTJ02uY1iyVaH5Gt0S+oJZbGkkjEoWPeR/J8INC3lAC4VnIQLQED3I0JOG8tTMYvyHVSAHWRaDgq26jHyY/RxkYIQ1BCWcfW38xesbdifAQoZI6Wx4lIH7z7m/Jbtft/5juni+7y8XGF3Jhcvzb8QhHjXvirsP6Q5N0J0YRH70+2pt5alTQFL4YASrIpBWOhJ72qe8U4NOIAaO4D3UqELACnUYLt1Gbp/gcknzDKm9j8gkNbqHkZ6AzAkv0pR9oZVo4hIlqdjuKuXcBJnTcElcmwU3OclOCNg8Qqb5t74hmwbtCPChcg== 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=nRt8LKWHKEuxUSJE/pEMZkMLOqAPH5vowdNcE8TvdFs=; b=HFhVkgd0WgwiyLPcqkgD9r2e6BiPJk5DH/PyzgZsoul6i35xHWUhV0cGJgF6XZEFq9pUR497fwHWVhWsSbBIy8wLfo57ntTbHe+de3fN7KJ/vPrvrBm/iWkt//XedHwwgJPVz8aRiZPTfzzoztj8pxXDsW9lt8lpha8wnWxOuVLoE1zEKNfucGxjIt0kVym1JwGoiS79yrgV+dGuHGn5m+LtXh7bD78A0yUkJ16wAYLpwlqwKiJ1oYenQkcUZdJrMVB8fLGJwOsBW2JvhVS/Wrw/fwL4iAAjgcqaPWRwo6dkWcBl9WAhnhT3k2xv5LV3qqRKiY4T5HpamV9oAzL3EQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ed.ac.uk; dmarc=pass action=none header.from=ed.ac.uk; dkim=pass header.d=ed.ac.uk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ed.ac.uk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nRt8LKWHKEuxUSJE/pEMZkMLOqAPH5vowdNcE8TvdFs=; b=jLajYTmcjeF8d9TVvIBu8bQUXkmOy7GLPmPeZOwHKZsCNBUmZ8mUZa/4E9oQKuMSKtRXFgNdS2abI0prLJgvOP1Z+YyD9ME2mXqqVDy0Mos4vJtO6Azfus8HDvT7TzLtTv7lQqjbPhu/ipMIZMOqc5v77LtvkoSd7YktVz0pbInbQ6pKcL7kc2SCcopIw2+2jPzbF3jMlO8U7bR3+ZZMBJKMME09VJys4K8DKAFva8CYhBP5m5U2EYV9NHEZfk2uebqrPnshEjiA6iE43/wh9fXHsADX1qwNqvrp++9wmxBlvgGk0FpkGXQ08aXEoQqA0YOyuhvk2Nnn2MKkTVssLA== Received: from AS2PR05MB10442.eurprd05.prod.outlook.com (2603:10a6:20b:605::6) by DB9PR05MB7721.eurprd05.prod.outlook.com (2603:10a6:10:218::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.23; Sun, 4 May 2025 12:35:08 +0000 Received: from AS2PR05MB10442.eurprd05.prod.outlook.com ([fe80::3fc0:a77f:dda2:e1c7]) by AS2PR05MB10442.eurprd05.prod.outlook.com ([fe80::3fc0:a77f:dda2:e1c7%2]) with mapi id 15.20.8699.026; Sun, 4 May 2025 12:35:08 +0000 From: Sergey Koposov To: "lepihov@gmail.com" , "tgl@sss.pgh.pa.us" CC: "melanieplageman@gmail.com" , "tomas@vondra.me" , "pgsql-bugs@lists.postgresql.org" , "a.rybakina@postgrespro.ru" Subject: Re: BUG #18909: Query creates millions of temporary files and stalls Thread-Topic: BUG #18909: Query creates millions of temporary files and stalls Thread-Index: AQHbu5KAmzIBRhKfLUOu2MpwWKoq/7O/55MAgAAIwoCAASSaAIAABFcAgAAHDACAABIJgIAAF3oAgAAprICAAAO9AIAAB4IAgAAE0oCAAAUFgIAAkyiAgABBDwCAAAfXAIAABiWA Date: Sun, 4 May 2025 12:35:08 +0000 Message-ID: <59090d89e656fde93b539e95a23a740d532d4f88.camel@ed.ac.uk> References: <18909-e5e1b702c9441b8a@postgresql.org> <2051617.1746223978@sss.pgh.pa.us> <5e98fba645682c40bf5f88ef858963ade9681956.camel@ed.ac.uk> <2177960.1746289626@sss.pgh.pa.us> <80bab58be182e80e73b5d5f71664ede9ce58f957.camel@ed.ac.uk> <8fc51cd7-115a-425a-828e-c99defb5afef@gmail.com> <0ce957be37434cfca4820d1e89a70cb2b456d3db.camel@ed.ac.uk> <2216372.1746309806@sss.pgh.pa.us> <2221240.1746312453@sss.pgh.pa.us> <9691212b-86f0-4476-940e-2e4ba0dd0cf9@gmail.com> <0a2ccb925ec37c93a143359de6381392779fdde4.camel@ed.ac.uk> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.52.3-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ed.ac.uk; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS2PR05MB10442:EE_|DB9PR05MB7721:EE_ x-ms-office365-filtering-correlation-id: 19807843-5b2b-4cfb-b949-08dd8b081add x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|10070799003|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?WC9ORDF4Kzc0YXlrWFJrdVhicU40VWt0dGwvSnJySXZ3dzFYOTlIejdiSWl5?= =?utf-8?B?cFptUC82d29RVXl4UVIwczRzcE90VzIyWEVyL3MrdVpXZDBVUkxNNUxFajdl?= =?utf-8?B?RHFXVFVSZldQaVdJTHloZ1hQRkxuUDgyMFhtZmQ2TGpmNW5vbU1yKzRxU0Rh?= =?utf-8?B?Y1lBMXd0Y1RwOTF4NHhObDNHZng0MnFVU091aVhvbVRpSzk4OVZocEp0MEJ4?= =?utf-8?B?SVJueWRCdXh6eTBQdnZmdWErTU1aRjdBQ0ovYXFsNEpHd3Rub1VEM1ZnRTJq?= =?utf-8?B?WnhkM3hwbjNRbk1Yb2NlejVCUlVIZ1V2MnI1RkQ0QzVaQVBacmZWVGk2anJI?= =?utf-8?B?VnFnOVg2cDNtdG90N09PM2FzWko5SU9WM21zWkg1T1IrOVlwOHo1RlRLWTlY?= =?utf-8?B?bjZrOFZrdlB5bXBnSXdGOCt5Z0dyRm9hM2E5NjJWMGxVU09ZakJ5U1JDcGFn?= =?utf-8?B?WUF2SVBKK3NqR2lYeHhrWTdZend5ZUVhMVV2d3kzbFJTYzRnclN6ck5WN1pw?= =?utf-8?B?L05YMEZrU3hXbmxVdWlscm9WbjlKZXlzQUMrakhmV0szaklqUW1YVUdWV0Rk?= =?utf-8?B?Rk53U2xJVkNLSlY2cGtXZVRuK0l0RHNaZ1FXSXdRZUp5UzdGWkNJZ0lJN0M2?= =?utf-8?B?YTZFbzMrZUZONUZKdlRaQyswaDhGaU9hNWNBWkF5L0JBOTRDbERqa1Fnd29q?= =?utf-8?B?YUJQTnlkZE4zRUZYQjM2QXB4WVJ2YXk2K1RrWHFUaHh3aENBZU1CeGU1Z1VZ?= =?utf-8?B?Tm5wQVphWWg3UkJjNTZ6bnRmOUtwWFVaNkNMYzhQVGNBK2EwYkxIdmlZMzFx?= =?utf-8?B?VktYVE1KUE01NlgwT25IWktxclAwM1REVHdaRVpiL29aQjFjekNGeTd4UDgv?= =?utf-8?B?T3hvRkpiaHJ5Njdvd3R2SWkyZTdBZ1BteCtvcXpBeWhLNUhEQVVVaGJqZnI1?= =?utf-8?B?dFJZdDVBTHk2azVtc0tDK0EvL0V3Y3pxVlVyRk1kVUdKUGEwaGJkUlRCQ3pT?= =?utf-8?B?V0NGeHIzQzY1UUxVZ2gxYUp2YURXUW9jSzFDTGQySENkeDFrY3k0OUlROFA3?= =?utf-8?B?NjRBSHBuMW1iaEthdVlxbG5mQUE1cUpIRjBwTFB4OERCdDEveU9XdS9WcnNq?= =?utf-8?B?MGdrMWVmeTFzYmFpNURnSmV3dDlLNVc1VXhkbXBla3NBY1JpMmJQYy9abVgr?= =?utf-8?B?ejFuei9ncUt0WkNzMU1CRThsblBqM3F0b01xVHZHdUplTXpWeU03N1lOMERX?= =?utf-8?B?S1A5NCtpZjYwUG1IcGJXRUxtclFTcDE1b1FCb0l3OGxaMDRZc254VjZReXdO?= =?utf-8?B?WEdMVlpRTWRIZDVsTFg4eVpHUlFzTFI3THZ6dzUxczZKNzhrVUYxdzFsUWta?= =?utf-8?B?cjIvUDVLZUxtOWp4NzRJK1lrbzl3SGVoQUpTd3lDcThmU2ppNVU3aHRlUXFG?= =?utf-8?B?L3dFcUVpNzVkZGFkTUMxRmk0ZVZrdHgwV2tvckNyUmhmU0wrM1ZmODJna2dS?= =?utf-8?B?cjh2dmM0b0JmczRwUno4cDIrTmQrM2VPSzJuNXBiZWRLSkU2T2kvTlpRdFJU?= =?utf-8?B?WFdZQmVJbGpxMVFzdjBydzBTUTRBRUhFYUtlVjZQQWEwY0NFSnRmSVNlTTdK?= =?utf-8?B?aXlSbCtJRjBwSFFLa2RTU0I1em5pNi9TVlM3QmpMNGhMYWt6QnpCQlFub2Np?= =?utf-8?B?YnRReGZCTmZIaFAxUlBNOFhzd0lDT3lRTU1mQ00zSEFrSUZ0QXVnWnpmTENl?= =?utf-8?B?eUdyOXhYMHFJTkNaU3BqZWJzV3UzOFZtTm1ucFU0dkcyQ1pNazhPcGFKTHA3?= =?utf-8?B?K2taRVdZSmxISlladm5ROWM2K05kVEM2U0ppZ0djVHhPZDJINHFiZnJIZFBX?= =?utf-8?B?U1l1YnhaeHUyMDZHNTRWL3NxY3I1YW1iUVpFWjJkQUhLS2VUTm13SzJFcW9k?= =?utf-8?B?dUhFVmxhQks3cW1xRGlodU9rZGlRRGZQR0lMa251SzlENi9hR2E4RVphQ3ZS?= =?utf-8?B?dWpHWnZDYnpnPT0=?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR05MB10442.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(10070799003)(1800799024)(38070700018);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?em9JTUFpRUFVSFkrZVJLQUZUdHlucnQ2WWJQN3ZuemoxdGNtY1JpdWowMEs4?= =?utf-8?B?MTc5MWFBYlNuMG9DMHlrblk2eVVHNjBWSk5VUnVVYk5rUnBXdWVNWHROV1Fm?= =?utf-8?B?Zi82am4xK3B0WjlJRkhCb0dKNDZhOU0xMERLT051RGIzVElIbW9yVFI0TGZk?= =?utf-8?B?dy9MaW1vZlkvd0tad3VVcnFnTVBheWppdUpaUzZ6K1NnMmVKMkxxZmt0TFZn?= =?utf-8?B?bm9waEU0K2gwQ2MrNEk1U29WVlUxZVdwemVqenc2Wm04cTl2TGFHSGtZSVc4?= =?utf-8?B?SFJVWDIwbFhrRDdKUDVZMlhhVmRHZTdFdGhlYmp0eXhUTkJweG5FcGtWWUxW?= =?utf-8?B?cjJ0cjhlbDFxZEVOYnJ0bGJ5ejF2TE5HTzZnd1d2dnUvcURwOHZMYTRjbjdr?= =?utf-8?B?dVRwb1pRaStPZmgwemNNTmlBZmFOaUlDejBET0RhOWpGOTNxU3owSFlEajgr?= =?utf-8?B?bXg3SlBpcFBMVnVqVXZpSlMxYVRYd3dMS3F4U0xjWmU5RDU0aGpaOWs4Z3BI?= =?utf-8?B?aXFHN0hJRmNrUm0xeVBWL0xCQzBGam1GQjd3bXVlWDVoNlpubVdSSFZOSnFp?= =?utf-8?B?L1ZPOUtGcUxjS0tQcnVjMTRlcXR2UTNNVU9YZVk5KzVnc051VkhaOXhnd2JK?= =?utf-8?B?Tmg2dnpmd0dLbXorcG5vUVJMdmQ3Y2NJMllyK0xtMjRLeEVKRGdkOHFSVSsy?= =?utf-8?B?eEsrWGxjMzdPMmoxcDFDUG1kR1RwTWVQOW84c2tySVR1djBHTzZvVHR4QWJK?= =?utf-8?B?UzZtM2Jmd3cxUG1ORlRkdVpnTlRWUFhKcVQ1RGFPR3hNek1nSkJsVE5tMTlX?= =?utf-8?B?OUVyR0NtVnVIUjIvbCtDTzh5T093bVBhOUo0cE9HRnlObm5tZVdGWTUvN2Rn?= =?utf-8?B?ZGZ2R29XN0d5WFRWSisxQ0pJVmErZ1ErdkxZUG5DV0tEUTZRN0taeUhuWGlL?= =?utf-8?B?OFFXQmZubHNuNXlzS200L2E1NzJLT3U5NlUvSWdtNCtaN3lEQ3hQV3NVYnh1?= =?utf-8?B?M1pyeW9sY1RYejUvTGZuVVg2aGdEeFZ6c3pVdE0zWFdaZXhtQWxxSDVQVEI4?= =?utf-8?B?NkV1N0Q0S2RiYVNycHhuSUxrVlJKdzBrSmtXenB1R0dkUVJyem8zOGdOQm94?= =?utf-8?B?TWNPd05lcmZSVUdCV1FXbHQ1TDE1MGdWSmlBZTg3Mmc2UitmQ0VReC9JcDBj?= =?utf-8?B?MzBwQkxzdkZ4TEdpNmRNcnZqWWdkS2VOSTY3bDhMQ3FXMStPb29aYm42c3ky?= =?utf-8?B?MEVORDlIMC9Da3FOeGZ5S2hETWVKLzBvVWNJbXQxRjBsUnJvbnRlZitUdVBV?= =?utf-8?B?TDB3aitqdUV4ZWkvWjViTTA5SDhRV0FXRDlBcEQyUWdSRklYd1N1eW1nOHFw?= =?utf-8?B?YXZwc3VIVURxdnpMbW1Lem4xQVZLNTlqSnFTNEszbzlkMkIwRkJLYmF6ZFF2?= =?utf-8?B?bUdqTWxpUmtrRnJxcVpnZ0dGelh0ZGZ5d08zUk0xejFPa2g2SExkb2lUT2VV?= =?utf-8?B?a3FQL3RJREpUbjhSeExMM1FXUGxxRkZXVWQxcTEwNVRsV29BS2I1dWFDRDNN?= =?utf-8?B?NFJ1VVU5aS9tN1ovL1Y3VkoyNUNsT1lKNkhXV1dwMFRDaWxhbm9DMUJWYTZF?= =?utf-8?B?TXUwMHVkT21JN21FbG5RYVBPbTVobkVSZlNzZG5QY09idksrYUZzc2Z3S0N5?= =?utf-8?B?ZWgwK3ZyWUNvdENxUG54aU1kam54R25nZENLaXBJY2xmVnpIMzl5NWF1L2g1?= =?utf-8?B?eXhJV21IS3d2THlmSEF4OXMzUTBWR05CNFNHb2RtL2REdVVVMW1FRTZWeFFL?= =?utf-8?B?MEt4RERwN25yUkplRk1LS01RVXQ0VU0zQVdpVGFEU3NaeGlkcGtUc2ExNDlv?= =?utf-8?B?b0YzdzRqbVMzcGJESFhtemVaTFl6T3RVcVBoSnFyY0w0Q1dyQXZUM1NxVDRj?= =?utf-8?B?R2lmS2kwNG9iNFJrK0RFczFhU1RkcVZLRThoNSt3Q1daRENPVVhrQzhtVUwr?= =?utf-8?B?OWZEUWM0eldJaTJZcjgyQnZoWUh5RjdJcUZKSkpZZCtzLzZDQ3ZLTkEvQlRU?= =?utf-8?B?eU5GVkxSZnpBdFdaZ3lHSUxyUEp1UVlIZi8wWEpmUC9pWk1pTUtQZ3VDaTB1?= =?utf-8?B?VFRNS09nd3A0b2VCQ3N2N3JQN0FWVS9hR2hxMTY0clcreUpaSnhxWlJtM3pp?= =?utf-8?Q?5BAGhVC7YZrQ+k9dCEmmLr/ttdx+5wOdnMRiaQz4eRLZ?= Content-Type: text/plain; charset="utf-8" Content-ID: <98F105626AEC3644B9DC2A9241E2E932@eurprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS2PR05MB10442.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19807843-5b2b-4cfb-b949-08dd8b081add X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2025 12:35:08.3124 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 2e9f06b0-1669-4589-8789-10a06934dc61 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: eSAv8HEKfirLHKlNh3OEd0/LU03p7ouewYaS22NeB6hmNhQYLcDVw/CGQxoAIhE4xTZHA7T46lv/vjveaU0SbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR05MB7721 X-OriginatorOrg: ed.ac.uk X-Edinburgh-Scanned: at loire.is.ed.ac.uk List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk VGhhbmtzLA0KDQpJIGRvbid0IGhhdmUgYSBzdHJvbmcgb3BpbmlvbiBvbiBob3cgdGhpcyBpcyBm aXhlZCwgYnV0IEkgcGVyc29uYWxseSB0aGluayB0aGF0DQppcyBhIGJ1ZyB0aGF0IG5lZWRzIGFk ZHJlc3NpbmcgaW4gYmFjayBicmFuY2hlcy4NCg0KSSB0aGluayBJIHJlbWVtYmVyIGhpdHRpbmcg T09NcyBpbiBzaW1pbGFyIHNpdHVhdGlvbnMgd2l0aCBoYXNoam9pbnMgaW4gdGhlIHBhc3QNCmFu ZCBJIGp1c3QgZGlzYWJsZWQgdGhlbS4NCg0KQnV0IEknZCBjZXJ0YWlubHkgYXJndWUgdGhlIHNp dHVhdGlvbiBoZXJlIGlzIG1vcmUgc2V2ZXJlIHdpdGggMTIgbWlsbGlvbiB0ZW1wIGZpbGVzIChw b3NzaWJseSBtb3JlKS4NCkV2ZW4gdGhlIGNhbmNlbGxpbmcgb2YgdGhlIHF1ZXJ5IGRvZXNuJ3Qg cXVpdGUgd29yayB3ZWxsLA0KYmVjYXVzZSB0aGUgZGVsZXRpb24gb2YgdGVtcCBmaWxlcyBpcyBu b3QgZmFzdCBlbm91Z2ggaW4gdGhlIGNhbmNlbGxhdGlvbi4NCk9ubHkgdGhlIHJlc3RhcnRpbmcg b2YgdGhlIHNlcnZlciBkb2VzIGRlbGV0ZSB0bXAgZmlsZXMgZmFzdCBlbm91Z2ggKHRha2VzIGEg ZmV3IG1pbiBzdGlsbCkuDQpBbmQgYXBwYXJlbnRseSBldmVuIGxzIGNhbid0IHF1aXRlIGRlYWwg d2l0aCAxMiBtaWxsaW9ucyBmaWxlcyBpbiBhIGZvbGRlci4NCg0KICBTZXJnZXkNCg0KDQpUaGUg VW5pdmVyc2l0eSBvZiBFZGluYnVyZ2ggaXMgYSBjaGFyaXRhYmxlIGJvZHksIHJlZ2lzdGVyZWQg aW4gU2NvdGxhbmQsIHdpdGggcmVnaXN0cmF0aW9uIG51bWJlciBTQzAwNTMzNi4gSXMgZSBidWlk aGVhbm4gY2FydGhhbm5haXMgYSB0aOKAmSBhbm4gYW4gT2lsdGhpZ2ggRGjDuW4gw4hpZGVhbm4s IGNsw6ByYWljaHRlIGFuIEFsYmEsIMOgaXJlYW1oIGNsw6ByYWlkaCBTQzAwNTMzNi4NCg==