Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tp1HZ-00H8GF-6U for pgsql-bugs@arkaria.postgresql.org; Mon, 03 Mar 2025 08:36:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tozW6-00H0XN-WC for pgsql-bugs@arkaria.postgresql.org; Mon, 03 Mar 2025 06:43:07 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tozW6-00H0XE-Hz for pgsql-bugs@lists.postgresql.org; Mon, 03 Mar 2025 06:43:06 +0000 Received: from mail-yw1-x1136.google.com ([2607:f8b0:4864:20::1136]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tozW2-000eTR-22 for pgsql-bugs@lists.postgresql.org; Mon, 03 Mar 2025 06:43:06 +0000 Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-6fb95249855so33805687b3.2 for ; Sun, 02 Mar 2025 22:43:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740984060; x=1741588860; 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=EBYYXrPjImBTy5/f/SJ1pyg4pCTdG1jh85munBMeud8=; b=YmU169huig9q+MWZ+clyd5G5Wqy15eybo1MAu+XT9jih+RLK4vLCXhK3ZXAu/Mr+04 7u6u4lq/T9oRyFmJcQbzFux2zHaqq1tfObtX96e9h30qdjfqM1XFDiF98bmas37TZ5AO 5iD5bKaaWsTytc1e18SMe5DYZl/b5qG/GE9smjbfSJCl+mZ71z5wTCRPcjwFrA6t/CTB KAPG8TTYt2B6kTqNSxx2ncQ8ziqN/1VUGEkZh/qSRW+XKilOOSqjCbd/0HzLlmQvWFwj qQ1NKEm/i4SDaJPhToiX5tjXzWgSVZod678lDSNiXqb7I9NxJxQD+kyivXtCG/c13BkD 2jhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740984060; x=1741588860; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=EBYYXrPjImBTy5/f/SJ1pyg4pCTdG1jh85munBMeud8=; b=khAWkA8HdWkEXZq51FPC6xg6EgLw2g2skQUNGn8JZgWHV0w+ZyjErszVUFzk4ChFaJ +OEPHZB4IIn80xQdfYHf3AuLAA6PwWxP2wrq5qyjWElUlaH4OWD+WbBLQoxK3gxOumYU g9m0fpXxFnYFh6mdZzpAY5sQQsP1VKT3GrmsM0b92Ir4YjkuD5OtLAtOblDU/aG4Ryau c1tSYvYdLtGYe2vd3RmcHEjbtGNpyMF0Uq/GJX2oSRCcnSYQMSqQAXH71TS/YOllFdOJ 6SnPhYZivCSfFLP/+wL5ZioDqXV7g6WztQwY7bJhcG4YGEUEJAOsiCf5O/M+VvL5zdd+ ue1A== X-Forwarded-Encrypted: i=1; AJvYcCXeMXbOUbUFv0ffDnqhgqiE9R/IDpji7n7tOZ7lHzswZMvoWWegPuLiHtjwGZZSYJNb1qGWSok2FRhE@lists.postgresql.org X-Gm-Message-State: AOJu0YwgJ6Ubumu9OnNNSO8cyKT3Eu+OqeImsaT6kelOFQ7JGOQi10mu H+Y4ycJcPHg3R/NpUVRZZaGgPYghdRPlxaDQbviMr0ywWzO+ypcfNEvRO5RJ3i5vYzG+PuWd4WC Ra4BQd+UBemcSpbHY087pY32D8HE= X-Gm-Gg: ASbGncskJUN/GYb6l7mZerpurcTFGcT56Q/+hZemOs6+4Bd47qAGmwcFtQ6yEkgkbrY zMADao8bzFbiEwbA2akmadwUWeeSYD0AHlxyXaDnwaRhpTfwNCKFuDJKwXPc4y0K500bIogU0yw BCeDFzHoAj19lL9ZrkBWNTUHIC+LHSsaSCQhNUwH7DMck+TZDB/QcHKz8jy4Bo X-Google-Smtp-Source: AGHT+IGFkLJS95jfIo/p9//ZKvEmBTCv6x1hcNiXiABUpyO0w46CWsBe22YgdQui32fUSsf28SSAnuk21AcpLD4/7PA= X-Received: by 2002:a05:690c:6012:b0:6f9:af1f:53a4 with SMTP id 00721157ae682-6fd4a14fe10mr169012257b3.32.1740984058667; Sun, 02 Mar 2025 22:40:58 -0800 (PST) MIME-Version: 1.0 References: <3736132.1740181858@sss.pgh.pa.us> <3818495.1740191559@sss.pgh.pa.us> <1716556.1740551169@sss.pgh.pa.us> <2337383.1740630494@sss.pgh.pa.us> <2748914.1740757698@sss.pgh.pa.us> In-Reply-To: <2748914.1740757698@sss.pgh.pa.us> From: Richard Guo Date: Mon, 3 Mar 2025 15:40:47 +0900 X-Gm-Features: AQ5f1JqtdeZrRtX5frW1zjLDmdqovkx_ZuTP9aciMzsbRljEeuFEtojf2ed-CpU Message-ID: Subject: Re: Query result differences between PostgreSQL 17 vs 16 To: Tom Lane Cc: Bruce Momjian , David Rowley , Ronald Cruz , pgsql-bugs@lists.postgresql.org, Peter Ford , "Aaron J. Garcia" Content-Type: multipart/mixed; boundary="000000000000615762062f6a7009" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000615762062f6a7009 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Mar 1, 2025 at 12:48=E2=80=AFAM Tom Lane wrote: > Richard Guo writes: > > Now I'm inclined to agree with you. It seems we've been lucky so far > > not to encounter issues with IS NULL deductions on clone clauses, but > > this feels like a problem waiting to happen in the future. > > Yes, I'm on board with that too. I think the comments need more work > than you've done though. I think they should say something about > "nullingrel bits in clone clauses may not reflect reality, so we dare > not draw conclusions from clones about whether Vars are guaranteed > not-null". Also, I'm not convinced any more that this has anything to > do with missing clone members, so we should remove that claim. Agreed. Thanks for the suggestion. > > The no-clone-quals limitation in restriction_is_always_false makes the > > fix in f00ab1fd1 unnecessary. I think we should revert those changes. > > Hmm, I'm less on board with that. The saving-and-restoring of > last_rinfo_serial looks correct to me, even though this fix might > cause the test case you found before to not tickle that bug. Fair point. > > Attached is the updated patch. > > I'm confused by the changes to existing test cases in this? It looks > like you're undoing some test changes that are not from f00ab1fd1, so > I don't understand why. My inclination here would be to add a new > test that exposes the current bug, but leave the rest alone, even > though they may no longer be testing exactly what they were originally > meant to do. Yeah, the patch modifies some existing test cases that are intended to test a join clause that is IS_NOT_NULL/IS_NULL qual can or cannot be reduced depending on whether its Var is nullable by any outer joins. And it happens that the join clauses in these test cases are clone clauses, which are excluded from reduction by the fix here. As a result, they are no longer testing what they are intended to. This patch modifies them to ensure that those join clauses are not clone clauses. This patch also adds a new test that exposes the current bug, and tests that clone clauses are not reduced to constant true/false. Here is an updated patch, which also includes the test case you found proving the no-clone-quals limitation in restriction_is_always_false is also needed. Thanks Richard --000000000000615762062f6a7009 Content-Type: application/octet-stream; name="v3-0001-Avoid-NullTest-deduction-for-clone-clauses.patch" Content-Disposition: attachment; filename="v3-0001-Avoid-NullTest-deduction-for-clone-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7soy4hq0 RnJvbSAyMzlhOGFhNjkwOTUwMzA2ZWI2MGQ4NDJkYTRkYzQwNjc1ODYyYTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K RGF0ZTogV2VkLCAyNiBGZWIgMjAyNSAxMDozOToxNCArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjNd IEF2b2lkIE51bGxUZXN0IGRlZHVjdGlvbiBmb3IgY2xvbmUgY2xhdXNlcwoKSW4gY29tbWl0IGIy NjJhZDQ0MCwgd2UgaW50cm9kdWNlZCBhbiBvcHRpbWl6YXRpb24gdGhhdCByZWR1Y2VzIGFuIElT Ck5PVCBOVUxMIHF1YWwgb24gYSBjb2x1bW4gZGVmaW5lZCBhcyBOT1QgTlVMTCB0byBjb25zdGFu dCB0cnVlLCBhbmQgYW4KSVMgTlVMTCBxdWFsIG9uIGEgTk9UIE5VTEwgY29sdW1uIHRvIGNvbnN0 YW50IGZhbHNlLCBwcm92aWRlZCB3ZSBjYW4KcHJvdmUgdGhhdCB0aGUgaW5wdXQgZXhwcmVzc2lv biBvZiB0aGUgTnVsbFRlc3QgaXMgbm90IG51bGxhYmxlIGJ5IGFueQpvdXRlciBqb2luLiAgVGhp cyBkZWR1Y3Rpb24gaGFwcGVucyBhZnRlciB3ZSBoYXZlIGdlbmVyYXRlZCBtdWx0aXBsZQpjbG9u ZXMgb2YgdGhlIHNhbWUgcXVhbCBjb25kaXRpb24gdG8gY29wZSB3aXRoIGNvbW11dGVkLWxlZnQt am9pbgpjYXNlcy4KCkhvd2V2ZXIsIHBlcmZvcm1pbmcgdGhlIE51bGxUZXN0IGRlZHVjdGlvbiBm b3IgY2xvbmUgY2xhdXNlcyBjYW4gYmUKdW5zYWZlLCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSBy ZWxpYWJsZSB3YXkgdG8gZGV0ZXJtaW5lIGlmIHRoZSBpbnB1dApleHByZXNzaW9uIG9mIGEgTnVs bFRlc3QgaXMgbm9uLW51bGxhYmxlOiBudWxsaW5ncmVsIGJpdHMgaW4gY2xvbmUKY2xhdXNlcyBt YXkgbm90IHJlZmxlY3QgcmVhbGl0eSwgc28gd2UgZGFyZSBub3QgZHJhdyBjb25jbHVzaW9ucyBm cm9tCmNsb25lcyBhYm91dCB3aGV0aGVyIFZhcnMgYXJlIGd1YXJhbnRlZWQgbm90LW51bGwuCgpU byBmaXgsIHdlIGNoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIFJlc3RyaWN0SW5mbyBpcyBhIGNsb25l IGNsYXVzZSBpbgpyZXN0cmljdGlvbl9pc19hbHdheXNfdHJ1ZSBhbmQgcmVzdHJpY3Rpb25faXNf YWx3YXlzX2ZhbHNlLCBhbmQgYXZvaWQKcGVyZm9ybWluZyBhbnkgcmVkdWN0aW9uIGlmIGl0IGlz LgoKVGhlcmUgYXJlIHNldmVyYWwgZW5zdWluZyBwbGFuIGNoYW5nZXMgaW4gcHJlZGljYXRlLm91 dCwgYW5kIHdlIGhhdmUKdG8gbW9kaWZ5IHRoZSB0ZXN0cyB0byBlbnN1cmUgdGhhdCB0aGV5IGNv bnRpbnVlIHRvIHRlc3Qgd2hhdCB0aGV5IGFyZQppbnRlbmRlZCB0by4gIEFkZGl0aW9uYWxseSwg dGhpcyBmaXggY2F1c2VzIHRoZSB0ZXN0IGNhc2UgYWRkZWQgaW4KZjAwYWIxZmQxIHRvIG5vIGxv bmdlciB0cmlnZ2VyIHRoZSBidWcgdGhhdCBjb21taXQgZml4ZWQsIHNvIHdlIGFsc28KcmVtb3Zl IHRoYXQgdGVzdCBjYXNlLgoKQmFjay1wYXRjaCB0byB2MTcgd2hlcmUgdGhpcyBidWcgY3JlcHQg aW4uCgpSZXBvcnRlZC1ieTogUm9uYWxkIENydXogPGNydXpAcmVudGVjLmNvbT4KRGlhZ25vc2Vk LWJ5OiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+CkF1dGhvcjogUmljaGFyZCBHdW8gPGd1 b2ZlbmdsaW51eEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gu cGEudXM+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZjUzMjBkM2QtNzdhZi00Y2U4 LWI5YzMtNDcxNWZmMzNmMjEzQHJlbnRlYy5jb20KQmFja3BhdGNoLXRocm91Z2g6IDE3Ci0tLQog c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMgIHwgIDE4ICsrKwogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wcmVkaWNhdGUub3V0IHwgMTkxICsrKysrKysrKysrKysrKy0t LS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJlZGljYXRlLnNxbCAgICAgIHwgIDU5ICsr KysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE3NSBpbnNlcnRpb25zKCspLCA5MyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2luaXRzcGxhbi5jCmluZGV4IDJjYjBhZTZkNjU5 Li4xZDFhYTI3ZDQ1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5p dHNwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMKQEAg LTMwOTEsNiArMzA5MSwxNSBAQCBib29sCiByZXN0cmljdGlvbl9pc19hbHdheXNfdHJ1ZShQbGFu bmVySW5mbyAqcm9vdCwKIAkJCQkJCSAgIFJlc3RyaWN0SW5mbyAqcmVzdHJpY3RpbmZvKQogewor CS8qCisJICogRm9yIGEgY2xvbmUgY2xhdXNlLCB3ZSBkb24ndCBoYXZlIGEgcmVsaWFibGUgd2F5 IHRvIGRldGVybWluZSBpZiB0aGUKKwkgKiBpbnB1dCBleHByZXNzaW9uIG9mIGEgTnVsbFRlc3Qg aXMgbm9uLW51bGxhYmxlOiBudWxsaW5ncmVsIGJpdHMgaW4KKwkgKiBjbG9uZSBjbGF1c2VzIG1h eSBub3QgcmVmbGVjdCByZWFsaXR5LCBzbyB3ZSBkYXJlIG5vdCBkcmF3IGNvbmNsdXNpb25zCisJ ICogZnJvbSBjbG9uZXMgYWJvdXQgd2hldGhlciBWYXJzIGFyZSBndWFyYW50ZWVkIG5vdC1udWxs LgorCSAqLworCWlmIChyZXN0cmljdGluZm8tPmhhc19jbG9uZSB8fCByZXN0cmljdGluZm8tPmlz X2Nsb25lKQorCQlyZXR1cm4gZmFsc2U7CisKIAkvKiBDaGVjayBmb3IgTnVsbFRlc3QgcXVhbCAq LwogCWlmIChJc0EocmVzdHJpY3RpbmZvLT5jbGF1c2UsIE51bGxUZXN0KSkKIAl7CkBAIC0zMTQw LDYgKzMxNDksMTUgQEAgYm9vbAogcmVzdHJpY3Rpb25faXNfYWx3YXlzX2ZhbHNlKFBsYW5uZXJJ bmZvICpyb290LAogCQkJCQkJCVJlc3RyaWN0SW5mbyAqcmVzdHJpY3RpbmZvKQogeworCS8qCisJ ICogRm9yIGEgY2xvbmUgY2xhdXNlLCB3ZSBkb24ndCBoYXZlIGEgcmVsaWFibGUgd2F5IHRvIGRl dGVybWluZSBpZiB0aGUKKwkgKiBpbnB1dCBleHByZXNzaW9uIG9mIGEgTnVsbFRlc3QgaXMgbm9u LW51bGxhYmxlOiBudWxsaW5ncmVsIGJpdHMgaW4KKwkgKiBjbG9uZSBjbGF1c2VzIG1heSBub3Qg cmVmbGVjdCByZWFsaXR5LCBzbyB3ZSBkYXJlIG5vdCBkcmF3IGNvbmNsdXNpb25zCisJICogZnJv bSBjbG9uZXMgYWJvdXQgd2hldGhlciBWYXJzIGFyZSBndWFyYW50ZWVkIG5vdC1udWxsLgorCSAq LworCWlmIChyZXN0cmljdGluZm8tPmhhc19jbG9uZSB8fCByZXN0cmljdGluZm8tPmlzX2Nsb25l KQorCQlyZXR1cm4gZmFsc2U7CisKIAkvKiBDaGVjayBmb3IgTnVsbFRlc3QgcXVhbCAqLwogCWlm IChJc0EocmVzdHJpY3RpbmZvLT5jbGF1c2UsIE51bGxUZXN0KSkKIAl7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZWRpY2F0ZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ByZWRpY2F0ZS5vdXQKaW5kZXggOTY1YTNhNzYxNjEuLmI3OTAzNzc0OGI3IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZWRpY2F0ZS5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVkaWNhdGUub3V0CkBAIC05Nyw1NSArOTcsNTAg QEAgU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0IFdIRVJFIHQuYiBJUyBOVUxMIE9SIHQuYyBJUyBO VUxMOwogLS0gYW5kIGIpIGl0cyBWYXIgaXMgbm90IG51bGxhYmxlIGJ5IGFueSBvdXRlciBqb2lu cwogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQotICAgIExF RlQgSk9JTiBwcmVkX3RhYiB0MiBPTiBUUlVFCi0gICAgTEVGVCBKT0lOIHByZWRfdGFiIHQzIE9O IHQyLmEgSVMgTk9UIE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OIHQxLmEgSVMgTk9UIE5VTEw7Cisg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCiAgICAtPiAgU2VxIFNj YW4gb24gcHJlZF90YWIgdDEKICAgIC0+ICBNYXRlcmlhbGl6ZQotICAgICAgICAgLT4gIE5lc3Rl ZCBMb29wIExlZnQgSm9pbgotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHByZWRfdGFi IHQyCi0gICAgICAgICAgICAgICAtPiAgTWF0ZXJpYWxpemUKLSAgICAgICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0MwotKDcgcm93cykKKyAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBwcmVkX3RhYiB0MgorKDQgcm93cykKIAogLS0gRW5zdXJlIHRoZSBJU19OT1RfTlVM TCBxdWFsIGlzIG5vdCBpZ25vcmVkIHdoZW4gY29sdW1ucyBhcmUgbWFkZSBudWxsYWJsZQogLS0g YnkgYW4gb3V0ZXIgam9pbgogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSBwcmVk X3RhYiB0MQotICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBPTiB0MS5hID0gMQorICAgIEZVTEwg Sk9JTiBwcmVkX3RhYiB0MiBPTiB0MS5hID0gdDIuYQogICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0 MyBPTiB0Mi5hIElTIE5PVCBOVUxMOwogICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog IE5lc3RlZCBMb29wIExlZnQgSm9pbgogICAgSm9pbiBGaWx0ZXI6ICh0Mi5hIElTIE5PVCBOVUxM KQotICAgLT4gIE5lc3RlZCBMb29wIExlZnQgSm9pbgotICAgICAgICAgSm9pbiBGaWx0ZXI6ICh0 MS5hID0gMSkKLSAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0MQotICAgICAgICAg LT4gIE1hdGVyaWFsaXplCisgICAtPiAgTWVyZ2UgRnVsbCBKb2luCisgICAgICAgICBNZXJnZSBD b25kOiAodDEuYSA9IHQyLmEpCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29y dCBLZXk6IHQxLmEKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0MQor ICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiB0Mi5hCiAgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJlZF90YWIgdDIKICAgIC0+ICBNYXRlcmlhbGl6ZQog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHByZWRfdGFiIHQzCi0oOSByb3dzKQorKDEyIHJvd3Mp CiAKIC0tIEVuc3VyZSB0aGUgSVNfTlVMTCBxdWFsIGlzIHJlZHVjZWQgdG8gY29uc3RhbnQtRkFM U0UsIHNpbmNlIGEpIGl0J3Mgb24gYSBOT1QKIC0tIE5VTEwgY29sdW1uLCBhbmQgYikgaXRzIFZh ciBpcyBub3QgbnVsbGFibGUgYnkgYW55IG91dGVyIGpvaW5zCiBFWFBMQUlOIChDT1NUUyBPRkYp CiBTRUxFQ1QgKiBGUk9NIHByZWRfdGFiIHQxCi0gICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9O IFRSVUUKLSAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDMgT04gdDIuYSBJUyBOVUxMIEFORCB0Mi5i ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OIHQxLmEgSVMgTlVMTDsKKyAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5l c3RlZCBMb29wIExlZnQgSm9pbgorICAgSm9pbiBGaWx0ZXI6IGZhbHNlCiAgICAtPiAgU2VxIFNj YW4gb24gcHJlZF90YWIgdDEKLSAgIC0+ICBNYXRlcmlhbGl6ZQotICAgICAgICAgLT4gIE5lc3Rl ZCBMb29wIExlZnQgSm9pbgotICAgICAgICAgICAgICAgSm9pbiBGaWx0ZXI6IChmYWxzZSBBTkQg KHQyLmIgPSAxKSkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0Mgot ICAgICAgICAgICAgICAgLT4gIFJlc3VsdAotICAgICAgICAgICAgICAgICAgICAgT25lLVRpbWUg RmlsdGVyOiBmYWxzZQotKDggcm93cykKKyAgIC0+ICBSZXN1bHQKKyAgICAgICAgIE9uZS1UaW1l IEZpbHRlcjogZmFsc2UKKyg1IHJvd3MpCiAKIC0tIEVuc3VyZSB0aGUgSVNfTlVMTCBxdWFsIGlz IG5vdCByZWR1Y2VkIHRvIGNvbnN0YW50LUZBTFNFIHdoZW4gdGhlIGNvbHVtbiBpcwogLS0gbnVs bGFibGUgYnkgYW4gb3V0ZXIgam9pbgpAQCAtMTcyLDU1ICsxNjcsNTAgQEAgU0VMRUNUICogRlJP TSBwcmVkX3RhYiB0MQogLS0gRW5zdXJlIHRoZSBPUiBjbGF1c2UgaXMgaWdub3JlZCB3aGVuIGFu IE9SIGJyYW5jaCBpcyBwcm92YWJseSBhbHdheXMgdHJ1ZQogRVhQTEFJTiAoQ09TVFMgT0ZGKQog U0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQotICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBPTiBU UlVFCi0gICAgTEVGVCBKT0lOIHByZWRfdGFiIHQzIE9OIHQyLmEgSVMgTk9UIE5VTEwgT1IgdDIu YiA9IDE7Ci0gICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg TEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OIHQxLmEgSVMgTk9UIE5VTEwgT1IgdDIuYiA9IDE7Cisg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCiAgICAtPiAgU2VxIFNj YW4gb24gcHJlZF90YWIgdDEKICAgIC0+ICBNYXRlcmlhbGl6ZQotICAgICAgICAgLT4gIE5lc3Rl ZCBMb29wIExlZnQgSm9pbgotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHByZWRfdGFi IHQyCi0gICAgICAgICAgICAgICAtPiAgTWF0ZXJpYWxpemUKLSAgICAgICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0MwotKDcgcm93cykKKyAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBwcmVkX3RhYiB0MgorKDQgcm93cykKIAogLS0gRW5zdXJlIHRoZSBOdWxsVGVzdCBp cyBub3QgaWdub3JlZCB3aGVuIHRoZSBjb2x1bW4gaXMgbnVsbGFibGUgYnkgYW4gb3V0ZXIKIC0t IGpvaW4KIEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCAqIEZST00gcHJlZF90YWIgdDEKLSAg ICBMRUZUIEpPSU4gcHJlZF90YWIgdDIgT04gdDEuYSA9IDEKKyAgICBGVUxMIEpPSU4gcHJlZF90 YWIgdDIgT04gdDEuYSA9IHQyLmEKICAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDMgT04gdDIuYSBJ UyBOT1QgTlVMTCBPUiB0Mi5iID0gMTsKICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCiAgICBKb2luIEZpbHRlcjog KCh0Mi5hIElTIE5PVCBOVUxMKSBPUiAodDIuYiA9IDEpKQotICAgLT4gIE5lc3RlZCBMb29wIExl ZnQgSm9pbgotICAgICAgICAgSm9pbiBGaWx0ZXI6ICh0MS5hID0gMSkKLSAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBwcmVkX3RhYiB0MQotICAgICAgICAgLT4gIE1hdGVyaWFsaXplCisgICAtPiAg TWVyZ2UgRnVsbCBKb2luCisgICAgICAgICBNZXJnZSBDb25kOiAodDEuYSA9IHQyLmEpCisgICAg ICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHQxLmEKKyAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0MQorICAgICAgICAgLT4gIFNvcnQKKyAgICAg ICAgICAgICAgIFNvcnQgS2V5OiB0Mi5hCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cHJlZF90YWIgdDIKICAgIC0+ICBNYXRlcmlhbGl6ZQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHByZWRfdGFiIHQzCi0oOSByb3dzKQorKDEyIHJvd3MpCiAKIC0tIEVuc3VyZSB0aGUgT1IgY2xh dXNlIGlzIHJlZHVjZWQgdG8gY29uc3RhbnQtRkFMU0Ugd2hlbiBhbGwgT1IgYnJhbmNoZXMgYXJl CiAtLSBwcm92YWJseSBmYWxzZQogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSBw cmVkX3RhYiB0MQotICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBPTiBUUlVFCi0gICAgTEVGVCBK T0lOIHByZWRfdGFiIHQzIE9OICh0Mi5hIElTIE5VTEwgT1IgdDIuYyBJUyBOVUxMKSBBTkQgdDIu YiA9IDE7Ci0gICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBPTiAodDEuYSBJUyBOVUxMIE9SIHQxLmMgSVMgTlVM TCk7CisgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4KKyAgIEpvaW4gRmlsdGVyOiBm YWxzZQogICAgLT4gIFNlcSBTY2FuIG9uIHByZWRfdGFiIHQxCi0gICAtPiAgTWF0ZXJpYWxpemUK LSAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4KLSAgICAgICAgICAgICAgIEpvaW4g RmlsdGVyOiAoZmFsc2UgQU5EICh0Mi5iID0gMSkpCi0gICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcHJlZF90YWIgdDIKLSAgICAgICAgICAgICAgIC0+ICBSZXN1bHQKLSAgICAgICAgICAg ICAgICAgICAgIE9uZS1UaW1lIEZpbHRlcjogZmFsc2UKLSg4IHJvd3MpCisgICAtPiAgUmVzdWx0 CisgICAgICAgICBPbmUtVGltZSBGaWx0ZXI6IGZhbHNlCisoNSByb3dzKQogCiAtLSBFbnN1cmUg dGhlIE9SIGNsYXVzZSBpcyBub3QgcmVkdWNlZCB0byBjb25zdGFudC1GQUxTRSB3aGVuIGEgY29s dW1uIGlzCiAtLSBtYWRlIG51bGxhYmxlIGZyb20gYW4gb3V0ZXIgam9pbgpAQCAtMjkwLDMxICsy ODAsODQgQEAgU0VMRUNUICogRlJPTSBwcmVkX3BhcmVudCBXSEVSRSBhIElTIE5VTEw7CiAoMiBy b3dzKQogCiBEUk9QIFRBQkxFIHByZWRfcGFyZW50LCBwcmVkX2NoaWxkOwotLS0gVmFsaWRhdGUg dGhlIGFkZGl0aW9uYWwgY29uc3RhbnQtRkFMU0UgcXVhbCBkb2VzIG5vdCBjYXVzZSBpbmNvbnNp c3RlbnQKLS0tIFJlc3RyaWN0SW5mbyBzZXJpYWwgbnVtYmVycwotQ1JFQVRFIFRBQkxFIHByZWRf dGFiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQpOwotSU5TRVJUIElOVE8gcHJlZF90YWIgU0VM RUNUIGksIGkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApaTsKKy0tIFZhbGlkYXRlIHdlIGRv IG5vdCByZWR1Y2UgYSBjbG9uZSBjbGF1c2UgdG8gYSBjb25zdGFudCB0cnVlIG9yIGZhbHNlCitD UkVBVEUgVEFCTEUgcHJlZF90YWIgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVEFCTEUgcHJlZF90 YWJfbm90bnVsbCAoYSBpbnQsIGIgaW50IE5PVCBOVUxMKTsKK0lOU0VSVCBJTlRPIHByZWRfdGFi IFZBTFVFUyAoMSwgMSk7CitJTlNFUlQgSU5UTyBwcmVkX3RhYiBWQUxVRVMgKDIsIDIpOworSU5T RVJUIElOVE8gcHJlZF90YWJfbm90bnVsbCBWQUxVRVMgKDIsIDIpOworSU5TRVJUIElOVE8gcHJl ZF90YWJfbm90bnVsbCBWQUxVRVMgKDMsIDMpOwogQU5BTFlaRSBwcmVkX3RhYjsKK0FOQUxZWkUg cHJlZF90YWJfbm90bnVsbDsKKy0tIEVuc3VyZSB0aGUgSVNfTk9UX05VTEwgcXVhbCBpcyBub3Qg cmVkdWNlZCB0byBjb25zdGFudCB0cnVlIGFuZCByZW1vdmVkCiBFWFBMQUlOIChDT1NUUyBPRkYp Ci1TRUxFQ1QgMSBGUk9NIHByZWRfdGFiIHQxCi0gICAgTEVGVCBKT0lOCi0gICAgICAgIChwcmVk X3RhYiB0MiBMRUZUIEpPSU4gcHJlZF90YWIgdDMgT04gdDIuYSA9IHQzLmEpIE9OIFRSVUUKLSAg ICBMRUZUIEpPSU4gcHJlZF90YWIgdDQgT04gdDEuYSBJUyBOVUxMIEFORCB0MS5iID0gMQotICAg IFJJR0hUIEpPSU4gcHJlZF90YWIgdDUgT04gdDEuYiA9IHQ1LmI7Ci0gICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEhhc2ggUmlnaHQgSm9pbgotICAgSGFz aCBDb25kOiAodDEuYiA9IHQ1LmIpCi0gICAtPiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCitTRUxF Q1QgKiBGUk9NIHByZWRfdGFiIHQxCisgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OIFRSVUUK KyAgICBMRUZUIEpPSU4gcHJlZF90YWJfbm90bnVsbCB0MyBPTiB0Mi5hID0gdDMuYQorICAgIExF RlQgSk9JTiBwcmVkX3RhYiB0NCBPTiB0My5iIElTIE5PVCBOVUxMOworICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4KKyAgIC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0MQor ICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AgTGVmdCBKb2luCi0g ICAgICAgICAgICAgICBKb2luIEZpbHRlcjogKGZhbHNlIEFORCAodDEuYiA9IDEpKQotICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHByZWRfdGFiIHQxCi0gICAgICAgICAgICAgICAtPiAg UmVzdWx0Ci0gICAgICAgICAgICAgICAgICAgICBPbmUtVGltZSBGaWx0ZXI6IGZhbHNlCi0gICAg ICAgICAtPiAgTWF0ZXJpYWxpemUKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcmVk X3RhYiB0MgotICAgLT4gIEhhc2gKLSAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcmVkX3RhYiB0 NQorICAgICAgICAgICAgICAgSm9pbiBGaWx0ZXI6ICh0My5iIElTIE5PVCBOVUxMKQorICAgICAg ICAgICAgICAgLT4gIE5lc3RlZCBMb29wIExlZnQgSm9pbgorICAgICAgICAgICAgICAgICAgICAg Sm9pbiBGaWx0ZXI6ICh0Mi5hID0gdDMuYSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBwcmVkX3RhYiB0MgorICAgICAgICAgICAgICAgICAgICAgLT4gIE1hdGVyaWFsaXpl CisgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJlZF90YWJfbm90 bnVsbCB0MworICAgICAgICAgICAgICAgLT4gIE1hdGVyaWFsaXplCisgICAgICAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHJlZF90YWIgdDQKICgxMiByb3dzKQogCitTRUxFQ1QgKiBG Uk9NIHByZWRfdGFiIHQxCisgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OIFRSVUUKKyAgICBM RUZUIEpPSU4gcHJlZF90YWJfbm90bnVsbCB0MyBPTiB0Mi5hID0gdDMuYQorICAgIExFRlQgSk9J TiBwcmVkX3RhYiB0NCBPTiB0My5iIElTIE5PVCBOVUxMOworIGEgfCBiIHwgYSB8IGIgfCBhIHwg YiB8IGEgfCBiIAorLS0tKy0tLSstLS0rLS0tKy0tLSstLS0rLS0tKy0tLQorIDEgfCAxIHwgMSB8 IDEgfCAgIHwgICB8ICAgfCAgCisgMSB8IDEgfCAyIHwgMiB8IDIgfCAyIHwgMSB8IDEKKyAxIHwg MSB8IDIgfCAyIHwgMiB8IDIgfCAyIHwgMgorIDIgfCAyIHwgMSB8IDEgfCAgIHwgICB8ICAgfCAg CisgMiB8IDIgfCAyIHwgMiB8IDIgfCAyIHwgMSB8IDEKKyAyIHwgMiB8IDIgfCAyIHwgMiB8IDIg fCAyIHwgMgorKDYgcm93cykKKworLS0gRW5zdXJlIHRoZSBJU19OVUxMIHF1YWwgaXMgbm90IHJl ZHVjZWQgdG8gY29uc3RhbnQgZmFsc2UKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZS T00gcHJlZF90YWIgdDEKKyAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDIgT04gVFJVRQorICAgIExF RlQgSk9JTiBwcmVkX3RhYl9ub3RudWxsIHQzIE9OIHQyLmEgPSB0My5hCisgICAgTEVGVCBKT0lO IHByZWRfdGFiIHQ0IE9OIHQzLmIgSVMgTlVMTCBBTkQgdDMuYSBJUyBOT1QgTlVMTDsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wIExlZnQgSm9pbgorICAgLT4gIFNlcSBT Y2FuIG9uIHByZWRfdGFiIHQxCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBOZXN0 ZWQgTG9vcCBMZWZ0IEpvaW4KKyAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAoKHQzLmIgSVMg TlVMTCkgQU5EICh0My5hIElTIE5PVCBOVUxMKSkKKyAgICAgICAgICAgICAgIC0+ICBOZXN0ZWQg TG9vcCBMZWZ0IEpvaW4KKyAgICAgICAgICAgICAgICAgICAgIEpvaW4gRmlsdGVyOiAodDIuYSA9 IHQzLmEpCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJlZF90YWIgdDIK KyAgICAgICAgICAgICAgICAgICAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHByZWRfdGFiX25vdG51bGwgdDMKKyAgICAgICAgICAg ICAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHByZWRfdGFiIHQ0CisoMTIgcm93cykKKworU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQorICAg IExFRlQgSk9JTiBwcmVkX3RhYiB0MiBPTiBUUlVFCisgICAgTEVGVCBKT0lOIHByZWRfdGFiX25v dG51bGwgdDMgT04gdDIuYSA9IHQzLmEKKyAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDQgT04gdDMu YiBJUyBOVUxMIEFORCB0My5hIElTIE5PVCBOVUxMOworIGEgfCBiIHwgYSB8IGIgfCBhIHwgYiB8 IGEgfCBiIAorLS0tKy0tLSstLS0rLS0tKy0tLSstLS0rLS0tKy0tLQorIDEgfCAxIHwgMSB8IDEg fCAgIHwgICB8ICAgfCAgCisgMSB8IDEgfCAyIHwgMiB8IDIgfCAyIHwgICB8ICAKKyAyIHwgMiB8 IDEgfCAxIHwgICB8ICAgfCAgIHwgIAorIDIgfCAyIHwgMiB8IDIgfCAyIHwgMiB8ICAgfCAgCiso NCByb3dzKQorCiBEUk9QIFRBQkxFIHByZWRfdGFiOworRFJPUCBUQUJMRSBwcmVkX3RhYl9ub3Ru dWxsOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJlZGljYXRlLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZWRpY2F0ZS5zcWwKaW5kZXggNjYxMDEzZmY3ZTQuLjlkY2I4 MWIxYmM1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVkaWNhdGUuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZWRpY2F0ZS5zcWwKQEAgLTY0LDIyICs2NCwyMCBA QCBTRUxFQ1QgKiBGUk9NIHByZWRfdGFiIHQgV0hFUkUgdC5iIElTIE5VTEwgT1IgdC5jIElTIE5V TEw7CiAtLSBhbmQgYikgaXRzIFZhciBpcyBub3QgbnVsbGFibGUgYnkgYW55IG91dGVyIGpvaW5z CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgKiBGUk9NIHByZWRfdGFiIHQxCi0gICAgTEVG VCBKT0lOIHByZWRfdGFiIHQyIE9OIFRSVUUKLSAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDMgT04g dDIuYSBJUyBOT1QgTlVMTDsKKyAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDIgT04gdDEuYSBJUyBO T1QgTlVMTDsKIAogLS0gRW5zdXJlIHRoZSBJU19OT1RfTlVMTCBxdWFsIGlzIG5vdCBpZ25vcmVk IHdoZW4gY29sdW1ucyBhcmUgbWFkZSBudWxsYWJsZQogLS0gYnkgYW4gb3V0ZXIgam9pbgogRVhQ TEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQotICAgIExFRlQgSk9J TiBwcmVkX3RhYiB0MiBPTiB0MS5hID0gMQorICAgIEZVTEwgSk9JTiBwcmVkX3RhYiB0MiBPTiB0 MS5hID0gdDIuYQogICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MyBPTiB0Mi5hIElTIE5PVCBOVUxM OwogCiAtLSBFbnN1cmUgdGhlIElTX05VTEwgcXVhbCBpcyByZWR1Y2VkIHRvIGNvbnN0YW50LUZB TFNFLCBzaW5jZSBhKSBpdCdzIG9uIGEgTk9UCiAtLSBOVUxMIGNvbHVtbiwgYW5kIGIpIGl0cyBW YXIgaXMgbm90IG51bGxhYmxlIGJ5IGFueSBvdXRlciBqb2lucwogRVhQTEFJTiAoQ09TVFMgT0ZG KQogU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQotICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBP TiBUUlVFCi0gICAgTEVGVCBKT0lOIHByZWRfdGFiIHQzIE9OIHQyLmEgSVMgTlVMTCBBTkQgdDIu YiA9IDE7CisgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OIHQxLmEgSVMgTlVMTDsKIAogLS0g RW5zdXJlIHRoZSBJU19OVUxMIHF1YWwgaXMgbm90IHJlZHVjZWQgdG8gY29uc3RhbnQtRkFMU0Ug d2hlbiB0aGUgY29sdW1uIGlzCiAtLSBudWxsYWJsZSBieSBhbiBvdXRlciBqb2luCkBAIC05NSwy MiArOTMsMjAgQEAgU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQogLS0gRW5zdXJlIHRoZSBPUiBj bGF1c2UgaXMgaWdub3JlZCB3aGVuIGFuIE9SIGJyYW5jaCBpcyBwcm92YWJseSBhbHdheXMgdHJ1 ZQogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQotICAgIExF RlQgSk9JTiBwcmVkX3RhYiB0MiBPTiBUUlVFCi0gICAgTEVGVCBKT0lOIHByZWRfdGFiIHQzIE9O IHQyLmEgSVMgTk9UIE5VTEwgT1IgdDIuYiA9IDE7CisgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQy IE9OIHQxLmEgSVMgTk9UIE5VTEwgT1IgdDIuYiA9IDE7CiAKIC0tIEVuc3VyZSB0aGUgTnVsbFRl c3QgaXMgbm90IGlnbm9yZWQgd2hlbiB0aGUgY29sdW1uIGlzIG51bGxhYmxlIGJ5IGFuIG91dGVy CiAtLSBqb2luCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgKiBGUk9NIHByZWRfdGFiIHQx Ci0gICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OIHQxLmEgPSAxCisgICAgRlVMTCBKT0lOIHBy ZWRfdGFiIHQyIE9OIHQxLmEgPSB0Mi5hCiAgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQzIE9OIHQy LmEgSVMgTk9UIE5VTEwgT1IgdDIuYiA9IDE7CiAKIC0tIEVuc3VyZSB0aGUgT1IgY2xhdXNlIGlz IHJlZHVjZWQgdG8gY29uc3RhbnQtRkFMU0Ugd2hlbiBhbGwgT1IgYnJhbmNoZXMgYXJlCiAtLSBw cm92YWJseSBmYWxzZQogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSBwcmVkX3Rh YiB0MQotICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBPTiBUUlVFCi0gICAgTEVGVCBKT0lOIHBy ZWRfdGFiIHQzIE9OICh0Mi5hIElTIE5VTEwgT1IgdDIuYyBJUyBOVUxMKSBBTkQgdDIuYiA9IDE7 CisgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQyIE9OICh0MS5hIElTIE5VTEwgT1IgdDEuYyBJUyBO VUxMKTsKIAogLS0gRW5zdXJlIHRoZSBPUiBjbGF1c2UgaXMgbm90IHJlZHVjZWQgdG8gY29uc3Rh bnQtRkFMU0Ugd2hlbiBhIGNvbHVtbiBpcwogLS0gbWFkZSBudWxsYWJsZSBmcm9tIGFuIG91dGVy IGpvaW4KQEAgLTE0OCwxNyArMTQ0LDQyIEBAIFNFTEVDVCAqIEZST00gcHJlZF9wYXJlbnQgV0hF UkUgYSBJUyBOVUxMOwogCiBEUk9QIFRBQkxFIHByZWRfcGFyZW50LCBwcmVkX2NoaWxkOwogCi0t LSBWYWxpZGF0ZSB0aGUgYWRkaXRpb25hbCBjb25zdGFudC1GQUxTRSBxdWFsIGRvZXMgbm90IGNh dXNlIGluY29uc2lzdGVudAotLS0gUmVzdHJpY3RJbmZvIHNlcmlhbCBudW1iZXJzCi1DUkVBVEUg VEFCTEUgcHJlZF90YWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCk7Ci1JTlNFUlQgSU5UTyBw cmVkX3RhYiBTRUxFQ1QgaSwgaSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMClpOworLS0gVmFs aWRhdGUgd2UgZG8gbm90IHJlZHVjZSBhIGNsb25lIGNsYXVzZSB0byBhIGNvbnN0YW50IHRydWUg b3IgZmFsc2UKK0NSRUFURSBUQUJMRSBwcmVkX3RhYiAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBU QUJMRSBwcmVkX3RhYl9ub3RudWxsIChhIGludCwgYiBpbnQgTk9UIE5VTEwpOworCitJTlNFUlQg SU5UTyBwcmVkX3RhYiBWQUxVRVMgKDEsIDEpOworSU5TRVJUIElOVE8gcHJlZF90YWIgVkFMVUVT ICgyLCAyKTsKKworSU5TRVJUIElOVE8gcHJlZF90YWJfbm90bnVsbCBWQUxVRVMgKDIsIDIpOwor SU5TRVJUIElOVE8gcHJlZF90YWJfbm90bnVsbCBWQUxVRVMgKDMsIDMpOworCiBBTkFMWVpFIHBy ZWRfdGFiOworQU5BTFlaRSBwcmVkX3RhYl9ub3RudWxsOwogCistLSBFbnN1cmUgdGhlIElTX05P VF9OVUxMIHF1YWwgaXMgbm90IHJlZHVjZWQgdG8gY29uc3RhbnQgdHJ1ZSBhbmQgcmVtb3ZlZAog RVhQTEFJTiAoQ09TVFMgT0ZGKQotU0VMRUNUIDEgRlJPTSBwcmVkX3RhYiB0MQotICAgIExFRlQg Sk9JTgotICAgICAgICAocHJlZF90YWIgdDIgTEVGVCBKT0lOIHByZWRfdGFiIHQzIE9OIHQyLmEg PSB0My5hKSBPTiBUUlVFCi0gICAgTEVGVCBKT0lOIHByZWRfdGFiIHQ0IE9OIHQxLmEgSVMgTlVM TCBBTkQgdDEuYiA9IDEKLSAgICBSSUdIVCBKT0lOIHByZWRfdGFiIHQ1IE9OIHQxLmIgPSB0NS5i OworU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQorICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBP TiBUUlVFCisgICAgTEVGVCBKT0lOIHByZWRfdGFiX25vdG51bGwgdDMgT04gdDIuYSA9IHQzLmEK KyAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDQgT04gdDMuYiBJUyBOT1QgTlVMTDsKKworU0VMRUNU ICogRlJPTSBwcmVkX3RhYiB0MQorICAgIExFRlQgSk9JTiBwcmVkX3RhYiB0MiBPTiBUUlVFCisg ICAgTEVGVCBKT0lOIHByZWRfdGFiX25vdG51bGwgdDMgT04gdDIuYSA9IHQzLmEKKyAgICBMRUZU IEpPSU4gcHJlZF90YWIgdDQgT04gdDMuYiBJUyBOT1QgTlVMTDsKKworLS0gRW5zdXJlIHRoZSBJ U19OVUxMIHF1YWwgaXMgbm90IHJlZHVjZWQgdG8gY29uc3RhbnQgZmFsc2UKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCAqIEZST00gcHJlZF90YWIgdDEKKyAgICBMRUZUIEpPSU4gcHJlZF90 YWIgdDIgT04gVFJVRQorICAgIExFRlQgSk9JTiBwcmVkX3RhYl9ub3RudWxsIHQzIE9OIHQyLmEg PSB0My5hCisgICAgTEVGVCBKT0lOIHByZWRfdGFiIHQ0IE9OIHQzLmIgSVMgTlVMTCBBTkQgdDMu YSBJUyBOT1QgTlVMTDsKKworU0VMRUNUICogRlJPTSBwcmVkX3RhYiB0MQorICAgIExFRlQgSk9J TiBwcmVkX3RhYiB0MiBPTiBUUlVFCisgICAgTEVGVCBKT0lOIHByZWRfdGFiX25vdG51bGwgdDMg T04gdDIuYSA9IHQzLmEKKyAgICBMRUZUIEpPSU4gcHJlZF90YWIgdDQgT04gdDMuYiBJUyBOVUxM IEFORCB0My5hIElTIE5PVCBOVUxMOwogCiBEUk9QIFRBQkxFIHByZWRfdGFiOworRFJPUCBUQUJM RSBwcmVkX3RhYl9ub3RudWxsOwotLSAKMi40My4wCgo= --000000000000615762062f6a7009--