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 1wdWHt-0049fR-0D for pgsql-bugs@arkaria.postgresql.org; Sat, 27 Jun 2026 16:53:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wdWHq-00FWaj-08 for pgsql-bugs@arkaria.postgresql.org; Sat, 27 Jun 2026 16:53:46 +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 1wdWHp-00FWab-0z for pgsql-bugs@lists.postgresql.org; Sat, 27 Jun 2026 16:53:45 +0000 Received: from mail-japanwestazolkn19010079.outbound.protection.outlook.com ([52.103.66.79] helo=OS0P286CU011.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 1wdWHm-00000000Uxw-3Jov for pgsql-bugs@lists.postgresql.org; Sat, 27 Jun 2026 16:53:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rxrjSbU4iNULc5dFXewk+I2ruU3oqVHQCvGEjFONJ4ConGhJRwtsyQ9ctPGR6nVjO+5C4DcRhpyCK0816Pg+pzHErixk8wmox9j5xbb2I/IPwupl8ZesRlwz5AeJGADBl/K15mGnCM/LuWZBNxDYcu832/cIWNMLkOX8V+oZEfw1CgojaLhdG1e93BcUkMBZ1dQPw6REFBVB+dXD8caH5o1zAGtMHesfVtHLgcRZF6ygSmYV1ZDlO4mFFxh1/JJ4VxF/mX0yyYYdpleOGpe598MDXBpXLtpp1h3zCO15g63/leKicOfMey6pL1/IrfVKDDNWdaGLSEqD9U6VQEB3hA== 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=3GU+U9HSXp4quU1JZECw7w9Dath/3QOpZTnp2Hd2UTE=; b=KWa6Dtqcy2h3T74PqUqiBkIH+S4RDzrGTgCPF8262SuYpttE1fncoYJgYAIqug1HGVafA4I9Jn55jqwrWpmcbFi2tDlXWWpxeMn8ed6A32AMcmtyl259pTu8qhXHWLogBbSXhFeuJeHCL19luw61YeT1NyJpcSdBMXhRZKzbjrwCva8agrk1aJaK4O6L4PHY2gV29NdFoYLDc2b5NiwhbAvaPubXRehvfw5+6VqMsfAYmxAmG/fdranHjRq/Xt2xAOP+7cFRITDIxMMndI6khGeWFxA9uQ6qhI/P0ZxenT/t0tHs1HqNxmhKXx575sWsRVyojRxiEo4S6NV8lphUaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3GU+U9HSXp4quU1JZECw7w9Dath/3QOpZTnp2Hd2UTE=; b=ewtsXgZ3Ych4q+hjH/fQIUFz+rYor0dWuNgF/XKlceuzftlAD/zrX+97wqj3hARVDupsr+mXkWKnvxsiKW7vKARg+9gTVpmJ7EyteRlyNpk7iqWp4sr2bufDTZhnCQ9h0NWjepcKf43AFNYnsEfmP6jGgR0hB2WVqN+8TVo1q3u17vfYeNZmBROG/Su4JsTvzdLRXq8rfXXgeYi+xHeJXYaL2m426n21ba2c1PLYQk7jQ/3nEoVR2aTiXH3S8FLUDqsjMsXYZOWl1aZEbTz7163gmFtvL1rVJksQYEhKx8wtPXfZm15qUL1S/534vC/EiTRJIPzKPuRKIZsLsMpDyg== Received: from TYYPR01MB14116.jpnprd01.prod.outlook.com (2603:1096:405:212::9) by TYRPR01MB13132.jpnprd01.prod.outlook.com (2603:1096:405:112::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.18; Sat, 27 Jun 2026 16:53:37 +0000 Received: from TYYPR01MB14116.jpnprd01.prod.outlook.com ([fe80::31dd:4ff2:eea8:c663]) by TYYPR01MB14116.jpnprd01.prod.outlook.com ([fe80::31dd:4ff2:eea8:c663%5]) with mapi id 15.21.0159.018; Sat, 27 Jun 2026 16:53:37 +0000 From: Chengpeng Yan To: "imchifan@163.com" , "pgsql-bugs@lists.postgresql.org" CC: David Rowley Subject: Re: BUG #19533: Wrong results from WindowAgg run-condition pushdown on count() with EXCLUDE CURRENT ROW Thread-Topic: BUG #19533: Wrong results from WindowAgg run-condition pushdown on count() with EXCLUDE CURRENT ROW Thread-Index: AQHdBjQ36OrnPlHeFUa7BV8yKQiSCrZSnoYA Date: Sat, 27 Jun 2026 16:53:37 +0000 Message-ID: References: <19533-413a1014e5d0e766@postgresql.org> In-Reply-To: <19533-413a1014e5d0e766@postgresql.org> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYYPR01MB14116:EE_|TYRPR01MB13132:EE_ x-ms-office365-filtering-correlation-id: ac925930-873c-4009-fa43-08ded46ca1eb x-microsoft-antispam: BCL:0;ARA:14566002|15080799012|6092099016|24021099003|22091999003|24121999003|12121999013|31061999003|8062599012|8060799015|19110799012|41001999006|51005399006|25010399006|40105399003|56899033|102099032|3412199025|440099028; x-microsoft-antispam-message-info: =?us-ascii?Q?wlh4bpoewMTAz1yCnl7KkdTNi4tD0dTsefJQiv0ZWulvMmWBIHTxybBcy8Mq?= =?us-ascii?Q?uPSMItdJW3D+4ya+fy5RNe1DSn74aVCrAC3BaU5qQ0lJf4QGWXk/aUKbIC1l?= =?us-ascii?Q?fGR3i0Q+4gbc1upsMozvduiTLzpaE9imxwAsRspsoDyUsnRG7BCVnNyxI3z2?= =?us-ascii?Q?DDFGXMqzgr6styTO+rJJklUQY90Y3dqBy5T6BPI4yw7NZc955Xw9/QtiO1Dr?= =?us-ascii?Q?o8y2jX9FM6N6QDI3aSqTe5SNQoLJ9qZV73IA6bF3GJGatDcaNMcpa+Ijylk5?= =?us-ascii?Q?gKfPpuFjWToBIFWjEvEDBk4nJ2qhpLn53ph20PtuHR6MFKvlA28ftTzekN7w?= =?us-ascii?Q?yQpG+tpPotDcoGlXERQ8nsirUe1PltQbHgL/KBLpLdEEq8a74eSTzz1VfpXa?= =?us-ascii?Q?jyyHuXtIMcnNmWT4fS/x58TI64jRRsuVoNgmk+hzsYR9QdjenwFH/6iiRd/q?= =?us-ascii?Q?7zj0p6Vsev41e1EEJkIDy0qE5GbfqP4FeVvMEwtXb1iJNfUNQqbFT1MYQpw1?= =?us-ascii?Q?ScXplECqXjuCqNo1erFtAKrj5K7/6OXHCjmvhX6GnsmweU4QpLdhzRddldt8?= =?us-ascii?Q?cEjTOqXNYuEk1s7MuSFpD2PpwnR//Kud9dg9mefxGWY+wpHOiDN5wu7rPHZj?= =?us-ascii?Q?3BFztK7f0ZPRaDRohEkPq9sRI6f1Tqtt9EmsvMdGHN2gRClwDjUwIkVByMg0?= =?us-ascii?Q?Xzz3/U0pOb5Jz7UegrKX9Cq0e0pBgR3tvkW4TjdLqGbprOp2cg6qjsqfZTii?= =?us-ascii?Q?umiX99vYtbZz4A7pbP0HmyZuhGx8WCgAEAwQ+AJ5j3MIEAh6IE0leI2wOLti?= =?us-ascii?Q?Pyn7jxndFLo0zNoQlohKTOUcENucwmmUwqw7vVUNMgZM677RVa8SNDUuyUVa?= =?us-ascii?Q?hGaAO9pYlPYQpITKnLbQwZslKLsdOwshe1H5iXGsNbtQ4lSYjtMBV4bhI+JU?= =?us-ascii?Q?HY5ZSWOn+FP2G2ozo0lqz+4MVVOZl5xU/A8iz4uzwTTtvZ0g9LfmfyF8QT0S?= =?us-ascii?Q?Oqat+6hBhFmBg9dAiHVENRmnbtfs6n3mqVwGTWs/UTYEbBX/o6q4DvYLJjCO?= =?us-ascii?Q?xRrnMTfzxaGB3f4aWmIr8Bm+XWWGQQ=3D=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?pcqYWPiXtRD0ru7q5+7d7DxBYtwgz7miRfU65Wya6WZl0lE55LeXo8/eX/bo?= =?us-ascii?Q?3+7+F9GQUnImYv/AKWGiPDMzEC3hC+vBPCLe303iMVzJgGb9+WlWDg4PaBY9?= =?us-ascii?Q?HNxntIXjLG43yfZD1minpI+Iwl5ODmPdyy/rwcIW/GBgI+u/UgTGTivkxgWi?= =?us-ascii?Q?rcwd8jkKQAzY4LkpBdOxncbA+AqspcyeAwo6NgWI3AS86q0K6hJe7t8J08V9?= =?us-ascii?Q?L9sOCrJu+V0hp6AMshMrmIHAl6jQDaSwgpo4ojnXCis2DtRiyw+lFzZ2lQLm?= =?us-ascii?Q?ZNcLOoly/aelmJbtQWF5ZrRhmwySPZ3r+hzs0N2lAeDmemQKYJj35437+i8k?= =?us-ascii?Q?sbIzCFLwZ/bMph88xSyc+CmflzEXy5x+OH/SCMYIU38dGSUnKqogYNorBbu7?= =?us-ascii?Q?HKxEisQoEhnIcyPhet1bnz6wasR8qA2G8j39NVwrpcvXhT/TdCHTo2Ua9Cxa?= =?us-ascii?Q?9vbatZQIHYiuj6lRPhJPVPmbs5ctS2JsKB7rAzQe1rc+ovcVbmGlbAPfa2wu?= =?us-ascii?Q?QwSPEuT9NcsionGj47UEd9jtdboA/dGIx10+Fcq5Ci5B3Mn8aKUvmUVhgD2g?= =?us-ascii?Q?dBNolP6rav6nJNJISZQhxPkKKWAJHZsrW668PisJvakbAlLCskgGqckqdaE+?= =?us-ascii?Q?KwJuQG4txFGynj9vQzDWN9XdDmGuHbpiwhaxO+Zft6uI/qd2X8sFloxgzBSp?= =?us-ascii?Q?7SxkGA2T4Ce+VrrESMGkY6JKNi6CFAOQ//O7HyW/8BbguGk7MQclc27+u8bw?= =?us-ascii?Q?BF/eflKlUDjiicqj0sLTSkeCMU9j5Wdnhs+Tsfb8wazbnzQhahjZ8DmPQVuC?= =?us-ascii?Q?KjPrfBhOqaRPfgXQ848UBsf1OILAgymZNpl6lq4z4AqrLUwhJKPcOrZjpi4Z?= =?us-ascii?Q?sWdxEbd1qg6YLS1lLY5w0eVnJcSwGB8A8KkPtvRsuddzWoHMHuFrvPM9nNhW?= =?us-ascii?Q?o8OVjvVqnNfK8u2kbbEcT5myT6Xb1LCH2FL4oaYr+n6L8W/zDfQQHE4nk+dT?= =?us-ascii?Q?UK7lgdzgGAVzaYqB4rq+31MrPJpJ8rx3otp/LrlO6gg8cIF6M5jY/zQGhrqT?= =?us-ascii?Q?8/k3He27RVfS4/JSnOjOSvtqZKWsPDrkO7sHMpTmdcSUN8MSSBvT8QHaR1/y?= =?us-ascii?Q?ISRJEqoVxiB6KlEbrwdzyoIPxwMzXFffrRAmtxmitgqfj8n+HfGZ9qB+yQRr?= =?us-ascii?Q?b8t7yFhmt3oAuRhmgaQjKgr7hCJ04aYtGcG1daW5AcbNcci0B/aI1nIWN+8V?= =?us-ascii?Q?TQED5Ya6mgXUES/hckAvf0EC9IEoH7SZUNOE9Smhw51GwvmCWJIkjFoRn07w?= =?us-ascii?Q?yEUbqKAvxaM3Ra1a4UT756A5FWJHwG4eGsYWHZ8jRPs53GyxQmHsouutzmd+?= =?us-ascii?Q?p4YJIMHhJy5DfCGFHVxHG/KkphrhEE/EwtLX0gwtskm5+9azoQ=3D=3D?= Content-Type: multipart/mixed; boundary="_004_EC2733875C734C9CBF308BA260A90FFBoutlookcom_" MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYYPR01MB14116.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: ac925930-873c-4009-fa43-08ded46ca1eb X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2026 16:53:37.1236 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRPR01MB13132 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_EC2733875C734C9CBF308BA260A90FFBoutlookcom_ Content-Type: multipart/alternative; boundary="_000_EC2733875C734C9CBF308BA260A90FFBoutlookcom_" --_000_EC2733875C734C9CBF308BA260A90FFBoutlookcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, > On Jun 24, 2026, at 22:41, PG Bug reporting form = wrote: > > The following bug has been logged on the website: > > Bug reference: 19533 > Logged by: Qifan Liu > Email address: imchifan@163.com > PostgreSQL version: 18.4 > Operating system: Ubuntu 20.04 x86-64, docker image postgres:18.4 > Description: > > ## PoC > > ```sql > DROP TABLE IF EXISTS t; > > CREATE TABLE t ( > id int PRIMARY KEY, > k int NOT NULL, > v int > ); > > INSERT INTO t(id, k, v) VALUES > (1, 1, 1), > (2, 1, NULL), > (3, 1, 1), > (4, 2, 1); > > WITH > source_rows AS ( > SELECT id > FROM ( > SELECT id, > count(v) OVER ( > ORDER BY k > RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW > EXCLUDE CURRENT ROW > ) AS c > FROM t > ) s > WHERE c <=3D 1 > ), > reference_rows AS ( > SELECT t1.id > FROM t AS t1 > WHERE ( > SELECT count(t2.v) > FROM t AS t2 > WHERE t2.k <=3D t1.k > AND t2.id <> t1.id > ) <=3D 1 > ), > metamorphic_rows AS ( > SELECT id > FROM ( > SELECT id, > count(v) OVER ( > ORDER BY k > RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW > EXCLUDE CURRENT ROW > ) AS c > FROM t > ) s > WHERE c + 0 <=3D 1 > ) > SELECT 'source' AS label, coalesce(array_agg(id ORDER BY id), '{}'::int[]= ) > AS ids > FROM source_rows > UNION ALL > SELECT 'reference', coalesce(array_agg(id ORDER BY id), '{}'::int[]) > FROM reference_rows > UNION ALL > SELECT 'metamorphic_no_pushdown', coalesce(array_agg(id ORDER BY id), > '{}'::int[]) > FROM metamorphic_rows; > > EXPLAIN (COSTS OFF) > SELECT id > FROM ( > SELECT id, > count(v) OVER ( > ORDER BY k > RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW > EXCLUDE CURRENT ROW > ) AS c > FROM t > ) s > WHERE c <=3D 1; > ``` > > ## Expected Behavior > > The source query should return the same rows as the reference query and t= he > semantically equivalent metamorphic_no_pushdown query. > > ## Actual Behavior > > The optimized query returns only `{1}`, while the reference and no-pushdo= wn > forms return `{1,3}`. Thanks for the report. I reproduced the wrong result. The planner can treat count() as a monotonic window function and turn a qual such as c <=3D 1 into a WindowAgg run condition. That is not safe when the frame has an EXCLUDE option, because exclusion is applied after the frame bounds are found and can depend on the current row or peer group. In the reported count(v) case, NULL handling can produce values such as 1, 2, 1, so the run condition can drop a later valid row. This is not only about NULLs. count(*) has no NULL issue, and some excluded-frame cases remain monotone, but not all of them. For example, GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE GROUP can make count(*) decrease when the current peer group changes. The attached patch takes the conservative route: int8inc_support() no longer reports count() as monotonic when the window frame has FRAMEOPTION_EXCLUSION. The added regression tests cover the reported case, related EXCLUDE variants, and a count(*) case. They also check that the excluded-frame query keeps a normal Filter instead of a WindowAgg Run Condition. I ran make check, which passed. Thoughts welcome on whether this is the right boundary, or whether some narrower excluded-frame cases should still prove monotonicity separately. -- Best regards, Chengpeng Yan --_000_EC2733875C734C9CBF308BA260A90FFBoutlookcom_ Content-Type: text/html; charset="us-ascii" Content-ID: <4B289DCB7AB1B54EA58228E6F6C647D3@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: quoted-printable
Hi,

> On Jun 24, 2026, at 22:41, PG Bug reporting form <noreply@postgresq= l.org> wrote:
>
> The following bug has been logged on the website:
>
> Bug reference:      19533
> Logged by:          Qifan= Liu
> Email address:      imchifan@163.com
> PostgreSQL version: 18.4
> Operating system:   Ubuntu 20.04 x86-64, docker image postgr= es:18.4
> Description:       
>
> ## PoC
>
> ```sql
> DROP TABLE IF EXISTS t;
>
> CREATE TABLE t (
>    id int PRIMARY KEY,
>    k  int NOT NULL,
>    v  int
> );
>
> INSERT INTO t(id, k, v) VALUES
>    (1, 1, 1),
>    (2, 1, NULL),
>    (3, 1, 1),
>    (4, 2, 1);
>
> WITH
> source_rows AS (
>    SELECT id
>    FROM (
>        SELECT id,
>            = ;   count(v) OVER (
>            = ;       ORDER BY k
>            = ;       RANGE BETWEEN UNBOUNDED PRECEDING AND= CURRENT ROW
>            = ;       EXCLUDE CURRENT ROW
>            = ;   ) AS c
>        FROM t
>    ) s
>    WHERE c <=3D 1
> ),
> reference_rows AS (
>    SELECT t1.id
>    FROM t AS t1
>    WHERE (
>        SELECT count(t2.v)
>        FROM t AS t2
>        WHERE t2.k <=3D t1.k
>          AND t2.id <&g= t; t1.id
>    ) <=3D 1
> ),
> metamorphic_rows AS (
>    SELECT id
>    FROM (
>        SELECT id,
>            = ;   count(v) OVER (
>            = ;       ORDER BY k
>            = ;       RANGE BETWEEN UNBOUNDED PRECEDING AND= CURRENT ROW
>            = ;       EXCLUDE CURRENT ROW
>            = ;   ) AS c
>        FROM t
>    ) s
>    WHERE c + 0 <=3D 1
> )
> SELECT 'source' AS label, coalesce(array_agg(id ORDER BY id), '{}'::in= t[])
> AS ids
> FROM source_rows
> UNION ALL
> SELECT 'reference', coalesce(array_agg(id ORDER BY id), '{}'::int[]) > FROM reference_rows
> UNION ALL
> SELECT 'metamorphic_no_pushdown', coalesce(array_agg(id ORDER BY id),<= br> > '{}'::int[])
> FROM metamorphic_rows;
>
> EXPLAIN (COSTS OFF)
> SELECT id
> FROM (
>    SELECT id,
>           count(v) O= VER (
>            = ;   ORDER BY k
>            = ;   RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
>            = ;   EXCLUDE CURRENT ROW
>           ) AS c
>    FROM t
> ) s
> WHERE c <=3D 1;
> ```
>
> ## Expected Behavior
>
> The source query should return the same rows as the reference query an= d the
> semantically equivalent metamorphic_no_pushdown query.
>
> ## Actual Behavior
>
> The optimized query returns only `{1}`, while the reference and no-pus= hdown
> forms return `{1,3}`.

Thanks for the report. I reproduced the wrong result.

The planner can treat count() as a monotonic window function and turn a
qual such as c <=3D 1 into a WindowAgg run condition. That is not safe when the frame has an EXCLUDE option, because exclusion is applied after the frame bounds are found and can depend on the current row or peer
group. In the reported count(v) case, NULL handling can produce values
such as 1, 2, 1, so the run condition can drop a later valid row.

This is not only about NULLs. count(*) has no NULL issue, and some
excluded-frame cases remain monotone, but not all of them. For example,
GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE GROUP can
make count(*) decrease when the current peer group changes.

The attached patch takes the conservative route: int8inc_support() no
longer reports count() as monotonic when the window frame has
FRAMEOPTION_EXCLUSION. The added regression tests cover the reported
case, related EXCLUDE variants, and a count(*) case. They also check
that the excluded-frame query keeps a normal Filter instead of a
WindowAgg Run Condition.

I ran make check, which passed.

Thoughts welcome on whether this is the right boundary, or whether some
narrower excluded-frame cases should still prove monotonicity
separately.


--
Best regards,
Chengpeng Yan
--_000_EC2733875C734C9CBF308BA260A90FFBoutlookcom_-- --_004_EC2733875C734C9CBF308BA260A90FFBoutlookcom_ Content-Type: application/octet-stream; name="v1-0001-Avoid-count-run-conditions-with-frame-exclusion.patch" Content-Description: v1-0001-Avoid-count-run-conditions-with-frame-exclusion.patch Content-Disposition: attachment; filename="v1-0001-Avoid-count-run-conditions-with-frame-exclusion.patch"; size=13996; creation-date="Sat, 27 Jun 2026 16:53:36 GMT"; modification-date="Sat, 27 Jun 2026 16:53:36 GMT" Content-ID: <34DDCB44907FDC4985FAA24E3AD07CAB@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: base64 RnJvbSBmYzI3NWZkODcxYzg3Mzc1ZjY2MzYwMTM1MTI1ZDg1M2EwNDM4NGU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDaGVuZ3BlbmcgWWFuIDxjaGVuZ3BlbmdfeWFuQG91dGxvb2su Y29tPgpEYXRlOiBTYXQsIDI3IEp1biAyMDI2IDIzOjU5OjIxICswODAwClN1YmplY3Q6IFtQQVRD SCB2MV0gQXZvaWQgY291bnQgcnVuIGNvbmRpdGlvbnMgd2l0aCBmcmFtZSBleGNsdXNpb24KCmNv dW50KCkgc3VwcG9ydCBkZXJpdmVkIHdpbmRvdy1mdW5jdGlvbiBtb25vdG9uaWNpdHkgZnJvbSBm cmFtZQpib3VuZHMuIFRoYXQgaXMgbm90IHN1ZmZpY2llbnQgd2hlbiB0aGUgZnJhbWUgdXNlcyBF WENMVURFLCBzaW5jZQpleGNsdWRlZCByb3dzIGFyZSBjaG9zZW4gYWZ0ZXIgdGhlIGJvdW5kcyBh bmQgbWF5IGRlcGVuZCBvbiB0aGUKY3VycmVudCByb3cgb3IgcGVlciBncm91cC4KCmNvdW50KCkg Y2FuIHRoZW4gZGVjcmVhc2UgZXZlbiBmb3IgZnJhbWVzIHdob3NlIGJvdW5kcyBhbG9uZSB3b3Vs ZApncm93IG1vbm90b25pY2FsbHkuIERvIG5vdCByZXBvcnQgY291bnQoKSBhcyBtb25vdG9uaWMg Zm9yIGZyYW1lcwp3aXRoIGV4Y2x1c2lvbi4KCkFkZCByZWdyZXNzaW9uIHRlc3RzIGZvciBleGNs dWRlZC1mcmFtZSBjYXNlcywgaW5jbHVkaW5nIGNvdW50KCopLgotLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9pbnQ4LmMgICAgICAgICB8ICAxMiArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC93aW5kb3cub3V0IHwgMTkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvd2luZG93LnNxbCAgICAgIHwgMTc1ICsrKysrKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCAzNzkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCmlu ZGV4IDliNDI5ZGE4NmQ5Li42NTNmOGIwMjhlOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2ludDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCkBAIC03OTUs NiArNzk1LDE4IEBAIGludDhpbmNfc3VwcG9ydChQR19GVU5DVElPTl9BUkdTKQogCQlNb25vdG9u aWNGdW5jdGlvbiBtb25vdG9uaWMgPSBNT05PVE9OSUNGVU5DX05PTkU7CiAJCWludAkJCWZyYW1l T3B0aW9ucyA9IHJlcS0+d2luZG93X2NsYXVzZS0+ZnJhbWVPcHRpb25zOwogCisJCS8qCisJCSAq IEZyYW1lIGV4Y2x1c2lvbiBpcyBhcHBsaWVkIGFmdGVyIHRoZSBmcmFtZSBib3VuZHMgaGF2ZSBi ZWVuCisJCSAqIGRldGVybWluZWQuICBUaGUgZXhjbHVkZWQgcm93cyBjYW4gZGVwZW5kIG9uIHRo ZSBjdXJyZW50IHJvdyBvciBpdHMKKwkJICogcGVlcnMsIHNvIHRoZSBjb3VudCBpcyBub3QgZ3Vh cmFudGVlZCB0byBmb2xsb3cgdGhlIG1vbm90b25pYworCQkgKiBiZWhhdmlvciBpbXBsaWVkIGJ5 IHRoZSBib3VuZHMgYWxvbmUuCisJCSAqLworCQlpZiAoZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJ T05fRVhDTFVTSU9OKQorCQl7CisJCQlyZXEtPm1vbm90b25pYyA9IE1PTk9UT05JQ0ZVTkNfTk9O RTsKKwkJCVBHX1JFVFVSTl9QT0lOVEVSKHJlcSk7CisJCX0KKwogCQkvKiBObyBPUkRFUiBCWSBj bGF1c2UgdGhlbiBhbGwgcm93cyBhcmUgcGVlcnMgKi8KIAkJaWYgKHJlcS0+d2luZG93X2NsYXVz ZS0+b3JkZXJDbGF1c2UgPT0gTklMKQogCQkJbW9ub3RvbmljID0gTU9OT1RPTklDRlVOQ19CT1RI OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aW5kb3cub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aW5kb3cub3V0CmluZGV4IDkwZDlmOTUzYjgxLi4xMzEz ZTRjNzFkMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aW5kb3cub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2luZG93Lm91dApAQCAtNDM3NSw2ICs0 Mzc1LDE5OCBAQCBXSEVSRSBjIDw9IDM7CiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g ZW1wc2FsYXJ5CiAoNyByb3dzKQogCitDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIHdpbmRvd19leGNs dXNpb24gKAorICBpZCBpbnQsCisgIGsgaW50LAorICB2IGludAorKTsKK0lOU0VSVCBJTlRPIHdp bmRvd19leGNsdXNpb24gVkFMVUVTCisgICgxLCAxLCAxKSwKKyAgKDIsIDEsIE5VTEwpLAorICAo MywgMSwgMSksCisgICg0LCAyLCAxKTsKKy0tIEVuc3VyZSB3ZSBkb24ndCBwdXNoIGRvd24gZm9y IGNvdW50KCkgd2hlbiB0aGUgZnJhbWUgZXhjbHVkZXMgcm93cy4KK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBpZAorRlJPTSAoCisgIFNFTEVDVCBpZCwKKyAgICAgICAgIGNvdW50KHYpIE9W RVIgKAorICAgICAgICAgICBPUkRFUiBCWSBrCisgICAgICAgICAgIFJBTkdFIEJFVFdFRU4gVU5C T1VOREVEIFBSRUNFRElORyBBTkQgQ1VSUkVOVCBST1cKKyAgICAgICAgICAgRVhDTFVERSBDVVJS RU5UIFJPVworICAgICAgICAgKSBBUyBjCisgIEZST00gd2luZG93X2V4Y2x1c2lvbgorKSBzCitX SEVSRSBjIDw9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gcwor ICAgRmlsdGVyOiAocy5jIDw9IDEpCisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6 IHcxIEFTIChPUkRFUiBCWSB3aW5kb3dfZXhjbHVzaW9uLmsgUkFOR0UgQkVUV0VFTiBVTkJPVU5E RUQgUFJFQ0VESU5HIEFORCBDVVJSRU5UIFJPVyBFWENMVURFIENVUlJFTlQgUk9XKQorICAgICAg ICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiB3aW5kb3dfZXhjbHVzaW9uLmsK KyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB3aW5kb3dfZXhjbHVzaW9uCisoNyByb3dz KQorCitTRUxFQ1QgJ2V4Y2x1ZGVfY3VycmVudF9yb3cnIEFTIHRlc3RfbmFtZSwKKyAgICAgICBB UlJBWShTRUxFQ1QgaWQKKyAgICAgICAgICAgICBGUk9NICgKKyAgICAgICAgICAgICAgIFNFTEVD VCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICBjb3VudCh2KSBPVkVSICgKKyAgICAgICAgICAg ICAgICAgICAgICAgIE9SREVSIEJZIGsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJBTkdFIEJF VFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgQ1VSUkVOVCBST1cKKyAgICAgICAgICAgICAg ICAgICAgICAgIEVYQ0xVREUgQ1VSUkVOVCBST1cKKyAgICAgICAgICAgICAgICAgICAgICApIEFT IGMKKyAgICAgICAgICAgICAgIEZST00gd2luZG93X2V4Y2x1c2lvbgorICAgICAgICAgICAgICkg cworICAgICAgICAgICAgIFdIRVJFIGMgPD0gMQorICAgICAgICAgICAgIE9SREVSIEJZIGlkKSBB UyBzb3VyY2UsCisgICAgICAgQVJSQVkoU0VMRUNUIGlkCisgICAgICAgICAgICAgRlJPTSAoCisg ICAgICAgICAgICAgICBTRUxFQ1QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgY291bnQodikg T1ZFUiAoCisgICAgICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBrCisgICAgICAgICAgICAg ICAgICAgICAgICBSQU5HRSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIENVUlJFTlQg Uk9XCisgICAgICAgICAgICAgICAgICAgICAgICBFWENMVURFIENVUlJFTlQgUk9XCisgICAgICAg ICAgICAgICAgICAgICAgKSBBUyBjCisgICAgICAgICAgICAgICBGUk9NIHdpbmRvd19leGNsdXNp b24KKyAgICAgICAgICAgICApIHMKKyAgICAgICAgICAgICBXSEVSRSBjICsgMCA8PSAxCisgICAg ICAgICAgICAgT1JERVIgQlkgaWQpIEFTIG5vcHVzaAorVU5JT04gQUxMCitTRUxFQ1QgJ2V4Y2x1 ZGVfdGllcycsCisgICAgICAgQVJSQVkoU0VMRUNUIGlkCisgICAgICAgICAgICAgRlJPTSAoCisg ICAgICAgICAgICAgICBTRUxFQ1QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgY291bnQodikg T1ZFUiAoCisgICAgICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBrCisgICAgICAgICAgICAg ICAgICAgICAgICBSQU5HRSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIENVUlJFTlQg Uk9XCisgICAgICAgICAgICAgICAgICAgICAgICBFWENMVURFIFRJRVMKKyAgICAgICAgICAgICAg ICAgICAgICApIEFTIGMKKyAgICAgICAgICAgICAgIEZST00gd2luZG93X2V4Y2x1c2lvbgorICAg ICAgICAgICAgICkgcworICAgICAgICAgICAgIFdIRVJFIGMgPD0gMAorICAgICAgICAgICAgIE9S REVSIEJZIGlkKSwKKyAgICAgICBBUlJBWShTRUxFQ1QgaWQKKyAgICAgICAgICAgICBGUk9NICgK KyAgICAgICAgICAgICAgIFNFTEVDVCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICBjb3VudCh2 KSBPVkVSICgKKyAgICAgICAgICAgICAgICAgICAgICAgIE9SREVSIEJZIGsKKyAgICAgICAgICAg ICAgICAgICAgICAgIFJBTkdFIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgQ1VSUkVO VCBST1cKKyAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0xVREUgVElFUworICAgICAgICAgICAg ICAgICAgICAgICkgQVMgYworICAgICAgICAgICAgICAgRlJPTSB3aW5kb3dfZXhjbHVzaW9uCisg ICAgICAgICAgICAgKSBzCisgICAgICAgICAgICAgV0hFUkUgYyArIDAgPD0gMAorICAgICAgICAg ICAgIE9SREVSIEJZIGlkKQorVU5JT04gQUxMCitTRUxFQ1QgJ25vX29yZGVyX2N1cnJlbnRfcm93 JywKKyAgICAgICBBUlJBWShTRUxFQ1QgaWQKKyAgICAgICAgICAgICBGUk9NICgKKyAgICAgICAg ICAgICAgIFNFTEVDVCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICBjb3VudCh2KSBPVkVSICgK KyAgICAgICAgICAgICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5H IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgICAgICAgICAgICBFWENMVURF IENVUlJFTlQgUk9XCisgICAgICAgICAgICAgICAgICAgICAgKSBBUyBjCisgICAgICAgICAgICAg ICBGUk9NIHdpbmRvd19leGNsdXNpb24KKyAgICAgICAgICAgICApIHMKKyAgICAgICAgICAgICBX SEVSRSBjIDw9IDIKKyAgICAgICAgICAgICBPUkRFUiBCWSBpZCksCisgICAgICAgQVJSQVkoU0VM RUNUIGlkCisgICAgICAgICAgICAgRlJPTSAoCisgICAgICAgICAgICAgICBTRUxFQ1QgaWQsCisg ICAgICAgICAgICAgICAgICAgICAgY291bnQodikgT1ZFUiAoCisgICAgICAgICAgICAgICAgICAg ICAgICBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgICAgICAgICAgICAgRVhDTFVERSBDVVJSRU5UIFJPVworICAgICAg ICAgICAgICAgICAgICAgICkgQVMgYworICAgICAgICAgICAgICAgRlJPTSB3aW5kb3dfZXhjbHVz aW9uCisgICAgICAgICAgICAgKSBzCisgICAgICAgICAgICAgV0hFUkUgYyArIDAgPD0gMgorICAg ICAgICAgICAgIE9SREVSIEJZIGlkKQorT1JERVIgQlkgdGVzdF9uYW1lOworICAgICAgdGVzdF9u YW1lICAgICAgIHwgc291cmNlICB8IG5vcHVzaCAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0KKyBleGNsdWRlX2N1cnJlbnRfcm93ICB8IHsxLDN9ICAgfCB7MSwz fQorIGV4Y2x1ZGVfdGllcyAgICAgICAgIHwgezJ9ICAgICB8IHsyfQorIG5vX29yZGVyX2N1cnJl bnRfcm93IHwgezEsMyw0fSB8IHsxLDMsNH0KKygzIHJvd3MpCisKK1RSVU5DQVRFIHdpbmRvd19l eGNsdXNpb247CitJTlNFUlQgSU5UTyB3aW5kb3dfZXhjbHVzaW9uIFZBTFVFUworICAoMSwgMSwg TlVMTCksCisgICgyLCAxLCBOVUxMKSwKKyAgKDMsIDIsIDEpLAorICAoNCwgMiwgTlVMTCk7CitT RUxFQ1QgJ2V4Y2x1ZGVfZ3JvdXAnIEFTIHRlc3RfbmFtZSwKKyAgICAgICBBUlJBWShTRUxFQ1Qg aWQKKyAgICAgICAgICAgICBGUk9NICgKKyAgICAgICAgICAgICAgIFNFTEVDVCBpZCwKKyAgICAg ICAgICAgICAgICAgICAgICBjb3VudCh2KSBPVkVSICgKKyAgICAgICAgICAgICAgICAgICAgICAg IE9SREVSIEJZIGsKKyAgICAgICAgICAgICAgICAgICAgICAgIEdST1VQUyBCRVRXRUVOIFVOQk9V TkRFRCBQUkVDRURJTkcgQU5EIDEgRk9MTE9XSU5HCisgICAgICAgICAgICAgICAgICAgICAgICBF WENMVURFIEdST1VQCisgICAgICAgICAgICAgICAgICAgICAgKSBBUyBjCisgICAgICAgICAgICAg ICBGUk9NIHdpbmRvd19leGNsdXNpb24KKyAgICAgICAgICAgICApIHMKKyAgICAgICAgICAgICBX SEVSRSBjIDw9IDAKKyAgICAgICAgICAgICBPUkRFUiBCWSBpZCkgQVMgc291cmNlLAorICAgICAg IEFSUkFZKFNFTEVDVCBpZAorICAgICAgICAgICAgIEZST00gKAorICAgICAgICAgICAgICAgU0VM RUNUIGlkLAorICAgICAgICAgICAgICAgICAgICAgIGNvdW50KHYpIE9WRVIgKAorICAgICAgICAg ICAgICAgICAgICAgICAgT1JERVIgQlkgaworICAgICAgICAgICAgICAgICAgICAgICAgR1JPVVBT IEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgMSBGT0xMT1dJTkcKKyAgICAgICAgICAg ICAgICAgICAgICAgIEVYQ0xVREUgR1JPVVAKKyAgICAgICAgICAgICAgICAgICAgICApIEFTIGMK KyAgICAgICAgICAgICAgIEZST00gd2luZG93X2V4Y2x1c2lvbgorICAgICAgICAgICAgICkgcwor ICAgICAgICAgICAgIFdIRVJFIGMgKyAwIDw9IDAKKyAgICAgICAgICAgICBPUkRFUiBCWSBpZCkg QVMgbm9wdXNoOworICAgdGVzdF9uYW1lICAgfCBzb3VyY2UgfCBub3B1c2ggCistLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0KKyBleGNsdWRlX2dyb3VwIHwgezMsNH0gIHwgezMsNH0K KygxIHJvdykKKworVFJVTkNBVEUgd2luZG93X2V4Y2x1c2lvbjsKK0lOU0VSVCBJTlRPIHdpbmRv d19leGNsdXNpb24gVkFMVUVTCisgICgxLCAxLCBOVUxMKSwKKyAgKDIsIDIsIE5VTEwpLAorICAo MywgMiwgTlVMTCksCisgICg0LCAyLCBOVUxMKSwKKyAgKDUsIDIsIE5VTEwpLAorICAoNiwgMiwg TlVMTCk7CitTRUxFQ1QgJ2NvdW50X3N0YXJfZXhjbHVkZV9ncm91cCcgQVMgdGVzdF9uYW1lLAor ICAgICAgIEFSUkFZKFNFTEVDVCBpZAorICAgICAgICAgICAgIEZST00gKAorICAgICAgICAgICAg ICAgU0VMRUNUIGlkLAorICAgICAgICAgICAgICAgICAgICAgIGNvdW50KCopIE9WRVIgKAorICAg ICAgICAgICAgICAgICAgICAgICAgT1JERVIgQlkgaworICAgICAgICAgICAgICAgICAgICAgICAg R1JPVVBTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgMSBGT0xMT1dJTkcKKyAgICAg ICAgICAgICAgICAgICAgICAgIEVYQ0xVREUgR1JPVVAKKyAgICAgICAgICAgICAgICAgICAgICAp IEFTIGMKKyAgICAgICAgICAgICAgIEZST00gd2luZG93X2V4Y2x1c2lvbgorICAgICAgICAgICAg ICkgcworICAgICAgICAgICAgIFdIRVJFIGMgPD0gMQorICAgICAgICAgICAgIE9SREVSIEJZIGlk KSBBUyBzb3VyY2UsCisgICAgICAgQVJSQVkoU0VMRUNUIGlkCisgICAgICAgICAgICAgRlJPTSAo CisgICAgICAgICAgICAgICBTRUxFQ1QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgY291bnQo KikgT1ZFUiAoCisgICAgICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBrCisgICAgICAgICAg ICAgICAgICAgICAgICBHUk9VUFMgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCAxIEZP TExPV0lORworICAgICAgICAgICAgICAgICAgICAgICAgRVhDTFVERSBHUk9VUAorICAgICAgICAg ICAgICAgICAgICAgICkgQVMgYworICAgICAgICAgICAgICAgRlJPTSB3aW5kb3dfZXhjbHVzaW9u CisgICAgICAgICAgICAgKSBzCisgICAgICAgICAgICAgV0hFUkUgYyArIDAgPD0gMQorICAgICAg ICAgICAgIE9SREVSIEJZIGlkKSBBUyBub3B1c2g7CisgICAgICAgIHRlc3RfbmFtZSAgICAgICAg IHwgICBzb3VyY2UgICAgfCAgIG5vcHVzaCAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGNvdW50X3N0YXJfZXhjbHVkZV9ncm91cCB8 IHsyLDMsNCw1LDZ9IHwgezIsMyw0LDUsNn0KKygxIHJvdykKKworRFJPUCBUQUJMRSB3aW5kb3df ZXhjbHVzaW9uOwogLS0gRW5zdXJlIHdlIGRvbid0IHB1c2ggZG93biB3aGVuIHRoZSB3aW5kb3cg ZnVuY3Rpb24ncyBtb25vdG9uaWMgcHJvcGVydGllcwogLS0gZG9uJ3QgbWF0Y2ggdGhhdCBvZiB0 aGUgY2xhdXNlcy4KIEVYUExBSU4gKENPU1RTIE9GRikKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3dpbmRvdy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aW5kb3cuc3FsCmlu ZGV4IDVhYzNhNDg2ZTE2Li4xZGFlMDBkOGRlZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2luZG93LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aW5kb3cuc3FsCkBA IC0xNDMxLDYgKzE0MzEsMTgxIEBAIFNFTEVDVCAqIEZST00KICAgIEZST00gZW1wc2FsYXJ5KSBl bXAKIFdIRVJFIGMgPD0gMzsKIAorQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSB3aW5kb3dfZXhjbHVz aW9uICgKKyAgaWQgaW50LAorICBrIGludCwKKyAgdiBpbnQKKyk7CisKK0lOU0VSVCBJTlRPIHdp bmRvd19leGNsdXNpb24gVkFMVUVTCisgICgxLCAxLCAxKSwKKyAgKDIsIDEsIE5VTEwpLAorICAo MywgMSwgMSksCisgICg0LCAyLCAxKTsKKworLS0gRW5zdXJlIHdlIGRvbid0IHB1c2ggZG93biBm b3IgY291bnQoKSB3aGVuIHRoZSBmcmFtZSBleGNsdWRlcyByb3dzLgorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIGlkCitGUk9NICgKKyAgU0VMRUNUIGlkLAorICAgICAgICAgY291bnQodikg T1ZFUiAoCisgICAgICAgICAgIE9SREVSIEJZIGsKKyAgICAgICAgICAgUkFOR0UgQkVUV0VFTiBV TkJPVU5ERUQgUFJFQ0VESU5HIEFORCBDVVJSRU5UIFJPVworICAgICAgICAgICBFWENMVURFIENV UlJFTlQgUk9XCisgICAgICAgICApIEFTIGMKKyAgRlJPTSB3aW5kb3dfZXhjbHVzaW9uCispIHMK K1dIRVJFIGMgPD0gMTsKKworU0VMRUNUICdleGNsdWRlX2N1cnJlbnRfcm93JyBBUyB0ZXN0X25h bWUsCisgICAgICAgQVJSQVkoU0VMRUNUIGlkCisgICAgICAgICAgICAgRlJPTSAoCisgICAgICAg ICAgICAgICBTRUxFQ1QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgY291bnQodikgT1ZFUiAo CisgICAgICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBrCisgICAgICAgICAgICAgICAgICAg ICAgICBSQU5HRSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIENVUlJFTlQgUk9XCisg ICAgICAgICAgICAgICAgICAgICAgICBFWENMVURFIENVUlJFTlQgUk9XCisgICAgICAgICAgICAg ICAgICAgICAgKSBBUyBjCisgICAgICAgICAgICAgICBGUk9NIHdpbmRvd19leGNsdXNpb24KKyAg ICAgICAgICAgICApIHMKKyAgICAgICAgICAgICBXSEVSRSBjIDw9IDEKKyAgICAgICAgICAgICBP UkRFUiBCWSBpZCkgQVMgc291cmNlLAorICAgICAgIEFSUkFZKFNFTEVDVCBpZAorICAgICAgICAg ICAgIEZST00gKAorICAgICAgICAgICAgICAgU0VMRUNUIGlkLAorICAgICAgICAgICAgICAgICAg ICAgIGNvdW50KHYpIE9WRVIgKAorICAgICAgICAgICAgICAgICAgICAgICAgT1JERVIgQlkgawor ICAgICAgICAgICAgICAgICAgICAgICAgUkFOR0UgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5H IEFORCBDVVJSRU5UIFJPVworICAgICAgICAgICAgICAgICAgICAgICAgRVhDTFVERSBDVVJSRU5U IFJPVworICAgICAgICAgICAgICAgICAgICAgICkgQVMgYworICAgICAgICAgICAgICAgRlJPTSB3 aW5kb3dfZXhjbHVzaW9uCisgICAgICAgICAgICAgKSBzCisgICAgICAgICAgICAgV0hFUkUgYyAr IDAgPD0gMQorICAgICAgICAgICAgIE9SREVSIEJZIGlkKSBBUyBub3B1c2gKK1VOSU9OIEFMTAor U0VMRUNUICdleGNsdWRlX3RpZXMnLAorICAgICAgIEFSUkFZKFNFTEVDVCBpZAorICAgICAgICAg ICAgIEZST00gKAorICAgICAgICAgICAgICAgU0VMRUNUIGlkLAorICAgICAgICAgICAgICAgICAg ICAgIGNvdW50KHYpIE9WRVIgKAorICAgICAgICAgICAgICAgICAgICAgICAgT1JERVIgQlkgawor ICAgICAgICAgICAgICAgICAgICAgICAgUkFOR0UgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5H IEFORCBDVVJSRU5UIFJPVworICAgICAgICAgICAgICAgICAgICAgICAgRVhDTFVERSBUSUVTCisg ICAgICAgICAgICAgICAgICAgICAgKSBBUyBjCisgICAgICAgICAgICAgICBGUk9NIHdpbmRvd19l eGNsdXNpb24KKyAgICAgICAgICAgICApIHMKKyAgICAgICAgICAgICBXSEVSRSBjIDw9IDAKKyAg ICAgICAgICAgICBPUkRFUiBCWSBpZCksCisgICAgICAgQVJSQVkoU0VMRUNUIGlkCisgICAgICAg ICAgICAgRlJPTSAoCisgICAgICAgICAgICAgICBTRUxFQ1QgaWQsCisgICAgICAgICAgICAgICAg ICAgICAgY291bnQodikgT1ZFUiAoCisgICAgICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBr CisgICAgICAgICAgICAgICAgICAgICAgICBSQU5HRSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJ TkcgQU5EIENVUlJFTlQgUk9XCisgICAgICAgICAgICAgICAgICAgICAgICBFWENMVURFIFRJRVMK KyAgICAgICAgICAgICAgICAgICAgICApIEFTIGMKKyAgICAgICAgICAgICAgIEZST00gd2luZG93 X2V4Y2x1c2lvbgorICAgICAgICAgICAgICkgcworICAgICAgICAgICAgIFdIRVJFIGMgKyAwIDw9 IDAKKyAgICAgICAgICAgICBPUkRFUiBCWSBpZCkKK1VOSU9OIEFMTAorU0VMRUNUICdub19vcmRl cl9jdXJyZW50X3JvdycsCisgICAgICAgQVJSQVkoU0VMRUNUIGlkCisgICAgICAgICAgICAgRlJP TSAoCisgICAgICAgICAgICAgICBTRUxFQ1QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgY291 bnQodikgT1ZFUiAoCisgICAgICAgICAgICAgICAgICAgICAgICBST1dTIEJFVFdFRU4gVU5CT1VO REVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgICAgICAg ICAgICAgRVhDTFVERSBDVVJSRU5UIFJPVworICAgICAgICAgICAgICAgICAgICAgICkgQVMgYwor ICAgICAgICAgICAgICAgRlJPTSB3aW5kb3dfZXhjbHVzaW9uCisgICAgICAgICAgICAgKSBzCisg ICAgICAgICAgICAgV0hFUkUgYyA8PSAyCisgICAgICAgICAgICAgT1JERVIgQlkgaWQpLAorICAg ICAgIEFSUkFZKFNFTEVDVCBpZAorICAgICAgICAgICAgIEZST00gKAorICAgICAgICAgICAgICAg U0VMRUNUIGlkLAorICAgICAgICAgICAgICAgICAgICAgIGNvdW50KHYpIE9WRVIgKAorICAgICAg ICAgICAgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0xVREUgQ1VSUkVO VCBST1cKKyAgICAgICAgICAgICAgICAgICAgICApIEFTIGMKKyAgICAgICAgICAgICAgIEZST00g d2luZG93X2V4Y2x1c2lvbgorICAgICAgICAgICAgICkgcworICAgICAgICAgICAgIFdIRVJFIGMg KyAwIDw9IDIKKyAgICAgICAgICAgICBPUkRFUiBCWSBpZCkKK09SREVSIEJZIHRlc3RfbmFtZTsK KworVFJVTkNBVEUgd2luZG93X2V4Y2x1c2lvbjsKKworSU5TRVJUIElOVE8gd2luZG93X2V4Y2x1 c2lvbiBWQUxVRVMKKyAgKDEsIDEsIE5VTEwpLAorICAoMiwgMSwgTlVMTCksCisgICgzLCAyLCAx KSwKKyAgKDQsIDIsIE5VTEwpOworCitTRUxFQ1QgJ2V4Y2x1ZGVfZ3JvdXAnIEFTIHRlc3RfbmFt ZSwKKyAgICAgICBBUlJBWShTRUxFQ1QgaWQKKyAgICAgICAgICAgICBGUk9NICgKKyAgICAgICAg ICAgICAgIFNFTEVDVCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICBjb3VudCh2KSBPVkVSICgK KyAgICAgICAgICAgICAgICAgICAgICAgIE9SREVSIEJZIGsKKyAgICAgICAgICAgICAgICAgICAg ICAgIEdST1VQUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDEgRk9MTE9XSU5HCisg ICAgICAgICAgICAgICAgICAgICAgICBFWENMVURFIEdST1VQCisgICAgICAgICAgICAgICAgICAg ICAgKSBBUyBjCisgICAgICAgICAgICAgICBGUk9NIHdpbmRvd19leGNsdXNpb24KKyAgICAgICAg ICAgICApIHMKKyAgICAgICAgICAgICBXSEVSRSBjIDw9IDAKKyAgICAgICAgICAgICBPUkRFUiBC WSBpZCkgQVMgc291cmNlLAorICAgICAgIEFSUkFZKFNFTEVDVCBpZAorICAgICAgICAgICAgIEZS T00gKAorICAgICAgICAgICAgICAgU0VMRUNUIGlkLAorICAgICAgICAgICAgICAgICAgICAgIGNv dW50KHYpIE9WRVIgKAorICAgICAgICAgICAgICAgICAgICAgICAgT1JERVIgQlkgaworICAgICAg ICAgICAgICAgICAgICAgICAgR1JPVVBTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQg MSBGT0xMT1dJTkcKKyAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0xVREUgR1JPVVAKKyAgICAg ICAgICAgICAgICAgICAgICApIEFTIGMKKyAgICAgICAgICAgICAgIEZST00gd2luZG93X2V4Y2x1 c2lvbgorICAgICAgICAgICAgICkgcworICAgICAgICAgICAgIFdIRVJFIGMgKyAwIDw9IDAKKyAg ICAgICAgICAgICBPUkRFUiBCWSBpZCkgQVMgbm9wdXNoOworCitUUlVOQ0FURSB3aW5kb3dfZXhj bHVzaW9uOworCitJTlNFUlQgSU5UTyB3aW5kb3dfZXhjbHVzaW9uIFZBTFVFUworICAoMSwgMSwg TlVMTCksCisgICgyLCAyLCBOVUxMKSwKKyAgKDMsIDIsIE5VTEwpLAorICAoNCwgMiwgTlVMTCks CisgICg1LCAyLCBOVUxMKSwKKyAgKDYsIDIsIE5VTEwpOworCitTRUxFQ1QgJ2NvdW50X3N0YXJf ZXhjbHVkZV9ncm91cCcgQVMgdGVzdF9uYW1lLAorICAgICAgIEFSUkFZKFNFTEVDVCBpZAorICAg ICAgICAgICAgIEZST00gKAorICAgICAgICAgICAgICAgU0VMRUNUIGlkLAorICAgICAgICAgICAg ICAgICAgICAgIGNvdW50KCopIE9WRVIgKAorICAgICAgICAgICAgICAgICAgICAgICAgT1JERVIg QlkgaworICAgICAgICAgICAgICAgICAgICAgICAgR1JPVVBTIEJFVFdFRU4gVU5CT1VOREVEIFBS RUNFRElORyBBTkQgMSBGT0xMT1dJTkcKKyAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0xVREUg R1JPVVAKKyAgICAgICAgICAgICAgICAgICAgICApIEFTIGMKKyAgICAgICAgICAgICAgIEZST00g d2luZG93X2V4Y2x1c2lvbgorICAgICAgICAgICAgICkgcworICAgICAgICAgICAgIFdIRVJFIGMg PD0gMQorICAgICAgICAgICAgIE9SREVSIEJZIGlkKSBBUyBzb3VyY2UsCisgICAgICAgQVJSQVko U0VMRUNUIGlkCisgICAgICAgICAgICAgRlJPTSAoCisgICAgICAgICAgICAgICBTRUxFQ1QgaWQs CisgICAgICAgICAgICAgICAgICAgICAgY291bnQoKikgT1ZFUiAoCisgICAgICAgICAgICAgICAg ICAgICAgICBPUkRFUiBCWSBrCisgICAgICAgICAgICAgICAgICAgICAgICBHUk9VUFMgQkVUV0VF TiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCAxIEZPTExPV0lORworICAgICAgICAgICAgICAgICAg ICAgICAgRVhDTFVERSBHUk9VUAorICAgICAgICAgICAgICAgICAgICAgICkgQVMgYworICAgICAg ICAgICAgICAgRlJPTSB3aW5kb3dfZXhjbHVzaW9uCisgICAgICAgICAgICAgKSBzCisgICAgICAg ICAgICAgV0hFUkUgYyArIDAgPD0gMQorICAgICAgICAgICAgIE9SREVSIEJZIGlkKSBBUyBub3B1 c2g7CisKK0RST1AgVEFCTEUgd2luZG93X2V4Y2x1c2lvbjsKKwogLS0gRW5zdXJlIHdlIGRvbid0 IHB1c2ggZG93biB3aGVuIHRoZSB3aW5kb3cgZnVuY3Rpb24ncyBtb25vdG9uaWMgcHJvcGVydGll cwogLS0gZG9uJ3QgbWF0Y2ggdGhhdCBvZiB0aGUgY2xhdXNlcy4KIEVYUExBSU4gKENPU1RTIE9G RikKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --_004_EC2733875C734C9CBF308BA260A90FFBoutlookcom_--