Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jrFoN-00020O-Ad for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2020 07:08:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jrFoM-0006BD-78 for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2020 07:08:38 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jrFoL-0006B6-Nu for pgsql-hackers@lists.postgresql.org; Fri, 03 Jul 2020 07:08:38 +0000 Received: from forward3-smtp.messagingengine.com ([66.111.4.237]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jrFoD-0007yN-I1 for pgsql-hackers@postgresql.org; Fri, 03 Jul 2020 07:08:35 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.nyi.internal (Postfix) with ESMTP id B3C561940CE0; Fri, 3 Jul 2020 03:08:28 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Fri, 03 Jul 2020 03:08:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=l/9L8K QoQqbefAzYRQJs12kO+g8DAwN9yJojy77sor8=; b=dZO6F9ylgp6Ad+eM6anva6 ZeUoX2b9MWZBYerQF7zsw0Ysjuq3DZ+67EVdi3MAeUV/w2Pi6uqtS725AcrAIqfz ngFXJIk2pwMWdv4Y6WESV0lgS/+m4RNCH3daSjuIyk+vlqzcye7SEun8GTdF3B1t uC8YHGlz0KdcEbRTpAQ6O1JJabycoU+gHoj9TWt2+NJT7IB4wxSoT7VvUsSSGT8r A6aWvccAZpzPNN5mE2vuVqlJ2PQ3xeJgG/ND/AE4sDR5QLqFubxTAfHYnqAGXB+7 Y1zb0gVzpEr2EIm18LsncdWIqPBsxtLVypqeUkFMyJgP6O94v44zE3GvCj2MbltQ == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrtdehgdduudehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefuhffvfhhokffffgggjggtsehmtd erredtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghr rdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomheqnecuggftrfgrth htvghrnhepfeetieelveeigeeigfdtfeekuedufedtheeviedtffejtdduheffledvhfeh udetnecuffhomhgrihhnpedvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppeelfedrvd egfedrudeluddrvdefkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnth drtghomh X-ME-Proxy: Received: from april.pezone.net (p5df3bfee.dip0.t-ipconnect.de [93.243.191.238]) by mail.messagingengine.com (Postfix) with ESMTPA id 5062F3060057; Fri, 3 Jul 2020 03:08:27 -0400 (EDT) Subject: Re: SEARCH and CYCLE clauses From: Peter Eisentraut To: pgsql-hackers References: <54e533c5-09e5-7f41-9892-d4e0f7c62598@postgresfriends.org> <1cfc9079-9595-d167-00e6-5014438cc3e2@2ndquadrant.com> <9ce4d370-048c-1d67-fffb-a86f17120132@postgresfriends.org> <1a7fbf28-7bca-501e-3cbb-04e6776e1716@2ndquadrant.com> Cc: Vik Fearing Organization: 2ndQuadrant Message-ID: Date: Fri, 3 Jul 2020 09:08:26 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <1a7fbf28-7bca-501e-3cbb-04e6776e1716@2ndquadrant.com> Content-Type: multipart/mixed; boundary="------------2242C06D6A65A69EFED79FAE" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------2242C06D6A65A69EFED79FAE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit While the larger patch is being considered, I think some simpler and separable pieces could be addressed. Here is a patch that adjusts the existing cycle detection example and test queries to put the cycle column before the path column. The CYCLE clause puts them in that order, and so if we added that feature that would make the sequence of examples more consistent and easier to follow. (And while the order of columns has no semantic meaning, for a human left-to-right reader it also makes a bit more sense because the cycle flag is computed against the previous path value, so it happens "before" the path column.) -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------2242C06D6A65A69EFED79FAE Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Adjust-cycle-detection-examples-and-tests.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Adjust-cycle-detection-examples-and-tests.patch" RnJvbSAxMDQyY2FkODQ2MzE0MDZlZWVjODcxNWFiOTNjMDQ1MTcwMmI1YzBkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAzIEp1bCAyMDIwIDA4OjUxOjEyICswMjAwClN1YmplY3Q6 IFtQQVRDSF0gQWRqdXN0IGN5Y2xlIGRldGVjdGlvbiBleGFtcGxlcyBhbmQgdGVzdHMKCkFk anVzdCB0aGUgZXhpc3RpbmcgY3ljbGUgZGV0ZWN0aW9uIGV4YW1wbGUgYW5kIHRlc3QgcXVl cmllcyB0byBwdXQKdGhlIGN5Y2xlIGNvbHVtbiBiZWZvcmUgdGhlIHBhdGggY29sdW1uLiAg VGhpcyBpcyBtYWlubHkgYmVjYXVzZSB0aGUKU1FMLXN0YW5kYXJkIENZQ0xFIGNsYXVzZSBw dXRzIHRoZW0gaW4gdGhhdCBvcmRlciwgYW5kIHNvIGlmIHdlIGFkZGVkCnRoYXQgZmVhdHVy ZSB0aGF0IHdvdWxkIG1ha2UgdGhlIHNlcXVlbmNlIG9mIGV4YW1wbGVzIG1vcmUgY29uc2lz dGVudAphbmQgZWFzaWVyIHRvIGZvbGxvdy4KLS0tCiBkb2Mvc3JjL3NnbWwvcXVlcmllcy5z Z21sICAgICAgICAgIHwgIDI2ICsrKy0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93 aXRoLm91dCB8IDEyNCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvd2l0aC5zcWwgICAgICB8ICAxNiArKy0tCiAzIGZpbGVzIGNoYW5nZWQs IDgzIGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9xdWVyaWVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcXVlcmllcy5zZ21sCmluZGV4 IDU3MmU5NjgyNzMuLmVmMGNhNTZjNjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9xdWVy aWVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dtbApAQCAtMjExMiwyMCAr MjExMiwyMCBAQCA8dGl0bGU+UmVjdXJzaXZlIFF1ZXJ5IEV2YWx1YXRpb248L3RpdGxlPgog ICAgPGxpdGVyYWw+VU5JT04gQUxMPC9saXRlcmFsPiB0byA8bGl0ZXJhbD5VTklPTjwvbGl0 ZXJhbD4gd291bGQgbm90IGVsaW1pbmF0ZSB0aGUgbG9vcGluZy4KICAgIEluc3RlYWQgd2Ug bmVlZCB0byByZWNvZ25pemUgd2hldGhlciB3ZSBoYXZlIHJlYWNoZWQgdGhlIHNhbWUgcm93 IGFnYWluCiAgICB3aGlsZSBmb2xsb3dpbmcgYSBwYXJ0aWN1bGFyIHBhdGggb2YgbGlua3Mu ICBXZSBhZGQgdHdvIGNvbHVtbnMKLSAgIDxzdHJ1Y3RmaWVsZD5wYXRoPC9zdHJ1Y3RmaWVs ZD4gYW5kIDxzdHJ1Y3RmaWVsZD5jeWNsZTwvc3RydWN0ZmllbGQ+IHRvIHRoZSBsb29wLXBy b25lIHF1ZXJ5OgorICAgPHN0cnVjdGZpZWxkPmlzX2N5Y2xlPC9zdHJ1Y3RmaWVsZD4gYW5k IDxzdHJ1Y3RmaWVsZD5wYXRoPC9zdHJ1Y3RmaWVsZD4gdG8gdGhlIGxvb3AtcHJvbmUgcXVl cnk6CiAKIDxwcm9ncmFtbGlzdGluZz4KLVdJVEggUkVDVVJTSVZFIHNlYXJjaF9ncmFwaChp ZCwgbGluaywgZGF0YSwgZGVwdGgsIHBhdGgsIGN5Y2xlKSBBUyAoCitXSVRIIFJFQ1VSU0lW RSBzZWFyY2hfZ3JhcGgoaWQsIGxpbmssIGRhdGEsIGRlcHRoLCBpc19jeWNsZSwgcGF0aCkg QVMgKAogICAgIFNFTEVDVCBnLmlkLCBnLmxpbmssIGcuZGF0YSwgMSwKLSAgICAgIEFSUkFZ W2cuaWRdLAotICAgICAgZmFsc2UKKyAgICAgIGZhbHNlLAorICAgICAgQVJSQVlbZy5pZF0K ICAgICBGUk9NIGdyYXBoIGcKICAgVU5JT04gQUxMCiAgICAgU0VMRUNUIGcuaWQsIGcubGlu aywgZy5kYXRhLCBzZy5kZXB0aCArIDEsCi0gICAgICBwYXRoIHx8IGcuaWQsCi0gICAgICBn LmlkID0gQU5ZKHBhdGgpCisgICAgICBnLmlkID0gQU5ZKHBhdGgpLAorICAgICAgcGF0aCB8 fCBnLmlkCiAgICAgRlJPTSBncmFwaCBnLCBzZWFyY2hfZ3JhcGggc2cKLSAgICBXSEVSRSBn LmlkID0gc2cubGluayBBTkQgTk9UIGN5Y2xlCisgICAgV0hFUkUgZy5pZCA9IHNnLmxpbmsg QU5EIE5PVCBpc19jeWNsZQogKQogU0VMRUNUICogRlJPTSBzZWFyY2hfZ3JhcGg7CiA8L3By b2dyYW1saXN0aW5nPgpAQCAtMjE0MCwxNyArMjE0MCwxNyBAQCA8dGl0bGU+UmVjdXJzaXZl IFF1ZXJ5IEV2YWx1YXRpb248L3RpdGxlPgogICAgY29tcGFyZSBmaWVsZHMgPHN0cnVjdGZp ZWxkPmYxPC9zdHJ1Y3RmaWVsZD4gYW5kIDxzdHJ1Y3RmaWVsZD5mMjwvc3RydWN0ZmllbGQ+ OgogCiA8cHJvZ3JhbWxpc3Rpbmc+Ci1XSVRIIFJFQ1VSU0lWRSBzZWFyY2hfZ3JhcGgoaWQs IGxpbmssIGRhdGEsIGRlcHRoLCBwYXRoLCBjeWNsZSkgQVMgKAorV0lUSCBSRUNVUlNJVkUg c2VhcmNoX2dyYXBoKGlkLCBsaW5rLCBkYXRhLCBkZXB0aCwgaXNfY3ljbGUsIHBhdGgpIEFT ICgKICAgICBTRUxFQ1QgZy5pZCwgZy5saW5rLCBnLmRhdGEsIDEsCi0gICAgICBBUlJBWVtS T1coZy5mMSwgZy5mMildLAotICAgICAgZmFsc2UKKyAgICAgIGZhbHNlLAorICAgICAgQVJS QVlbUk9XKGcuZjEsIGcuZjIpXQogICAgIEZST00gZ3JhcGggZwogICBVTklPTiBBTEwKICAg ICBTRUxFQ1QgZy5pZCwgZy5saW5rLCBnLmRhdGEsIHNnLmRlcHRoICsgMSwKLSAgICAgIHBh dGggfHwgUk9XKGcuZjEsIGcuZjIpLAotICAgICAgUk9XKGcuZjEsIGcuZjIpID0gQU5ZKHBh dGgpCisgICAgICBST1coZy5mMSwgZy5mMikgPSBBTlkocGF0aCksCisgICAgICBwYXRoIHx8 IFJPVyhnLmYxLCBnLmYyKQogICAgIEZST00gZ3JhcGggZywgc2VhcmNoX2dyYXBoIHNnCi0g ICAgV0hFUkUgZy5pZCA9IHNnLmxpbmsgQU5EIE5PVCBjeWNsZQorICAgIFdIRVJFIGcuaWQg PSBzZy5saW5rIEFORCBOT1QgaXNfY3ljbGUKICkKIFNFTEVDVCAqIEZST00gc2VhcmNoX2dy YXBoOwogPC9wcm9ncmFtbGlzdGluZz4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvd2l0aC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGgub3V0 CmluZGV4IDY3ZWFlYjRmM2UuLjQ1N2YzYmYwNGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvd2l0aC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC93aXRoLm91dApAQCAtNTc5LDc5ICs1NzksNzkgQEAgaW5zZXJ0IGludG8gZ3JhcGggdmFs dWVzCiAJKDEsIDQsICdhcmMgMSAtPiA0JyksCiAJKDQsIDUsICdhcmMgNCAtPiA1JyksCiAJ KDUsIDEsICdhcmMgNSAtPiAxJyk7Ci13aXRoIHJlY3Vyc2l2ZSBzZWFyY2hfZ3JhcGgoZiwg dCwgbGFiZWwsIHBhdGgsIGN5Y2xlKSBhcyAoCi0Jc2VsZWN0ICosIGFycmF5W3JvdyhnLmYs IGcudCldLCBmYWxzZSBmcm9tIGdyYXBoIGcKK3dpdGggcmVjdXJzaXZlIHNlYXJjaF9ncmFw aChmLCB0LCBsYWJlbCwgaXNfY3ljbGUsIHBhdGgpIGFzICgKKwlzZWxlY3QgKiwgZmFsc2Us IGFycmF5W3JvdyhnLmYsIGcudCldIGZyb20gZ3JhcGggZwogCXVuaW9uIGFsbAotCXNlbGVj dCBnLiosIHBhdGggfHwgcm93KGcuZiwgZy50KSwgcm93KGcuZiwgZy50KSA9IGFueShwYXRo KQorCXNlbGVjdCBnLiosIHJvdyhnLmYsIGcudCkgPSBhbnkocGF0aCksIHBhdGggfHwgcm93 KGcuZiwgZy50KQogCWZyb20gZ3JhcGggZywgc2VhcmNoX2dyYXBoIHNnCi0Jd2hlcmUgZy5m ID0gc2cudCBhbmQgbm90IGN5Y2xlCisJd2hlcmUgZy5mID0gc2cudCBhbmQgbm90IGlzX2N5 Y2xlCiApCiBzZWxlY3QgKiBmcm9tIHNlYXJjaF9ncmFwaDsKLSBmIHwgdCB8ICAgbGFiZWwg ICAgfCAgICAgICAgICAgICAgICAgICBwYXRoICAgICAgICAgICAgICAgICAgICB8IGN5Y2xl IAotLS0tKy0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tCi0gMSB8IDIgfCBhcmMgMSAtPiAyIHwgeyIoMSwyKSJ9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDMgfCBhcmMgMSAt PiAzIHwgeyIoMSwzKSJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0g MiB8IDMgfCBhcmMgMiAtPiAzIHwgeyIoMiwzKSJ9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBmCi0gMSB8IDQgfCBhcmMgMSAtPiA0IHwgeyIoMSw0KSJ9ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gNCB8IDUgfCBhcmMgNCAtPiA1IHwgeyIo NCw1KSJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gNSB8IDEgfCBh cmMgNSAtPiAxIHwgeyIoNSwxKSJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBmCi0gMSB8IDIgfCBhcmMgMSAtPiAyIHwgeyIoNSwxKSIsIigxLDIpIn0gICAgICAgICAg ICAgICAgICAgICAgICAgfCBmCi0gMSB8IDMgfCBhcmMgMSAtPiAzIHwgeyIoNSwxKSIsIigx LDMpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDQgfCBhcmMgMSAtPiA0 IHwgeyIoNSwxKSIsIigxLDQpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMiB8 IDMgfCBhcmMgMiAtPiAzIHwgeyIoMSwyKSIsIigyLDMpIn0gICAgICAgICAgICAgICAgICAg ICAgICAgfCBmCi0gNCB8IDUgfCBhcmMgNCAtPiA1IHwgeyIoMSw0KSIsIig0LDUpIn0gICAg ICAgICAgICAgICAgICAgICAgICAgfCBmCi0gNSB8IDEgfCBhcmMgNSAtPiAxIHwgeyIoNCw1 KSIsIig1LDEpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDIgfCBhcmMg MSAtPiAyIHwgeyIoNCw1KSIsIig1LDEpIiwiKDEsMikifSAgICAgICAgICAgICAgICAgfCBm Ci0gMSB8IDMgfCBhcmMgMSAtPiAzIHwgeyIoNCw1KSIsIig1LDEpIiwiKDEsMykifSAgICAg ICAgICAgICAgICAgfCBmCi0gMSB8IDQgfCBhcmMgMSAtPiA0IHwgeyIoNCw1KSIsIig1LDEp IiwiKDEsNCkifSAgICAgICAgICAgICAgICAgfCBmCi0gMiB8IDMgfCBhcmMgMiAtPiAzIHwg eyIoNSwxKSIsIigxLDIpIiwiKDIsMykifSAgICAgICAgICAgICAgICAgfCBmCi0gNCB8IDUg fCBhcmMgNCAtPiA1IHwgeyIoNSwxKSIsIigxLDQpIiwiKDQsNSkifSAgICAgICAgICAgICAg ICAgfCBmCi0gNSB8IDEgfCBhcmMgNSAtPiAxIHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSki fSAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDIgfCBhcmMgMSAtPiAyIHwgeyIoMSw0KSIs Iig0LDUpIiwiKDUsMSkiLCIoMSwyKSJ9ICAgICAgICAgfCBmCi0gMSB8IDMgfCBhcmMgMSAt PiAzIHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkiLCIoMSwzKSJ9ICAgICAgICAgfCBmCi0g MSB8IDQgfCBhcmMgMSAtPiA0IHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkiLCIoMSw0KSJ9 ICAgICAgICAgfCB0Ci0gMiB8IDMgfCBhcmMgMiAtPiAzIHwgeyIoNCw1KSIsIig1LDEpIiwi KDEsMikiLCIoMiwzKSJ9ICAgICAgICAgfCBmCi0gNCB8IDUgfCBhcmMgNCAtPiA1IHwgeyIo NCw1KSIsIig1LDEpIiwiKDEsNCkiLCIoNCw1KSJ9ICAgICAgICAgfCB0Ci0gNSB8IDEgfCBh cmMgNSAtPiAxIHwgeyIoNSwxKSIsIigxLDQpIiwiKDQsNSkiLCIoNSwxKSJ9ICAgICAgICAg fCB0Ci0gMiB8IDMgfCBhcmMgMiAtPiAzIHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkiLCIo MSwyKSIsIigyLDMpIn0gfCBmCisgZiB8IHQgfCAgIGxhYmVsICAgIHwgaXNfY3ljbGUgfCAg ICAgICAgICAgICAgICAgICBwYXRoICAgICAgICAgICAgICAgICAgICAKKy0tLSstLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIDEgfCAyIHwgYXJjIDEgLT4gMiB8IGYgICAgICAgIHwgeyIoMSwyKSJ9 CisgMSB8IDMgfCBhcmMgMSAtPiAzIHwgZiAgICAgICAgfCB7IigxLDMpIn0KKyAyIHwgMyB8 IGFyYyAyIC0+IDMgfCBmICAgICAgICB8IHsiKDIsMykifQorIDEgfCA0IHwgYXJjIDEgLT4g NCB8IGYgICAgICAgIHwgeyIoMSw0KSJ9CisgNCB8IDUgfCBhcmMgNCAtPiA1IHwgZiAgICAg ICAgfCB7Iig0LDUpIn0KKyA1IHwgMSB8IGFyYyA1IC0+IDEgfCBmICAgICAgICB8IHsiKDUs MSkifQorIDEgfCAyIHwgYXJjIDEgLT4gMiB8IGYgICAgICAgIHwgeyIoNSwxKSIsIigxLDIp In0KKyAxIHwgMyB8IGFyYyAxIC0+IDMgfCBmICAgICAgICB8IHsiKDUsMSkiLCIoMSwzKSJ9 CisgMSB8IDQgfCBhcmMgMSAtPiA0IHwgZiAgICAgICAgfCB7Iig1LDEpIiwiKDEsNCkifQor IDIgfCAzIHwgYXJjIDIgLT4gMyB8IGYgICAgICAgIHwgeyIoMSwyKSIsIigyLDMpIn0KKyA0 IHwgNSB8IGFyYyA0IC0+IDUgfCBmICAgICAgICB8IHsiKDEsNCkiLCIoNCw1KSJ9CisgNSB8 IDEgfCBhcmMgNSAtPiAxIHwgZiAgICAgICAgfCB7Iig0LDUpIiwiKDUsMSkifQorIDEgfCAy IHwgYXJjIDEgLT4gMiB8IGYgICAgICAgIHwgeyIoNCw1KSIsIig1LDEpIiwiKDEsMikifQor IDEgfCAzIHwgYXJjIDEgLT4gMyB8IGYgICAgICAgIHwgeyIoNCw1KSIsIig1LDEpIiwiKDEs MykifQorIDEgfCA0IHwgYXJjIDEgLT4gNCB8IGYgICAgICAgIHwgeyIoNCw1KSIsIig1LDEp IiwiKDEsNCkifQorIDIgfCAzIHwgYXJjIDIgLT4gMyB8IGYgICAgICAgIHwgeyIoNSwxKSIs IigxLDIpIiwiKDIsMykifQorIDQgfCA1IHwgYXJjIDQgLT4gNSB8IGYgICAgICAgIHwgeyIo NSwxKSIsIigxLDQpIiwiKDQsNSkifQorIDUgfCAxIHwgYXJjIDUgLT4gMSB8IGYgICAgICAg IHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkifQorIDEgfCAyIHwgYXJjIDEgLT4gMiB8IGYg ICAgICAgIHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkiLCIoMSwyKSJ9CisgMSB8IDMgfCBh cmMgMSAtPiAzIHwgZiAgICAgICAgfCB7IigxLDQpIiwiKDQsNSkiLCIoNSwxKSIsIigxLDMp In0KKyAxIHwgNCB8IGFyYyAxIC0+IDQgfCB0ICAgICAgICB8IHsiKDEsNCkiLCIoNCw1KSIs Iig1LDEpIiwiKDEsNCkifQorIDIgfCAzIHwgYXJjIDIgLT4gMyB8IGYgICAgICAgIHwgeyIo NCw1KSIsIig1LDEpIiwiKDEsMikiLCIoMiwzKSJ9CisgNCB8IDUgfCBhcmMgNCAtPiA1IHwg dCAgICAgICAgfCB7Iig0LDUpIiwiKDUsMSkiLCIoMSw0KSIsIig0LDUpIn0KKyA1IHwgMSB8 IGFyYyA1IC0+IDEgfCB0ICAgICAgICB8IHsiKDUsMSkiLCIoMSw0KSIsIig0LDUpIiwiKDUs MSkifQorIDIgfCAzIHwgYXJjIDIgLT4gMyB8IGYgICAgICAgIHwgeyIoMSw0KSIsIig0LDUp IiwiKDUsMSkiLCIoMSwyKSIsIigyLDMpIn0KICgyNSByb3dzKQogCiAtLSBvcmRlcmluZyBi eSB0aGUgcGF0aCBjb2x1bW4gaGFzIHNhbWUgZWZmZWN0IGFzIFNFQVJDSCBERVBUSCBGSVJT VAotd2l0aCByZWN1cnNpdmUgc2VhcmNoX2dyYXBoKGYsIHQsIGxhYmVsLCBwYXRoLCBjeWNs ZSkgYXMgKAotCXNlbGVjdCAqLCBhcnJheVtyb3coZy5mLCBnLnQpXSwgZmFsc2UgZnJvbSBn cmFwaCBnCit3aXRoIHJlY3Vyc2l2ZSBzZWFyY2hfZ3JhcGgoZiwgdCwgbGFiZWwsIGlzX2N5 Y2xlLCBwYXRoKSBhcyAoCisJc2VsZWN0ICosIGZhbHNlLCBhcnJheVtyb3coZy5mLCBnLnQp XSBmcm9tIGdyYXBoIGcKIAl1bmlvbiBhbGwKLQlzZWxlY3QgZy4qLCBwYXRoIHx8IHJvdyhn LmYsIGcudCksIHJvdyhnLmYsIGcudCkgPSBhbnkocGF0aCkKKwlzZWxlY3QgZy4qLCByb3co Zy5mLCBnLnQpID0gYW55KHBhdGgpLCBwYXRoIHx8IHJvdyhnLmYsIGcudCkKIAlmcm9tIGdy YXBoIGcsIHNlYXJjaF9ncmFwaCBzZwotCXdoZXJlIGcuZiA9IHNnLnQgYW5kIG5vdCBjeWNs ZQorCXdoZXJlIGcuZiA9IHNnLnQgYW5kIG5vdCBpc19jeWNsZQogKQogc2VsZWN0ICogZnJv bSBzZWFyY2hfZ3JhcGggb3JkZXIgYnkgcGF0aDsKLSBmIHwgdCB8ICAgbGFiZWwgICAgfCAg ICAgICAgICAgICAgICAgICBwYXRoICAgICAgICAgICAgICAgICAgICB8IGN5Y2xlIAotLS0t Ky0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tCi0gMSB8IDIgfCBhcmMgMSAtPiAyIHwgeyIoMSwyKSJ9ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMiB8IDMgfCBhcmMgMiAtPiAzIHwg eyIoMSwyKSIsIigyLDMpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDMg fCBhcmMgMSAtPiAzIHwgeyIoMSwzKSJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBmCi0gMSB8IDQgfCBhcmMgMSAtPiA0IHwgeyIoMSw0KSJ9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBmCi0gNCB8IDUgfCBhcmMgNCAtPiA1IHwgeyIoMSw0KSIs Iig0LDUpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gNSB8IDEgfCBhcmMgNSAt PiAxIHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkifSAgICAgICAgICAgICAgICAgfCBmCi0g MSB8IDIgfCBhcmMgMSAtPiAyIHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkiLCIoMSwyKSJ9 ICAgICAgICAgfCBmCi0gMiB8IDMgfCBhcmMgMiAtPiAzIHwgeyIoMSw0KSIsIig0LDUpIiwi KDUsMSkiLCIoMSwyKSIsIigyLDMpIn0gfCBmCi0gMSB8IDMgfCBhcmMgMSAtPiAzIHwgeyIo MSw0KSIsIig0LDUpIiwiKDUsMSkiLCIoMSwzKSJ9ICAgICAgICAgfCBmCi0gMSB8IDQgfCBh cmMgMSAtPiA0IHwgeyIoMSw0KSIsIig0LDUpIiwiKDUsMSkiLCIoMSw0KSJ9ICAgICAgICAg fCB0Ci0gMiB8IDMgfCBhcmMgMiAtPiAzIHwgeyIoMiwzKSJ9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBmCi0gNCB8IDUgfCBhcmMgNCAtPiA1IHwgeyIoNCw1KSJ9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gNSB8IDEgfCBhcmMgNSAtPiAx IHwgeyIoNCw1KSIsIig1LDEpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMSB8 IDIgfCBhcmMgMSAtPiAyIHwgeyIoNCw1KSIsIig1LDEpIiwiKDEsMikifSAgICAgICAgICAg ICAgICAgfCBmCi0gMiB8IDMgfCBhcmMgMiAtPiAzIHwgeyIoNCw1KSIsIig1LDEpIiwiKDEs MikiLCIoMiwzKSJ9ICAgICAgICAgfCBmCi0gMSB8IDMgfCBhcmMgMSAtPiAzIHwgeyIoNCw1 KSIsIig1LDEpIiwiKDEsMykifSAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDQgfCBhcmMg MSAtPiA0IHwgeyIoNCw1KSIsIig1LDEpIiwiKDEsNCkifSAgICAgICAgICAgICAgICAgfCBm Ci0gNCB8IDUgfCBhcmMgNCAtPiA1IHwgeyIoNCw1KSIsIig1LDEpIiwiKDEsNCkiLCIoNCw1 KSJ9ICAgICAgICAgfCB0Ci0gNSB8IDEgfCBhcmMgNSAtPiAxIHwgeyIoNSwxKSJ9ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDIgfCBhcmMgMSAtPiAyIHwg eyIoNSwxKSIsIigxLDIpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gMiB8IDMg fCBhcmMgMiAtPiAzIHwgeyIoNSwxKSIsIigxLDIpIiwiKDIsMykifSAgICAgICAgICAgICAg ICAgfCBmCi0gMSB8IDMgfCBhcmMgMSAtPiAzIHwgeyIoNSwxKSIsIigxLDMpIn0gICAgICAg ICAgICAgICAgICAgICAgICAgfCBmCi0gMSB8IDQgfCBhcmMgMSAtPiA0IHwgeyIoNSwxKSIs IigxLDQpIn0gICAgICAgICAgICAgICAgICAgICAgICAgfCBmCi0gNCB8IDUgfCBhcmMgNCAt PiA1IHwgeyIoNSwxKSIsIigxLDQpIiwiKDQsNSkifSAgICAgICAgICAgICAgICAgfCBmCi0g NSB8IDEgfCBhcmMgNSAtPiAxIHwgeyIoNSwxKSIsIigxLDQpIiwiKDQsNSkiLCIoNSwxKSJ9 ICAgICAgICAgfCB0CisgZiB8IHQgfCAgIGxhYmVsICAgIHwgaXNfY3ljbGUgfCAgICAgICAg ICAgICAgICAgICBwYXRoICAgICAgICAgICAgICAgICAgICAKKy0tLSstLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIDEgfCAyIHwgYXJjIDEgLT4gMiB8IGYgICAgICAgIHwgeyIoMSwyKSJ9CisgMiB8 IDMgfCBhcmMgMiAtPiAzIHwgZiAgICAgICAgfCB7IigxLDIpIiwiKDIsMykifQorIDEgfCAz IHwgYXJjIDEgLT4gMyB8IGYgICAgICAgIHwgeyIoMSwzKSJ9CisgMSB8IDQgfCBhcmMgMSAt PiA0IHwgZiAgICAgICAgfCB7IigxLDQpIn0KKyA0IHwgNSB8IGFyYyA0IC0+IDUgfCBmICAg ICAgICB8IHsiKDEsNCkiLCIoNCw1KSJ9CisgNSB8IDEgfCBhcmMgNSAtPiAxIHwgZiAgICAg ICAgfCB7IigxLDQpIiwiKDQsNSkiLCIoNSwxKSJ9CisgMSB8IDIgfCBhcmMgMSAtPiAyIHwg ZiAgICAgICAgfCB7IigxLDQpIiwiKDQsNSkiLCIoNSwxKSIsIigxLDIpIn0KKyAyIHwgMyB8 IGFyYyAyIC0+IDMgfCBmICAgICAgICB8IHsiKDEsNCkiLCIoNCw1KSIsIig1LDEpIiwiKDEs MikiLCIoMiwzKSJ9CisgMSB8IDMgfCBhcmMgMSAtPiAzIHwgZiAgICAgICAgfCB7IigxLDQp IiwiKDQsNSkiLCIoNSwxKSIsIigxLDMpIn0KKyAxIHwgNCB8IGFyYyAxIC0+IDQgfCB0ICAg ICAgICB8IHsiKDEsNCkiLCIoNCw1KSIsIig1LDEpIiwiKDEsNCkifQorIDIgfCAzIHwgYXJj IDIgLT4gMyB8IGYgICAgICAgIHwgeyIoMiwzKSJ9CisgNCB8IDUgfCBhcmMgNCAtPiA1IHwg ZiAgICAgICAgfCB7Iig0LDUpIn0KKyA1IHwgMSB8IGFyYyA1IC0+IDEgfCBmICAgICAgICB8 IHsiKDQsNSkiLCIoNSwxKSJ9CisgMSB8IDIgfCBhcmMgMSAtPiAyIHwgZiAgICAgICAgfCB7 Iig0LDUpIiwiKDUsMSkiLCIoMSwyKSJ9CisgMiB8IDMgfCBhcmMgMiAtPiAzIHwgZiAgICAg ICAgfCB7Iig0LDUpIiwiKDUsMSkiLCIoMSwyKSIsIigyLDMpIn0KKyAxIHwgMyB8IGFyYyAx IC0+IDMgfCBmICAgICAgICB8IHsiKDQsNSkiLCIoNSwxKSIsIigxLDMpIn0KKyAxIHwgNCB8 IGFyYyAxIC0+IDQgfCBmICAgICAgICB8IHsiKDQsNSkiLCIoNSwxKSIsIigxLDQpIn0KKyA0 IHwgNSB8IGFyYyA0IC0+IDUgfCB0ICAgICAgICB8IHsiKDQsNSkiLCIoNSwxKSIsIigxLDQp IiwiKDQsNSkifQorIDUgfCAxIHwgYXJjIDUgLT4gMSB8IGYgICAgICAgIHwgeyIoNSwxKSJ9 CisgMSB8IDIgfCBhcmMgMSAtPiAyIHwgZiAgICAgICAgfCB7Iig1LDEpIiwiKDEsMikifQor IDIgfCAzIHwgYXJjIDIgLT4gMyB8IGYgICAgICAgIHwgeyIoNSwxKSIsIigxLDIpIiwiKDIs MykifQorIDEgfCAzIHwgYXJjIDEgLT4gMyB8IGYgICAgICAgIHwgeyIoNSwxKSIsIigxLDMp In0KKyAxIHwgNCB8IGFyYyAxIC0+IDQgfCBmICAgICAgICB8IHsiKDUsMSkiLCIoMSw0KSJ9 CisgNCB8IDUgfCBhcmMgNCAtPiA1IHwgZiAgICAgICAgfCB7Iig1LDEpIiwiKDEsNCkiLCIo NCw1KSJ9CisgNSB8IDEgfCBhcmMgNSAtPiAxIHwgdCAgICAgICAgfCB7Iig1LDEpIiwiKDEs NCkiLCIoNCw1KSIsIig1LDEpIn0KICgyNSByb3dzKQogCiAtLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvd2l0aC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRo LnNxbAppbmRleCBmODU2NDVlZmRlLi4yZWVhMjk3YTcxIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC93aXRoLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRo LnNxbApAQCAtMzA4LDIyICszMDgsMjIgQEAgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSB0cmVl KAogCSg0LCA1LCAnYXJjIDQgLT4gNScpLAogCSg1LCAxLCAnYXJjIDUgLT4gMScpOwogCi13 aXRoIHJlY3Vyc2l2ZSBzZWFyY2hfZ3JhcGgoZiwgdCwgbGFiZWwsIHBhdGgsIGN5Y2xlKSBh cyAoCi0Jc2VsZWN0ICosIGFycmF5W3JvdyhnLmYsIGcudCldLCBmYWxzZSBmcm9tIGdyYXBo IGcKK3dpdGggcmVjdXJzaXZlIHNlYXJjaF9ncmFwaChmLCB0LCBsYWJlbCwgaXNfY3ljbGUs IHBhdGgpIGFzICgKKwlzZWxlY3QgKiwgZmFsc2UsIGFycmF5W3JvdyhnLmYsIGcudCldIGZy b20gZ3JhcGggZwogCXVuaW9uIGFsbAotCXNlbGVjdCBnLiosIHBhdGggfHwgcm93KGcuZiwg Zy50KSwgcm93KGcuZiwgZy50KSA9IGFueShwYXRoKQorCXNlbGVjdCBnLiosIHJvdyhnLmYs IGcudCkgPSBhbnkocGF0aCksIHBhdGggfHwgcm93KGcuZiwgZy50KQogCWZyb20gZ3JhcGgg Zywgc2VhcmNoX2dyYXBoIHNnCi0Jd2hlcmUgZy5mID0gc2cudCBhbmQgbm90IGN5Y2xlCisJ d2hlcmUgZy5mID0gc2cudCBhbmQgbm90IGlzX2N5Y2xlCiApCiBzZWxlY3QgKiBmcm9tIHNl YXJjaF9ncmFwaDsKIAogLS0gb3JkZXJpbmcgYnkgdGhlIHBhdGggY29sdW1uIGhhcyBzYW1l IGVmZmVjdCBhcyBTRUFSQ0ggREVQVEggRklSU1QKLXdpdGggcmVjdXJzaXZlIHNlYXJjaF9n cmFwaChmLCB0LCBsYWJlbCwgcGF0aCwgY3ljbGUpIGFzICgKLQlzZWxlY3QgKiwgYXJyYXlb cm93KGcuZiwgZy50KV0sIGZhbHNlIGZyb20gZ3JhcGggZword2l0aCByZWN1cnNpdmUgc2Vh cmNoX2dyYXBoKGYsIHQsIGxhYmVsLCBpc19jeWNsZSwgcGF0aCkgYXMgKAorCXNlbGVjdCAq LCBmYWxzZSwgYXJyYXlbcm93KGcuZiwgZy50KV0gZnJvbSBncmFwaCBnCiAJdW5pb24gYWxs Ci0Jc2VsZWN0IGcuKiwgcGF0aCB8fCByb3coZy5mLCBnLnQpLCByb3coZy5mLCBnLnQpID0g YW55KHBhdGgpCisJc2VsZWN0IGcuKiwgcm93KGcuZiwgZy50KSA9IGFueShwYXRoKSwgcGF0 aCB8fCByb3coZy5mLCBnLnQpCiAJZnJvbSBncmFwaCBnLCBzZWFyY2hfZ3JhcGggc2cKLQl3 aGVyZSBnLmYgPSBzZy50IGFuZCBub3QgY3ljbGUKKwl3aGVyZSBnLmYgPSBzZy50IGFuZCBu b3QgaXNfY3ljbGUKICkKIHNlbGVjdCAqIGZyb20gc2VhcmNoX2dyYXBoIG9yZGVyIGJ5IHBh dGg7CiAKLS0gCjIuMjcuMAoK --------------2242C06D6A65A69EFED79FAE--