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 1kUnTT-0005Ce-2u for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Oct 2020 08:58:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kUnTR-0007Qf-UK for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Oct 2020 08:58:29 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kUnTQ-0007Q0-OB for pgsql-hackers@lists.postgresql.org; Tue, 20 Oct 2020 08:58:29 +0000 Received: from wforward1-smtp.messagingengine.com ([64.147.123.30]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kUnTL-0005fx-IV for pgsql-hackers@postgresql.org; Tue, 20 Oct 2020 08:58:28 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.west.internal (Postfix) with ESMTP id 9C94CC8F for ; Tue, 20 Oct 2020 04:58:20 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 20 Oct 2020 04:58:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=P5mlgVvRQrYQw0VtSzNNymT0N2KZX 8yVafU989QrSM0=; b=A8SZOphdIOE4w3i0XMCah8UsXZbatGEui+2ZJe/RUxr+m pbyRnleL/7bVIc8hm3TAenEzWwUQaItrc0aDYbkuRpmI3aTc1h1LbxVVWwKRe6Hp vqY1ozbMwxuMrN3z14xTo0tpyiMdRXiRBg56fmeuXg0QqM8KpVAT9kbh+gZAqoeP 2H7z572vnSjoK9EfqrGUtOvuA0kHYXxZco7gnlcDah0Lldk12JDzo2pW99/N7t4R fPjJjjODvHR2V19msacqhX4y8G6VlFAOgfcj7J+et78kh9IM8VZJZFfl9u7CYole IQfjJ0B1PlMVLwm0jbyX6aa1mAoME9Sf2+fKZTQQg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrjeefgddtlecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepvffhufhokffffgggtgesmhdtreertd efjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghi shgvnhhtrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhmqeenucggtffrrghtthgvrh hnpeekieelleeftddtleetkeevgfehhfdviefgudetjedtueeugfffvdeltefhfeeuvden ucffohhmrghinhepvdhnughquhgrughrrghnthdrtghomhenucfkphepleefrddvtddvrd dvhedvrdeljeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr ohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomh X-ME-Proxy: Received: from april.pezone.net (p5dcafc61.dip0.t-ipconnect.de [93.202.252.97]) by mail.messagingengine.com (Postfix) with ESMTPA id 75DC83280059 for ; Tue, 20 Oct 2020 04:58:19 -0400 (EDT) To: pgsql-hackers From: Peter Eisentraut Subject: select_common_typmod Organization: 2ndQuadrant Message-ID: <97df3af9-8b5e-fb7f-a029-3eb7e80d7af9@2ndquadrant.com> Date: Tue, 20 Oct 2020 10:58:18 +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 Content-Type: multipart/mixed; boundary="------------8F5680F3D865968848774F34" 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. --------------8F5680F3D865968848774F34 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit While working on another patch, I figured adding a select_common_typmod() to go along with select_common_type() and select_common_collation() would be handy. Typmods were previously combined using hand-coded logic in several places, and not at all in other places. The logic in select_common_typmod() isn't very exciting, but it makes the code more compact and readable in a few locations, and in the future we can perhaps do more complicated things if desired. There might have been a tiny bug in transformValuesClause() because while consolidating the typmods it does not take into account whether the types are actually the same (as more correctly done in transformSetOperationTree() and buildMergedJoinVar()). -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------8F5680F3D865968848774F34 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Add-select_common_typmod.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-select_common_typmod.patch" RnJvbSA4YTVhZjI4ZTdjNDEwNTVjZmJjZWRkOWFhMDdjZjY3MTRiNjBjMTc4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMCBPY3QgMjAyMCAwOToyODo0OCArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEFkZCBzZWxlY3RfY29tbW9uX3R5cG1vZCgpCgpUaGlzIGFjY29tcGFuaWVz IHNlbGVjdF9jb21tb25fdHlwZSgpIGFuZCBzZWxlY3RfY29tbW9uX2NvbGxhdGlvbigpLgpU eXBtb2RzIHdlcmUgcHJldmlvdXNseSBjb21iaW5lZCB1c2luZyBoYW5kLWNvZGVkIGxvZ2lj IGluIHNldmVyYWwKcGxhY2VzLiAgVGhlIGxvZ2ljIGluIHNlbGVjdF9jb21tb25fdHlwbW9k KCkgaXNuJ3QgdmVyeSBleGNpdGluZywgYnV0Cml0IG1ha2VzIHRoZSBjb2RlIG1vcmUgY29t cGFjdCBhbmQgcmVhZGFibGUgaW4gYSBmZXcgbG9jYXRpb25zLCBhbmQgaW4KdGhlIGZ1dHVy ZSB3ZSBjYW4gcGVyaGFwcyBkbyBtb3JlIGNvbXBsaWNhdGVkIHRoaW5ncyBpZiBkZXNpcmVk LgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICB8IDI2ICsrKysrLS0t LS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyB8IDIz ICsrKysrLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2Uu YyB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMgICB8ICA4ICsrKysrLS0KIHNyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9jb2VyY2UuaCB8ICAyICsrCiA1IGZpbGVzIGNoYW5nZWQsIDU3IGluc2VydGlvbnMo KyksIDM5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGMxNTlmYjI5 NTcuLjk4YTgzZGI4YjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMTQzNCw5ICsxNDM0 LDggQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0 U3RtdCAqc3RtdCkKIAlmb3IgKGkgPSAwOyBpIDwgc3VibGlzdF9sZW5ndGg7IGkrKykKIAl7 CiAJCU9pZAkJCWNvbHR5cGU7Ci0JCWludDMyCQljb2x0eXBtb2QgPSAtMTsKKwkJaW50MzIJ CWNvbHR5cG1vZDsKIAkJT2lkCQkJY29sY29sbDsKLQkJYm9vbAkJZmlyc3QgPSB0cnVlOwog CiAJCWNvbHR5cGUgPSBzZWxlY3RfY29tbW9uX3R5cGUocHN0YXRlLCBjb2xleHByc1tpXSwg IlZBTFVFUyIsIE5VTEwpOwogCkBAIC0xNDQ2LDE5ICsxNDQ1LDkgQEAgdHJhbnNmb3JtVmFs dWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAogCQkJ Y29sID0gY29lcmNlX3RvX2NvbW1vbl90eXBlKHBzdGF0ZSwgY29sLCBjb2x0eXBlLCAiVkFM VUVTIik7CiAJCQlsZmlyc3QobGMpID0gKHZvaWQgKikgY29sOwotCQkJaWYgKGZpcnN0KQot CQkJewotCQkJCWNvbHR5cG1vZCA9IGV4cHJUeXBtb2QoY29sKTsKLQkJCQlmaXJzdCA9IGZh bHNlOwotCQkJfQotCQkJZWxzZQotCQkJewotCQkJCS8qIEFzIHNvb24gYXMgd2Ugc2VlIGEg bm9uLW1hdGNoaW5nIHR5cG1vZCwgZmFsbCBiYWNrIHRvIC0xICovCi0JCQkJaWYgKGNvbHR5 cG1vZCA+PSAwICYmIGNvbHR5cG1vZCAhPSBleHByVHlwbW9kKGNvbCkpCi0JCQkJCWNvbHR5 cG1vZCA9IC0xOwotCQkJfQogCQl9CiAKKwkJY29sdHlwbW9kID0gc2VsZWN0X2NvbW1vbl90 eXBtb2QocHN0YXRlLCBjb2xleHByc1tpXSwgY29sdHlwZSk7CiAJCWNvbGNvbGwgPSBzZWxl Y3RfY29tbW9uX2NvbGxhdGlvbihwc3RhdGUsIGNvbGV4cHJzW2ldLCB0cnVlKTsKIAogCQlj b2x0eXBlcyA9IGxhcHBlbmRfb2lkKGNvbHR5cGVzLCBjb2x0eXBlKTsKQEAgLTIwMjAsOCAr MjAwOSw2IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBTZWxlY3RTdG10ICpzdG10LAogCQkJTm9kZQkgICAqcmNvbG5vZGUgPSAoTm9kZSAqKSBy dGxlLT5leHByOwogCQkJT2lkCQkJbGNvbHR5cGUgPSBleHByVHlwZShsY29sbm9kZSk7CiAJ CQlPaWQJCQlyY29sdHlwZSA9IGV4cHJUeXBlKHJjb2xub2RlKTsKLQkJCWludDMyCQlsY29s dHlwbW9kID0gZXhwclR5cG1vZChsY29sbm9kZSk7Ci0JCQlpbnQzMgkJcmNvbHR5cG1vZCA9 IGV4cHJUeXBtb2QocmNvbG5vZGUpOwogCQkJTm9kZQkgICAqYmVzdGV4cHI7CiAJCQlpbnQJ CQliZXN0bG9jYXRpb247CiAJCQlPaWQJCQlyZXNjb2x0eXBlOwpAQCAtMjAzNCwxMSArMjAy MSw2IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBT ZWxlY3RTdG10ICpzdG10LAogCQkJCQkJCQkJCQljb250ZXh0LAogCQkJCQkJCQkJCQkmYmVz dGV4cHIpOwogCQkJYmVzdGxvY2F0aW9uID0gZXhwckxvY2F0aW9uKGJlc3RleHByKTsKLQkJ CS8qIGlmIHNhbWUgdHlwZSBhbmQgc2FtZSB0eXBtb2QsIHVzZSB0eXBtb2Q7IGVsc2UgZGVm YXVsdCAqLwotCQkJaWYgKGxjb2x0eXBlID09IHJjb2x0eXBlICYmIGxjb2x0eXBtb2QgPT0g cmNvbHR5cG1vZCkKLQkJCQlyZXNjb2x0eXBtb2QgPSBsY29sdHlwbW9kOwotCQkJZWxzZQot CQkJCXJlc2NvbHR5cG1vZCA9IC0xOwogCiAJCQkvKgogCQkJICogVmVyaWZ5IHRoZSBjb2Vy Y2lvbnMgYXJlIGFjdHVhbGx5IHBvc3NpYmxlLiAgSWYgbm90LCB3ZSdkIGZhaWwKQEAgLTIw ODksNiArMjA3MSwxMCBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25UcmVlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCwKIAkJCQlydGxlLT5leHByID0gKEV4cHIgKikg cmNvbG5vZGU7CiAJCQl9CiAKKwkJCXJlc2NvbHR5cG1vZCA9IHNlbGVjdF9jb21tb25fdHlw bW9kKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCWxpc3RfbWFrZTIobGNvbG5vZGUsIHJjb2xub2Rl KSwKKwkJCQkJCQkJCQkJCXJlc2NvbHR5cGUpOworCiAJCQkvKgogCQkJICogU2VsZWN0IGNv bW1vbiBjb2xsYXRpb24uICBBIGNvbW1vbiBjb2xsYXRpb24gaXMgcmVxdWlyZWQgZm9yCiAJ CQkgKiBhbGwgc2V0IG9wZXJhdG9ycyBleGNlcHQgVU5JT04gQUxMOyBzZWUgU1FMOjIwMDgg Ny4xMyA8cXVlcnkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1 c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCBlZGNhZjI3 NmMwLi43NDYwZTYxMTYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Y2xhdXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCkBAIC0x NTY4LDI0ICsxNTY4LDEzIEBAIGJ1aWxkTWVyZ2VkSm9pblZhcihQYXJzZVN0YXRlICpwc3Rh dGUsIEpvaW5UeXBlIGpvaW50eXBlLAogCQkJICAgKnJfbm9kZSwKIAkJCSAgICpyZXNfbm9k ZTsKIAotCS8qCi0JICogQ2hvb3NlIG91dHB1dCB0eXBlIGlmIGlucHV0IHR5cGVzIGFyZSBk aXNzaW1pbGFyLgotCSAqLwotCW91dGNvbHR5cGUgPSBsX2NvbHZhci0+dmFydHlwZTsKLQlv dXRjb2x0eXBtb2QgPSBsX2NvbHZhci0+dmFydHlwbW9kOwotCWlmIChvdXRjb2x0eXBlICE9 IHJfY29sdmFyLT52YXJ0eXBlKQotCXsKLQkJb3V0Y29sdHlwZSA9IHNlbGVjdF9jb21tb25f dHlwZShwc3RhdGUsCisJb3V0Y29sdHlwZSA9IHNlbGVjdF9jb21tb25fdHlwZShwc3RhdGUs CisJCQkJCQkJCQlsaXN0X21ha2UyKGxfY29sdmFyLCByX2NvbHZhciksCisJCQkJCQkJCQki Sk9JTi9VU0lORyIsCisJCQkJCQkJCQlOVUxMKTsKKwlvdXRjb2x0eXBtb2QgPSBzZWxlY3Rf Y29tbW9uX3R5cG1vZChwc3RhdGUsCiAJCQkJCQkJCQkJbGlzdF9tYWtlMihsX2NvbHZhciwg cl9jb2x2YXIpLAotCQkJCQkJCQkJCSJKT0lOL1VTSU5HIiwKLQkJCQkJCQkJCQlOVUxMKTsK LQkJb3V0Y29sdHlwbW9kID0gLTE7CQkvKiBpZSwgdW5rbm93biAqLwotCX0KLQllbHNlIGlm IChvdXRjb2x0eXBtb2QgIT0gcl9jb2x2YXItPnZhcnR5cG1vZCkKLQl7Ci0JCS8qIHNhbWUg dHlwZSwgYnV0IG5vdCBzYW1lIHR5cG1vZCAqLwotCQlvdXRjb2x0eXBtb2QgPSAtMTsJCS8q IGllLCB1bmtub3duICovCi0JfQorCQkJCQkJCQkJCW91dGNvbHR5cGUpOwogCiAJLyoKIAkg KiBJbnNlcnQgY29lcmNpb24gZnVuY3Rpb25zIGlmIG5lZWRlZC4gIE5vdGUgdGhhdCBhIGRp ZmZlcmVuY2UgaW4gdHlwbW9kCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY29lcmNlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMKaW5kZXgg MmZmZTQ3MDI2Yi4uMzg0ODJkMjRmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2NvZXJjZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2Uu YwpAQCAtMTUyMiw2ICsxNTIyLDQzIEBAIGNvZXJjZV90b19jb21tb25fdHlwZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJcmV0dXJuIG5vZGU7CiB9CiAKKy8qCisgKiBz ZWxlY3RfY29tbW9uX3R5cG1vZCgpCisgKgkJRGV0ZXJtaW5lIHRoZSBjb21tb24gdHlwbW9k IG9mIGEgbGlzdCBvZiBpbnB1dCBleHByZXNzaW9ucy4KKyAqCisgKiBjb21tb25fdHlwZSBp cyB0aGUgc2VsZWN0ZWQgY29tbW9uIHR5cGUgb2YgdGhlIGV4cHJlc3Npb25zLCBwcmVzdW1i YWJseQorICogY29tcHV0ZWQgdXNpbmcgc2VsZWN0X2NvbW1vbl90eXBlKCkuCisgKi8KK2lu dDMyCitzZWxlY3RfY29tbW9uX3R5cG1vZChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmV4 cHJzLCBPaWQgY29tbW9uX3R5cGUpCit7CisJTGlzdENlbGwgICAqbGM7CisJYm9vbAkJZmly c3QgPSB0cnVlOworCWludDMyCQlyZXN1bHQgPSAtMTsKKworCWZvcmVhY2gobGMsIGV4cHJz KQorCXsKKwkJTm9kZSAgICpleHByID0gKE5vZGUgKikgbGZpcnN0KGxjKTsKKworCQkvKiBU eXBlcyBtdXN0IG1hdGNoICovCisJCWlmIChleHByVHlwZShleHByKSAhPSBjb21tb25fdHlw ZSkKKwkJCXJldHVybiAtMTsKKwkJZWxzZSBpZiAoZmlyc3QpCisJCXsKKwkJCXJlc3VsdCA9 IGV4cHJUeXBtb2QoZXhwcik7CisJCQlmaXJzdCA9IGZhbHNlOworCQl9CisJCWVsc2UKKwkJ eworCQkJLyogQXMgc29vbiBhcyB3ZSBzZWUgYSBub24tbWF0Y2hpbmcgdHlwbW9kLCBmYWxs IGJhY2sgdG8gLTEgKi8KKwkJCWlmIChyZXN1bHQgIT0gZXhwclR5cG1vZChleHByKSkKKwkJ CQlyZXR1cm4gLTE7CisJCX0KKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICog Y2hlY2tfZ2VuZXJpY190eXBlX2NvbnNpc3RlbmN5KCkKICAqCQlBcmUgdGhlIGFjdHVhbCBh cmd1bWVudHMgcG90ZW50aWFsbHkgY29tcGF0aWJsZSB3aXRoIGEKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jCmluZGV4IDljM2I2YWQ5MTYuLmE3YTMxNzA0ZmIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYwpAQCAtMTc1MCw2ICsxNzUwLDcgQEAgdW5pZnlfaHlwb3RoZXRpY2Fs X2FyZ3MoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQlMaXN0Q2VsbCAgICpoYXJnID0gbGlzdF9u dGhfY2VsbChmYXJncywgaGFyZ3Bvcyk7CiAJCUxpc3RDZWxsICAgKmFhcmcgPSBsaXN0X250 aF9jZWxsKGZhcmdzLCBhYXJncG9zKTsKIAkJT2lkCQkJY29tbW9udHlwZTsKKwkJaW50MzIJ CWNvbW1vbnR5cG1vZDsKIAogCQkvKiBBIG1pc21hdGNoIG1lYW5zIEFnZ3JlZ2F0ZUNyZWF0 ZSBkaWRuJ3QgY2hlY2sgcHJvcGVybHkgLi4uICovCiAJCWlmIChkZWNsYXJlZF9hcmdfdHlw ZXNbaGFyZ3Bvc10gIT0gZGVjbGFyZWRfYXJnX3R5cGVzW2Fhcmdwb3NdKQpAQCAtMTc2OCw2 ICsxNzY5LDkgQEAgdW5pZnlfaHlwb3RoZXRpY2FsX2FyZ3MoUGFyc2VTdGF0ZSAqcHN0YXRl LAogCQkJCQkJCQkJCWxpc3RfbWFrZTIobGZpcnN0KGFhcmcpLCBsZmlyc3QoaGFyZykpLAog CQkJCQkJCQkJCSJXSVRISU4gR1JPVVAiLAogCQkJCQkJCQkJCU5VTEwpOworCQljb21tb250 eXBtb2QgPSBzZWxlY3RfY29tbW9uX3R5cG1vZChwc3RhdGUsCisJCQkJCQkJCQkJCWxpc3Rf bWFrZTIobGZpcnN0KGFhcmcpLCBsZmlyc3QoaGFyZykpLAorCQkJCQkJCQkJCQljb21tb250 eXBlKTsKIAogCQkvKgogCQkgKiBQZXJmb3JtIHRoZSBjb2VyY2lvbnMuICBXZSBkb24ndCBu ZWVkIHRvIHdvcnJ5IGFib3V0IE5hbWVkQXJnRXhwcnMKQEAgLTE3NzYsNyArMTc4MCw3IEBA IHVuaWZ5X2h5cG90aGV0aWNhbF9hcmdzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJbGZpcnN0 KGhhcmcpID0gY29lcmNlX3R5cGUocHN0YXRlLAogCQkJCQkJCQkgICAoTm9kZSAqKSBsZmly c3QoaGFyZyksCiAJCQkJCQkJCSAgIGFjdHVhbF9hcmdfdHlwZXNbaGFyZ3Bvc10sCi0JCQkJ CQkJCSAgIGNvbW1vbnR5cGUsIC0xLAorCQkJCQkJCQkgICBjb21tb250eXBlLCBjb21tb250 eXBtb2QsCiAJCQkJCQkJCSAgIENPRVJDSU9OX0lNUExJQ0lULAogCQkJCQkJCQkgICBDT0VS Q0VfSU1QTElDSVRfQ0FTVCwKIAkJCQkJCQkJICAgLTEpOwpAQCAtMTc4NCw3ICsxNzg4LDcg QEAgdW5pZnlfaHlwb3RoZXRpY2FsX2FyZ3MoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQlsZmly c3QoYWFyZykgPSBjb2VyY2VfdHlwZShwc3RhdGUsCiAJCQkJCQkJCSAgIChOb2RlICopIGxm aXJzdChhYXJnKSwKIAkJCQkJCQkJICAgYWN0dWFsX2FyZ190eXBlc1thYXJncG9zXSwKLQkJ CQkJCQkJICAgY29tbW9udHlwZSwgLTEsCisJCQkJCQkJCSAgIGNvbW1vbnR5cGUsIGNvbW1v bnR5cG1vZCwKIAkJCQkJCQkJICAgQ09FUkNJT05fSU1QTElDSVQsCiAJCQkJCQkJCSAgIENP RVJDRV9JTVBMSUNJVF9DQVNULAogCQkJCQkJCQkgICAtMSk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfY29lcmNlLmgKaW5kZXggODY4NmVhYWNiYy4uMzNkN2NmYzhiNiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9jb2VyY2UuaApAQCAtNzEsNiArNzEsOCBAQCBleHRlcm4gTm9kZSAqY29l cmNlX3RvX2NvbW1vbl90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJ CQkJCQkJICAgT2lkIHRhcmdldFR5cGVJZCwKIAkJCQkJCQkJICAgY29uc3QgY2hhciAqY29u dGV4dCk7CiAKK2V4dGVybiBpbnQzMiBzZWxlY3RfY29tbW9uX3R5cG1vZChQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKmV4cHJzLCBPaWQgY29tbW9uX3R5cGUpOworCiBleHRlcm4gYm9v bCBjaGVja19nZW5lcmljX3R5cGVfY29uc2lzdGVuY3koY29uc3QgT2lkICphY3R1YWxfYXJn X3R5cGVzLAogCQkJCQkJCQkJCSAgIGNvbnN0IE9pZCAqZGVjbGFyZWRfYXJnX3R5cGVzLAog CQkJCQkJCQkJCSAgIGludCBuYXJncyk7Ci0tIAoyLjI4LjAKCg== --------------8F5680F3D865968848774F34--