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 1vsAJW-008vcG-2o for pgsql-bugs@arkaria.postgresql.org; Tue, 17 Feb 2026 01:55:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vsAJU-007B9r-1F for pgsql-bugs@arkaria.postgresql.org; Tue, 17 Feb 2026 01:55:44 +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 1vsAJT-007B9a-2h for pgsql-bugs@lists.postgresql.org; Tue, 17 Feb 2026 01:55:44 +0000 Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vsAJR-00000000z2j-14OM for pgsql-bugs@lists.postgresql.org; Tue, 17 Feb 2026 01:55:43 +0000 Received: by mail-oa1-x32.google.com with SMTP id 586e51a60fabf-409470ad5bbso1368737fac.0 for ; Mon, 16 Feb 2026 17:55:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771293341; cv=none; d=google.com; s=arc-20240605; b=bOoBE9/K74jbF9caIRj8domU0LDHOjSUv/yGGkaU7Q40kLPTmLv4YbX/Vj7pSVRZf1 a/kkXFJlGabXv/jnZNP5pPTv4O/WH+CQK59LK6CjGZySdLv4F+x/tDQf/uD4A6Mkopki 1hhggwT9Tm+0tkmOz1k8qDXMusnVWmebMEwTqUO/axroETQc/qtwFnUpIP3A/aCXpEDf yTh4/FOZ1PYhmdW++zTASqcmt4jxXzd14kZbw3OwhzUK1TwAneM7QK+AL0rl1uy2rNXI QN20laXM+8HXZRA32Kr47fNpTjaExQ4C95SpMytzJKRZaba8Rx5qS7QZkitZW+ppsiaJ R/lA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=qwdbGFDgCLrALaT9s1PSrpiJ/TgfdwfyscM34XOtSec=; fh=8m8BjI0HA/sFdqJrdiAi+LP85hTi3ImJjaJ7iCw3fJ8=; b=DXYSyE7WgXdQpVUaSr2W4yy2CKhs4gwi2VKP5oRDBPeoLJArhgguA3SMXcTfObiwk6 Kp2WHmSRS0Pvxz2SeNM0+h6PuhHsi7eeNDAUmHGH5B76TjF20FT94g77OqALcgOTtFir bnTv9FnKnGcNXsSQl/vUowC2uII88U3ToowCZyfhZkb6o1CcquSKHPGEMip/lFvX9bf1 Q1iujSsaiUIuzCnqPfb1PN/seTK5I+0UhxpC3By3qAXTwYuhVzf5IHMDRzjwUvBTJwAV TIKlpDWoHeVJX83ZmTQg4Ly7K5FGJXXC8EZW9i1TpWuNu46gdSmBpi5TVr09dNCQzbJF Tviw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771293341; x=1771898141; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qwdbGFDgCLrALaT9s1PSrpiJ/TgfdwfyscM34XOtSec=; b=AAcwVweJL0+w45oizHje7N1urm8whbH6/3wCYr73kYbrRvFtDkBl+3bKSm3vKAQDVr GKU2QJMnVZH3ABlbbe+iSxwZi/vUrmbMWaq+0DsUwFieZxdZI5wI2AuT/ghRG8tVntio mXC6hLHvNX/D2WgNj9ABLKbP9KuSsbudHDrwZfZgG0qJffsnaFPRCG9YTv5wQ4lkZxws +KfIMl4A7Cd1NPcNA/T7wz1joMUeVv+KxFKeSgxpMZ5i5FbcZ/FOnfGGDhTpvq47QUXw 8y0TYZfMEi6arlu99VxracmwD2J+gEnsgIkQdQG4yigUpsAhSvKGgfmPqZTLpnoIJTLf 3UtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771293341; x=1771898141; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=qwdbGFDgCLrALaT9s1PSrpiJ/TgfdwfyscM34XOtSec=; b=ENKoZx3no6AAPubSiH7JeSD9sUcfEtbkeJfVMVOccBltcNxLMTeoTNl54296Ubk7gg QJH1SKWdzKrHiQ/67AC2JNqLWIw08Rk0BkDwSkwtDlRgAztnIA+a9ZxXez4qN8ENKcXp P55NDvEGLLlhQxnHNopFhGbdGNLnftNZsrxprCnK/yAVCldVy3yvwmpKquO+b6CNDoWI YQpbZqvVELXKkpRjI/81xG93x4mTIJeviW5SKOLqXTGXGkWQCiqd9n7cAn8Aem3FDxK6 fGk9v8pGG433PBXT9jVexFodd3au+EZjhRGbLKJtICgaPS04SOIlO+gvFUuFlTH/vYvN U/yA== X-Forwarded-Encrypted: i=1; AJvYcCWIc9DfFBUXHZfWzoJNqdYZ2fbeZsPb8A7/0I2lnOsuh/zTh7YEnqsVuwIImAoPuVxQSgMPm6FMLxsk@lists.postgresql.org X-Gm-Message-State: AOJu0YxcU+/9sBTJRxfepLY48Vt7DJuMHUXNLFrMLOve6hHc+mgjQSzE lvXn+hmC/NrxfWM9vGtpmcC37g7U7PNxG3+ADHQQyRpiHCRaGnbKHgzXhTjyPJPy1bwvnqz0ejC HLdF6UUkL6WGQ+Gja7ihLfDwbFHqXdMvnIr/1 X-Gm-Gg: AZuq6aIt+teE5UniSyWY3kdFvHbmpAH6sU1irNpNpHbksK2Qy5n0rrLlt8hYShs1ztj TRoG+SnQfeJ5+HlSzpsS0ybyUt+QiRTCZ+HBGDMjujEgZQ/atFC82FS46n9+N0Mleq8YECq/BQ7 QxUpouEIE6RjdNzrFRL1IzTZNJqwWzV2qQDfm5nS9aeZqXg5vrx+kIh6Duk8sKfAO5qtNFeYGiA dyvymkSjiq5OfAtg2H7OpdFRPYh2HyQc7m7d1an9np+rF6D2sMeC4Jzw02VxQdWi8rDE82O17W5 F1379gSx X-Received: by 2002:a05:6871:7415:b0:40e:e60d:16dd with SMTP id 586e51a60fabf-40f0d8df912mr6026119fac.48.1771293341264; Mon, 16 Feb 2026 17:55:41 -0800 (PST) MIME-Version: 1.0 References: <19405-1ecf025dda171555@postgresql.org> In-Reply-To: From: Richard Guo Date: Tue, 17 Feb 2026 10:55:30 +0900 X-Gm-Features: AaiRm52y8Pn1F9lKEnSiLc03lcYNq5tvPtfMLwl_bi6DKgUEa1rkEfamynK8--s Message-ID: Subject: Re: BUG #19405: Assertion in eval_windowaggregates() fails due to integer overflow To: Tender Wang Cc: exclusion@gmail.com, pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000006641e3064afb5e45" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006641e3064afb5e45 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Feb 15, 2026 at 5:48=E2=80=AFPM Tender Wang wr= ote: > v2 seems to cover all cases. WFM. > > In window.sql, we don't have a test case for this issue. I think we > should add it to the window.sql I've included test cases covering the overflow scenarios for ROWS mode in v3. (I failed to come up with queries for GROUPS mode that demonstrate the bug, but I suspect I just haven't found the right test case yet.) I have also included a commit message. - Richard --0000000000006641e3064afb5e45 Content-Type: application/octet-stream; name="v3-0001-Fix-integer-overflow-in-nodeWindowAgg.c.patch" Content-Disposition: attachment; filename="v3-0001-Fix-integer-overflow-in-nodeWindowAgg.c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlpyb8g10 RnJvbSBkYzkwNDk1NWExMTU4MDE1MGI4NGNiOWViNWM1MzY5MjZiMTBmYjJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAxNCBGZWIgMjAyNiAxODoxNjoyNyArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjNd IEZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIG5vZGVXaW5kb3dBZ2cuYwoKSW4gbm9kZVdpbmRvd0Fn Zy5jLCB0aGUgY2FsY3VsYXRpb25zIGZvciBmcmFtZSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucwpp biBST1dTIGFuZCBHUk9VUFMgbW9kZXMgd2VyZSBwZXJmb3JtZWQgdXNpbmcgc2ltcGxlIGludGVn ZXIgYWRkaXRpb24uCklmIGEgdXNlci1zdXBwbGllZCBvZmZzZXQgd2FzIHN1ZmZpY2llbnRseSBs YXJnZSAoY2xvc2UgdG8gSU5UNjRfTUFYKSwKYWRkaW5nIGl0IHRvIHRoZSBjdXJyZW50IHJvdyBv ciBncm91cCBpbmRleCBjb3VsZCBjYXVzZSBhIHNpZ25lZAppbnRlZ2VyIG92ZXJmbG93LCB3cmFw cGluZyB0aGUgcmVzdWx0IHRvIGEgbmVnYXRpdmUgbnVtYmVyLgoKVGhpcyBsZWQgdG8gaW5jb3Jy ZWN0IGJlaGF2aW9yIHdoZXJlIGZyYW1lIGJvdW5kYXJpZXMgdGhhdCBzaG91bGQgaGF2ZQpleHRl bmRlZCBpbmRlZmluaXRlbHkgKG9yIGJleW9uZCB0aGUgcGFydGl0aW9uIGVuZCkgd2VyZSB0cmVh dGVkIGFzCmZhbGxpbmcgYXQgdGhlIGZpcnN0IHJvdywgb3Igd2hlcmUgdmFsaWQgcm93cyB3ZXJl IGluY29ycmVjdGx5IG1hcmtlZAphcyBvdXQtb2YtZnJhbWUuICBEZXBlbmRpbmcgb24gdGhlIHNw ZWNpZmljIHF1ZXJ5IGFuZCBkYXRhLCB0aGVzZQpvdmVyZmxvd3MgY2FuIHJlc3VsdCBpbiBpbmNv cnJlY3QgcXVlcnkgcmVzdWx0cywgZXhlY3V0aW9uIGVycm9ycywgb3IKYXNzZXJ0aW9uIGZhaWx1 cmVzLgoKVG8gZml4LCB1c2Ugb3ZlcmZsb3ctYXdhcmUgaW50ZWdlciBhZGRpdGlvbiAoaWUsIHBn X2FkZF9zNjRfb3ZlcmZsb3cpCnRvIGNoZWNrIGZvciBvdmVyZmxvd3MgZHVyaW5nIHRoZXNlIGFk ZGl0aW9ucy4gIElmIGFuIG92ZXJmbG93IGlzCmRldGVjdGVkLCB0aGUgYm91bmRhcnkgaXMgbm93 IGNsYW1wZWQgdG8gSU5UNjRfTUFYLiAgVGhpcyBlbnN1cmVzIHRoZQpsb2dpYyBjb3JyZWN0bHkg dHJlYXRzIHRoZSBib3VuZGFyeSBhcyBleHRlbmRpbmcgdG8gdGhlIGVuZCBvZiB0aGUKcGFydGl0 aW9uLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDU3ICsrKysr KysrKysrKysrKysrKysrKysrKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2luZG93 Lm91dCB8IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3dpbmRvdy5zcWwgICAgICB8IDEzICsrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5j CmluZGV4IGQ5YjY0YjBmNDY1Li42MjgwODY5MzBiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVX aW5kb3dBZ2cuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNj ZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKKyNpbmNsdWRlICJjb21tb24vaW50LmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlV2luZG93QWdnLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCkBAIC0xNTMyLDEyICsxNTMzLDIyIEBAIHJvd19pc19pbl9mcmFt ZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIFR1cGxlVGFibGVTbG90ICpzbG90LAog CQlpZiAoZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJT05fUk9XUykKIAkJewogCQkJaW50NjQJCW9m ZnNldCA9IERhdHVtR2V0SW50NjQod2luc3RhdGUtPmVuZE9mZnNldFZhbHVlKTsKKwkJCWludDY0 CQlmcmFtZWVuZHBvczsKIAogCQkJLyogcm93cyBhZnRlciBjdXJyZW50IHJvdyArIG9mZnNldCBh cmUgb3V0IG9mIGZyYW1lICovCiAJCQlpZiAoZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJT05fRU5E X09GRlNFVF9QUkVDRURJTkcpCiAJCQkJb2Zmc2V0ID0gLW9mZnNldDsKIAotCQkJaWYgKHBvcyA+ IHdpbnN0YXRlLT5jdXJyZW50cG9zICsgb2Zmc2V0KQorCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZs b3cod2luc3RhdGUtPmN1cnJlbnRwb3MsIG9mZnNldCwgJmZyYW1lZW5kcG9zKSkKKwkJCXsKKwkJ CQkvKgorCQkJCSAqIElmIHdlIGhhdmUgYW4gb3ZlcmZsb3csIGl0IG1lYW5zIHRoZSBmcmFtZSBl bmQgaXMgYmV5b25kCisJCQkJICogdGhlIHJhbmdlIG9mIGludDY0LiAgU2luY2UgY3VycmVudHBv cyA+PSAwLCB0aGlzIGNhbiBvbmx5CisJCQkJICogYmUgYSBwb3NpdGl2ZSBvdmVyZmxvdy4gIFdl IHRyZWF0IHRoaXMgYXMgbWVhbmluZyB0aGF0IHRoZQorCQkJCSAqIGZyYW1lIGV4dGVuZHMgdG8g ZW5kIG9mIHBhcnRpdGlvbi4KKwkJCQkgKi8KKwkJCX0KKwkJCWVsc2UgaWYgKHBvcyA+IGZyYW1l ZW5kcG9zKQogCQkJCXJldHVybiAtMTsKIAkJfQogCQllbHNlIGlmIChmcmFtZU9wdGlvbnMgJiAo RlJBTUVPUFRJT05fUkFOR0UgfCBGUkFNRU9QVElPTl9HUk9VUFMpKQpAQCAtMTY3Miw3ICsxNjgz LDE2IEBAIHVwZGF0ZV9mcmFtZWhlYWRwb3MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQkJ aWYgKGZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1NUQVJUX09GRlNFVF9QUkVDRURJTkcpCiAJ CQkJb2Zmc2V0ID0gLW9mZnNldDsKIAotCQkJd2luc3RhdGUtPmZyYW1laGVhZHBvcyA9IHdpbnN0 YXRlLT5jdXJyZW50cG9zICsgb2Zmc2V0OworCQkJLyoKKwkJCSAqIElmIHdlIGhhdmUgYW4gb3Zl cmZsb3csIGl0IG1lYW5zIHRoZSBmcmFtZSBoZWFkIGlzIGJleW9uZCB0aGUKKwkJCSAqIHJhbmdl IG9mIGludDY0LiAgU2luY2UgY3VycmVudHBvcyA+PSAwLCB0aGlzIGNhbiBvbmx5IGJlIGEKKwkJ CSAqIHBvc2l0aXZlIG92ZXJmbG93LiAgV2UgdHJlYXQgdGhpcyBhcyBiZWluZyBiZXlvbmQgZW5k IG9mCisJCQkgKiBwYXJ0aXRpb24uCisJCQkgKi8KKwkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93 KHdpbnN0YXRlLT5jdXJyZW50cG9zLCBvZmZzZXQsCisJCQkJCQkJCQkmd2luc3RhdGUtPmZyYW1l aGVhZHBvcykpCisJCQkJd2luc3RhdGUtPmZyYW1laGVhZHBvcyA9IFBHX0lOVDY0X01BWDsKKwog CQkJLyogZnJhbWUgaGVhZCBjYW4ndCBnbyBiZWZvcmUgZmlyc3Qgcm93ICovCiAJCQlpZiAod2lu c3RhdGUtPmZyYW1laGVhZHBvcyA8IDApCiAJCQkJd2luc3RhdGUtPmZyYW1laGVhZHBvcyA9IDA7 CkBAIC0xNzg5LDcgKzE4MDksMTYgQEAgdXBkYXRlX2ZyYW1laGVhZHBvcyhXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUpCiAJCQlpZiAoZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJT05fU1RBUlRfT0ZG U0VUX1BSRUNFRElORykKIAkJCQltaW5oZWFkZ3JvdXAgPSB3aW5zdGF0ZS0+Y3VycmVudGdyb3Vw IC0gb2Zmc2V0OwogCQkJZWxzZQotCQkJCW1pbmhlYWRncm91cCA9IHdpbnN0YXRlLT5jdXJyZW50 Z3JvdXAgKyBvZmZzZXQ7CisJCQl7CisJCQkJLyoKKwkJCQkgKiBJZiB3ZSBoYXZlIGFuIG92ZXJm bG93LCBpdCBtZWFucyB0aGUgdGFyZ2V0IGdyb3VwIGlzIGJleW9uZAorCQkJCSAqIHRoZSByYW5n ZSBvZiBpbnQ2NC4gIFdlIHRyZWF0IHRoaXMgYXMgImluZmluaXR5Iiwgd2hpY2gKKwkJCQkgKiBl bnN1cmVzIHRoZSBsb29wIGJlbG93IGFkdmFuY2VzIHRvIGVuZCBvZiBwYXJ0aXRpb24uCisJCQkJ ICovCisJCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPmN1cnJlbnRncm91cCwg b2Zmc2V0LAorCQkJCQkJCQkJCSZtaW5oZWFkZ3JvdXApKQorCQkJCQltaW5oZWFkZ3JvdXAgPSBQ R19JTlQ2NF9NQVg7CisJCQl9CiAKIAkJCXR1cGxlc3RvcmVfc2VsZWN0X3JlYWRfcG9pbnRlcih3 aW5zdGF0ZS0+YnVmZmVyLAogCQkJCQkJCQkJCSAgIHdpbnN0YXRlLT5mcmFtZWhlYWRfcHRyKTsK QEAgLTE5MjYsNyArMTk1NSwxNiBAQCB1cGRhdGVfZnJhbWV0YWlscG9zKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSkKIAkJCWlmIChmcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FTkRfT0ZGU0VU X1BSRUNFRElORykKIAkJCQlvZmZzZXQgPSAtb2Zmc2V0OwogCi0JCQl3aW5zdGF0ZS0+ZnJhbWV0 YWlscG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3MgKyBvZmZzZXQgKyAxOworCQkJLyoKKwkJCSAq IElmIHdlIGhhdmUgYW4gb3ZlcmZsb3csIGl0IG1lYW5zIHRoZSBmcmFtZSB0YWlsIGlzIGJleW9u ZCB0aGUKKwkJCSAqIHJhbmdlIG9mIGludDY0LiAgU2luY2UgY3VycmVudHBvcyA+PSAwLCB0aGlz IGNhbiBvbmx5IGJlIGEKKwkJCSAqIHBvc2l0aXZlIG92ZXJmbG93LiAgV2UgdHJlYXQgdGhpcyBh cyBiZWluZyBiZXlvbmQgZW5kIG9mCisJCQkgKiBwYXJ0aXRpb24uCisJCQkgKi8KKwkJCWlmIChw Z19hZGRfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJyZW50cG9zICsgMSwgb2Zmc2V0LAorCQkJ CQkJCQkJJndpbnN0YXRlLT5mcmFtZXRhaWxwb3MpKQorCQkJCXdpbnN0YXRlLT5mcmFtZXRhaWxw b3MgPSBQR19JTlQ2NF9NQVg7CisKIAkJCS8qIHNtYWxsZXN0IGFsbG93YWJsZSB2YWx1ZSBvZiBm cmFtZXRhaWxwb3MgaXMgMCAqLwogCQkJaWYgKHdpbnN0YXRlLT5mcmFtZXRhaWxwb3MgPCAwKQog CQkJCXdpbnN0YXRlLT5mcmFtZXRhaWxwb3MgPSAwOwpAQCAtMjA0Myw3ICsyMDgxLDE2IEBAIHVw ZGF0ZV9mcmFtZXRhaWxwb3MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQkJaWYgKGZyYW1l T3B0aW9ucyAmIEZSQU1FT1BUSU9OX0VORF9PRkZTRVRfUFJFQ0VESU5HKQogCQkJCW1heHRhaWxn cm91cCA9IHdpbnN0YXRlLT5jdXJyZW50Z3JvdXAgLSBvZmZzZXQ7CiAJCQllbHNlCi0JCQkJbWF4 dGFpbGdyb3VwID0gd2luc3RhdGUtPmN1cnJlbnRncm91cCArIG9mZnNldDsKKwkJCXsKKwkJCQkv KgorCQkJCSAqIElmIHdlIGhhdmUgYW4gb3ZlcmZsb3csIGl0IG1lYW5zIHRoZSB0YXJnZXQgZ3Jv dXAgaXMgYmV5b25kCisJCQkJICogdGhlIHJhbmdlIG9mIGludDY0LiAgV2UgdHJlYXQgdGhpcyBh cyAiaW5maW5pdHkiLCB3aGljaAorCQkJCSAqIGVuc3VyZXMgdGhlIGxvb3AgYmVsb3cgYWR2YW5j ZXMgdG8gZW5kIG9mIHBhcnRpdGlvbi4KKwkJCQkgKi8KKwkJCQlpZiAocGdfYWRkX3M2NF9vdmVy Zmxvdyh3aW5zdGF0ZS0+Y3VycmVudGdyb3VwLCBvZmZzZXQsCisJCQkJCQkJCQkJJm1heHRhaWxn cm91cCkpCisJCQkJCW1heHRhaWxncm91cCA9IFBHX0lOVDY0X01BWDsKKwkJCX0KIAogCQkJdHVw bGVzdG9yZV9zZWxlY3RfcmVhZF9wb2ludGVyKHdpbnN0YXRlLT5idWZmZXIsCiAJCQkJCQkJCQkJ ICAgd2luc3RhdGUtPmZyYW1ldGFpbF9wdHIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aW5kb3cub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aW5kb3cu b3V0CmluZGV4IDdhMDRkM2E3YTlmLi4wOGNiYjRjYWI0ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC93aW5kb3cub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvd2luZG93Lm91dApAQCAtMTM2MSw2ICsxMzYxLDU4IEBAIFNFTEVDVCBwZ19nZXRfdmlld2Rl Zigndl93aW5kb3cnKTsKICAgICBGUk9NIGdlbmVyYXRlX3Nlcmllcyhub3coKSwgKG5vdygpICsg J0AgMTAwIGRheXMnOjppbnRlcnZhbCksICdAIDEgaG91cic6OmludGVydmFsKSBpKGkpOwogKDEg cm93KQogCistLSB0ZXN0IG92ZXJmbG93IGZyYW1lIHNwZWNpZmljYXRpb25zCitTRUxFQ1Qgc3Vt KHVuaXF1ZTEpIG92ZXIgKHJvd3MgYmV0d2VlbiBjdXJyZW50IHJvdyBhbmQgMHg3ZmZmZmZmZmZm ZmZmZmZmIGZvbGxvd2luZyBleGNsdWRlIGN1cnJlbnQgcm93KSwKKwl1bmlxdWUxLCBmb3VyCitG Uk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgPCAxMDsKKyBzdW0gfCB1bmlxdWUxIHwgZm91ciAKKy0t LS0tKy0tLS0tLS0tLSstLS0tLS0KKyAgNDEgfCAgICAgICA0IHwgICAgMAorICAzOSB8ICAgICAg IDIgfCAgICAyCisgIDM4IHwgICAgICAgMSB8ICAgIDEKKyAgMzIgfCAgICAgICA2IHwgICAgMgor ICAyMyB8ICAgICAgIDkgfCAgICAxCisgIDE1IHwgICAgICAgOCB8ICAgIDAKKyAgMTAgfCAgICAg ICA1IHwgICAgMQorICAgNyB8ICAgICAgIDMgfCAgICAzCisgICAwIHwgICAgICAgNyB8ICAgIDMK KyAgICAgfCAgICAgICAwIHwgICAgMAorKDEwIHJvd3MpCisKK1NFTEVDVCBzdW0odW5pcXVlMSkg b3ZlciAocm93cyBiZXR3ZWVuIDB4N2ZmZmZmZmZmZmZmZmZmZiBmb2xsb3dpbmcgYW5kIDEgZm9s bG93aW5nKSwKKwl1bmlxdWUxLCBmb3VyCitGUk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgPCAxMDsK KyBzdW0gfCB1bmlxdWUxIHwgZm91ciAKKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0KKyAgICAgfCAg ICAgICA0IHwgICAgMAorICAgICB8ICAgICAgIDIgfCAgICAyCisgICAgIHwgICAgICAgMSB8ICAg IDEKKyAgICAgfCAgICAgICA2IHwgICAgMgorICAgICB8ICAgICAgIDkgfCAgICAxCisgICAgIHwg ICAgICAgOCB8ICAgIDAKKyAgICAgfCAgICAgICA1IHwgICAgMQorICAgICB8ICAgICAgIDMgfCAg ICAzCisgICAgIHwgICAgICAgNyB8ICAgIDMKKyAgICAgfCAgICAgICAwIHwgICAgMAorKDEwIHJv d3MpCisKK1NFTEVDVCBsYXN0X3ZhbHVlKHVuaXF1ZTEpIG92ZXIgKE9SREVSIEJZIGZvdXIgcm93 cyBiZXR3ZWVuIGN1cnJlbnQgcm93IGFuZCAweDdmZmZmZmZmZmZmZmZmZmYgZm9sbG93aW5nIGV4 Y2x1ZGUgY3VycmVudCByb3cpLAorCXVuaXF1ZTEsIGZvdXIKK0ZST00gdGVuazEgV0hFUkUgdW5p cXVlMSA8IDEwOworIGxhc3RfdmFsdWUgfCB1bmlxdWUxIHwgZm91ciAKKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tCisgICAgICAgICAgNyB8ICAgICAgIDAgfCAgICAwCisgICAgICAgICAg NyB8ICAgICAgIDggfCAgICAwCisgICAgICAgICAgNyB8ICAgICAgIDQgfCAgICAwCisgICAgICAg ICAgNyB8ICAgICAgIDUgfCAgICAxCisgICAgICAgICAgNyB8ICAgICAgIDkgfCAgICAxCisgICAg ICAgICAgNyB8ICAgICAgIDEgfCAgICAxCisgICAgICAgICAgNyB8ICAgICAgIDYgfCAgICAyCisg ICAgICAgICAgNyB8ICAgICAgIDIgfCAgICAyCisgICAgICAgICAgNyB8ICAgICAgIDMgfCAgICAz CisgICAgICAgICAgICB8ICAgICAgIDcgfCAgICAzCisoMTAgcm93cykKKwogLS0gUkFOR0Ugb2Zm c2V0IFBSRUNFRElORy9GT0xMT1dJTkcgdGVzdHMKIFNFTEVDVCBzdW0odW5pcXVlMSkgb3ZlciAo b3JkZXIgYnkgZm91ciByYW5nZSBiZXR3ZWVuIDI6OmludDggcHJlY2VkaW5nIGFuZCAxOjppbnQy IHByZWNlZGluZyksCiAJdW5pcXVlMSwgZm91cgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2luZG93LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKaW5kZXgg MzdkODM3YTJmNjYuLjU4OWYyNzdmMjY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC93aW5kb3cuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKQEAgLTMz MCw2ICszMzAsMTkgQEAgQ1JFQVRFIFRFTVAgVklFVyB2X3dpbmRvdyBBUwogCiBTRUxFQ1QgcGdf Z2V0X3ZpZXdkZWYoJ3Zfd2luZG93Jyk7CiAKKy0tIHRlc3Qgb3ZlcmZsb3cgZnJhbWUgc3BlY2lm aWNhdGlvbnMKK1NFTEVDVCBzdW0odW5pcXVlMSkgb3ZlciAocm93cyBiZXR3ZWVuIGN1cnJlbnQg cm93IGFuZCAweDdmZmZmZmZmZmZmZmZmZmYgZm9sbG93aW5nIGV4Y2x1ZGUgY3VycmVudCByb3cp LAorCXVuaXF1ZTEsIGZvdXIKK0ZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA8IDEwOworCitTRUxF Q1Qgc3VtKHVuaXF1ZTEpIG92ZXIgKHJvd3MgYmV0d2VlbiAweDdmZmZmZmZmZmZmZmZmZmYgZm9s bG93aW5nIGFuZCAxIGZvbGxvd2luZyksCisJdW5pcXVlMSwgZm91cgorRlJPTSB0ZW5rMSBXSEVS RSB1bmlxdWUxIDwgMTA7CisKK1NFTEVDVCBsYXN0X3ZhbHVlKHVuaXF1ZTEpIG92ZXIgKE9SREVS IEJZIGZvdXIgcm93cyBiZXR3ZWVuIGN1cnJlbnQgcm93IGFuZCAweDdmZmZmZmZmZmZmZmZmZmYg Zm9sbG93aW5nIGV4Y2x1ZGUgY3VycmVudCByb3cpLAorCXVuaXF1ZTEsIGZvdXIKK0ZST00gdGVu azEgV0hFUkUgdW5pcXVlMSA8IDEwOworCiAtLSBSQU5HRSBvZmZzZXQgUFJFQ0VESU5HL0ZPTExP V0lORyB0ZXN0cwogCiBTRUxFQ1Qgc3VtKHVuaXF1ZTEpIG92ZXIgKG9yZGVyIGJ5IGZvdXIgcmFu Z2UgYmV0d2VlbiAyOjppbnQ4IHByZWNlZGluZyBhbmQgMTo6aW50MiBwcmVjZWRpbmcpLAotLSAK Mi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --0000000000006641e3064afb5e45--