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 1whHMR-0007mq-0V for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 01:46:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whHMP-004EKY-1q for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 01:46:02 +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 1whHMO-004EKP-2x for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 01:46:01 +0000 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whHMM-000000004wQ-2Let for pgsql-hackers@postgresql.org; Wed, 08 Jul 2026 01:46:00 +0000 Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-49c86d1d21cso69380b6e.3 for ; Tue, 07 Jul 2026 18:45:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783475158; cv=none; d=google.com; s=arc-20260327; b=TttPmRLq6r8br7KGzKL8ScLP3GznpUQDTcXM+rCJJGk7YHHe6nO1dq+LQrHYCGPXn+ 9/apqyjW6kdjCDTqEApXOKh4Mml1z3RXPUfV7Trt+E810AuYcJfEd4mjTtcvwap2VF45 ubEoimvo4Hx5u2qZvzva8/exu2+MNUrz5q26cMJrXjI/XGGqx/ItycvAOnObtdmGZ2yU wmZbhaZLc3C2xFMvTYPpt3ecJ8CmOIGa3yQwtM3aIDYRMPZ5kMk08WEm27VPPe0Llcu/ gF1s5xT3achxOYIk/AYD7NZ165s5sjWn1UxT6ixxrWsAEQYjnAVZt3B1Fmq2I0RlerIa Om6w== 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=z9EByPMfHonNC19wFRkCiGzO7dGxXZjUjzh9PX3kHrA=; fh=l6mve+Wmr7GfHTWTafF9kbRtTk678RtI59rz9SD0w9M=; b=VsVEjlqmTP2AIWwYMovhT3kCAPuAFWHoI/kqj6n2jOdWs4oxY4C+KNEHWEhoPKrVVG UZN8ulK5WjCJIcMILJc7KpORvgucnfn0WRHmLh2/l8INn6a+BFVX2kCnJ8alfalfyAe0 8C8sLb2hUN58PXjz+T4WjVITGKdE5c4vUcSDXCxa+kYPO9qcD/Jpc5qiDzWxq+0Q2nDy YNfTTnpMkUykgdSlP/+OYyXukPfz3Ezma40OEu1/lnljcgz3kgDw3DCrAoIKeD28zA2P w6G3n2zawQPIqspboqAiFPrwKPe69cWaLR5e7+MtVBetGApzoR8jtBTLo0dG88ACkoep /jzg==; 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=1783475158; x=1784079958; darn=postgresql.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=z9EByPMfHonNC19wFRkCiGzO7dGxXZjUjzh9PX3kHrA=; b=Ut7bWfQYd4Yp8YXsCewPU0vxNxky5zGhw8/hFxB4WQfR0nZkiqHBoU8pQuem9PXfhs N5pLo3cJYgNWd4ybMtOwlYwfyG8nZtjgj/e1S6SULR5ff5ZkmNYi3ogc+PnboYd/eTyK u5HMPoZuEG3kZAFWT6baRYJtXNGPFzp2Gukyiis3gq1I5466i9m6MWd47NF2amxaHgsW GaJl7WdKjtPxbanXdeqimkgdSkhsmXEoYCJHccl0o0xte2v3wngUS9+B0iByG2fxl4ME VH8dugtJqk3/Fzc0TH1S0qVhPLAkt0/pxqCbr/t/GE4cdXQDLLQ3DiLiwGDvqYcmc+Ki pJow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783475158; x=1784079958; h=content-type: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:content-type; bh=z9EByPMfHonNC19wFRkCiGzO7dGxXZjUjzh9PX3kHrA=; b=id/2jkywlR0wAa4cRmEAZvh2WMlNHP68ilSOXe1sbKvxVXkdFChfeTDffcl0Ef4BJo 9cUDvAVosJ32IArnsI7oqIirOwBQY9Bn2jkaWkJ593Ufbe03+qQ8OXXJl8MNxxSOQtiF j5Hg4SHHhVw+bLlshQN6LOnF9j6PB1+fhgTx6zryzkUXjNnjTs+mUb7A11ECewYTOURl ErPmHcI0WpkWVCivmG2oixDvktm8S8UozdAuWtZhgNfAplZW9+yg0Yu0H/RPA1Vb6nuF ExvSPfeubn5Wy2ITS2IrjqPBYUstybmAGjyxbo5BtP/qJ9JKTdkTqIi69Ts6YBFGVd4K VrXg== X-Forwarded-Encrypted: i=1; AFNElJ9EraB2XNJr/9T/dxOQFE8nNm1Kqtsu8aqwGRjFZ7Ad4Pe9pLukNVtU6gDmEqHO/u/DT5YxFBOXnghq5rGV@postgresql.org X-Gm-Message-State: AOJu0Yzn+VlC4By3rIS3UgkOb/a/Tf52pHqUQkJ7lguWGpOZ7RVd3YzV nBPr1+Btv8LsFb4tQ2qzt6yfUqhKH5AP/TLzUa6kZ+keVc6i6HF5xQMXVdW5ULrexdtcdx67yyA EwUFLKHMoojTIFLyPv0pE8EvXBPKvrIWY00lVnuZqR8zCvAdDDdm3iwW0Og== X-Gm-Gg: AfdE7cm+omDnexfxOyMbabouqjuIK6i2i+prmViFFIs+dwNxYBmGtzcZm+mgjV34NWH 1/PEFalkv2teNqFbaLIrjQXJzbUWc/3qfOh/KhI/ciRLXlXSzUI0xrkFrbm/2y/lHAfdTwhHTOi EgUL62KIJ/o0R9Jm1+Arj+8NLnS7JrMmk/zdrDcyTTAerUUtup9ESzBtFoXqPHYXs9TwUD6Tq6i 7bWrvUhSotnwaT+Rf3JmTZ9xDv693MSkGQC6ZI+5ziXtr5xFWZY/W+p2ceM2ST1ePWsz4Ny X-Received: by 2002:a05:6808:1483:b0:492:9e13:d5a7 with SMTP id 5614622812f47-4a201beee7emr343053b6e.6.1783475158023; Tue, 07 Jul 2026 18:45:58 -0700 (PDT) MIME-Version: 1.0 References: <626986.1776785090@sss.pgh.pa.us> <84f20d0d-3bc8-4843-bd7e-21bce20f8582@eisentraut.org> <4984118e-0dc5-49a9-b279-fd0b707be8e0@eisentraut.org> <391a2845-105b-4048-a113-835c2742fea1@eisentraut.org> In-Reply-To: <391a2845-105b-4048-a113-835c2742fea1@eisentraut.org> From: Paul A Jungwirth Date: Tue, 7 Jul 2026 18:45:46 -0700 X-Gm-Features: AVVi8CciiDQXmvmr8uNjCOTZ4ebeLCWqcGTeNanjbxuyjt-wrYYbVBLb7_tZcFk Message-ID: Subject: Re: [PATCH] Fix null pointer dereference in PG19 To: Peter Eisentraut Cc: Aleksander Alekseev , PostgreSQL Development , Tom Lane Content-Type: multipart/mixed; boundary="00000000000042a5d806560fab22" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000042a5d806560fab22 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Jul 5, 2026 at 11:34=E2=80=AFPM Peter Eisentraut wrote: > > >> It seems to me that both FOR PORTION OF and INSTEAD OF triggers are SQ= L > >> standard features, so this discussion should refer to what the standar= d > >> says, and possibly consider what other implementations do (in addition > >> to discussing what makes sense). Since that hasn't been done yet, may= be > >> prohibiting this combination for now, as proposed by Aleksander, would > >> be best. > > > > Okay, let's do that. I'll do some research to see what the standard > > says and whether any other RDBMS offers guidance. > > Do we have a suitable patch for that? > > The patch proposed at the top of this thread checks for the presence of > triggers at parse time, which, I think, again has the problem that the > presence of triggers could change between parse and execution time. Here are patches for that. Actually, even though Tom originally objected to checking at parse-time, I think it is safe. He said: On Tue, Apr 21, 2026 at 8:24=E2=80=AFAM Tom Lane wrote: > > Checking this at parse time is completely the wrong thing. > The view could have gained (or lost) triggers by the time > it's executed. But INSTEAD OF triggers are selected in the rewriter, which uses the same relcache snapshot as parse analysis. And a concurrent change can't sneak in different triggers, because that causes a relcache invalidation, so we redo the parse & rewrite phases. I can't find any way to get a crash. I tried running UPDATE FOR PORTION OF in one session, adding a trigger in another, and then re-running the UPDATE in the first session. But the plan is re-analyzed and the check fires. Here is a copy of Aleksander's patch rebased, with a v2 moving the check to rewrite-time and a v3 moving the check to execution-time. The v1 and v2 patches have nearly identical behavior, as far as I can tell. Perhaps v2 is better since it checks at the same time we find the INSTEAD OF triggers. (Maybe this could avoid a future TOCTOU problem?) OTOH v1 gives a slightly nicer error message, since it has the position info. There is one difference I could find with the execution-time check: a zero-row update fails a check at parse-time or rewrite-time, but not at execution-time. But I think failing is better, isn't it? I've added tests to capture that difference. So my preference is to apply v2 (squashed), but not v3. Squashing all three is okay though if you think not failing on zero rows is better. -- Paul ~{:-) pj@illuminatedcomputing.com --00000000000042a5d806560fab22 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0003-Check-FOR-PORTION-OF-against-INSTEAD-OF-triggers-.patch" Content-Disposition: attachment; filename="v7-0003-Check-FOR-PORTION-OF-against-INSTEAD-OF-triggers-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrbewuce2 RnJvbSAxZWIxNzZlZWI0Yzg1MTljMjYwZjRkMTQzMGQxNjczZTM3NGRhOGJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgNyBKdWwgMjAyNiAxNzoyMzowMSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjcgMy8zXSBDaGVjayBGT1IgUE9SVElPTiBPRiBhZ2FpbnN0IElOU1RFQUQgT0Yg dHJpZ2dlcnMgYXQKIGV4ZWN1dGlvbiB0aW1lCgpEb2luZyB0aGUgdGVzdCBhdCBleGVjdXRpb24g dGltZSBtZWFucyB0aGF0IHplcm8tcm93IHVwZGF0ZXMgZG9uJ3QgZmFpbC4KCkRpc2N1c3Npb246 IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvQ0FKN2M2VE1FJTJCaXg2VlJm LTJUUG5WVHNqOHFuX2h5NnNZQU9tTWhaRWl2d3N1MndTNmclNDBtYWlsLmdtYWlsLmNvbQotLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8IDEzICsrKysr KysrKysrKysKIHNyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYyAgICAgICAgICB8 ICA4IC0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQgfCAxMCArKysrLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Mu c3FsICAgICAgfCAgOCArKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCsp LCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl TW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCmlu ZGV4IGMzMzNkNzEzOWZhLi40NDBmNTM1ZGQwNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1v ZGlmeVRhYmxlLmMKQEAgLTE4NzksNiArMTg3OSwxMyBAQCBFeGVjRGVsZXRlKE1vZGlmeVRhYmxl Q29udGV4dCAqY29udGV4dCwKIAkJYm9vbAkJZG9kZWxldGU7CiAKIAkJQXNzZXJ0KG9sZHR1cGxl ICE9IE5VTEwpOworCisJCS8qIFdlIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0Ygb24gdmll d3Mgd2l0aCBJTlNURUFEIE9GIHRyaWdnZXJzLiAqLworCQlpZiAoKChNb2RpZnlUYWJsZSAqKSBj b250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+Zm9yUG9ydGlvbk9mKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkg ZXJybXNnKCJ2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMgZG8gbm90IHN1cHBvcnQgRk9S IFBPUlRJT04gT0YiKSkpOworCiAJCWRvZGVsZXRlID0gRXhlY0lSRGVsZXRlVHJpZ2dlcnMoZXN0 YXRlLCByZXN1bHRSZWxJbmZvLCBvbGR0dXBsZSk7CiAKIAkJaWYgKCFkb2RlbGV0ZSkJCQkvKiAi ZG8gbm90aGluZyIgKi8KQEAgLTI3NzIsNiArMjc3OSwxMiBAQCBFeGVjVXBkYXRlKE1vZGlmeVRh YmxlQ29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAlpZiAo cmVzdWx0UmVsSW5mby0+cmlfVHJpZ0Rlc2MgJiYKIAkJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ0Rl c2MtPnRyaWdfdXBkYXRlX2luc3RlYWRfcm93KQogCXsKKwkJLyogV2UgZG9uJ3Qgc3VwcG9ydCBG T1IgUE9SVElPTiBPRiBvbiB2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMuICovCisJCWlm ICgoKE1vZGlmeVRhYmxlICopIGNvbnRleHQtPm10c3RhdGUtPnBzLnBsYW4pLT5mb3JQb3J0aW9u T2YpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coInZpZXdzIHdpdGggSU5TVEVBRCBPRiB0cmlnZ2Vy cyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRiIpKSk7CisKIAkJaWYgKCFFeGVjSVJVcGRh dGVUcmlnZ2Vycyhlc3RhdGUsIHJlc3VsdFJlbEluZm8sCiAJCQkJCQkJCSAgb2xkdHVwbGUsIHNs b3QpKQogCQkJcmV0dXJuIE5VTEw7CQkvKiAiZG8gbm90aGluZyIgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUv cmV3cml0ZUhhbmRsZXIuYwppbmRleCAzOGY1NGI1N2VlYy4uZTdhZTljY2U2NWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYworKysgYi9zcmMvYmFja2Vu ZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAgLTQxNzEsMTQgKzQxNzEsNiBAQCBSZXdyaXRl UXVlcnkoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBvcmlnX3J0 X2xlbmd0aCwKIAkJICovCiAJCXJ0X2VudHJ5X3JlbGF0aW9uID0gcmVsYXRpb25fb3BlbihydF9l bnRyeS0+cmVsaWQsIE5vTG9jayk7CiAKLQkJLyogV2UgZG9uJ3Qgc3VwcG9ydCBGT1IgUE9SVElP TiBPRiBvbiB2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMuICovCi0JCWlmIChwYXJzZXRy ZWUtPmZvclBvcnRpb25PZiAmJgotCQkJcnRfZW50cnlfcmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX1ZJRVcgJiYKLQkJCXZpZXdfaGFzX2luc3RlYWRfdHJpZ2dlcihydF9lbnRy eV9yZWxhdGlvbiwgZXZlbnQsIE5JTCkpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coInZpZXdzIHdp dGggSU5TVEVBRCBPRiB0cmlnZ2VycyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRiIpKSk7 Ci0KIAkJLyoKIAkJICogUmV3cml0ZSB0aGUgdGFyZ2V0bGlzdCBhcyBuZWVkZWQgZm9yIHRoZSBj b21tYW5kIHR5cGUuCiAJCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC91cGRhdGFibGVfdmlld3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFi bGVfdmlld3Mub3V0CmluZGV4IDkzYWY5NmI3ZGRkLi5kMjA2NzZkMWVmNCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dApAQCAtNDE4MywxNSArNDE4 MywxMyBAQCBkZWxldGUgZnJvbSB1dl9mcG9faW5zdGVhZF92aWV3CiAgIGZvciBwb3J0aW9uIG9m IHZhbGlkX2F0IGZyb20gJzIwMTctMDEtMDEnIHRvICcyMDIyLTAxLTAxJwogICB3aGVyZSBpZCA9 ICdbMSwxXSc7IC0tIGVycm9yCiBFUlJPUjogIHZpZXdzIHdpdGggSU5TVEVBRCBPRiB0cmlnZ2Vy cyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRgotLS0gVGhlIGNoZWNrIGRvZXMgbm90IGRl cGVuZCBvbiB3aGljaCByb3dzIG1hdGNoLCBzbyBpdCBlcnJvcnMgZXZlbiB3aGVuCi0tLSBubyBy b3dzIGRvLgorLS0gSGVyZSB0aGUgY2hlY2sgcnVucyBwZXIgcm93IGluIHRoZSBleGVjdXRvciwg c28gYSBzdGF0ZW1lbnQgdGhhdCBtYXRjaGVzCistLSBubyByb3dzIG5ldmVyIHJlYWNoZXMgaXQg YW5kIGlzIGFsbG93ZWQuCiB1cGRhdGUgdXZfZnBvX2luc3RlYWRfdmlldwogICBmb3IgcG9ydGlv biBvZiB2YWxpZF9hdCBmcm9tICcyMDE1LTAxLTAxJyB0byAnMjAyMC0wMS0wMScKLSAgc2V0IGIg PSA5OSB3aGVyZSBpZCA9ICdbOSw5XSc7IC0tIGVycm9yLCBldmVuIHdpdGggbm8gbWF0Y2hpbmcg cm93cwotRVJST1I6ICB2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMgZG8gbm90IHN1cHBv cnQgRk9SIFBPUlRJT04gT0YKKyAgc2V0IGIgPSA5OSB3aGVyZSBpZCA9ICdbOSw5XSc7IC0tIG9r LCBubyByb3dzIGFmZmVjdGVkCiBkZWxldGUgZnJvbSB1dl9mcG9faW5zdGVhZF92aWV3CiAgIGZv ciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTctMDEtMDEnIHRvICcyMDIyLTAxLTAxJwot ICB3aGVyZSBpZCA9ICdbOSw5XSc7IC0tIGVycm9yLCBldmVuIHdpdGggbm8gbWF0Y2hpbmcgcm93 cwotRVJST1I6ICB2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMgZG8gbm90IHN1cHBvcnQg Rk9SIFBPUlRJT04gT0YKKyAgd2hlcmUgaWQgPSAnWzksOV0nOyAtLSBvaywgbm8gcm93cyBhZmZl Y3RlZAogZHJvcCB2aWV3IHV2X2Zwb19pbnN0ZWFkX3ZpZXc7CiBkcm9wIGZ1bmN0aW9uIHV2X2Zw b19pbnN0ZWFkX3RyaWcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0 YWJsZV92aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3Fs CmluZGV4IGY0YTdlMDMyN2IwLi4wYTdiM2QxN2VjMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91 cGRhdGFibGVfdmlld3Muc3FsCkBAIC0yMTcwLDE1ICsyMTcwLDE1IEBAIGRlbGV0ZSBmcm9tIHV2 X2Zwb19pbnN0ZWFkX3ZpZXcKICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0w MS0wMScgdG8gJzIwMjItMDEtMDEnCiAgIHdoZXJlIGlkID0gJ1sxLDFdJzsgLS0gZXJyb3IKIAot LS0gVGhlIGNoZWNrIGRvZXMgbm90IGRlcGVuZCBvbiB3aGljaCByb3dzIG1hdGNoLCBzbyBpdCBl cnJvcnMgZXZlbiB3aGVuCi0tLSBubyByb3dzIGRvLgorLS0gSGVyZSB0aGUgY2hlY2sgcnVucyBw ZXIgcm93IGluIHRoZSBleGVjdXRvciwgc28gYSBzdGF0ZW1lbnQgdGhhdCBtYXRjaGVzCistLSBu byByb3dzIG5ldmVyIHJlYWNoZXMgaXQgYW5kIGlzIGFsbG93ZWQuCiB1cGRhdGUgdXZfZnBvX2lu c3RlYWRfdmlldwogICBmb3IgcG9ydGlvbiBvZiB2YWxpZF9hdCBmcm9tICcyMDE1LTAxLTAxJyB0 byAnMjAyMC0wMS0wMScKLSAgc2V0IGIgPSA5OSB3aGVyZSBpZCA9ICdbOSw5XSc7IC0tIGVycm9y LCBldmVuIHdpdGggbm8gbWF0Y2hpbmcgcm93cworICBzZXQgYiA9IDk5IHdoZXJlIGlkID0gJ1s5 LDldJzsgLS0gb2ssIG5vIHJvd3MgYWZmZWN0ZWQKIAogZGVsZXRlIGZyb20gdXZfZnBvX2luc3Rl YWRfdmlldwogICBmb3IgcG9ydGlvbiBvZiB2YWxpZF9hdCBmcm9tICcyMDE3LTAxLTAxJyB0byAn MjAyMi0wMS0wMScKLSAgd2hlcmUgaWQgPSAnWzksOV0nOyAtLSBlcnJvciwgZXZlbiB3aXRoIG5v IG1hdGNoaW5nIHJvd3MKKyAgd2hlcmUgaWQgPSAnWzksOV0nOyAtLSBvaywgbm8gcm93cyBhZmZl Y3RlZAogCiBkcm9wIHZpZXcgdXZfZnBvX2luc3RlYWRfdmlldzsKIGRyb3AgZnVuY3Rpb24gdXZf ZnBvX2luc3RlYWRfdHJpZygpOwotLSAKMi40Ny4zCgo= --00000000000042a5d806560fab22 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-Forbid-FOR-PORTION-OF-on-views-with-INSTEAD-OF-tr.patch" Content-Disposition: attachment; filename="v7-0001-Forbid-FOR-PORTION-OF-on-views-with-INSTEAD-OF-tr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrbewuc50 RnJvbSBiODc2NWY3NWVjODA4NDY4MDkzN2MzZjBiNDM3ZTFlMTlhMmNkYTk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpZ2Vy ZGF0YS5jb20+CkRhdGU6IFR1ZSwgNyBKdWwgMjAyNiAxNzoyMDowNSAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggdjcgMS8zXSBGb3JiaWQgRk9SIFBPUlRJT04gT0Ygb24gdmlld3Mgd2l0aCBJTlNURUFE IE9GCiB0cmlnZ2VycwoKUHJldmlvdXNseSBhbiBhdHRlbXB0IHRvIHVzZSB0aGVzZSBmZWF0dXJl cyB0b2dldGhlciBjYXVzZWQgYSBjcmFzaC4KT3ZlcnNpZ2h0IG9mIGNvbW1pdCA4ZTcyZDkxNGM1 MjguCgpBdXRob3I6IEFsZWtzYW5kZXIgQWxla3NlZXYgPGFsZWtzYW5kZXJAdGlnZXJkYXRhLmNv bT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9DQUo3 YzZUTUUlMkJpeDZWUmYtMlRQblZUc2o4cW5faHk2c1lBT21NaFpFaXZ3c3Uyd1M2ZyU0MG1haWwu Z21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAg ICAgIHwgMTEgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3 cy5vdXQgfCAzOCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRh dGFibGVfdmlld3Muc3FsICAgICAgfCAzNCArKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFu Z2VkLCA4MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMjkzMmQxN2ExMDcu LjFlNmZiYzk1OTY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTEzNDQsNiArMTM0NCwxNyBAQCB0 cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCWVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCWVycm1zZygiV0hFUkUgQ1VS UkVOVCBPRiB3aXRoIEZPUiBQT1JUSU9OIE9GIGlzIG5vdCBpbXBsZW1lbnRlZCIpKTsKIAorCS8q IFdlIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0Ygb24gdmlld3Mgd2l0aCBJTlNURUFEIE9G IHRyaWdnZXJzLiAqLworCWlmICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5E X1ZJRVcgJiYKKwkJdGFyZ2V0cmVsLT5yZF9yZWwtPnJlbGhhc3RyaWdnZXJzICYmCisJCXRhcmdl dHJlbC0+dHJpZ2Rlc2MgIT0gTlVMTCAmJgorCQkoaXNVcGRhdGUgPyB0YXJnZXRyZWwtPnRyaWdk ZXNjLT50cmlnX3VwZGF0ZV9pbnN0ZWFkX3JvdworCQkJCSAgOiB0YXJnZXRyZWwtPnRyaWdkZXNj LT50cmlnX2RlbGV0ZV9pbnN0ZWFkX3JvdykpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInZpZXdzIHdp dGggSU5TVEVBRCBPRiB0cmlnZ2VycyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRiIpLAor CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKSkp OworCiAJcmVzdWx0ID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mRXhwcik7CiAKIAkvKiBMb29rIHVw IHRoZSBGT1IgUE9SVElPTiBPRiBuYW1lIHJlcXVlc3RlZC4gKi8KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dAppbmRleCA3YjAwYzc0Mjc3Ni4uYWNhYjE2 NWFlNGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3Zp ZXdzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQKQEAgLTQxNjUsMyArNDE2NSw0MSBAQCBzZWxlY3QgKiBmcm9tIGJhc2VfdGFiIG9yZGVyIGJ5 IGE7CiAKIGRyb3AgdmlldyBiYXNlX3RhYl92aWV3OwogZHJvcCB0YWJsZSBiYXNlX3RhYjsKKy0t IEZPUiBQT1JUSU9OIE9GIGlzIG5vdCBzdXBwb3J0ZWQgb24gdmlld3Mgd2l0aCBJTlNURUFEIE9G IHRyaWdnZXJzCitjcmVhdGUgdmlldyB1dl9mcG9faW5zdGVhZF92aWV3IGFzIHNlbGVjdCBpZCwg dmFsaWRfYXQsIGIgZnJvbSB1dl9mcG9fdGFiOworY3JlYXRlIGZ1bmN0aW9uIHV2X2Zwb19pbnN0 ZWFkX3RyaWcoKSByZXR1cm5zIHRyaWdnZXIgbGFuZ3VhZ2UgcGxwZ3NxbCBhcworJCQgYmVnaW4g cmV0dXJuIG51bGw7IGVuZCAkJDsKK2NyZWF0ZSB0cmlnZ2VyIHV2X2Zwb19pbnN0ZWFkX3VwZF90 cmlnCisgIGluc3RlYWQgb2YgdXBkYXRlIG9uIHV2X2Zwb19pbnN0ZWFkX3ZpZXcKKyAgZm9yIGVh Y2ggcm93IGV4ZWN1dGUgZnVuY3Rpb24gdXZfZnBvX2luc3RlYWRfdHJpZygpOworY3JlYXRlIHRy aWdnZXIgdXZfZnBvX2luc3RlYWRfZGVsX3RyaWcKKyAgaW5zdGVhZCBvZiBkZWxldGUgb24gdXZf ZnBvX2luc3RlYWRfdmlldworICBmb3IgZWFjaCByb3cgZXhlY3V0ZSBmdW5jdGlvbiB1dl9mcG9f aW5zdGVhZF90cmlnKCk7Cit1cGRhdGUgdXZfZnBvX2luc3RlYWRfdmlldworICBmb3IgcG9ydGlv biBvZiB2YWxpZF9hdCBmcm9tICcyMDE1LTAxLTAxJyB0byAnMjAyMC0wMS0wMScKKyAgc2V0IGIg PSA5OSB3aGVyZSBpZCA9ICdbMSwxXSc7IC0tIGVycm9yCitFUlJPUjogIHZpZXdzIHdpdGggSU5T VEVBRCBPRiB0cmlnZ2VycyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRgorTElORSAyOiAg IGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTUtMDEtMDEnIHRvICcyMDIwLTAxLTAx JworICAgICAgICAgICAgICAgICAgICAgICAgIF4KK2RlbGV0ZSBmcm9tIHV2X2Zwb19pbnN0ZWFk X3ZpZXcKKyAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIw MjItMDEtMDEnCisgIHdoZXJlIGlkID0gJ1sxLDFdJzsgLS0gZXJyb3IKK0VSUk9SOiAgdmlld3Mg d2l0aCBJTlNURUFEIE9GIHRyaWdnZXJzIGRvIG5vdCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GCitM SU5FIDI6ICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIw MjItMDEtMDEnCisgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gVGhlIGNoZWNrIGRvZXMg bm90IGRlcGVuZCBvbiB3aGljaCByb3dzIG1hdGNoLCBzbyBpdCBlcnJvcnMgZXZlbiB3aGVuCist LSBubyByb3dzIGRvLgordXBkYXRlIHV2X2Zwb19pbnN0ZWFkX3ZpZXcKKyAgZm9yIHBvcnRpb24g b2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIwMjAtMDEtMDEnCisgIHNldCBiID0g OTkgd2hlcmUgaWQgPSAnWzksOV0nOyAtLSBlcnJvciwgZXZlbiB3aXRoIG5vIG1hdGNoaW5nIHJv d3MKK0VSUk9SOiAgdmlld3Mgd2l0aCBJTlNURUFEIE9GIHRyaWdnZXJzIGRvIG5vdCBzdXBwb3J0 IEZPUiBQT1JUSU9OIE9GCitMSU5FIDI6ICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAn MjAxNS0wMS0wMScgdG8gJzIwMjAtMDEtMDEnCisgICAgICAgICAgICAgICAgICAgICAgICAgXgor ZGVsZXRlIGZyb20gdXZfZnBvX2luc3RlYWRfdmlldworICBmb3IgcG9ydGlvbiBvZiB2YWxpZF9h dCBmcm9tICcyMDE3LTAxLTAxJyB0byAnMjAyMi0wMS0wMScKKyAgd2hlcmUgaWQgPSAnWzksOV0n OyAtLSBlcnJvciwgZXZlbiB3aXRoIG5vIG1hdGNoaW5nIHJvd3MKK0VSUk9SOiAgdmlld3Mgd2l0 aCBJTlNURUFEIE9GIHRyaWdnZXJzIGRvIG5vdCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GCitMSU5F IDI6ICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjIt MDEtMDEnCisgICAgICAgICAgICAgICAgICAgICAgICAgXgorZHJvcCB2aWV3IHV2X2Zwb19pbnN0 ZWFkX3ZpZXc7Citkcm9wIGZ1bmN0aW9uIHV2X2Zwb19pbnN0ZWFkX3RyaWcoKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92aWV3cy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCmluZGV4IDRhNjAxMjZlYzkwLi5mNGE3ZTAz MjdiMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCkBAIC0yMTQ4 LDMgKzIxNDgsMzcgQEAgdmFsdWVzICgxLCAyLCBkZWZhdWx0LCA1LCA0LCBkZWZhdWx0LCAzKSwg KDEwLCAxMSwgJ0MgdmFsdWUnLCAxNCwgMTMsIDEwMCwgMTIpOwogc2VsZWN0ICogZnJvbSBiYXNl X3RhYiBvcmRlciBieSBhOwogZHJvcCB2aWV3IGJhc2VfdGFiX3ZpZXc7CiBkcm9wIHRhYmxlIGJh c2VfdGFiOworCistLSBGT1IgUE9SVElPTiBPRiBpcyBub3Qgc3VwcG9ydGVkIG9uIHZpZXdzIHdp dGggSU5TVEVBRCBPRiB0cmlnZ2VycworY3JlYXRlIHZpZXcgdXZfZnBvX2luc3RlYWRfdmlldyBh cyBzZWxlY3QgaWQsIHZhbGlkX2F0LCBiIGZyb20gdXZfZnBvX3RhYjsKKworY3JlYXRlIGZ1bmN0 aW9uIHV2X2Zwb19pbnN0ZWFkX3RyaWcoKSByZXR1cm5zIHRyaWdnZXIgbGFuZ3VhZ2UgcGxwZ3Nx bCBhcworJCQgYmVnaW4gcmV0dXJuIG51bGw7IGVuZCAkJDsKKworY3JlYXRlIHRyaWdnZXIgdXZf ZnBvX2luc3RlYWRfdXBkX3RyaWcKKyAgaW5zdGVhZCBvZiB1cGRhdGUgb24gdXZfZnBvX2luc3Rl YWRfdmlldworICBmb3IgZWFjaCByb3cgZXhlY3V0ZSBmdW5jdGlvbiB1dl9mcG9faW5zdGVhZF90 cmlnKCk7CitjcmVhdGUgdHJpZ2dlciB1dl9mcG9faW5zdGVhZF9kZWxfdHJpZworICBpbnN0ZWFk IG9mIGRlbGV0ZSBvbiB1dl9mcG9faW5zdGVhZF92aWV3CisgIGZvciBlYWNoIHJvdyBleGVjdXRl IGZ1bmN0aW9uIHV2X2Zwb19pbnN0ZWFkX3RyaWcoKTsKKwordXBkYXRlIHV2X2Zwb19pbnN0ZWFk X3ZpZXcKKyAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIw MjAtMDEtMDEnCisgIHNldCBiID0gOTkgd2hlcmUgaWQgPSAnWzEsMV0nOyAtLSBlcnJvcgorCitk ZWxldGUgZnJvbSB1dl9mcG9faW5zdGVhZF92aWV3CisgIGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0 IGZyb20gJzIwMTctMDEtMDEnIHRvICcyMDIyLTAxLTAxJworICB3aGVyZSBpZCA9ICdbMSwxXSc7 IC0tIGVycm9yCisKKy0tIFRoZSBjaGVjayBkb2VzIG5vdCBkZXBlbmQgb24gd2hpY2ggcm93cyBt YXRjaCwgc28gaXQgZXJyb3JzIGV2ZW4gd2hlbgorLS0gbm8gcm93cyBkby4KK3VwZGF0ZSB1dl9m cG9faW5zdGVhZF92aWV3CisgIGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTUtMDEt MDEnIHRvICcyMDIwLTAxLTAxJworICBzZXQgYiA9IDk5IHdoZXJlIGlkID0gJ1s5LDldJzsgLS0g ZXJyb3IsIGV2ZW4gd2l0aCBubyBtYXRjaGluZyByb3dzCisKK2RlbGV0ZSBmcm9tIHV2X2Zwb19p bnN0ZWFkX3ZpZXcKKyAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScg dG8gJzIwMjItMDEtMDEnCisgIHdoZXJlIGlkID0gJ1s5LDldJzsgLS0gZXJyb3IsIGV2ZW4gd2l0 aCBubyBtYXRjaGluZyByb3dzCisKK2Ryb3AgdmlldyB1dl9mcG9faW5zdGVhZF92aWV3OworZHJv cCBmdW5jdGlvbiB1dl9mcG9faW5zdGVhZF90cmlnKCk7Ci0tIAoyLjQ3LjMKCg== --00000000000042a5d806560fab22 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0002-Check-FOR-PORTION-OF-against-INSTEAD-OF-triggers-.patch" Content-Disposition: attachment; filename="v7-0002-Check-FOR-PORTION-OF-against-INSTEAD-OF-triggers-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrbewuca1 RnJvbSA4ZGVmZTZkZTZmNjljODQyYWRlODRiOWQ2YWM3NTk2Y2Y0YTIxMjgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgNyBKdWwgMjAyNiAxNzoyMTozNCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjcgMi8zXSBDaGVjayBGT1IgUE9SVElPTiBPRiBhZ2FpbnN0IElOU1RFQUQgT0Yg dHJpZ2dlcnMKIGR1cmluZyByZXdyaXRpbmcKCk1vdmUgdGhlIElOU1RFQUQgT0YgdHJpZ2dlciBj aGVjayB0byB0aGUgcmV3cml0ZXIuIFRoaXMgbG9zZXMgdGhlIGVycm9yCnBvc2l0aW9uIGJ1dCBn aXZlcyB0aGUgY2hlY2sgYmV0dGVyIGxvY2FsaXR5IHdpdGggd2hlcmUgd2UgbG9vayB1cCB0aGUK dHJpZ2dlcnMuCgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdl LWlkL0NBSjdjNlRNRSUyQml4NlZSZi0yVFBuVlRzajhxbl9oeTZzWUFPbU1oWkVpdndzdTJ3UzZn JTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAg ICAgICAgICAgICAgfCAxMSAtLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl SGFuZGxlci5jICAgICAgICAgIHwgIDggKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dCB8ICA4IC0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMWU2 ZmJjOTU5NjQuLjI5MzJkMTdhMTA3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTEzNDQsMTcgKzEz NDQsNiBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCWVycm1zZygi V0hFUkUgQ1VSUkVOVCBPRiB3aXRoIEZPUiBQT1JUSU9OIE9GIGlzIG5vdCBpbXBsZW1lbnRlZCIp KTsKIAotCS8qIFdlIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0Ygb24gdmlld3Mgd2l0aCBJ TlNURUFEIE9GIHRyaWdnZXJzLiAqLwotCWlmICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVsa2luZCA9 PSBSRUxLSU5EX1ZJRVcgJiYKLQkJdGFyZ2V0cmVsLT5yZF9yZWwtPnJlbGhhc3RyaWdnZXJzICYm Ci0JCXRhcmdldHJlbC0+dHJpZ2Rlc2MgIT0gTlVMTCAmJgotCQkoaXNVcGRhdGUgPyB0YXJnZXRy ZWwtPnRyaWdkZXNjLT50cmlnX3VwZGF0ZV9pbnN0ZWFkX3JvdwotCQkJCSAgOiB0YXJnZXRyZWwt PnRyaWdkZXNjLT50cmlnX2RlbGV0ZV9pbnN0ZWFkX3JvdykpCi0JCWVyZXBvcnQoRVJST1IsCi0J CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2co InZpZXdzIHdpdGggSU5TVEVBRCBPRiB0cmlnZ2VycyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElP TiBPRiIpLAotCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBmb3JQb3J0aW9uT2YtPmxv Y2F0aW9uKSkpOwotCiAJcmVzdWx0ID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mRXhwcik7CiAKIAkv KiBMb29rIHVwIHRoZSBGT1IgUE9SVElPTiBPRiBuYW1lIHJlcXVlc3RlZC4gKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL3Jl d3JpdGUvcmV3cml0ZUhhbmRsZXIuYwppbmRleCBlN2FlOWNjZTY1Zi4uMzhmNTRiNTdlZWMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYworKysgYi9zcmMv YmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAgLTQxNzEsNiArNDE3MSwxNCBAQCBS ZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBv cmlnX3J0X2xlbmd0aCwKIAkJICovCiAJCXJ0X2VudHJ5X3JlbGF0aW9uID0gcmVsYXRpb25fb3Bl bihydF9lbnRyeS0+cmVsaWQsIE5vTG9jayk7CiAKKwkJLyogV2UgZG9uJ3Qgc3VwcG9ydCBGT1Ig UE9SVElPTiBPRiBvbiB2aWV3cyB3aXRoIElOU1RFQUQgT0YgdHJpZ2dlcnMuICovCisJCWlmIChw YXJzZXRyZWUtPmZvclBvcnRpb25PZiAmJgorCQkJcnRfZW50cnlfcmVsYXRpb24tPnJkX3JlbC0+ cmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcgJiYKKwkJCXZpZXdfaGFzX2luc3RlYWRfdHJpZ2dlcihy dF9lbnRyeV9yZWxhdGlvbiwgZXZlbnQsIE5JTCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coInZp ZXdzIHdpdGggSU5TVEVBRCBPRiB0cmlnZ2VycyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBP RiIpKSk7CisKIAkJLyoKIAkJICogUmV3cml0ZSB0aGUgdGFyZ2V0bGlzdCBhcyBuZWVkZWQgZm9y IHRoZSBjb21tYW5kIHR5cGUuCiAJCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91 cGRhdGFibGVfdmlld3Mub3V0CmluZGV4IGFjYWIxNjVhZTRjLi45M2FmOTZiN2RkZCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dApAQCAtNDE3OSwy NyArNDE3OSwxOSBAQCB1cGRhdGUgdXZfZnBvX2luc3RlYWRfdmlldwogICBmb3IgcG9ydGlvbiBv ZiB2YWxpZF9hdCBmcm9tICcyMDE1LTAxLTAxJyB0byAnMjAyMC0wMS0wMScKICAgc2V0IGIgPSA5 OSB3aGVyZSBpZCA9ICdbMSwxXSc7IC0tIGVycm9yCiBFUlJPUjogIHZpZXdzIHdpdGggSU5TVEVB RCBPRiB0cmlnZ2VycyBkbyBub3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRgotTElORSAyOiAgIGZv ciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTUtMDEtMDEnIHRvICcyMDIwLTAxLTAxJwot ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGRlbGV0ZSBmcm9tIHV2X2Zwb19pbnN0ZWFkX3Zp ZXcKICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjIt MDEtMDEnCiAgIHdoZXJlIGlkID0gJ1sxLDFdJzsgLS0gZXJyb3IKIEVSUk9SOiAgdmlld3Mgd2l0 aCBJTlNURUFEIE9GIHRyaWdnZXJzIGRvIG5vdCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GCi1MSU5F IDI6ICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjIt MDEtMDEnCi0gICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gVGhlIGNoZWNrIGRvZXMgbm90 IGRlcGVuZCBvbiB3aGljaCByb3dzIG1hdGNoLCBzbyBpdCBlcnJvcnMgZXZlbiB3aGVuCiAtLSBu byByb3dzIGRvLgogdXBkYXRlIHV2X2Zwb19pbnN0ZWFkX3ZpZXcKICAgZm9yIHBvcnRpb24gb2Yg dmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIwMjAtMDEtMDEnCiAgIHNldCBiID0gOTkg d2hlcmUgaWQgPSAnWzksOV0nOyAtLSBlcnJvciwgZXZlbiB3aXRoIG5vIG1hdGNoaW5nIHJvd3MK IEVSUk9SOiAgdmlld3Mgd2l0aCBJTlNURUFEIE9GIHRyaWdnZXJzIGRvIG5vdCBzdXBwb3J0IEZP UiBQT1JUSU9OIE9GCi1MSU5FIDI6ICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAx NS0wMS0wMScgdG8gJzIwMjAtMDEtMDEnCi0gICAgICAgICAgICAgICAgICAgICAgICAgXgogZGVs ZXRlIGZyb20gdXZfZnBvX2luc3RlYWRfdmlldwogICBmb3IgcG9ydGlvbiBvZiB2YWxpZF9hdCBm cm9tICcyMDE3LTAxLTAxJyB0byAnMjAyMi0wMS0wMScKICAgd2hlcmUgaWQgPSAnWzksOV0nOyAt LSBlcnJvciwgZXZlbiB3aXRoIG5vIG1hdGNoaW5nIHJvd3MKIEVSUk9SOiAgdmlld3Mgd2l0aCBJ TlNURUFEIE9GIHRyaWdnZXJzIGRvIG5vdCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GCi1MSU5FIDI6 ICAgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjItMDEt MDEnCi0gICAgICAgICAgICAgICAgICAgICAgICAgXgogZHJvcCB2aWV3IHV2X2Zwb19pbnN0ZWFk X3ZpZXc7CiBkcm9wIGZ1bmN0aW9uIHV2X2Zwb19pbnN0ZWFkX3RyaWcoKTsKLS0gCjIuNDcuMwoK --00000000000042a5d806560fab22--