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 1we6Zz-004Z0j-0P for pgsql-hackers@arkaria.postgresql.org; Mon, 29 Jun 2026 07:38:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1we6Zv-001cWS-2K for pgsql-hackers@arkaria.postgresql.org; Mon, 29 Jun 2026 07:38:51 +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.96) (envelope-from ) id 1we6Zv-001cWK-0n for pgsql-hackers@lists.postgresql.org; Mon, 29 Jun 2026 07:38:51 +0000 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1we6Zs-00000000kgn-23dW for pgsql-hackers@postgresql.org; Mon, 29 Jun 2026 07:38:50 +0000 Received: by mail-oi1-x22f.google.com with SMTP id 5614622812f47-48751bd4abeso1378161b6e.0 for ; Mon, 29 Jun 2026 00:38:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782718726; cv=none; d=google.com; s=arc-20260327; b=QXgmXbMN8QAaHbiUO3oXB75yB7kWilvddK2qdpIKmNcVrLSxbsJK1tv8h4OgNok/Iy ExvdiO+ciV57yCOOfMhcwHB3lDys2CDTosfEE9uv13YN7NzYyoatHM6EcwnvrFWuu20t uaEuBIio5cjomy67IzGq+HUAhWtYrKpKn7bUNDNzmSro+hCYmoZitTN6YM46tspVM0ir yU1U+SdpvMID5LFv+42gIcNxK7gwGHlyHGN74hwM4oE+w46sW2USz9oyiC0MweTXOajG JT+jWYg4n0PPaDyNArJ4WIEkCDlAS8gbrmf5U+4voyLvUpIU03i0NIYvhc8lsHghALCq DykA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=0MbbpyuGVbwrcSQY0waT2L2DtOIPoj8YXEG6muJ+izU=; fh=F1WMhepPFSOAULsun6DiJh9XGwPhExLErw5m0/5+gUA=; b=cyfZN3ccCCFMlIb3D0S1BwX7Xk9LDSWtZhcPQnYMkiGx8j+NxU3gHPf8EoAb3GNo2A WTjxRtkthyOn6kdK+lSM9dbaZCphLkv+Xr+s7WFD07rsxO2JH/0kUPdUvNvYYM9WzMB4 d76emspqMJGLqO0zzoG8jiw66tgFOzK8ZzcSffAUlzaHnXfNWDiO/M/qLIKspXnTtiM4 hQysf/+7Ew95J2ZdhxJPYJIgyEkjU84hGu9GEAXDGrm6WnxcINPrwhxmfviRAgzROZR+ t1QHd/c9/hlrf62bTi4Fs/EWbAEuzgZDR3dJOBByXSMzO67RFT1h0S6Um9wW0M16Dihz v01A==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20251104.gappssmtp.com; s=20251104; t=1782718726; x=1783323526; darn=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=0MbbpyuGVbwrcSQY0waT2L2DtOIPoj8YXEG6muJ+izU=; b=r61fDdWNXjxmZME3MQjH15g8JXY6a/lBZFEiIiUo40wx1h0XHIFWR5AB/khinQlWHs 7SV4JiqyoyMJuvV0zoGMJHqDWE/RFDw7zb4OZPkc3ICCKzSFfcxCA/cJswDhO3jz/Xy1 5CZf67FfKedy5uze2HPLAXQi/9X6kwNGLz4LuUeoUavyXF1mMEBopDZKo5mbHo3QDWqx GQwBZJKSBLy6nZ4FS7iIdgwUHHxftHhuHJo3kb7BqLeMWVx+7cdVqrrniFLKz639T2RF Jqb4s9Rwj5vRpTjCKepSR+X4tF3isEHhLMwMHaSfA9pgUY1QCvazVmqEgTKFSLFHTpMZ o/Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782718726; x=1783323526; 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=0MbbpyuGVbwrcSQY0waT2L2DtOIPoj8YXEG6muJ+izU=; b=Qz0f3XQm0h9ZSxi/tpuBEpljdk+e2dVHxII54JG9s8fSuJjycu8oIoLNJRGnmKizt/ NcIT9aVaNwM8PXR0UMPDi4PgVkz7PUvp/Nb2GmGj9Yjt3P2MLXeO1WA8mVRwpfNSYCOb NV9b8StGU1+a8HlsRTpVXHAJ5mns9uk1CQzw54SF+8FFOfGONiVFMKqkGxfV8OiSkuWX vUp8UzbAZXGQlCjPESCN83HezVwt4DIg/QhKy4TpkyVU6pZbPOPanykUFHMHWS4tJgaa Kull6WEFR9j47tcqMCn6fhQyosB6/XBrjjh7qUMj73+cEdQgQ4YRgdO2i/EnxbN9E4gW RWMA== X-Gm-Message-State: AOJu0YwnQlg3rJ1ItaNjeeczUy1y22crQNP5bfi7ukTZyUpBEXPQcPjy qeEZyE03Q8QrWcN4cuEhhuuaXiHA7VZWvdMMNvRSGv7mp4j1Arck87mcJn1f89Ujos9mARAi30x ZIuv+zP85iA3RAKzNPCQhh9dZCIr4kLz8nDBRieuHlA== X-Gm-Gg: AfdE7clJIk4RVOrmD6J+jOuPd+J/hnpBR1pGOXSyFSRNzijZgclnYgxBObNz8OADeDF Ki0XVPXMQeVKhrZOHg+DxTeMsnZosmv07yuE+9JboYmSmFtwQ+stLIQgFgTfyXYwhHGpm20ffMD kpBg6G187dcXpwbY9cMJHWXwfBItUI6l0094VvhfBP3oToxeZ1fo/YiLfTF7fYXMOxMi1YE4tIG MR9H99UjEutQltfoIOcKetV3n/nLxKMzzFmy/7/wnfXT+MVQOXjNUqhWCZTPMy8lnb3oUru X-Received: by 2002:a05:6809:25b:10b0:492:b072:7460 with SMTP id 5614622812f47-492b0727af6mr7477953b6e.35.1782718726022; Mon, 29 Jun 2026 00:38:46 -0700 (PDT) MIME-Version: 1.0 References: <626986.1776785090@sss.pgh.pa.us> <84f20d0d-3bc8-4843-bd7e-21bce20f8582@eisentraut.org> In-Reply-To: From: Paul A Jungwirth Date: Mon, 29 Jun 2026 00:38:34 -0700 X-Gm-Features: AVVi8CdFgjXdYiS8X3U88jUOfQdJwiF5P4iJu7ScAS2bN9-ZTSqeYgwMyhGfXUg Message-ID: Subject: Re: [PATCH] Fix null pointer dereference in PG19 To: Aleksander Alekseev Cc: PostgreSQL Development , Tom Lane , Peter Eisentraut , jian he Content-Type: multipart/mixed; boundary="00000000000066583606555f8c04" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000066583606555f8c04 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jun 25, 2026 at 3:32=E2=80=AFAM Aleksander Alekseev wrote: > > This patch rotted and needed a rebase (attached as .txt). Thank you for taking care of the rebase! > Also it's > incorrect, it only masks the crash: > > ``` > CREATE TABLE t (id int, valid_at daterange, val int); > INSERT INTO t VALUES (1, '[2024-01-01,2025-01-01)', 100); > CREATE VIEW v AS SELECT * FROM t; > > CREATE FUNCTION trig_fn() RETURNS trigger LANGUAGE plpgsql AS $$ > BEGIN > RAISE NOTICE 'UPDATE OLD: %, NEW: %', OLD, NEW; > RETURN NEW; > END; > $$; > > CREATE TRIGGER trig INSTEAD OF UPDATE ON v FOR EACH ROW EXECUTE > FUNCTION trig_fn(); > UPDATE v FOR PORTION OF valid_at FROM '2024-04-01' TO '2024-08-01' SET > val =3D 999 WHERE id =3D 1; > > server closed the connection unexpectedly > ``` You're right, this was due to a copy/paste bug (looking for a delete trigger in the update code). By splitting the test into two triggers, we catch the problem and correctly skip the leftovers. I've attached a patch with that correction. > IMO it's a little bit late in the PG19 cycle for making this work. > This is an implementation of a new feature which is not present at the > moment which to my knowledge we don't do after the feature freeze. Our > goal is to fix the crash and leave the rest for the PG20 cycle. > Clearly the feature needs more discussion and thorough testing. I don't really think this is a new feature. It is a fix to make FOR PORTION OF not execute when it shouldn't. The change here is quite simple. But I don't mind holding it back if that's what people want to do. Looking more closely at INSTEAD OF triggers, I found another bug: the FOR PORTION OF qual (and TLE) were not added, so the trigger would fire on more rows than it should, and NEW.valid_at was not pre-computed. The second patch here fixes that. I'll defer to others whether we should fix the INSTEAD OF interaction now or wait 'til v20. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --00000000000066583606555f8c04 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0001-Skip-FOR-PORTION-OF-leftovers-after-INSTEAD-OF-tr.patch" Content-Disposition: attachment; filename="v6-0001-Skip-FOR-PORTION-OF-leftovers-after-INSTEAD-OF-tr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqywn16h0 RnJvbSA4OGNhNzk1NmQ0YjI0ZjY5NDA1ODdkOTBhYzU0ZGNiNGEwMjVlNzI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTQgQXByIDIwMjYgMTI6MTA6MDkgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDEvMl0gU2tpcCBGT1IgUE9SVElPTiBPRiBsZWZ0b3ZlcnMgYWZ0ZXIgSU5TVEVBRCBPRiB0cmln Z2VyCgpXZSBzaG91bGQgbm90IHRyeSB0byBpbnNlcnQgdGVtcG9yYWwgbGVmdG92ZXJzIGZvbGxv d2luZyBhbiBJTlNURUFEIE9GCnRyaWdnZXIuIEl0IHdpbGwgY3Jhc2ggYmVjYXVzZSB0aGUgcmVz dWx0UmVsIGlzIHRoZSB2aWV3LCBub3QgdGhlIGJhc2UKcmVsYXRpb24sIHNvIHdlIGNhbid0IGxv b2sgdXAgdGhlIHByZS11cGRhdGUvZGVsZXRlIHJvdy4gTW9yZQplc3NlbnRpYWxseSwgdGhlIGxl ZnRvdmVycyBhcmUgcGFydCBvZiBvcmlnaW5hbCBVUERBVEUvREVMRVRFIGNvbW1hbmQsCndoaWNo IHRoZSB0cmlnZ2VyIHJlcGxhY2VkLCBzbyB3ZSBzaG91bGRuJ3QgYmUgZXhlY3V0aW5nIHRoYXQu IEV2ZW4gaWYKd2Ugd2FudGVkIHRvLCB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIElOU1RFQUQgT0Yg dHJpZ2dlciBkaWQsIHNvIHdlCmNvdWxkbid0IGNvbXB1dGUgd2hhdCBsZWZ0b3ZlcnMgYXJlIGNv cnJlY3QuIElmIHRoZSB1c2VyIHdhbnRzIGxlZnRvdmVycwpoZXJlLCB0aGUgdHJpZ2dlciBzaG91 bGQgaW5zZXJ0IHRoZW0gb3IgdXNlIEZPUiBQT1JUSU9OIE9GIGl0c2VsZi4KCkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FIZyUyQlFEZDc0Zm5kNG9iQ1JNcVZTMEFWV2YlM0RjU0ZI JTNEQ3Y3dHJUSldnbSUyQl9iaFRLNnclNDBtYWlsLmdtYWlsLmNvbQpEaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBSjdjNlRNRSUyQml4NlZSZi0yVFBuVlRzajhxbl9oeTZzWUFPbU1o WkVpdndzdTJ3UzZnJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvZG1sLnNnbWwg ICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZU1vZGlmeVRhYmxlLmMgICAgICAgfCAyOCArKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dCB8IDQxICsrKysrKysrKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgICAgICB8IDMzICsrKysrKysr KysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RtbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2Rt bC5zZ21sCmluZGV4IDQyOWFhZTliZDdiLi5lNjg4N2ViMjhjYiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2RtbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kbWwuc2dtbApAQCAtMzg5LDYgKzM4 OSwxMiBAQCBERUxFVEUgRlJPTSBwcm9kdWN0cwogICAgYXJlIG5vdC4KICAgPC9wYXJhPgogCisg IDxwYXJhPgorICAgSWYgdGhlIHVwZGF0ZWQgdGFibGUgaGFzIGFuIDxsaXRlcmFsPklOU1RFQUQg T0Y8L2xpdGVyYWw+IHRyaWdnZXIsIHRoZW4KKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4gc2tpcHMgaW5zZXJ0aW5nIHRlbXBvcmFsIGxlZnRvdmVycy4KKyAgIEl0IGlz IHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgdHJpZ2dlciB0byBtYWtlIHdoYXRldmVyIGNoYW5n ZXMgYXJlIGRlc2lyZWQuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFdoZW4gdGVtcG9yYWwg bGVmdG92ZXJzIGFyZSBpbnNlcnRlZCwgYWxsIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4KICAg IHRyaWdnZXJzIGFyZSBmaXJlZCwgYnV0IHBlcm1pc3Npb24gY2hlY2tzIGZvciBpbnNlcnRpbmcg cm93cyBhcmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJs ZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKaW5kZXggYzMzM2Q3 MTM5ZmEuLjdmMTI0MDBlOWRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl TW9kaWZ5VGFibGUuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUu YwpAQCAtMTQzNyw2ICsxNDM3LDE0IEBAIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5 VGFibGVDb250ZXh0ICpjb250ZXh0LAogCW9sZHR1cGxlU2xvdCA9IGZwb1N0YXRlLT5mcF9FeGlz dGluZzsKIAlsZWZ0b3ZlclNsb3QgPSBmcG9TdGF0ZS0+ZnBfTGVmdG92ZXI7CiAKKwkvKgorCSAq IFdlIG9ubHkgZXZlciBpbnNlcnQgbGVmdG92ZXJzIGludG8gYSByZWFsIHRhYmxlOiBmb3JlaWdu IHRhYmxlcyBhcmUKKwkgKiByZWplY3RlZCBieSBDaGVja1ZhbGlkUmVzdWx0UmVsLCBhbmQgdmll d3Mgd2l0aCBJTlNURUFEIE9GIHRyaWdnZXJzIGFyZQorCSAqIHNraXBwZWQgYnkgb3VyIGNhbGxl cnMgKHdlJ2QgaGF2ZSBubyBiYXNlLXRhYmxlIHR1cGxlIHRvIGZldGNoIGhlcmUKKwkgKiBhbnl3 YXkpLgorCSAqLworCUFzc2VydChyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MtPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OKTsKKwogCS8qCiAJICogR2V0IHRoZSBvbGQg cHJlLVVQREFURS9ERUxFVEUgdHVwbGUuIFdlIHdpbGwgdXNlIGl0cyByYW5nZSB0byBjb21wdXRl CiAJICogdW50b3VjaGVkIHBhcnRzIG9mIGhpc3RvcnksIGFuZCBpZiBuZWNlc3Nhcnkgd2Ugd2ls bCBpbnNlcnQgY29waWVzIHdpdGgKQEAgLTE4MTQsNyArMTgyMiwxNSBAQCBFeGVjRGVsZXRlRXBp bG9ndWUoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRS ZWxJbmZvLAogCiAJLyogQ29tcHV0ZSB0ZW1wb3JhbCBsZWZ0b3ZlcnMgaW4gRk9SIFBPUlRJT04g T0YgKi8KIAlpZiAoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+ Zm9yUG9ydGlvbk9mKQotCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNvbnRleHQsIGVzdGF0 ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCk7CisJeworCQkvKgorCQkgKiBTa2lwIGxlZnRvdmVy cyBpZiB0aGVyZSB3ZXJlIElOU1RFQUQgT0YgdHJpZ2dlcnMuCisJCSAqIFdlIHdvdWxkIGhhdmUg bm8gd2F5IG9mIGFjY2Vzc2luZyB0aGUgb2xkIHJvdy4KKwkJICovCisJCWlmICghcmVzdWx0UmVs SW5mby0+cmlfVHJpZ0Rlc2MgfHwKKwkJCSFyZXN1bHRSZWxJbmZvLT5yaV9UcmlnRGVzYy0+dHJp Z19kZWxldGVfaW5zdGVhZF9yb3cpCisJCQkJRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhjb250 ZXh0LCBlc3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1cGxlaWQpOworCX0KIAogCS8qIEFGVEVSIFJP VyBERUxFVEUgVHJpZ2dlcnMgKi8KIAlFeGVjQVJEZWxldGVUcmlnZ2Vycyhlc3RhdGUsIHJlc3Vs dFJlbEluZm8sIHR1cGxlaWQsIG9sZHR1cGxlLApAQCAtMjYxOSw3ICsyNjM1LDE1IEBAIEV4ZWNV cGRhdGVFcGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFVwZGF0ZUNvbnRleHQg KnVwZGF0ZUN4dCwKIAogCS8qIENvbXB1dGUgdGVtcG9yYWwgbGVmdG92ZXJzIGluIEZPUiBQT1JU SU9OIE9GICovCiAJaWYgKCgoTW9kaWZ5VGFibGUgKikgY29udGV4dC0+bXRzdGF0ZS0+cHMucGxh biktPmZvclBvcnRpb25PZikKLQkJRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhjb250ZXh0LCBj b250ZXh0LT5lc3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1cGxlaWQpOworCXsKKwkJLyoKKwkJICog U2tpcCBsZWZ0b3ZlcnMgaWYgdGhlcmUgd2VyZSBJTlNURUFEIE9GIHRyaWdnZXJzLgorCQkgKiBX ZSB3b3VsZCBoYXZlIG5vIHdheSBvZiBhY2Nlc3NpbmcgdGhlIG9sZCByb3cuCisJCSAqLworCQlp ZiAoIXJlc3VsdFJlbEluZm8tPnJpX1RyaWdEZXNjIHx8CisJCQkhcmVzdWx0UmVsSW5mby0+cmlf VHJpZ0Rlc2MtPnRyaWdfdXBkYXRlX2luc3RlYWRfcm93KQorCQkJRXhlY0ZvclBvcnRpb25PZkxl ZnRvdmVycyhjb250ZXh0LCBjb250ZXh0LT5lc3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1cGxlaWQp OworCX0KIAogCS8qIEFGVEVSIFJPVyBVUERBVEUgVHJpZ2dlcnMgKi8KIAlFeGVjQVJVcGRhdGVU cmlnZ2Vycyhjb250ZXh0LT5lc3RhdGUsIHJlc3VsdFJlbEluZm8sCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CmluZGV4IDQzNDA4OTcyMTE3Li4wMzU1ZjZk YTlkOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9v Zi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQK QEAgLTI0NDYsNCArMjQ0Niw0NSBAQCBOT1RJQ0U6ICBmcG9fYmVmb3JlX3JvdzE6IEJFRk9SRSBV UERBVEUgUk9XOgogTk9USUNFOiAgICBvbGQ6IFsxMCwxMDApCiBOT1RJQ0U6ICAgIG5ldzogWzMw LDcwKQogRFJPUCBUQUJMRSBmcG9fdXBkYXRlX29mX3RyaWdnZXI7CistLSBJbnNlcnRpbmcgbGVm dG92ZXJzIHNob3VsZCBiZSBza2lwcGVkIG9uIHZpZXdzIHdpdGggSU5TVEVBRCBPRiB0cmlnZ2Vy cworQ1JFQVRFIFRBQkxFIGZwb19pbnN0ZWFkX2Jhc2UgKGlkIGludCwgdmFsaWRfYXQgZGF0ZXJh bmdlLCB2YWwgaW50KTsKK0lOU0VSVCBJTlRPIGZwb19pbnN0ZWFkX2Jhc2UgVkFMVUVTICgxLCAn WzIwMjQtMDEtMDEsMjAyNS0wMS0wMSknLCAxMDApOworQ1JFQVRFIFZJRVcgZnBvX2luc3RlYWRf dmlldyBBUyBTRUxFQ1QgKiBGUk9NIGZwb19pbnN0ZWFkX2Jhc2U7CitDUkVBVEUgRlVOQ1RJT04g ZnBvX2luc3RlYWRfdHJpZ19mbigpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHBnc3FsIEFT ICQkCitCRUdJTgorICBJRiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0Ug J1VQREFURSBPTEQ6ICUsIE5FVzogJScsIE9MRCwgTkVXOworICAgIFJFVFVSTiBORVc7CisgIEVM U0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnREVMRVRFOiBPTEQ6 ICUnLCBPTEQ7CisgICAgUkVUVVJOIE9MRDsKKyAgRU5EIElGOworICBSRVRVUk4gTkVXOworRU5E OworJCQ7CitDUkVBVEUgVFJJR0dFUiBmcG9faW5zdGVhZF91cGQgSU5TVEVBRCBPRiBVUERBVEUg T04gZnBvX2luc3RlYWRfdmlldworICBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiBmcG9f aW5zdGVhZF90cmlnX2ZuKCk7CitDUkVBVEUgVFJJR0dFUiBmcG9faW5zdGVhZF9kZWwgSU5TVEVB RCBPRiBERUxFVEUgT04gZnBvX2luc3RlYWRfdmlldworICBGT1IgRUFDSCBST1cgRVhFQ1VURSBG VU5DVElPTiBmcG9faW5zdGVhZF90cmlnX2ZuKCk7CitVUERBVEUgZnBvX2luc3RlYWRfdmlldyBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI0LTA0LTAxJyBUTyAnMjAyNC0wOC0wMScK KyAgICBTRVQgdmFsID0gOTk5IFdIRVJFIGlkID0gMTsKK05PVElDRTogIFVQREFURSBPTEQ6ICgx LCJbMjAyNC0wMS0wMSwyMDI1LTAxLTAxKSIsMTAwKSwgTkVXOiAoMSwiWzIwMjQtMDEtMDEsMjAy NS0wMS0wMSkiLDk5OSkKK1NFTEVDVCAqIEZST00gZnBvX2luc3RlYWRfdmlldzsKKyBpZCB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgdmFsIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tCisgIDEgfCBbMjAyNC0wMS0wMSwyMDI1LTAxLTAxKSB8IDEwMAorKDEgcm93KQor CitERUxFVEUgRlJPTSBmcG9faW5zdGVhZF92aWV3IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMjQtMDQtMDEnIFRPICcyMDI0LTA4LTAxJworICAgIFdIRVJFIGlkID0gMTsKK05PVElD RTogIERFTEVURTogT0xEOiAoMSwiWzIwMjQtMDEtMDEsMjAyNS0wMS0wMSkiLDEwMCkKK1NFTEVD VCAqIEZST00gZnBvX2luc3RlYWRfdmlldzsKKyBpZCB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgdmFsIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tCisgIDEgfCBbMjAy NC0wMS0wMSwyMDI1LTAxLTAxKSB8IDEwMAorKDEgcm93KQorCitEUk9QIFZJRVcgZnBvX2luc3Rl YWRfdmlldzsKK0RST1AgVEFCTEUgZnBvX2luc3RlYWRfYmFzZTsKK0RST1AgRlVOQ1RJT04gZnBv X2luc3RlYWRfdHJpZ19mbigpOwogUkVTRVQgZGF0ZXN0eWxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Zm9yX3BvcnRpb25fb2Yuc3FsCmluZGV4IDdiMDhmOGNmNDVlLi44OTIwNWYwMTE5OCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApAQCAtMTU5MSw0ICsxNTkxLDM3IEBA IFVQREFURSBmcG9fdXBkYXRlX29mX3RyaWdnZXIKICAgU0VUIGlkID0gMjsKIERST1AgVEFCTEUg ZnBvX3VwZGF0ZV9vZl90cmlnZ2VyOwogCistLSBJbnNlcnRpbmcgbGVmdG92ZXJzIHNob3VsZCBi ZSBza2lwcGVkIG9uIHZpZXdzIHdpdGggSU5TVEVBRCBPRiB0cmlnZ2VycworQ1JFQVRFIFRBQkxF IGZwb19pbnN0ZWFkX2Jhc2UgKGlkIGludCwgdmFsaWRfYXQgZGF0ZXJhbmdlLCB2YWwgaW50KTsK K0lOU0VSVCBJTlRPIGZwb19pbnN0ZWFkX2Jhc2UgVkFMVUVTICgxLCAnWzIwMjQtMDEtMDEsMjAy NS0wMS0wMSknLCAxMDApOworQ1JFQVRFIFZJRVcgZnBvX2luc3RlYWRfdmlldyBBUyBTRUxFQ1Qg KiBGUk9NIGZwb19pbnN0ZWFkX2Jhc2U7CitDUkVBVEUgRlVOQ1RJT04gZnBvX2luc3RlYWRfdHJp Z19mbigpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHBnc3FsIEFTICQkCitCRUdJTgorICBJ RiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ1VQREFURSBPTEQ6ICUs IE5FVzogJScsIE9MRCwgTkVXOworICAgIFJFVFVSTiBORVc7CisgIEVMU0lGIFRHX09QID0gJ0RF TEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnREVMRVRFOiBPTEQ6ICUnLCBPTEQ7CisgICAg UkVUVVJOIE9MRDsKKyAgRU5EIElGOworICBSRVRVUk4gTkVXOworRU5EOworJCQ7CitDUkVBVEUg VFJJR0dFUiBmcG9faW5zdGVhZF91cGQgSU5TVEVBRCBPRiBVUERBVEUgT04gZnBvX2luc3RlYWRf dmlldworICBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiBmcG9faW5zdGVhZF90cmlnX2Zu KCk7CitDUkVBVEUgVFJJR0dFUiBmcG9faW5zdGVhZF9kZWwgSU5TVEVBRCBPRiBERUxFVEUgT04g ZnBvX2luc3RlYWRfdmlldworICBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiBmcG9faW5z dGVhZF90cmlnX2ZuKCk7CisKK1VQREFURSBmcG9faW5zdGVhZF92aWV3IEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMjQtMDQtMDEnIFRPICcyMDI0LTA4LTAxJworICAgIFNFVCB2YWwg PSA5OTkgV0hFUkUgaWQgPSAxOworU0VMRUNUICogRlJPTSBmcG9faW5zdGVhZF92aWV3OworCitE RUxFVEUgRlJPTSBmcG9faW5zdGVhZF92aWV3IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMjQtMDQtMDEnIFRPICcyMDI0LTA4LTAxJworICAgIFdIRVJFIGlkID0gMTsKK1NFTEVDVCAq IEZST00gZnBvX2luc3RlYWRfdmlldzsKKworRFJPUCBWSUVXIGZwb19pbnN0ZWFkX3ZpZXc7CitE Uk9QIFRBQkxFIGZwb19pbnN0ZWFkX2Jhc2U7CitEUk9QIEZVTkNUSU9OIGZwb19pbnN0ZWFkX3Ry aWdfZm4oKTsKKwogUkVTRVQgZGF0ZXN0eWxlOwotLSAKMi40Ny4zCgo= --00000000000066583606555f8c04 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0002-Fix-INSTEAD-OF-targeting-too-many-rows-with-FOR-P.patch" Content-Disposition: attachment; filename="v6-0002-Fix-INSTEAD-OF-targeting-too-many-rows-with-FOR-P.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqywn16r1 RnJvbSBkNTU1NTk1ODc1Y2JjNGUzODJjOGVjZjJkOWY0M2RmZWZjODk3MWI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFN1biwgMjggSnVuIDIwMjYgMjM6MzQ6MzkgLTA3MDAKU3ViamVj dDogW1BBVENIIHY2IDIvMl0gRml4IElOU1RFQUQgT0YgdGFyZ2V0aW5nIHRvbyBtYW55IHJvd3Mg d2l0aCBGT1IKIFBPUlRJT04gT0YKCkluIHRoZSByZXdyaXRlciwgRk9SIFBPUlRJT04gT0YgYWdh aW5zdCBhIHZpZXcgb25seSBhZGRzIGl0cyBxdWFsIGFuZApUTEUgYWZ0ZXIgcmVwbGFjaW5nIGFu IHVwZGF0YWJsZSB2aWV3IHdpdGggaXRzIGJhc2UgdGFibGUuIEJ1dCB3aXRoIGFuCklOU1RFQUQg T0YgdHJpZ2dlciwgd2UgbmV2ZXIgZ2V0IHRvIHRoZSBiYXNlIHRhYmxlLCBzbyB0aGUgcXVhbCBh bmQgVExFCmFyZSBuZXZlciBhZGRlZC4gVGhpcyBjb21taXQgYWRkcyB0aGVtIHRvIHRoZSB2aWV3 IGl0c2VsZiwgaWYgaXQgaGFzIGFuCklOU1RFQUQgT0YgdHJpZ2dlci4gVGhhdCB3YXkgdGhlIHRy aWdnZXIgd29uJ3QgZmlyZSBvbiB1bm1hdGNoZWQgcm93cywKYW5kIE5FVy52YWxpZF9hdCB3aWxs IGJlIHNldCBjb3JyZWN0bHkuCgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBSjdj NlRNRSUyQml4NlZSZi0yVFBuVlRzajhxbl9oeTZzWUFPbU1oWkVpdndzdTJ3UzZnJTQwbWFpbC5n bWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgICAgICAg ICB8IDM2ICsrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zv cl9wb3J0aW9uX29mLm91dCB8IDI1ICsrKysrKysrLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9mb3JfcG9ydGlvbl9vZi5zcWwgICAgICB8IDE3ICsrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2Vk LCA0NiBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3Jp dGVIYW5kbGVyLmMKaW5kZXggZTdhZTljY2U2NWYuLjQ2ODNmY2FmNWU3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBAIC00MjUzLDE0ICs0MjUzLDE4IEBAIFJld3JpdGVRdWVy eShRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICpyZXdyaXRlX2V2ZW50cywgaW50IG9yaWdfcnRfbGVu Z3RoLAogCQkJaWYgKHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mKQogCQkJewogCQkJCS8qCi0JCQkJ ICogRG9uJ3QgYWRkIEZPUiBQT1JUSU9OIE9GIGRldGFpbHMgdW50aWwgd2UncmUgZG9uZSByZXdy aXRpbmcKLQkJCQkgKiBhIHZpZXcgdXBkYXRlLCBzbyB0aGF0IHdlIGRvbid0IGFkZCB0aGUgc2Ft ZSBxdWFsIGFuZCBUTEUKLQkJCQkgKiBvbiB0aGUgcmVjdXJzaW9uLgorCQkJCSAqIEFkZCB0aGUg Rk9SIFBPUlRJT04gT0YgcXVhbCBhbmQgdGhlIHJhbmdlLW5hcnJvd2luZyBUTEUuCisJCQkJICoK KwkJCQkgKiBGb3IgYSBwbGFpbiB0YWJsZSB3ZSBhZGQgdGhlbSBoZXJlLiBGb3IgYW4gYXV0by11 cGRhdGFibGUKKwkJCQkgKiB2aWV3IHdlIGRlZmVyIHRoZW06IGFmdGVyIHJld3JpdGVUYXJnZXRW aWV3IHdlJ2xsIHJlY3Vyc2UKKwkJCQkgKiBiYWNrIGhlcmUgYW5kIGRvIGl0IHRoZW4uIEJ1dCB2 aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMKKwkJCQkgKiBuZXZlciByZWN1cnNlLCBzbyB3 ZSBtdXN0IGRvIHRob3NlIG5vdyB0b28uCiAJCQkJICoKIAkJCQkgKiBWaWV3cyBkb24ndCBuZWVk IHRvIGRvIGFueXRoaW5nIHNwZWNpYWwgaGVyZSB0byByZW1hcCBWYXJzOwogCQkJCSAqIHRoYXQg aXMgaGFuZGxlZCBieSB0aGUgdHJlZSB3YWxrZXIuCiAJCQkJICovCi0JCQkJaWYgKHJ0X2VudHJ5 X3JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9WSUVXKQorCQkJCWlmIChydF9l bnRyeV9yZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfVklFVyB8fAorCQkJCQl2 aWV3X2hhc19pbnN0ZWFkX3RyaWdnZXIocnRfZW50cnlfcmVsYXRpb24sIENNRF9VUERBVEUsIE5J TCkpCiAJCQkJewogCQkJCQlMaXN0Q2VsbCAgICp0bDsKIApAQCAtNDI3MCw3ICs0Mjc0LDEwIEBA IFJld3JpdGVRdWVyeShRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICpyZXdyaXRlX2V2ZW50cywgaW50 IG9yaWdfcnRfbGVuZ3RoLAogCQkJCQkgKi8KIAkJCQkJQWRkUXVhbChwYXJzZXRyZWUsIHBhcnNl dHJlZS0+Zm9yUG9ydGlvbk9mLT5vdmVybGFwc0V4cHIpOwogCi0JCQkJCS8qIFVwZGF0ZSBGT1Ig UE9SVElPTiBPRiBjb2x1bW4ocykgYXV0b21hdGljYWxseS4gKi8KKwkJCQkJLyoKKwkJCQkJICog VXBkYXRlIHRoZSBGT1IgUE9SVElPTiBPRiBjb2x1bW4ocykgYXV0b21hdGljYWxseS4gRm9yIGFu CisJCQkJCSAqIElOU1RFQUQgT0YgdHJpZ2dlciB0aGlzIG1ha2VzIE5FVyBob2xkIHRoZSBhZmZl Y3RlZCBwb3J0aW9uLgorCQkJCQkgKi8KIAkJCQkJZm9yZWFjaCh0bCwgcGFyc2V0cmVlLT5mb3JQ b3J0aW9uT2YtPnJhbmdlVGFyZ2V0TGlzdCkKIAkJCQkJewogCQkJCQkJVGFyZ2V0RW50cnkgKnRs ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QodGwpOwpAQCAtNDMyOCwyMSArNDMzNSwyMCBAQCBS ZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBv cmlnX3J0X2xlbmd0aCwKIAkJCWlmIChwYXJzZXRyZWUtPmZvclBvcnRpb25PZikKIAkJCXsKIAkJ CQkvKgotCQkJCSAqIERvbid0IGFkZCBGT1IgUE9SVElPTiBPRiBkZXRhaWxzIHVudGlsIHdlJ3Jl IGRvbmUgcmV3cml0aW5nCi0JCQkJICogYSB2aWV3IGRlbGV0ZSwgc28gdGhhdCB3ZSBkb24ndCBh ZGQgdGhlIHNhbWUgcXVhbCBvbiB0aGUKLQkJCQkgKiByZWN1cnNpb24uCisJCQkJICogQWRkIHF1 YWw6IERFTEVURSBGT1IgUE9SVElPTiBPRiBzaG91bGQgYmUgbGltaXRlZCB0byByb3dzCisJCQkJ ICogdGhhdCBvdmVybGFwIHRoZSB0YXJnZXQgcmFuZ2UuCisJCQkJICoKKwkJCQkgKiBGb3IgYSBw bGFpbiB0YWJsZSB3ZSBhZGQgdGhlIHF1YWwgaGVyZS4gRm9yIGFuIGF1dG8tdXBkYXRhYmxlCisJ CQkJICogdmlldyB3ZSBkZWZlciBpdDogYWZ0ZXIgcmV3cml0ZVRhcmdldFZpZXcgd2UnbGwgcmVj dXJzZQorCQkJCSAqIGJhY2sgaGVyZSBhbmQgZG8gaXQgdGhlbi4gQnV0IHZpZXdzIHdpdGggSU5T VEVBRCBPRiB0cmlnZ2VycworCQkJCSAqIG5ldmVyIHJlY3Vyc2UsIHNvIHdlIG11c3QgZG8gdGhv c2Ugbm93IHRvby4KIAkJCQkgKgogCQkJCSAqIFZpZXdzIGRvbid0IG5lZWQgdG8gZG8gYW55dGhp bmcgc3BlY2lhbCBoZXJlIHRvIHJlbWFwIFZhcnM7CiAJCQkJICogdGhhdCBpcyBoYW5kbGVkIGJ5 IHRoZSB0cmVlIHdhbGtlci4KIAkJCQkgKi8KLQkJCQlpZiAocnRfZW50cnlfcmVsYXRpb24tPnJk X3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCi0JCQkJewotCQkJCQkvKgotCQkJCQkgKiBB ZGQgcXVhbDogREVMRVRFIEZPUiBQT1JUSU9OIE9GIHNob3VsZCBiZSBsaW1pdGVkIHRvCi0JCQkJ CSAqIHJvd3MgdGhhdCBvdmVybGFwIHRoZSB0YXJnZXQgcmFuZ2UuCi0JCQkJCSAqLworCQkJCWlm IChydF9lbnRyeV9yZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfVklFVyB8fAor CQkJCQl2aWV3X2hhc19pbnN0ZWFkX3RyaWdnZXIocnRfZW50cnlfcmVsYXRpb24sIENNRF9ERUxF VEUsIE5JTCkpCiAJCQkJCUFkZFF1YWwocGFyc2V0cmVlLCBwYXJzZXRyZWUtPmZvclBvcnRpb25P Zi0+b3ZlcmxhcHNFeHByKTsKLQkJCQl9CiAJCQl9CiAJCX0KIAkJZWxzZQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dAppbmRleCAwMzU1ZjZkYTlkOS4uZWEy ODc3MzU0MzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRp b25fb2Yub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yu b3V0CkBAIC0yNDQ2LDkgKzI0NDYsMTMgQEAgTk9USUNFOiAgZnBvX2JlZm9yZV9yb3cxOiBCRUZP UkUgVVBEQVRFIFJPVzoKIE5PVElDRTogICAgb2xkOiBbMTAsMTAwKQogTk9USUNFOiAgICBuZXc6 IFszMCw3MCkKIERST1AgVEFCTEUgZnBvX3VwZGF0ZV9vZl90cmlnZ2VyOwotLS0gSW5zZXJ0aW5n IGxlZnRvdmVycyBzaG91bGQgYmUgc2tpcHBlZCBvbiB2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJp Z2dlcnMKKy0tIEluc2VydGluZyBsZWZ0b3ZlcnMgc2hvdWxkIGJlIHNraXBwZWQgb24gdmlld3Mg d2l0aCBJTlNURUFEIE9GIHRyaWdnZXJzLgorLS0gVGhlIEZPUiBQT1JUSU9OIE9GIHJhbmdlIG11 c3Qgc3RpbGwgcmVzdHJpY3Qgd2hpY2ggcm93cyBhcmUgYWZmZWN0ZWQsIGFuZAorLS0gVVBEQVRF IHRyaWdnZXJzIHNob3VsZCBzZWUgdGhlIGNvcnJlY3QgTkVXLnZhbGlkX2F0LgogQ1JFQVRFIFRB QkxFIGZwb19pbnN0ZWFkX2Jhc2UgKGlkIGludCwgdmFsaWRfYXQgZGF0ZXJhbmdlLCB2YWwgaW50 KTsKLUlOU0VSVCBJTlRPIGZwb19pbnN0ZWFkX2Jhc2UgVkFMVUVTICgxLCAnWzIwMjQtMDEtMDEs MjAyNS0wMS0wMSknLCAxMDApOworSU5TRVJUIElOVE8gZnBvX2luc3RlYWRfYmFzZSBWQUxVRVMK KyAgKDEsICdbMjAyNC0wMS0wMSwyMDI1LTAxLTAxKScsIDEwMCksCisgICgyLCAnWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSknLCAyMDApOwogQ1JFQVRFIFZJRVcgZnBvX2luc3RlYWRfdmlldyBBUyBT RUxFQ1QgKiBGUk9NIGZwb19pbnN0ZWFkX2Jhc2U7CiBDUkVBVEUgRlVOQ1RJT04gZnBvX2luc3Rl YWRfdHJpZ19mbigpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHBnc3FsIEFTICQkCiBCRUdJ TgpAQCAtMjQ2NywyMiArMjQ3MSwyMyBAQCBDUkVBVEUgVFJJR0dFUiBmcG9faW5zdGVhZF91cGQg SU5TVEVBRCBPRiBVUERBVEUgT04gZnBvX2luc3RlYWRfdmlldwogQ1JFQVRFIFRSSUdHRVIgZnBv X2luc3RlYWRfZGVsIElOU1RFQUQgT0YgREVMRVRFIE9OIGZwb19pbnN0ZWFkX3ZpZXcKICAgRk9S IEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gZnBvX2luc3RlYWRfdHJpZ19mbigpOwogVVBEQVRF IGZwb19pbnN0ZWFkX3ZpZXcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAyNC0wNC0w MScgVE8gJzIwMjQtMDgtMDEnCi0gICAgU0VUIHZhbCA9IDk5OSBXSEVSRSBpZCA9IDE7Ci1OT1RJ Q0U6ICBVUERBVEUgT0xEOiAoMSwiWzIwMjQtMDEtMDEsMjAyNS0wMS0wMSkiLDEwMCksIE5FVzog KDEsIlsyMDI0LTAxLTAxLDIwMjUtMDEtMDEpIiw5OTkpCi1TRUxFQ1QgKiBGUk9NIGZwb19pbnN0 ZWFkX3ZpZXc7CisgICAgU0VUIHZhbCA9IDk5OTsKK05PVElDRTogIFVQREFURSBPTEQ6ICgxLCJb MjAyNC0wMS0wMSwyMDI1LTAxLTAxKSIsMTAwKSwgTkVXOiAoMSwiWzIwMjQtMDQtMDEsMjAyNC0w OC0wMSkiLDk5OSkKK1NFTEVDVCAqIEZST00gZnBvX2luc3RlYWRfdmlldyBPUkRFUiBCWSBpZDsK ICBpZCB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgdmFsIAogLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tCiAgIDEgfCBbMjAyNC0wMS0wMSwyMDI1LTAxLTAxKSB8IDEwMAot KDEgcm93KQorICAyIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAyMDAKKygyIHJvd3MpCiAK LURFTEVURSBGUk9NIGZwb19pbnN0ZWFkX3ZpZXcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAyNC0wNC0wMScgVE8gJzIwMjQtMDgtMDEnCi0gICAgV0hFUkUgaWQgPSAxOworREVMRVRF IEZST00gZnBvX2luc3RlYWRfdmlldyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI0 LTA0LTAxJyBUTyAnMjAyNC0wOC0wMSc7CiBOT1RJQ0U6ICBERUxFVEU6IE9MRDogKDEsIlsyMDI0 LTAxLTAxLDIwMjUtMDEtMDEpIiwxMDApCi1TRUxFQ1QgKiBGUk9NIGZwb19pbnN0ZWFkX3ZpZXc7 CitTRUxFQ1QgKiBGUk9NIGZwb19pbnN0ZWFkX3ZpZXcgT1JERVIgQlkgaWQ7CiAgaWQgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHZhbCAKIC0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLQogICAxIHwgWzIwMjQtMDEtMDEsMjAyNS0wMS0wMSkgfCAxMDAKLSgxIHJvdykKKyAg MiB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgMjAwCisoMiByb3dzKQogCiBEUk9QIFZJRVcg ZnBvX2luc3RlYWRfdmlldzsKIERST1AgVEFCTEUgZnBvX2luc3RlYWRfYmFzZTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbAppbmRleCA4OTIwNWYwMTE5OC4uMWMwNTQwYTJl NTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAgLTE1OTEsOSAr MTU5MSwxMyBAQCBVUERBVEUgZnBvX3VwZGF0ZV9vZl90cmlnZ2VyCiAgIFNFVCBpZCA9IDI7CiBE Uk9QIFRBQkxFIGZwb191cGRhdGVfb2ZfdHJpZ2dlcjsKIAotLS0gSW5zZXJ0aW5nIGxlZnRvdmVy cyBzaG91bGQgYmUgc2tpcHBlZCBvbiB2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMKKy0t IEluc2VydGluZyBsZWZ0b3ZlcnMgc2hvdWxkIGJlIHNraXBwZWQgb24gdmlld3Mgd2l0aCBJTlNU RUFEIE9GIHRyaWdnZXJzLgorLS0gVGhlIEZPUiBQT1JUSU9OIE9GIHJhbmdlIG11c3Qgc3RpbGwg cmVzdHJpY3Qgd2hpY2ggcm93cyBhcmUgYWZmZWN0ZWQsIGFuZAorLS0gVVBEQVRFIHRyaWdnZXJz IHNob3VsZCBzZWUgdGhlIGNvcnJlY3QgTkVXLnZhbGlkX2F0LgogQ1JFQVRFIFRBQkxFIGZwb19p bnN0ZWFkX2Jhc2UgKGlkIGludCwgdmFsaWRfYXQgZGF0ZXJhbmdlLCB2YWwgaW50KTsKLUlOU0VS VCBJTlRPIGZwb19pbnN0ZWFkX2Jhc2UgVkFMVUVTICgxLCAnWzIwMjQtMDEtMDEsMjAyNS0wMS0w MSknLCAxMDApOworSU5TRVJUIElOVE8gZnBvX2luc3RlYWRfYmFzZSBWQUxVRVMKKyAgKDEsICdb MjAyNC0wMS0wMSwyMDI1LTAxLTAxKScsIDEwMCksCisgICgyLCAnWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSknLCAyMDApOwogQ1JFQVRFIFZJRVcgZnBvX2luc3RlYWRfdmlldyBBUyBTRUxFQ1QgKiBG Uk9NIGZwb19pbnN0ZWFkX2Jhc2U7CiBDUkVBVEUgRlVOQ1RJT04gZnBvX2luc3RlYWRfdHJpZ19m bigpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHBnc3FsIEFTICQkCiBCRUdJTgpAQCAtMTYx MywxMiArMTYxNywxMSBAQCBDUkVBVEUgVFJJR0dFUiBmcG9faW5zdGVhZF9kZWwgSU5TVEVBRCBP RiBERUxFVEUgT04gZnBvX2luc3RlYWRfdmlldwogICBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5D VElPTiBmcG9faW5zdGVhZF90cmlnX2ZuKCk7CiAKIFVQREFURSBmcG9faW5zdGVhZF92aWV3IEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjQtMDQtMDEnIFRPICcyMDI0LTA4LTAxJwot ICAgIFNFVCB2YWwgPSA5OTkgV0hFUkUgaWQgPSAxOwotU0VMRUNUICogRlJPTSBmcG9faW5zdGVh ZF92aWV3OworICAgIFNFVCB2YWwgPSA5OTk7CitTRUxFQ1QgKiBGUk9NIGZwb19pbnN0ZWFkX3Zp ZXcgT1JERVIgQlkgaWQ7CiAKLURFTEVURSBGUk9NIGZwb19pbnN0ZWFkX3ZpZXcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAyNC0wNC0wMScgVE8gJzIwMjQtMDgtMDEnCi0gICAgV0hF UkUgaWQgPSAxOwotU0VMRUNUICogRlJPTSBmcG9faW5zdGVhZF92aWV3OworREVMRVRFIEZST00g ZnBvX2luc3RlYWRfdmlldyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI0LTA0LTAx JyBUTyAnMjAyNC0wOC0wMSc7CitTRUxFQ1QgKiBGUk9NIGZwb19pbnN0ZWFkX3ZpZXcgT1JERVIg QlkgaWQ7CiAKIERST1AgVklFVyBmcG9faW5zdGVhZF92aWV3OwogRFJPUCBUQUJMRSBmcG9faW5z dGVhZF9iYXNlOwotLSAKMi40Ny4zCgo= --00000000000066583606555f8c04--