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 1tyOl5-006AlI-To for pgsql-hackers@arkaria.postgresql.org; Sat, 29 Mar 2025 05:29:28 +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 1tyOl4-0050xC-4P for pgsql-hackers@arkaria.postgresql.org; Sat, 29 Mar 2025 05:29:26 +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 1tyOl3-0050vV-KZ for pgsql-hackers@lists.postgresql.org; Sat, 29 Mar 2025 05:29:25 +0000 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tyOl0-001poY-23 for pgsql-hackers@lists.postgresql.org; Sat, 29 Mar 2025 05:29:25 +0000 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-223fd89d036so66645575ad.1 for ; Fri, 28 Mar 2025 22:29:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1743226160; x=1743830960; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=aC2uM4aqF7xlw1iooYQCkver7QNa+5hGsEfB84ZOi78=; b=L+TYQEfdzekq8cuCdFo7PO2DL95uj0dUjLLzRFOqhowbdCRctZiOdLfQcMjlBYhU5G o7D0pZUS+ojgxa6ZnT3XR8ZpcNiJTmq/l2QJPUwBflJPIKjyC05kI1X5KlKz2U/Ruxuq TFg3g7f5pci9t1brysWgx2dG7nIzPZnGh9OFVrghym4aXU2GOS4BiNui9NvkDWBaEEyd XBUof5raW4reMYetRlji23n4henokJbjkSVMU/BNpgtp3hWZaDRX5Fqsuyww6giS+Sm4 o6NG30e860/jxlAe0zHzfgvYfzmu8q7P24vYSe7dViTFw/C9OBnCiICWluUmc2PSfXzy YAuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743226160; x=1743830960; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=aC2uM4aqF7xlw1iooYQCkver7QNa+5hGsEfB84ZOi78=; b=JFeievYA4YrJZ+JSq5MRN2RtdZboiwh0bspevdr83MfRRl4tv1WeV7t42Ozh7g/gqg LP1IhL6svqvFNssLZMRPW7gcJffLh004i56ln2rR4APwtYVaH1tR4v4I9lYxDbVdpKfP Q3RtVdu4CitZ0Ce74jJm9EUrBmt8sILocQTMNxR5shqx1YSf2dqo0I5JPVAcWFf2j89h DLcAcEWnypLBXUONdc6jUhVGx2cHtvGSHwohPHn1dpJugksW5ix1HtGadVolRtfbI0ff x500QMis3tr3zUjBCDO6tXWAqMBGvu+CUZ7rK8XfmS+xQQKaLg0shqFnZoC0NTEaPFI5 OhNw== X-Forwarded-Encrypted: i=1; AJvYcCVm+8zpeSiv/aS1HjcOfUJigYqNsG90YNRfcf1Dum7c7LcrqaZLIUI7iHm8OorGADzpSVexk0v6KWh9xXOI@lists.postgresql.org X-Gm-Message-State: AOJu0YzAQ3/LiGZdDIkFW4LgWGQl3wDhx8YG/SRioDHJdZqnQFr4r/R6 ZNVfwx/IuTvXt8dTwF9nz4+gSf0eDtuX6/JtgxmACrEjUo9af7o1+VNyOTlwIw== X-Gm-Gg: ASbGncsuB+1MMF7jQQmAAUslV5fyDuMFhGAvl/zVWrBmoRNXU46oUWNssP1mGS+Y/No fOF30rZ24cN+XDUrxFq6J+ILoq+FkLZ+w3gyviE4hY0mtA01y4IwLawtzBsNKbB0XY/XQwNsJRa JkbhUVlHmYBpBINr82wWIYVo+VQwJeijQ3shX1mRjq7+54ztbfIVHScof7wP8T9g0Tp7E+1dZJx IgdfXtjjcsHqAuJmnzV2P2N4i2HBNj7HykD/22nKKOXq/GjdKI5TRbJ4x+ZYU7Bt9mJx7whA3Ym LVWzEFk7G3Y23GEdQaf37aajjpNZJi51yHyqBe756sz1NF5ibmNWpbw49Tnva8j1YHA9D1ifGES qB3HDVfY5NWuRWJ/DHtu2I1tw X-Google-Smtp-Source: AGHT+IGnaTv0Q+DRlcVbN5y4zsHMdhdrjB+ObLAS0XR7cj7jrlqqKEXVmOzchdx3MpMmVfKLAMOZgg== X-Received: by 2002:a17:902:f607:b0:224:a74:28c2 with SMTP id d9443c01a7336-2292f978411mr31223335ad.29.1743226159638; Fri, 28 Mar 2025 22:29:19 -0700 (PDT) Received: from ?IPv6:2601:642:4c01:ba0e:84b6:74db:94fe:503f? ([2601:642:4c01:ba0e:84b6:74db:94fe:503f]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2291eedf91asm28096905ad.58.2025.03.28.22.29.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 22:29:18 -0700 (PDT) Message-ID: Subject: Re: Statistics Import and Export From: Jeff Davis To: Corey Huinker Cc: Robert Treat , Robert Haas , Andres Freund , Nathan Bossart , Tom Lane , Michael Paquier , jian he , Bruce Momjian , Matthias van de Meent , Magnus Hagander , Stephen Frost , Ashutosh Bapat , Peter Smith , PostgreSQL Hackers , alvherre@alvh.no-ip.org Date: Fri, 28 Mar 2025 22:29:16 -0700 In-Reply-To: References: <6af48508a32499a8be3398cafffd29fb6188c44b.camel@j-davis.com> <6rpmhyrtci4epuzay7y5xvd2cwdwb6zmtt6ofxrvakyawxhm7s@6grajbpr4kij> <5812bf576f181e2f94944cab485cee46f611ed3e.camel@j-davis.com> <0576fa4dbd6e62e027b41e0ef9254896540f1cb4.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-KnvCZze8zSpOepw3lGra" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-KnvCZze8zSpOepw3lGra Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2025-03-28 at 21:11 -0400, Corey Huinker wrote: > A rebase and a reordering of the commits to put the really-really- > must-have relallfrozen ahead of the really-must-have stats batching > and both of them head of the error->warning step-downs. v11-0001 has a couple issues: The first is that i_relallfrozen is undefined in versions earlier than 18. That's trivial to fix, we just add "0 AS relallfrozen," in the earlier versions, but still refrain from outputting it. The second is that the pg_upgrade test (when run with olddump/oldinstall) compares the before and after dumps, and if the "before" version is 17, then it will not have the relallfrozen argument to pg_restore_relation_stats. We might need a filtering step in adjust_new_dumpfile? Attached new v11j-0001 Regards, Jeff Davis --=-KnvCZze8zSpOepw3lGra Content-Disposition: attachment; filename="v11j-0001-Add-relallfrozen-to-pg_dump-statistics.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v11j-0001-Add-relallfrozen-to-pg_dump-statistics.patch"; charset="UTF-8" RnJvbSAxNTRiOGI1YzEwZWMzMzBjMjZjY2Q5MDA2YzQzNGE3ZGIxZmVlZjA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCAxNSBNYXIgMjAyNSAxNzozNDozMCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djExal0gQWRkIHJlbGFsbGZyb3plbiB0byBwZ19kdW1wIHN0YXRpc3RpY3MuCgpBdXRob3I6IENv cmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1kZXNDdWYzZFZIYXNBRHZkVVZSbWItNWdPMG1oTU81dTluemd2 Nmk3VTg2UUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAg ICAgICAgICAgICAgICAgICB8IDQyICsrKysrKysrKysrKysrKy0tLS0KIHNyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcGVybC9Qb3N0Z3JlU1FM L1Rlc3QvQWRqdXN0VXBncmFkZS5wbSAgICAgfCAgNSArKysKIDQgZmlsZXMgY2hhbmdlZCwgNDMg aW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA4NGE3ODYyNTgy MC4uNGNhMzRiZTIzMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNjg3NCw3ICs2ODc0LDggQEAgZ2V0RnVu Y3MoQXJjaGl2ZSAqZm91dCkKICAqLwogc3RhdGljIFJlbFN0YXRzSW5mbyAqCiBnZXRSZWxhdGlv blN0YXRpc3RpY3MoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKnJlbCwgaW50MzIgcmVs cGFnZXMsCi0JCQkJCSAgY2hhciAqcmVsdHVwbGVzLCBpbnQzMiByZWxhbGx2aXNpYmxlLCBjaGFy IHJlbGtpbmQsCisJCQkJCSAgY2hhciAqcmVsdHVwbGVzLCBpbnQzMiByZWxhbGx2aXNpYmxlLAor CQkJCQkgIGludDMyIHJlbGFsbGZyb3plbiwgY2hhciByZWxraW5kLAogCQkJCQkgIGNoYXIgKipp bmRBdHROYW1lcywgaW50IG5pbmRBdHROYW1lcykKIHsKIAlpZiAoIWZvdXQtPmRvcHQtPmR1bXBT dGF0aXN0aWNzKQpAQCAtNjkwMyw2ICs2OTA0LDcgQEAgZ2V0UmVsYXRpb25TdGF0aXN0aWNzKEFy Y2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpyZWwsIGludDMyIHJlbHBhZ2VzLAogCQlpbmZv LT5yZWxwYWdlcyA9IHJlbHBhZ2VzOwogCQlpbmZvLT5yZWx0dXBsZXMgPSBwc3RyZHVwKHJlbHR1 cGxlcyk7CiAJCWluZm8tPnJlbGFsbHZpc2libGUgPSByZWxhbGx2aXNpYmxlOworCQlpbmZvLT5y ZWxhbGxmcm96ZW4gPSByZWxhbGxmcm96ZW47CiAJCWluZm8tPnJlbGtpbmQgPSByZWxraW5kOwog CQlpbmZvLT5pbmRBdHROYW1lcyA9IGluZEF0dE5hbWVzOwogCQlpbmZvLT5uaW5kQXR0TmFtZXMg PSBuaW5kQXR0TmFtZXM7CkBAIC02OTY3LDYgKzY5NjksNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAq Zm91dCwgaW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9yZWxwYWdlczsKIAlpbnQJCQlpX3JlbHR1 cGxlczsKIAlpbnQJCQlpX3JlbGFsbHZpc2libGU7CisJaW50CQkJaV9yZWxhbGxmcm96ZW47CiAJ aW50CQkJaV90b2FzdHBhZ2VzOwogCWludAkJCWlfb3duaW5nX3RhYjsKIAlpbnQJCQlpX293bmlu Z19jb2w7CkBAIC03MDE3LDggKzcwMjAsMTUgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGlu dCAqbnVtVGFibGVzKQogCQkJCQkJICJjLnJlbG93bmVyLCAiCiAJCQkJCQkgImMucmVsY2hlY2tz LCAiCiAJCQkJCQkgImMucmVsaGFzaW5kZXgsIGMucmVsaGFzcnVsZXMsIGMucmVscGFnZXMsICIK LQkJCQkJCSAiYy5yZWx0dXBsZXMsIGMucmVsYWxsdmlzaWJsZSwgYy5yZWxoYXN0cmlnZ2Vycywg IgotCQkJCQkJICJjLnJlbHBlcnNpc3RlbmNlLCAiCisJCQkJCQkgImMucmVsdHVwbGVzLCBjLnJl bGFsbHZpc2libGUsICIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKQor CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgImMucmVsYWxsZnJvemVuLCAiKTsKKwllbHNl CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiMCBBUyByZWxhbGxmcm96ZW4sICIpOwor CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkgImMucmVsaGFzdHJpZ2dlcnMs IGMucmVscGVyc2lzdGVuY2UsICIKIAkJCQkJCSAiYy5yZWxvZnR5cGUsICIKIAkJCQkJCSAiYy5y ZWxhY2wsICIKIAkJCQkJCSAiYWNsZGVmYXVsdChDQVNFIFdIRU4gYy5yZWxraW5kID0gIiBDcHBB c1N0cmluZzIoUkVMS0lORF9TRVFVRU5DRSkKQEAgLTcxODMsNiArNzE5Myw3IEBAIGdldFRhYmxl cyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAlpX3JlbHBhZ2VzID0gUFFmbnVtYmVy KHJlcywgInJlbHBhZ2VzIik7CiAJaV9yZWx0dXBsZXMgPSBQUWZudW1iZXIocmVzLCAicmVsdHVw bGVzIik7CiAJaV9yZWxhbGx2aXNpYmxlID0gUFFmbnVtYmVyKHJlcywgInJlbGFsbHZpc2libGUi KTsKKwlpX3JlbGFsbGZyb3plbiA9IFBRZm51bWJlcihyZXMsICJyZWxhbGxmcm96ZW4iKTsKIAlp X3RvYXN0cGFnZXMgPSBQUWZudW1iZXIocmVzLCAidG9hc3RwYWdlcyIpOwogCWlfb3duaW5nX3Rh YiA9IFBRZm51bWJlcihyZXMsICJvd25pbmdfdGFiIik7CiAJaV9vd25pbmdfY29sID0gUFFmbnVt YmVyKHJlcywgIm93bmluZ19jb2wiKTsKQEAgLTcyMzAsNiArNzI0MSw3IEBAIGdldFRhYmxlcyhB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkr KykKIAl7CiAJCWludDMyCQlyZWxhbGx2aXNpYmxlID0gYXRvaShQUWdldHZhbHVlKHJlcywgaSwg aV9yZWxhbGx2aXNpYmxlKSk7CisJCWludDMyCQlyZWxhbGxmcm96ZW4gPSBhdG9pKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3JlbGFsbGZyb3plbikpOwogCiAJCXRibGluZm9baV0uZG9iai5vYmpUeXBl ID0gRE9fVEFCTEU7CiAJCXRibGluZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV9yZWx0YWJsZW9pZCkpOwpAQCAtNzMzNiw3ICs3MzQ4LDcgQEAg Z2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJc3RhdHMgPSBnZXRS ZWxhdGlvblN0YXRpc3RpY3MoZm91dCwgJnRibGluZm9baV0uZG9iaiwKIAkJCQkJCQkJCQkgIHRi bGluZm9baV0ucmVscGFnZXMsCiAJCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlcywgaSwgaV9yZWx0 dXBsZXMpLAotCQkJCQkJCQkJCSAgcmVsYWxsdmlzaWJsZSwKKwkJCQkJCQkJCQkgIHJlbGFsbHZp c2libGUsIHJlbGFsbGZyb3plbiwKIAkJCQkJCQkJCQkgIHRibGluZm9baV0ucmVsa2luZCwgTlVM TCwgMCk7CiAJCQlpZiAodGJsaW5mb1tpXS5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykKIAkJ CQl0YmxpbmZvW2ldLnN0YXRzID0gc3RhdHM7CkBAIC03NjA5LDYgKzc2MjEsNyBAQCBnZXRJbmRl eGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJ CQkJaV9yZWxwYWdlcywKIAkJCQlpX3JlbHR1cGxlcywKIAkJCQlpX3JlbGFsbHZpc2libGUsCisJ CQkJaV9yZWxhbGxmcm96ZW4sCiAJCQkJaV9wYXJlbnRpZHgsCiAJCQkJaV9pbmRleGRlZiwKIAkJ CQlpX2luZG5rZXlhdHRzLApAQCAtNzY2Myw3ICs3Njc2LDE0IEBAIGdldEluZGV4ZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCSAiU0VMRUNUIHQudGFibGVvaWQsIHQub2lkLCBpLmlu ZHJlbGlkLCAiCiAJCQkJCQkgInQucmVsbmFtZSBBUyBpbmRleG5hbWUsICIKLQkJCQkJCSAidC5y ZWxwYWdlcywgdC5yZWx0dXBsZXMsIHQucmVsYWxsdmlzaWJsZSwgIgorCQkJCQkJICJ0LnJlbHBh Z2VzLCB0LnJlbHR1cGxlcywgdC5yZWxhbGx2aXNpYmxlLCAiKTsKKworCWlmIChmb3V0LT5yZW1v dGVWZXJzaW9uID49IDE4MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJ0LnJl bGFsbGZyb3plbiwgIik7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIjAg QVMgcmVsYWxsZnJvemVuLCAiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJ CQkJICJwZ19jYXRhbG9nLnBnX2dldF9pbmRleGRlZihpLmluZGV4cmVsaWQpIEFTIGluZGV4ZGVm LCAiCiAJCQkJCQkgImkuaW5ka2V5LCBpLmluZGlzY2x1c3RlcmVkLCAiCiAJCQkJCQkgImMuY29u dHlwZSwgYy5jb25uYW1lLCAiCkBAIC03Nzc5LDYgKzc3OTksNyBAQCBnZXRJbmRleGVzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaV9yZWxwYWdl cyA9IFBRZm51bWJlcihyZXMsICJyZWxwYWdlcyIpOwogCWlfcmVsdHVwbGVzID0gUFFmbnVtYmVy KHJlcywgInJlbHR1cGxlcyIpOwogCWlfcmVsYWxsdmlzaWJsZSA9IFBRZm51bWJlcihyZXMsICJy ZWxhbGx2aXNpYmxlIik7CisJaV9yZWxhbGxmcm96ZW4gPSBQUWZudW1iZXIocmVzLCAicmVsYWxs ZnJvemVuIik7CiAJaV9wYXJlbnRpZHggPSBQUWZudW1iZXIocmVzLCAicGFyZW50aWR4Iik7CiAJ aV9pbmRleGRlZiA9IFBRZm51bWJlcihyZXMsICJpbmRleGRlZiIpOwogCWlfaW5kbmtleWF0dHMg PSBQUWZudW1iZXIocmVzLCAiaW5kbmtleWF0dHMiKTsKQEAgLTc4NTAsNiArNzg3MSw3IEBAIGdl dEluZGV4ZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxl cykKIAkJCVJlbFN0YXRzSW5mbyAqcmVsc3RhdHM7CiAJCQlpbnQzMgkJcmVscGFnZXMgPSBhdG9p KFBRZ2V0dmFsdWUocmVzLCBqLCBpX3JlbHBhZ2VzKSk7CiAJCQlpbnQzMgkJcmVsYWxsdmlzaWJs ZSA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIGosIGlfcmVsYWxsdmlzaWJsZSkpOworCQkJaW50MzIJ CXJlbGFsbGZyb3plbiA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIGosIGlfcmVsYWxsZnJvemVuKSk7 CiAKIAkJCWluZHhpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX0lOREVYOwogCQkJaW5keGluZm9b al0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaiwgaV90YWJs ZW9pZCkpOwpAQCAtNzg5Miw3ICs3OTE0LDcgQEAgZ2V0SW5kZXhlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCiAJCQlyZWxzdGF0cyA9IGdldFJl bGF0aW9uU3RhdGlzdGljcyhmb3V0LCAmaW5keGluZm9bal0uZG9iaiwgcmVscGFnZXMsCiAJCQkJ CQkJCQkJCSBQUWdldHZhbHVlKHJlcywgaiwgaV9yZWx0dXBsZXMpLAotCQkJCQkJCQkJCQkgcmVs YWxsdmlzaWJsZSwgaW5kZXhraW5kLAorCQkJCQkJCQkJCQkgcmVsYWxsdmlzaWJsZSwgcmVsYWxs ZnJvemVuLCBpbmRleGtpbmQsCiAJCQkJCQkJCQkJCSBpbmRBdHROYW1lcywgbmluZEF0dE5hbWVz KTsKIAogCQkJY29udHlwZSA9ICooUFFnZXR2YWx1ZShyZXMsIGosIGlfY29udHlwZSkpOwpAQCAt MTA2MTgsOSArMTA2NDAsMTUgQEAgZHVtcFJlbGF0aW9uU3RhdHMoQXJjaGl2ZSAqZm91dCwgY29u c3QgUmVsU3RhdHNJbmZvICpyc2luZm8pCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIob3V0LCAiLFxu Iik7CiAJYXBwZW5kUFFFeHBCdWZmZXIob3V0LCAiXHQncmVscGFnZXMnLCAnJWQnOjppbnRlZ2Vy LFxuIiwgcnNpbmZvLT5yZWxwYWdlcyk7CiAJYXBwZW5kUFFFeHBCdWZmZXIob3V0LCAiXHQncmVs dHVwbGVzJywgJyVzJzo6cmVhbCxcbiIsIHJzaW5mby0+cmVsdHVwbGVzKTsKLQlhcHBlbmRQUUV4 cEJ1ZmZlcihvdXQsICJcdCdyZWxhbGx2aXNpYmxlJywgJyVkJzo6aW50ZWdlclxuKTtcbiIsCisJ YXBwZW5kUFFFeHBCdWZmZXIob3V0LCAiXHQncmVsYWxsdmlzaWJsZScsICclZCc6OmludGVnZXIi LAogCQkJCQkgIHJzaW5mby0+cmVsYWxsdmlzaWJsZSk7CiAKKwlpZiAoZm91dC0+cmVtb3RlVmVy c2lvbiA+PSAxODAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKG91dCwgIixcblx0J3JlbGFsbGZy b3plbicsICclZCc6OmludGVnZXIiLCByc2luZm8tPnJlbGFsbGZyb3plbik7CisKKwlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihvdXQsICJcbik7XG4iKTsKKworCiAJLyogZmV0Y2ggYXR0cmlidXRlIHN0 YXRzICovCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJFWEVDVVRFIGdldEF0dHJpYnV0 ZVN0YXRzKCIpOwogCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgZG9iai0+bmFtZXNwYWNl LT5kb2JqLm5hbWUsIGZvdXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNzBmN2EzNjllNGEuLmU2ZjBmODZh NDU5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ0Miw2ICs0NDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfcmVs U3RhdHNJbmZvCiAJaW50MzIJCXJlbHBhZ2VzOwogCWNoYXIJICAgKnJlbHR1cGxlczsKIAlpbnQz MgkJcmVsYWxsdmlzaWJsZTsKKwlpbnQzMgkJcmVsYWxsZnJvemVuOwogCWNoYXIJCXJlbGtpbmQ7 CQkvKiAncicsICdtJywgJ2knLCBldGMgKi8KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CmluZGV4IDUxZWJmOGFkMTNjLi41NzYzMjZkYWVjNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKQEAgLTQ3NzEsNyArNDc3MSw4IEBAIG15ICV0ZXN0cyA9ICgKIAkJCSdyZWxuYW1lJyxccydk dXBfdGVzdF9wb3N0X2RhdGFfaXgnLFxzKwogCQkJJ3JlbHBhZ2VzJyxccydcZCsnOjppbnRlZ2Vy LFxzKwogCQkJJ3JlbHR1cGxlcycsXHMnXGQrJzo6cmVhbCxccysKLQkJCSdyZWxhbGx2aXNpYmxl JyxccydcZCsnOjppbnRlZ2VyXHMrCisJCQkncmVsYWxsdmlzaWJsZScsXHMnXGQrJzo6aW50ZWdl cixccysKKwkJCSdyZWxhbGxmcm96ZW4nLFxzJ1xkKyc6OmludGVnZXJccysKIAkJCVwpO1xzKwog CQkJXFFTRUxFQ1QgKiBGUk9NIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMo XEVccysKIAkJCSd2ZXJzaW9uJyxccydcZCsnOjppbnRlZ2VyLFxzKwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvQWRqdXN0VXBncmFkZS5wbSBiL3NyYy90ZXN0L3Bl cmwvUG9zdGdyZVNRTC9UZXN0L0FkanVzdFVwZ3JhZGUucG0KaW5kZXggODFhOGY0NGFhOWYuLjA3 NTUwMjk1YTgyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9BZGp1 c3RVcGdyYWRlLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0FkanVzdFVw Z3JhZGUucG0KQEAgLTY0OCw2ICs2NDgsMTEgQEAgc3ViIGFkanVzdF9uZXdfZHVtcGZpbGUKIAkk ZHVtcCA9fiBzIHtcbihccysndmVyc2lvbicsKSAnXGQrJzo6aW50ZWdlciwkfQogCQl7JDEgJzAw MDAwMCc6OmludGVnZXIsfW1nOwogCisJaWYgKCRvbGRfdmVyc2lvbiA8IDE4KQorCXsKKwkJJGR1 bXAgPX4gcyB7LFxuKFxzKydyZWxhbGxmcm96ZW4nLCkgJ1xkKyc6OmludGVnZXIkfXt9bWc7CisJ fQorCiAJIyBwcmUtdjE2IGR1bXBzIGRvIG5vdCBrbm93IGFib3V0IFhNTFNFUklBTElaRShOTyBJ TkRFTlQpLgogCWlmICgkb2xkX3ZlcnNpb24gPCAxNikKIAl7Ci0tIAoyLjM0LjEKCg== --=-KnvCZze8zSpOepw3lGra--