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 1uJQqz-004pIz-8V for pgsql-hackers@arkaria.postgresql.org; Mon, 26 May 2025 05:58:29 +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 1uJQq0-002vZV-8w for pgsql-hackers@arkaria.postgresql.org; Mon, 26 May 2025 05:57:27 +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.94.2) (envelope-from ) id 1uJQpz-002vZM-3q for pgsql-hackers@lists.postgresql.org; Mon, 26 May 2025 05:57:27 +0000 Received: from fout-a4-smtp.messagingengine.com ([103.168.172.147]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uJQpv-00125m-1a for pgsql-hackers@lists.postgresql.org; Mon, 26 May 2025 05:57:25 +0000 Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfout.phl.internal (Postfix) with ESMTP id A92311380266; Mon, 26 May 2025 01:57:22 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Mon, 26 May 2025 01:57:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1748239042; x= 1748325442; bh=HEMS8d1Bvsm7uzmALVxZ8dxZLNu+rvQcXK4qJGAt3A4=; b=R N0FaEK3xn0gc3ssr8u1Igsfjmh23nTqJM8j3lmL87wJXouqcHpioH7dac7dMkZxb d1svONd2jUmIpv8ud7eB0xzyftPK8UXptLInVOe3Cr8oGM5bSTErtYFaCMmWswF3 YXtcsquvmzEYXd827FSxS7ccL/l2KqaL5CkBrixhYISO+pqF1MQvX+GmfgGrR98V XS/5x98axIfqkdl7waS7CER3EzUJM9l080h+SxxIbRW1FBVmnpjCyMfxbWGnHD/v QIG1KyLD1b7GwRbzWhOPWnON6BNDMAP2ps7QhntoUErgan9nlumlVGAtYiDa9NcW Z2NpGA6ZZ3q0BwtP02hiw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1748239042; x=1748325442; bh=HEMS8d1Bvsm7uzmALVxZ8dxZLNu+rvQcXK4 qJGAt3A4=; b=B/3DFVFelLrdHHYHvVwSmXEUYDdwPjWl/S3Bm0kdCCG95oCzqMz 6NVVAVIwTx3A32Yq2TZW0AetAaH053k8N2HLT0L39gnP7ZTVToxhm831nui+DBHQ 9qzjSrj3uySwz7s1H7vJQ2KXYCldE2fAxIF3ps5fUjdNqUNePkSYyBA+05ZOPYlZ rihzSW6WcVGg9wUwGuBHcJsdGA9ICojDecPi2cfzttMWMZTYg29/NYNUFwibEmr9 bJ4L7ztz9cccAk5LdIdVcYsKMzWtE6O2nuN6Es69UFJMv61wpI3o/bFaN4XgefD8 w1w/0QdIS5I3vNtEfrxdsffyZJHLz8sX98g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddtgdduieejgeculddtuddrgeefvddrtd dtmdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggft fghnshhusghstghrihgsvgdpuffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftd dtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpegtkfffgggfuffh vfevfhgjsehmtderredtvdejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuth cuoehpvghtvghrsegvihhsvghnthhrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhep ledtheekleffieevfedtkeelveevfeekkeevheehvdejfefgveethfetiedtuedvnecuve hluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhes vghishgvnhhtrhgruhhtrdhorhhgpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmth hpohhuthdprhgtphhtthhopehpjhesihhllhhumhhinhgrthgvuggtohhmphhuthhinhhg rdgtohhmpdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghrsheslhhishhtshdrphhosh htghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 26 May 2025 01:57:21 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------zefjPjT3400YtzpcPZNAhcDP" Message-ID: <37ebb1d9-9036-485f-a215-e55435689917@eisentraut.org> Date: Mon, 26 May 2025 07:57:19 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time From: Peter Eisentraut To: Paul Jungwirth Cc: PostgreSQL Hackers References: <30dc3561-d7ab-42be-a1c5-096643423590@illuminatedcomputing.com> <73d09e24-b6b9-4c89-8c0a-8842ca0f81f9@illuminatedcomputing.com> <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> <54390149-11d6-4f52-bbe8-f69832ceb3bd@eisentraut.org> Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------zefjPjT3400YtzpcPZNAhcDP Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 17.09.24 11:45, Peter Eisentraut wrote: > On 05.09.24 14:09, Peter Eisentraut wrote: >> On 07.08.24 22:54, Paul Jungwirth wrote: >>> Here are some fixes based on outstanding feedback (some old some new). >> >> I have studied your patches v39-0001 through v39-0004, which >> correspond to what had been reverted plus the new empty range check >> plus various minor fixes.  This looks good to me now, so I propose to >> go ahead with that. >> >> Btw., in your 0003 you point out that this prevents using the WITHOUT >> OVERLAPS functionality for non-range types.  But I think this could be >> accomplished by adding an "is empty" callback as a support function or >> something like that.  I'm not suggesting to do that here, but it might >> be worth leaving a comment about that possibility. > > I have committed these, as explained here. Here we added a gist support function that we internally refer to by the symbol GIST_STRATNUM_PROC. This translated from "well-known" strategy numbers to opfamily-specific strategy numbers. However, we later changed this to fit into index-AM-level compare type mapping, so this function actually now maps from compare type to opfamily-specific strategy numbers. So I'm wondering if this name is still good. Moreover, the index AM level also supports the opposite, a function to map from strategy number to compare type. This is currently not supported in gist, but one might wonder what this function is supposed to be called when it is added. So I went through and updated the naming of the gist-level functionality to be more in line with the index-AM-level functionality; see attached patch. I think this makes sense because these are essentially the same thing on different levels. What do you think? (This would be for PG18.) --------------zefjPjT3400YtzpcPZNAhcDP Content-Type: text/plain; charset=UTF-8; name="0001-WIP-Rename-gist-stratnum-support-function.patch" Content-Disposition: attachment; filename="0001-WIP-Rename-gist-stratnum-support-function.patch" Content-Transfer-Encoding: base64 RnJvbSA1Y2FkYThiYjUwMzJlN2IyZWU2ZTIxOGRjMzhiYzZmZjM1MDk2YTIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyNiBNYXkgMjAyNSAwNzo0ODo1MSArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIFdJUDogUmVuYW1lIGdpc3Qgc3RyYXRudW0gc3VwcG9ydCBmdW5jdGlvbgoK LS0tCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsICB8IDU0 ICsrKysrKysrKystLS0tLS0tLS0tCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5j ICAgICAgICAgICAgICB8ICA0ICstCiBjb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3Ry YXRudW0ub3V0ICAgICB8IDE4ICsrKy0tLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvc3Ry YXRudW0uc3FsICAgICAgICAgIHwgIDYgKy0tCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAg ICAgICAgICAgICAgICAgICAgICB8IDI1ICsrKysrKy0tLQogZG9jL3NyYy9zZ21sL3hpbmRl eC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNz L2dpc3QvZ2lzdHV0aWwuYyAgICAgICAgICAgfCAxNCArKy0tLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgICAgICAgfCAgNiArLS0KIHNyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0LmggICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYW1wcm9jLmRhdCAgICAgICAgICAgIHwgMTIgKystLS0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0IHwgMTggKysrLS0tLQogc3JjL3Rl c3QvcmVncmVzcy9zcWwvbWlzY19mdW5jdGlvbnMuc3FsICAgICAgfCAgNiArLS0KIDEzIGZp bGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDgwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LS0xLjctLTEuOC5zcWwgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsCmluZGV4IDRmZjlj NDNhOGViLi44Zjc5MzY1YTQ2MSAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX2dpc3QtLTEuNy0tMS44LnNxbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVf Z2lzdC0tMS43LS0xLjguc3FsCkBAIC0zLDg1ICszLDg1IEBACiAtLSBjb21wbGFpbiBpZiBz Y3JpcHQgaXMgc291cmNlZCBpbiBwc3FsLCByYXRoZXIgdGhhbiB2aWEgQ1JFQVRFIEVYVEVO U0lPTgogXGVjaG8gVXNlICJBTFRFUiBFWFRFTlNJT04gYnRyZWVfZ2lzdCBVUERBVEUgVE8g JzEuOCciIHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAogCi1DUkVBVEUgRlVOQ1RJT04gZ2lz dF9zdHJhdG51bV9idHJlZShpbnQpCitDUkVBVEUgRlVOQ1RJT04gZ2lzdF90cmFuc2xhdGVf Y21wdHlwZV9idHJlZShpbnQpCiBSRVRVUk5TIHNtYWxsaW50CiBBUyAnTU9EVUxFX1BBVEhO QU1FJwogTEFOR1VBR0UgQyBJTU1VVEFCTEUgUEFSQUxMRUwgU0FGRSBTVFJJQ1Q7CiAKIEFM VEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X29pZF9vcHMgVVNJTkcgZ2lzdCBBREQKLQlGVU5D VElPTiAxMiAoImFueSIsICJhbnkiKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQpIDsKKwlG VU5DVElPTiAxMiAoImFueSIsICJhbnkiKSBnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2J0cmVl IChpbnQpIDsKIAogQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfaW50Ml9vcHMgVVNJTkcg Z2lzdCBBREQKLQlGVU5DVElPTiAxMiAoImFueSIsICJhbnkiKSBnaXN0X3N0cmF0bnVtX2J0 cmVlIChpbnQpIDsKKwlGVU5DVElPTiAxMiAoImFueSIsICJhbnkiKSBnaXN0X3RyYW5zbGF0 ZV9jbXB0eXBlX2J0cmVlIChpbnQpIDsKIAogQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3Rf aW50NF9vcHMgVVNJTkcgZ2lzdCBBREQKLQlGVU5DVElPTiAxMiAoImFueSIsICJhbnkiKSBn aXN0X3N0cmF0bnVtX2J0cmVlIChpbnQpIDsKKwlGVU5DVElPTiAxMiAoImFueSIsICJhbnki KSBnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2J0cmVlIChpbnQpIDsKIAogQUxURVIgT1BFUkFU T1IgRkFNSUxZIGdpc3RfaW50OF9vcHMgVVNJTkcgZ2lzdCBBREQKLQlGVU5DVElPTiAxMiAo ImFueSIsICJhbnkiKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQpIDsKKwlGVU5DVElPTiAx MiAoImFueSIsICJhbnkiKSBnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2J0cmVlIChpbnQpIDsK IAogQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfZmxvYXQ0X29wcyBVU0lORyBnaXN0IEFE RAotCUZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGlu dCkgOworCUZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3RfdHJhbnNsYXRlX2NtcHR5 cGVfYnRyZWUgKGludCkgOwogCiBBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9mbG9hdDhf b3BzIFVTSU5HIGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF9z dHJhdG51bV9idHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lz dF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9SIEZB TUlMWSBnaXN0X3RpbWVzdGFtcF9vcHMgVVNJTkcgZ2lzdCBBREQKLQlGVU5DVElPTiAxMiAo ImFueSIsICJhbnkiKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQpIDsKKwlGVU5DVElPTiAx MiAoImFueSIsICJhbnkiKSBnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2J0cmVlIChpbnQpIDsK IAogQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfdGltZXN0YW1wdHpfb3BzIFVTSU5HIGdp c3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF9zdHJhdG51bV9idHJl ZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF90cmFuc2xhdGVf Y21wdHlwZV9idHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X3Rp bWVfb3BzIFVTSU5HIGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lz dF9zdHJhdG51bV9idHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55Iikg Z2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9S IEZBTUlMWSBnaXN0X2RhdGVfb3BzIFVTSU5HIGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJh bnkiLCAiYW55IikgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIg KCJhbnkiLCAiYW55IikgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSAoaW50KSA7CiAK IEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludGVydmFsX29wcyBVU0lORyBnaXN0IEFE RAotCUZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGlu dCkgOworCUZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3RfdHJhbnNsYXRlX2NtcHR5 cGVfYnRyZWUgKGludCkgOwogCiBBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9jYXNoX29w cyBVU0lORyBnaXN0IEFERAotCUZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3Rfc3Ry YXRudW1fYnRyZWUgKGludCkgOworCUZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3Rf dHJhbnNsYXRlX2NtcHR5cGVfYnRyZWUgKGludCkgOwogCiBBTFRFUiBPUEVSQVRPUiBGQU1J TFkgZ2lzdF9tYWNhZGRyX29wcyBVU0lORyBnaXN0IEFERAotCUZVTkNUSU9OIDEyICgiYW55 IiwgImFueSIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludCkgOworCUZVTkNUSU9OIDEyICgi YW55IiwgImFueSIpIGdpc3RfdHJhbnNsYXRlX2NtcHR5cGVfYnRyZWUgKGludCkgOwogCiBB TFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF90ZXh0X29wcyBVU0lORyBnaXN0IEFERAotCUZV TkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludCkgOwor CUZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3RfdHJhbnNsYXRlX2NtcHR5cGVfYnRy ZWUgKGludCkgOwogCiBBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9icGNoYXJfb3BzIFVT SU5HIGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF9zdHJhdG51 bV9idHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF90cmFu c2xhdGVfY21wdHlwZV9idHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBn aXN0X2J5dGVhX29wcyBVU0lORyBnaXN0IEFERAotCUZVTkNUSU9OIDEyICgiYW55IiwgImFu eSIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludCkgOworCUZVTkNUSU9OIDEyICgiYW55Iiwg ImFueSIpIGdpc3RfdHJhbnNsYXRlX2NtcHR5cGVfYnRyZWUgKGludCkgOwogCiBBTFRFUiBP UEVSQVRPUiBGQU1JTFkgZ2lzdF9udW1lcmljX29wcyBVU0lORyBnaXN0IEFERAotCUZVTkNU SU9OIDEyICgiYW55IiwgImFueSIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludCkgOworCUZV TkNUSU9OIDEyICgiYW55IiwgImFueSIpIGdpc3RfdHJhbnNsYXRlX2NtcHR5cGVfYnRyZWUg KGludCkgOwogCiBBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9iaXRfb3BzIFVTSU5HIGdp c3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF9zdHJhdG51bV9idHJl ZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF90cmFuc2xhdGVf Y21wdHlwZV9idHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X3Zi aXRfb3BzIFVTSU5HIGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lz dF9zdHJhdG51bV9idHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55Iikg Z2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9S IEZBTUlMWSBnaXN0X2luZXRfb3BzIFVTSU5HIGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJh bnkiLCAiYW55IikgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIg KCJhbnkiLCAiYW55IikgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSAoaW50KSA7CiAK IEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2NpZHJfb3BzIFVTSU5HIGdpc3QgQURECi0J RlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50KSA7 CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9i dHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X3RpbWV0el9vcHMg VVNJTkcgZ2lzdCBBREQKLQlGVU5DVElPTiAxMiAoImFueSIsICJhbnkiKSBnaXN0X3N0cmF0 bnVtX2J0cmVlIChpbnQpIDsKKwlGVU5DVElPTiAxMiAoImFueSIsICJhbnkiKSBnaXN0X3Ry YW5zbGF0ZV9jbXB0eXBlX2J0cmVlIChpbnQpIDsKIAogQUxURVIgT1BFUkFUT1IgRkFNSUxZ IGdpc3RfdXVpZF9vcHMgVVNJTkcgZ2lzdCBBREQKLQlGVU5DVElPTiAxMiAoImFueSIsICJh bnkiKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQpIDsKKwlGVU5DVElPTiAxMiAoImFueSIs ICJhbnkiKSBnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2J0cmVlIChpbnQpIDsKIAogQUxURVIg T1BFUkFUT1IgRkFNSUxZIGdpc3RfbWFjYWRkcjhfb3BzIFVTSU5HIGdpc3QgQURECi0JRlVO Q1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50KSA7CisJ RlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJl ZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2VudW1fb3BzIFVTSU5H IGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF9zdHJhdG51bV9i dHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55IikgZ2lzdF90cmFuc2xh dGVfY21wdHlwZV9idHJlZSAoaW50KSA7CiAKIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0 X2Jvb2xfb3BzIFVTSU5HIGdpc3QgQURECi0JRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55Iikg Z2lzdF9zdHJhdG51bV9idHJlZSAoaW50KSA7CisJRlVOQ1RJT04gMTIgKCJhbnkiLCAiYW55 IikgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSAoaW50KSA7CmRpZmYgLS1naXQgYS9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jIGIvY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX2dpc3QuYwppbmRleCAyODBjZTgwODQ1Ni4uMzlmY2JkYWQzMzQgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmMKKysrIGIvY29udHJpYi9idHJlZV9n aXN0L2J0cmVlX2dpc3QuYwpAQCAtMTUsNyArMTUsNyBAQCBQR19NT0RVTEVfTUFHSUNfRVhU KAogUEdfRlVOQ1RJT05fSU5GT19WMShnYnRfZGVjb21wcmVzcyk7CiBQR19GVU5DVElPTl9J TkZPX1YxKGdidHJlZWtleV9pbik7CiBQR19GVU5DVElPTl9JTkZPX1YxKGdidHJlZWtleV9v dXQpOwotUEdfRlVOQ1RJT05fSU5GT19WMShnaXN0X3N0cmF0bnVtX2J0cmVlKTsKK1BHX0ZV TkNUSU9OX0lORk9fVjEoZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSk7CiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogSW4v T3V0IGZvciBrZXlzCkBAIC02Miw3ICs2Miw3IEBAIGdidF9kZWNvbXByZXNzKFBHX0ZVTkNU SU9OX0FSR1MpCiAgKiBSZXR1cm5zIHRoZSBidHJlZSBudW1iZXIgZm9yIHN1cHBvcnRlZCBv cGVyYXRvcnMsIG90aGVyd2lzZSBpbnZhbGlkLgogICovCiBEYXR1bQotZ2lzdF9zdHJhdG51 bV9idHJlZShQR19GVU5DVElPTl9BUkdTKQorZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJl ZShQR19GVU5DVElPTl9BUkdTKQogewogCUNvbXBhcmVUeXBlIGNtcHR5cGUgPSBQR19HRVRB UkdfSU5UMzIoMCk7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3Rl ZC9zdHJhdG51bS5vdXQgYi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0u b3V0CmluZGV4IGRkMGVkYWY0YTIwLi44MjIyYjY2MTUzOCAxMDA2NDQKLS0tIGEvY29udHJp Yi9idHJlZV9naXN0L2V4cGVjdGVkL3N0cmF0bnVtLm91dAorKysgYi9jb250cmliL2J0cmVl X2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0ub3V0CkBAIC0xLDEzICsxLDEzIEBACi0tLSB0ZXN0 IHN0cmF0bnVtIHN1cHBvcnQgZnVuYwotU0VMRUNUIGdpc3Rfc3RyYXRudW1fYnRyZWUoNyk7 Ci0gZ2lzdF9zdHJhdG51bV9idHJlZSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAg ICAgICAgICAgICAgIDAKKy0tIHRlc3Qgc3RyYXRudW0gdHJhbnNsYXRpb24gc3VwcG9ydCBm dW5jCitTRUxFQ1QgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSg3KTsKKyBnaXN0X3Ry YW5zbGF0ZV9jbXB0eXBlX2J0cmVlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogKDEgcm93KQogCi1TRUxFQ1QgZ2lz dF9zdHJhdG51bV9idHJlZSgzKTsKLSBnaXN0X3N0cmF0bnVtX2J0cmVlIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgMworU0VMRUNUIGdpc3RfdHJhbnNs YXRlX2NtcHR5cGVfYnRyZWUoMyk7CisgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDMKICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L3Nx bC9zdHJhdG51bS5zcWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3N0cmF0bnVtLnNxbApp bmRleCA3NWFkZGRhZDg0OS4uZGE4YmJmODgzYjAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRy ZWVfZ2lzdC9zcWwvc3RyYXRudW0uc3FsCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9zcWwv c3RyYXRudW0uc3FsCkBAIC0xLDMgKzEsMyBAQAotLS0gdGVzdCBzdHJhdG51bSBzdXBwb3J0 IGZ1bmMKLVNFTEVDVCBnaXN0X3N0cmF0bnVtX2J0cmVlKDcpOwotU0VMRUNUIGdpc3Rfc3Ry YXRudW1fYnRyZWUoMyk7CistLSB0ZXN0IHN0cmF0bnVtIHRyYW5zbGF0aW9uIHN1cHBvcnQg ZnVuYworU0VMRUNUIGdpc3RfdHJhbnNsYXRlX2NtcHR5cGVfYnRyZWUoNyk7CitTRUxFQ1Qg Z2lzdF90cmFuc2xhdGVfY21wdHlwZV9idHJlZSgzKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9naXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCmluZGV4IGEzNzNhOGFh NGIyLi5lZTg2ZTE3MDA1NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCkBAIC0xMTcwLDcgKzExNzAsNyBAQCA8dGl0 bGU+RXh0ZW5zaWJpbGl0eTwvdGl0bGU+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKICAgICA8 dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48ZnVuY3Rpb24+c3RyYXRudW08L2Z1bmN0aW9u PjwvdGVybT4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPnRyYW5zbGF0ZV9jbXB0eXBlPC9mdW5j dGlvbj48L3Rlcm0+CiAgICAgIDxsaXN0aXRlbT4KICAgICAgIDxwYXJhPgogICAgICAgIEdp dmVuIGEgPGxpdGVyYWw+Q29tcGFyZVR5cGU8L2xpdGVyYWw+IHZhbHVlIGZyb20KQEAgLTEx ODgsMTIgKzExODgsMjMgQEAgPHRpdGxlPkV4dGVuc2liaWxpdHk8L3RpdGxlPgogICAgICAg IG5vbi08bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9saXRlcmFsPiBwYXJ0KHMpIG9mIGFu IGluZGV4IGNvbnN0cmFpbnQuCiAgICAgICA8L3BhcmE+CiAKKyAgICAgIDxwYXJhPgorICAg ICAgIFRoaXMgc3VwcG9ydCBmdW5jdGlvbiBjb3JyZXNwb25kcyB0byB0aGUgaW5kZXggYWNj ZXNzIG1ldGhvZCBjYWxsYmFjaworICAgICAgIGZ1bmN0aW9uIDxzdHJ1Y3RmaWVsZD5hbXRy YW5zbGF0ZWNtcHR5cGU8L3N0cnVjdGZpZWxkPiAoc2VlIDx4cmVmCisgICAgICAgbGlua2Vu ZD0iaW5kZXgtZnVuY3Rpb25zIi8+KS4gIFRoZQorICAgICAgIDxzdHJ1Y3RmaWVsZD5hbXRy YW5zbGF0ZWNtcHR5cGU8L3N0cnVjdGZpZWxkPiBjYWxsYmFjayBmdW5jdGlvbiBmb3IKKyAg ICAgICBHaVNUIGluZGV4ZXMgbWVyZWx5IGNhbGxzIGRvd24gdG8gdGhlCisgICAgICAgPGZ1 bmN0aW9uPnRyYW5zbGF0ZV9jbXB0eXBlPC9mdW5jdGlvbj4gc3VwcG9ydCBmdW5jdGlvbiBv ZiB0aGUKKyAgICAgICByZXNwZWN0aXZlIG9wZXJhdG9yIGZhbWlseSwgc2luY2UgdGhlIEdp U1QgaW5kZXggYWNjZXNzIG1ldGhvZCBoYXMgbm8KKyAgICAgICBmaXhlZCBzdHJhdGVneSBu dW1iZXJzIGl0c2VsZi4KKyAgICAgIDwvcGFyYT4KKwogICAgICAgPHBhcmE+CiAgICAgICAg VGhlIDxhY3JvbnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9u IG11c3QgbG9vayBsaWtlCiAgICAgICAgdGhpczoKIAogPHByb2dyYW1saXN0aW5nPgotQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gbXlfc3RyYXRudW0oaW50ZWdlcikKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIG15X3RyYW5zbGF0ZV9jbXB0eXBlKGludGVnZXIpCiBSRVRV Uk5TIHNtYWxsaW50CiBBUyAnTU9EVUxFX1BBVEhOQU1FJwogTEFOR1VBR0UgQyBTVFJJQ1Q7 CkBAIC0xMjAyLDcgKzEyMTMsNyBAQCA8dGl0bGU+RXh0ZW5zaWJpbGl0eTwvdGl0bGU+CiAg ICAgICAgQW5kIHRoZSBvcGVyYXRvciBmYW1pbHkgcmVnaXN0cmF0aW9uIG11c3QgbG9vayBs aWtlIHRoaXM6CiA8cHJvZ3JhbWxpc3Rpbmc+CiBBTFRFUiBPUEVSQVRPUiBGQU1JTFkgbXlf b3BmYW1pbHkgVVNJTkcgZ2lzdCBBREQKLSAgICBGVU5DVElPTiAxMiAoImFueSIsICJhbnki KSBteV9zdHJhdG51bShpbnQpOworICAgIEZVTkNUSU9OIDEyICgiYW55IiwgImFueSIpIG15 X3RyYW5zbGF0ZV9jbXB0eXBlKGludCk7CiA8L3Byb2dyYW1saXN0aW5nPgogICAgICAgPC9w YXJhPgogCkBAIC0xMjEwLDEwICsxMjIxLDEwIEBAIDx0aXRsZT5FeHRlbnNpYmlsaXR5PC90 aXRsZT4KICAgICAgICAgVGhlIG1hdGNoaW5nIGNvZGUgaW4gdGhlIEMgbW9kdWxlIGNvdWxk IHRoZW4gZm9sbG93IHRoaXMgc2tlbGV0b246CiAKIDxwcm9ncmFtbGlzdGluZz4KLVBHX0ZV TkNUSU9OX0lORk9fVjEobXlfc3RyYXRudW0pOworUEdfRlVOQ1RJT05fSU5GT19WMShteV90 cmFuc2xhdGVfY21wdHlwZSk7CiAKIERhdHVtCi1teV9zdHJhdG51bShQR19GVU5DVElPTl9B UkdTKQorbXlfdHJhbnNsYXRlX2NtcHR5cGUoUEdfRlVOQ1RJT05fQVJHUykKIHsKICAgICBD b21wYXJlVHlwZSBjbXB0eXBlID0gUEdfR0VUQVJHX0lOVDMyKDApOwogICAgIFN0cmF0ZWd5 TnVtYmVyIHJldCA9IEludmFsaWRTdHJhdGVneTsKQEAgLTEyMzIsMTEgKzEyNDMsMTEgQEAg PHRpdGxlPkV4dGVuc2liaWxpdHk8L3RpdGxlPgogICAgICAgPHBhcmE+CiAgICAgICAgT25l IHRyYW5zbGF0aW9uIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGJ5CiAgICAgICAgPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPjoKLSAgICAgICA8bGl0ZXJhbD5naXN0X3N0 cmF0bnVtX2NvbW1vbjwvbGl0ZXJhbD4gaXMgZm9yIG9wZXJhdG9yIGNsYXNzZXMgdGhhdAor ICAgICAgIDxsaXRlcmFsPmdpc3RfdHJhbnNsYXRlX2NtcHR5cGVfY29tbW9uPC9saXRlcmFs PiBpcyBmb3Igb3BlcmF0b3IgY2xhc3NlcyB0aGF0CiAgICAgICAgdXNlIHRoZSA8bGl0ZXJh bD5SVCpTdHJhdGVneU51bWJlcjwvbGl0ZXJhbD4gY29uc3RhbnRzLgogICAgICAgIFRoZSA8 bGl0ZXJhbD5idHJlZV9naXN0PC9saXRlcmFsPgogICAgICAgIGV4dGVuc2lvbiBkZWZpbmVz IGEgc2Vjb25kIHRyYW5zbGF0aW9uIGZ1bmN0aW9uLAotICAgICAgIDxsaXRlcmFsPmdpc3Rf c3RyYXRudW1fYnRyZWU8L2xpdGVyYWw+LCBmb3Igb3BlcmF0b3IgY2xhc3NlcyB0aGF0IHVz ZQorICAgICAgIDxsaXRlcmFsPmdpc3RfdHJhbnNsYXRlX2NtcHR5cGVfYnRyZWU8L2xpdGVy YWw+LCBmb3Igb3BlcmF0b3IgY2xhc3NlcyB0aGF0IHVzZQogICAgICAgIHRoZSA8bGl0ZXJh bD5CVCpTdHJhdGVneU51bWJlcjwvbGl0ZXJhbD4gY29uc3RhbnRzLgogICAgICAgPC9wYXJh PgogICAgICA8L2xpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3hpbmRleC5z Z21sIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCmluZGV4IDdlMjNhN2I2ZTQzLi4zZDMx NWRmMmY5OCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC94aW5kZXguc2dtbApAQCAtNTk4LDcgKzU5OCw3IEBAIDx0aXRsZT5HaVNU IFN1cHBvcnQgRnVuY3Rpb25zPC90aXRsZT4KICAgICAgICA8ZW50cnk+MTE8L2VudHJ5Pgog ICAgICAgPC9yb3c+CiAgICAgICA8cm93PgotICAgICAgIDxlbnRyeT48ZnVuY3Rpb24+c3Ry YXRudW08L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj50cmFu c2xhdGVfY21wdHlwZTwvZnVuY3Rpb24+PC9lbnRyeT4KICAgICAgICA8ZW50cnk+dHJhbnNs YXRlIGNvbXBhcmUgdHlwZXMgdG8gc3RyYXRlZ3kgbnVtYmVycwogICAgICAgICB1c2VkIGJ5 IHRoZSBvcGVyYXRvciBjbGFzcyAob3B0aW9uYWwpPC9lbnRyeT4KICAgICAgICA8ZW50cnk+ MTI8L2VudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0 aWwuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKaW5kZXggYTZiNzAx OTQzZDMuLmMwYWE3ZDAyMjJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0dXRpbC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMK QEAgLTEwNTgsMTEgKzEwNTgsMTEgQEAgZ2lzdEdldEZha2VMU04oUmVsYXRpb24gcmVsKQog fQogCiAvKgotICogVGhpcyBpcyBhIHN0cmF0bnVtIHN1cHBvcnQgZnVuY3Rpb24gZm9yIEdp U1Qgb3BjbGFzc2VzIHRoYXQgdXNlIHRoZQotICogUlQqU3RyYXRlZ3lOdW1iZXIgY29uc3Rh bnRzLgorICogVGhpcyBpcyBhIHN0cmF0bnVtIHRyYW5zbGF0aW9uIHN1cHBvcnQgZnVuY3Rp b24gZm9yIEdpU1Qgb3BjbGFzc2VzIHRoYXQgdXNlCisgKiB0aGUgUlQqU3RyYXRlZ3lOdW1i ZXIgY29uc3RhbnRzLgogICovCiBEYXR1bQotZ2lzdF9zdHJhdG51bV9jb21tb24oUEdfRlVO Q1RJT05fQVJHUykKK2dpc3RfdHJhbnNsYXRlX2NtcHR5cGVfY29tbW9uKFBHX0ZVTkNUSU9O X0FSR1MpCiB7CiAJQ29tcGFyZVR5cGUgY21wdHlwZSA9IFBHX0dFVEFSR19JTlQzMigwKTsK IApAQCAtMTA5MCw5ICsxMDkwLDkgQEAgZ2lzdF9zdHJhdG51bV9jb21tb24oUEdfRlVOQ1RJ T05fQVJHUykKIC8qCiAgKiBSZXR1cm5zIHRoZSBvcGNsYXNzJ3MgcHJpdmF0ZSBzdHJhdG51 bSB1c2VkIGZvciB0aGUgZ2l2ZW4gY29tcGFyZSB0eXBlLgogICoKLSAqIENhbGxzIHRoZSBv cGNsYXNzJ3MgR0lTVF9TVFJBVE5VTV9QUk9DIHN1cHBvcnQgZnVuY3Rpb24sIGlmIGFueSwK LSAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuCi0gKiBSZXR1cm5zIEludmFsaWRTdHJhdGVn eSBpZiB0aGUgZnVuY3Rpb24gaXMgbm90IGRlZmluZWQuCisgKiBDYWxscyB0aGUgb3BjbGFz cydzIEdJU1RfVFJBTlNMQVRFX0NNUFRZUEVfUFJPQyBzdXBwb3J0IGZ1bmN0aW9uLCBpZiBh bnksCisgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LiAgUmV0dXJucyBJbnZhbGlkU3RyYXRl Z3kgaWYgdGhlIGZ1bmN0aW9uIGlzIG5vdAorICogZGVmaW5lZC4KICAqLwogU3RyYXRlZ3lO dW1iZXIKIGdpc3R0cmFuc2xhdGVjbXB0eXBlKENvbXBhcmVUeXBlIGNtcHR5cGUsIE9pZCBv cGZhbWlseSkKQEAgLTExMDEsNyArMTEwMSw3IEBAIGdpc3R0cmFuc2xhdGVjbXB0eXBlKENv bXBhcmVUeXBlIGNtcHR5cGUsIE9pZCBvcGZhbWlseSkKIAlEYXR1bQkJcmVzdWx0OwogCiAJ LyogQ2hlY2sgd2hldGhlciB0aGUgZnVuY3Rpb24gaXMgcHJvdmlkZWQuICovCi0JZnVuY2lk ID0gZ2V0X29wZmFtaWx5X3Byb2Mob3BmYW1pbHksIEFOWU9JRCwgQU5ZT0lELCBHSVNUX1NU UkFUTlVNX1BST0MpOworCWZ1bmNpZCA9IGdldF9vcGZhbWlseV9wcm9jKG9wZmFtaWx5LCBB TllPSUQsIEFOWU9JRCwgR0lTVF9UUkFOU0xBVEVfQ01QVFlQRV9QUk9DKTsKIAlpZiAoIU9p ZElzVmFsaWQoZnVuY2lkKSkKIAkJcmV0dXJuIEludmFsaWRTdHJhdGVneTsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCAyYTQ5ZTZkMjBmMC4uMmVk NmY3NGZjZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxp ZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCkBA IC0xMzgsNyArMTM4LDcgQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0 cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7Ci0JCQlj YXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKKwkJCWNhc2UgR0lTVF9UUkFOU0xBVEVfQ01QVFlQ RV9QUk9DOgogCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBJTlQyT0lELCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlQ0T0lEKSAmJgogCQkJ CQlwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUgPT0gQU5ZT0lEICYmCkBAIC0yNjUsNyArMjY1 LDcgQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJ U1RBTkNFX1BST0MgfHwgaSA9PSBHSVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9D T01QUkVTU19QUk9DIHx8IGkgPT0gR0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0g R0lTVF9PUFRJT05TX1BST0MgfHwgaSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJ CWkgPT0gR0lTVF9TVFJBVE5VTV9QUk9DKQorCQkJaSA9PSBHSVNUX1RSQU5TTEFURV9DTVBU WVBFX1BST0MpCiAJCQljb250aW51ZTsJCQkvKiBvcHRpb25hbCBtZXRob2RzICovCiAJCWVy ZXBvcnQoSU5GTywKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklO SVRJT04pLApAQCAtMzM2LDcgKzMzNiw3IEBAIGdpc3RhZGp1c3RtZW1iZXJzKE9pZCBvcGZh bWlseW9pZCwKIAkJCWNhc2UgR0lTVF9GRVRDSF9QUk9DOgogCQkJY2FzZSBHSVNUX09QVElP TlNfUFJPQzoKIAkJCWNhc2UgR0lTVF9TT1JUU1VQUE9SVF9QUk9DOgotCQkJY2FzZSBHSVNU X1NUUkFUTlVNX1BST0M6CisJCQljYXNlIEdJU1RfVFJBTlNMQVRFX0NNUFRZUEVfUFJPQzoK IAkJCQkvKiBPcHRpb25hbCwgc28gZm9yY2UgaXQgdG8gYmUgYSBzb2Z0IGZhbWlseSBkZXBl bmRlbmN5ICovCiAJCQkJb3AtPnJlZl9pc19oYXJkID0gZmFsc2U7CiAJCQkJb3AtPnJlZl9p c19mYW1pbHkgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3Qu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKaW5kZXggZGI3OGU2MGVlYWIuLmIzZjRl MDJjYmZkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCisrKyBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKQEAgLTQwLDcgKzQwLDcgQEAKICNkZWZpbmUgR0lT VF9GRVRDSF9QUk9DCQkJCQk5CiAjZGVmaW5lIEdJU1RfT1BUSU9OU19QUk9DCQkJCTEwCiAj ZGVmaW5lIEdJU1RfU09SVFNVUFBPUlRfUFJPQwkJCTExCi0jZGVmaW5lIEdJU1RfU1RSQVRO VU1fUFJPQwkJCQkxMgorI2RlZmluZSBHSVNUX1RSQU5TTEFURV9DTVBUWVBFX1BST0MJCTEy CiAjZGVmaW5lIEdJU1ROUHJvY3MJCQkJCTEyCiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ft cHJvYy5kYXQKaW5kZXggOTI1MDUxNDg5OTguLmUzNDc3NTAwYmFhIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19hbXByb2MuZGF0CkBAIC01MzMsNyArNTMzLDcgQEAKICAgYW1wcm9jcmlnaHR0 eXBlID0+ICdib3gnLCBhbXByb2NudW0gPT4gJzgnLCBhbXByb2MgPT4gJ2dpc3RfYm94X2Rp c3RhbmNlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdhbnknLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueScsIGFtcHJvY251 bSA9PiAnMTInLAotICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1fY29tbW9uJyB9LAorICBh bXByb2MgPT4gJ2dpc3RfdHJhbnNsYXRlX2NtcHR5cGVfY29tbW9uJyB9LAogeyBhbXByb2Nm YW1pbHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncG9seWdvbics CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbicsIGFtcHJvY251bSA9PiAnMScsCiAg IGFtcHJvYyA9PiAnZ2lzdF9wb2x5X2NvbnNpc3RlbnQnIH0sCkBAIC01NTUsNyArNTU1LDcg QEAKICAgYW1wcm9jID0+ICdnaXN0X3BvbHlfZGlzdGFuY2UnIH0sCiB7IGFtcHJvY2ZhbWls eSA9PiAnZ2lzdC9wb2x5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnknLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ2FueScsIGFtcHJvY251bSA9PiAnMTInLAotICBhbXByb2MgPT4g J2dpc3Rfc3RyYXRudW1fY29tbW9uJyB9LAorICBhbXByb2MgPT4gJ2dpc3RfdHJhbnNsYXRl X2NtcHR5cGVfY29tbW9uJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvY2lyY2xlX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdjaXJjbGUnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2NpcmNsZScsIGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnZ2lzdF9jaXJjbGVf Y29uc2lzdGVudCcgfSwKQEAgLTU3Niw3ICs1NzYsNyBAQAogICBhbXByb2MgPT4gJ2dpc3Rf Y2lyY2xlX2Rpc3RhbmNlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvY2lyY2xlX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnknLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2Fu eScsIGFtcHJvY251bSA9PiAnMTInLAotICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1fY29t bW9uJyB9LAorICBhbXByb2MgPT4gJ2dpc3RfdHJhbnNsYXRlX2NtcHR5cGVfY29tbW9uJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvdHN2ZWN0b3Jfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ3RzdmVjdG9yJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0c3ZlY3RvcicsIGFt cHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnZ3RzdmVjdG9yX2NvbnNpc3RlbnQoaW50 ZXJuYWwsdHN2ZWN0b3IsaW50MixvaWQsaW50ZXJuYWwpJyB9LApAQCAtNjM2LDcgKzYzNiw3 IEBACiAgIGFtcHJvYyA9PiAncmFuZ2Vfc29ydHN1cHBvcnQnIH0sCiB7IGFtcHJvY2ZhbWls eSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55JywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdhbnknLCBhbXByb2NudW0gPT4gJzEyJywKLSAgYW1wcm9jID0+ ICdnaXN0X3N0cmF0bnVtX2NvbW1vbicgfSwKKyAgYW1wcm9jID0+ICdnaXN0X3RyYW5zbGF0 ZV9jbXB0eXBlX2NvbW1vbicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L25ldHdvcmtf b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2luZXQnLCBhbXByb2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ2luZXRfZ2lzdF9jb25z aXN0ZW50JyB9LApAQCAtNjU1LDcgKzY1NSw3IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn aW5ldCcsIGFtcHJvY251bSA9PiAnOScsIGFtcHJvYyA9PiAnaW5ldF9naXN0X2ZldGNoJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbmV0d29ya19vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnYW55JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnknLCBhbXByb2NudW0gPT4g JzEyJywKLSAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2NvbW1vbicgfSwKKyAgYW1wcm9j ID0+ICdnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2NvbW1vbicgfSwKIHsgYW1wcm9jZmFtaWx5 ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11bHRp cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXByb2Nu dW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ211bHRpcmFuZ2VfZ2lzdF9jb25zaXN0ZW50JyB9 LApAQCAtNjc2LDcgKzY3Niw3IEBACiAgIGFtcHJvYyA9PiAncmFuZ2VfZ2lzdF9zYW1lJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5nZV9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnYW55JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnknLCBhbXByb2NudW0g PT4gJzEyJywKLSAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2NvbW1vbicgfSwKKyAgYW1w cm9jID0+ICdnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2NvbW1vbicgfSwKIAogIyBnaW4KIHsg YW1wcm9jZmFtaWx5ID0+ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Fu eWFycmF5JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDM3YTQ4NDE0N2E4Li5k M2QyOGEyNjNmYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjU0Myw5ICsx MjU0Myw5IEBACiAKICMgR2lTVCBzdHJhdG51bSBpbXBsZW1lbnRhdGlvbnMKIHsgb2lkID0+ ICc4MDQ3JywgZGVzY3IgPT4gJ0dpU1Qgc3VwcG9ydCcsCi0gIHByb25hbWUgPT4gJ2dpc3Rf c3RyYXRudW1fY29tbW9uJywgcHJvcmV0dHlwZSA9PiAnaW50MicsCisgIHByb25hbWUgPT4g J2dpc3RfdHJhbnNsYXRlX2NtcHR5cGVfY29tbW9uJywgcHJvcmV0dHlwZSA9PiAnaW50Mics CiAgIHByb2FyZ3R5cGVzID0+ICdpbnQ0JywKLSAgcHJvc3JjID0+ICdnaXN0X3N0cmF0bnVt X2NvbW1vbicgfSwKKyAgcHJvc3JjID0+ICdnaXN0X3RyYW5zbGF0ZV9jbXB0eXBlX2NvbW1v bicgfSwKIAogIyBBSU8gcmVsYXRlZCBmdW5jdGlvbnMKIHsgb2lkID0+ICc5MjAwJywgZGVz Y3IgPT4gJ2luZm9ybWF0aW9uIGFib3V0IGluLXByb2dyZXNzIGFzeW5jaHJvbm91cyBJT3Mn LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9u cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21pc2NfZnVuY3Rpb25zLm91dApp bmRleCBjYzUxN2VkNWU5MC4uYzNiMmI5ZDg2MDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CkBAIC04OTAsMTcgKzg5MCwxNyBAQCBT RUxFQ1QgcGdfY29sdW1uX3RvYXN0X2NodW5rX2lkKGEpIElTIE5VTEwsCiAKIERST1AgVEFC TEUgdGVzdF9jaHVua19pZDsKIERST1AgRlVOQ1RJT04gZXhwbGFpbl9tYXNrX2Nvc3RzKHRl eHQsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wpOwotLS0gdGVzdCBzdHJhdG51bSBzdXBwb3J0 IGZ1bmN0aW9ucwotU0VMRUNUIGdpc3Rfc3RyYXRudW1fY29tbW9uKDcpOwotIGdpc3Rfc3Ry YXRudW1fY29tbW9uIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAg ICAgICAzCistLSB0ZXN0IHN0cmF0bnVtIHRyYW5zbGF0aW9uIHN1cHBvcnQgZnVuY3Rpb25z CitTRUxFQ1QgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9jb21tb24oNyk7CisgZ2lzdF90cmFu c2xhdGVfY21wdHlwZV9jb21tb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKICgxIHJvdykKIAotU0VMRUNUIGdp c3Rfc3RyYXRudW1fY29tbW9uKDMpOwotIGdpc3Rfc3RyYXRudW1fY29tbW9uIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAgICAgIDE4CitTRUxFQ1QgZ2lzdF90 cmFuc2xhdGVfY21wdHlwZV9jb21tb24oMyk7CisgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9j b21tb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMTgKICgxIHJvdykKIAogLS0gcmVscGF0aCB0ZXN0cwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWlzY19mdW5jdGlvbnMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvbWlzY19mdW5jdGlvbnMuc3FsCmluZGV4IDVmOWM3NzUxMmQxLi4y Mzc5MmM0MTMyYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWlzY19mdW5j dGlvbnMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNx bApAQCAtNDAwLDkgKzQwMCw5IEBAIENSRUFURSBUQUJMRSB0ZXN0X2NodW5rX2lkIChhIFRF WFQsIGIgVEVYVCBTVE9SQUdFIEVYVEVSTkFMKTsKIERST1AgVEFCTEUgdGVzdF9jaHVua19p ZDsKIERST1AgRlVOQ1RJT04gZXhwbGFpbl9tYXNrX2Nvc3RzKHRleHQsIGJvb2wsIGJvb2ws IGJvb2wsIGJvb2wpOwogCi0tLSB0ZXN0IHN0cmF0bnVtIHN1cHBvcnQgZnVuY3Rpb25zCi1T RUxFQ1QgZ2lzdF9zdHJhdG51bV9jb21tb24oNyk7Ci1TRUxFQ1QgZ2lzdF9zdHJhdG51bV9j b21tb24oMyk7CistLSB0ZXN0IHN0cmF0bnVtIHRyYW5zbGF0aW9uIHN1cHBvcnQgZnVuY3Rp b25zCitTRUxFQ1QgZ2lzdF90cmFuc2xhdGVfY21wdHlwZV9jb21tb24oNyk7CitTRUxFQ1Qg Z2lzdF90cmFuc2xhdGVfY21wdHlwZV9jb21tb24oMyk7CiAKIAogLS0gcmVscGF0aCB0ZXN0 cwotLSAKMi40OS4wCgo= --------------zefjPjT3400YtzpcPZNAhcDP--