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 1mX7hw-0005c0-OC for pgsql-hackers@arkaria.postgresql.org; Sun, 03 Oct 2021 20:03:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mX7hv-0001IC-Gs for pgsql-hackers@arkaria.postgresql.org; Sun, 03 Oct 2021 20:03:35 +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 1mX7hu-0001I4-Te for pgsql-hackers@lists.postgresql.org; Sun, 03 Oct 2021 20:03:35 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mX7hq-00084E-Sf for pgsql-hackers@lists.postgresql.org; Sun, 03 Oct 2021 20:03:33 +0000 Received: by mail-lf1-x12a.google.com with SMTP id j5so57861461lfg.8 for ; Sun, 03 Oct 2021 13:03:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to; bh=cgFFioRiVODghIPtoP2irCBwivbjGiIM5hoFqX+eBM4=; b=g60SMcAI3kytpOto+XUkneILCAbfLAXzPL5A9TKwd63NAofTOXfs9QacbwpQWrmuPD cK2puFNsGHGFcq2HjGyN3hiBgNIeedfZ2uK4dz1vGGdW3HkQzOAfhT++zLzQsaBXy/Bw I/vKi3BYgauOE9q6uFT3dV6m86KaPvnjI3SLgcd/wL/B3J7SqxAhwUVwVxI4A0HH6UN9 yS5LHO9auadkFPm64U7EegB2R6KiEJzF7kvxbzuY0U3tB0V8zd1fphUsDWiAZNjkabea 1Mi2eVlV0SQFf6/agZahTsJIrO1xtX5bH0oV3UR6UsozYKEAamqAJI/60BQVZ41gDQo4 3SRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to; bh=cgFFioRiVODghIPtoP2irCBwivbjGiIM5hoFqX+eBM4=; b=2d2WEoPnwk0w2hdZPPskW8fZiZMPAF/S9SqAGGltTFKohFiObxDxKYusgrutrnhnBF mSj8YVtwSwe1PebH++hlgcHiq95Xsr7r2i8X6ZWRdYhXTXHG87YgY36WDRDEfhzoc32E YvI2M2q13T1u+5zo394cGHNEKlEgo4ZSlJAixSfqwVM9aeyHNe5zgnepZFjKobYoRq29 +5GROQmVRIvzXoPXhqfLoyPI00enisOr7kWW1aln8j+jW1XOMdYECUZioadszLV0DkoC bTLV9u8ZVxTZZplhzj9TzckjmT2aiLREl7ku0X3mTc7pM1atd6XoxqHYjAm9Zin7DVlS JwXw== X-Gm-Message-State: AOAM531U/Qi0u9SdNA4DUCfuod8vl/Qex6b+IpsbIKcalw+gJfSFfGBP CPAbg0l/iOZ64qtORaKiQFY= X-Google-Smtp-Source: ABdhPJxEaucg5bX0pHNqfD1TRlsyc4VleMP/lJE/1o7rYntvc5D9ZfcAwzXrh9vHrDMJhC38gRueag== X-Received: by 2002:a19:4344:: with SMTP id m4mr10179016lfj.155.1633291408201; Sun, 03 Oct 2021 13:03:28 -0700 (PDT) Received: from [192.168.1.3] ([46.138.249.39]) by smtp.gmail.com with ESMTPSA id f20sm1409956lfs.65.2021.10.03.13.03.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 03 Oct 2021 13:03:27 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------p0qO50h0RIDH5QNATMD7TZzv" Message-ID: Date: Sun, 3 Oct 2021 23:03:25 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.1 Subject: Re: very long record lines in expanded psql output Content-Language: en-US To: Zhihong Yu Cc: Andrew Dunstan , PostgreSQL Hackers References: <998a8549-f808-a349-bae6-9f44d07e050d@dunslane.net> <4e8b9a10-95aa-aecf-01a1-cbc24d643465@gmail.com> <66d23848-9f73-abc9-2fbb-3b8abfbb2fce@dunslane.net> <0efd52b9-450a-7636-fb75-663bc2d81b34@gmail.com> <92258bb8-8b9d-8f70-6f34-b5499215204c@dunslane.net> <7f3ef168-0958-a33d-6911-bda8999c30c2@gmail.com> <15de79ff-b872-498f-8b9c-ced62f460936@dunslane.net> <7bbc7e80-ca37-b601-9081-68d2e84b42af@gmail.com> <775442a6-6176-bff6-20ce-22ba1688cb5e@dunslane.net> <784205fd-ca87-68df-983c-b1c94ad9d6f0@gmail.com> From: Platon Pronko 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. --------------p0qO50h0RIDH5QNATMD7TZzv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > Hi, > > + pg_log_error("\\pset: allowed xheader_width values are full > (default), column, page, or an number specifying exact width."); > > an number specifying -> a number specifying > > Cheers > Fixed, attaching the updated patch. Thank you! Best regards, Platon Pronko --------------p0qO50h0RIDH5QNATMD7TZzv Content-Type: text/x-patch; charset=UTF-8; name="fix-header-lines-in-expanded-output.patch" Content-Disposition: attachment; filename="fix-header-lines-in-expanded-output.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCAxNGUwYTRkYmUzLi43OGQyN2NhZWZhIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yNzk5LDYgKzI3OTksMzIgQEAgbG9faW1w b3J0IDE1MjgwMQogICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxs aXRlcmFsPnhoZWFkZXJfd2lkdGg8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTZXRzIGV4cGFuZGVkIGhlYWRl ciB3aWR0aCB0byBvbmUgb2YgPGxpdGVyYWw+ZnVsbDwvbGl0ZXJhbD4sCisgICAgICAgICAg PGxpdGVyYWw+Y29sdW1uPC9saXRlcmFsPiwKKyAgICAgICAgICA8bGl0ZXJhbD5wYWdlPC9s aXRlcmFsPiwKKyAgICAgICAgICBvciA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ aW50ZWdlciB2YWx1ZTwvcmVwbGFjZWFibGU+LgorICAgICAgICAgIDwvcGFyYT4KKworICAg ICAgICAgIDxwYXJhPjxsaXRlcmFsPmZ1bGw8L2xpdGVyYWw+IGlzIHRoZSBkZWZhdWx0IG9w dGlvbiAtIGV4cGFuZGVkIGhlYWRlcgorICAgICAgICAgIGlzIG5vdCB0cnVuY2F0ZWQuCisg ICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgPHBhcmE+PGxpdGVyYWw+Y29sdW1uPC9s aXRlcmFsPjogZG9uJ3QgcHJpbnQgaGVhZGVyIGxpbmUgcGFzdCB0aGUgZmlyc3QKKyAgICAg ICAgICBjb2x1bW4uCisgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgPHBhcmE+PGxp dGVyYWw+cGFnZTwvbGl0ZXJhbD46IGZpdCBoZWFkZXIgbGluZSB0byB0ZXJtaW5hbCB3aWR0 aC4KKyAgICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgICA8cGFyYT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+aW50ZWdlciB2YWx1ZTwvcmVwbGFjZWFibGU+OiBzcGVjaWZ5 IGV4YWN0IHdpZHRoIG9mIGhlYWRlciBsaW5lLgorICAgICAgICAgIDwvcGFyYT4KKyAgICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICAg ICAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgICA8dGVybT48bGl0ZXJhbD5maWVsZHNlcDwv bGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggNDlk NGMwZTNjZS4uODAxODEwYWJhOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQu YworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC00MzEwLDYgKzQzMTAsMzIgQEAg ZG9fcHNldChjb25zdCBjaGFyICpwYXJhbSwgY29uc3QgY2hhciAqdmFsdWUsIHByaW50UXVl cnlPcHQgKnBvcHQsIGJvb2wgcXVpZXQpCiAJCQlwb3B0LT50b3B0LmV4cGFuZGVkID0gIXBv cHQtPnRvcHQuZXhwYW5kZWQ7CiAJfQogCisJLyogaGVhZGVyIGxpbmUgd2lkdGggaW4gZXhw YW5kZWQgbW9kZSAqLworCWVsc2UgaWYgKHN0cmNtcChwYXJhbSwgInhoZWFkZXJfd2lkdGgi KSA9PSAwKQorCXsKKwkJaWYgKHZhbHVlICYmIHBnX3N0cmNhc2VjbXAodmFsdWUsICJmdWxs IikgPT0gMCkKKwkJCXBvcHQtPnRvcHQuZXhwYW5kZWRfaGVhZGVyX3dpZHRoX3R5cGUgPSBQ UklOVF9YSEVBREVSX0ZVTEw7CisJCWVsc2UgaWYgKHZhbHVlICYmIHBnX3N0cmNhc2VjbXAo dmFsdWUsICJjb2x1bW4iKSA9PSAwKQorCQkJcG9wdC0+dG9wdC5leHBhbmRlZF9oZWFkZXJf d2lkdGhfdHlwZSA9IFBSSU5UX1hIRUFERVJfQ09MVU1OOworCQllbHNlIGlmICh2YWx1ZSAm JiBwZ19zdHJjYXNlY21wKHZhbHVlLCAicGFnZSIpID09IDApCisJCQlwb3B0LT50b3B0LmV4 cGFuZGVkX2hlYWRlcl93aWR0aF90eXBlID0gUFJJTlRfWEhFQURFUl9QQUdFOworCQllbHNl IGlmICh2YWx1ZSkKKwkJeworCQkJcG9wdC0+dG9wdC5leHBhbmRlZF9oZWFkZXJfd2lkdGhf dHlwZSA9IFBSSU5UX1hIRUFERVJfRVhBQ1RfV0lEVEg7CisJCQlwb3B0LT50b3B0LmV4cGFu ZGVkX2hlYWRlcl9leGFjdF93aWR0aCA9IGF0b2kodmFsdWUpOworCQkJaWYgKHBvcHQtPnRv cHQuZXhwYW5kZWRfaGVhZGVyX2V4YWN0X3dpZHRoID09IDApCisJCQl7CisJCQkJcGdfbG9n X2Vycm9yKCJcXHBzZXQ6IGFsbG93ZWQgeGhlYWRlcl93aWR0aCB2YWx1ZXMgYXJlIGZ1bGwg KGRlZmF1bHQpLCBjb2x1bW4sIHBhZ2UsIG9yIGEgbnVtYmVyIHNwZWNpZnlpbmcgZXhhY3Qg d2lkdGguIik7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQorCQl9CisJCWVsc2UKKwkJewor CQkJLyogcmVzZXQgdG8gZGVmYXVsdCBpZiB2YWx1ZSBpcyBlbXB0eSAqLworCQkJcG9wdC0+ dG9wdC5leHBhbmRlZF9oZWFkZXJfd2lkdGhfdHlwZSA9IFBSSU5UX1hIRUFERVJfRlVMTDsK KwkJfQorCX0KKwogCS8qIGZpZWxkIHNlcGFyYXRvciBmb3IgQ1NWIGZvcm1hdCAqLwogCWVs c2UgaWYgKHN0cmNtcChwYXJhbSwgImNzdl9maWVsZHNlcCIpID09IDApCiAJewpAQCAtNDUw Miw2ICs0NTI4LDE5IEBAIHByaW50UHNldEluZm8oY29uc3QgY2hhciAqcGFyYW0sIHByaW50 UXVlcnlPcHQgKnBvcHQpCiAJCQlwcmludGYoXygiRXhwYW5kZWQgZGlzcGxheSBpcyBvZmYu XG4iKSk7CiAJfQogCisJLyogc2hvdyB4aGVhZGVyIHdpZHRoIHR5cGUgKi8KKwllbHNlIGlm IChzdHJjbXAocGFyYW0sICJ4aGVhZGVyX3dpZHRoIikgPT0gMCkKKwl7CisJCWlmIChwb3B0 LT50b3B0LmV4cGFuZGVkX2hlYWRlcl93aWR0aF90eXBlID09IFBSSU5UX1hIRUFERVJfRlVM TCkKKwkJCXByaW50ZihfKCJFeHBhbmRlZCBoZWFkZXIgd2lkdGggaXMgJ2Z1bGwnLlxuIikp OworCQllbHNlIGlmIChwb3B0LT50b3B0LmV4cGFuZGVkX2hlYWRlcl93aWR0aF90eXBlID09 IFBSSU5UX1hIRUFERVJfQ09MVU1OKQorCQkJcHJpbnRmKF8oIkV4cGFuZGVkIGhlYWRlciB3 aWR0aCBpcyAnY29sdW1uJy5cbiIpKTsKKwkJZWxzZSBpZiAocG9wdC0+dG9wdC5leHBhbmRl ZF9oZWFkZXJfd2lkdGhfdHlwZSA9PSBQUklOVF9YSEVBREVSX1BBR0UpCisJCQlwcmludGYo XygiRXhwYW5kZWQgaGVhZGVyIHdpZHRoIGlzICdwYWdlJy5cbiIpKTsKKwkJZWxzZSBpZiAo cG9wdC0+dG9wdC5leHBhbmRlZF9oZWFkZXJfd2lkdGhfdHlwZSA9PSBQUklOVF9YSEVBREVS X0VYQUNUX1dJRFRIKQorCQkJcHJpbnRmKF8oIkV4cGFuZGVkIGhlYWRlciB3aWR0aCBpcyAl ZC5cbiIpLCBwb3B0LT50b3B0LmV4cGFuZGVkX2hlYWRlcl9leGFjdF93aWR0aCk7CisJfQor CiAJLyogc2hvdyBmaWVsZCBzZXBhcmF0b3IgZm9yIENTViBmb3JtYXQgKi8KIAllbHNlIGlm IChzdHJjbXAocGFyYW0sICJjc3ZfZmllbGRzZXAiKSA9PSAwKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYwppbmRleCA1Y2Q1ODM4NjY4Li5lM2UzYmRjNzA5IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CkBAIC00MTY4LDEzICs0MTY4LDE2IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0 ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkJCQkgInRhYmxlYXR0ciIsICJ0aXRsZSIs ICJ0dXBsZXNfb25seSIsCiAJCQkJCQkgInVuaWNvZGVfYm9yZGVyX2xpbmVzdHlsZSIsCiAJ CQkJCQkgInVuaWNvZGVfY29sdW1uX2xpbmVzdHlsZSIsCi0JCQkJCQkgInVuaWNvZGVfaGVh ZGVyX2xpbmVzdHlsZSIpOworCQkJCQkJICJ1bmljb2RlX2hlYWRlcl9saW5lc3R5bGUiLAor CQkJCQkJICJ4aGVhZGVyX3dpZHRoIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxw c2V0IiwgTWF0Y2hBbnkpKQogCXsKIAkJaWYgKFRhaWxNYXRjaGVzQ1MoImZvcm1hdCIpKQog CQkJQ09NUExFVEVfV0lUSF9DUygiYWxpZ25lZCIsICJhc2NpaWRvYyIsICJjc3YiLCAiaHRt bCIsICJsYXRleCIsCiAJCQkJCQkJICJsYXRleC1sb25ndGFibGUiLCAidHJvZmYtbXMiLCAi dW5hbGlnbmVkIiwKIAkJCQkJCQkgIndyYXBwZWQiKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNo ZXNDUygieGhlYWRlcl93aWR0aCIpKQorCQkJQ09NUExFVEVfV0lUSF9DUygiZnVsbCIsICJj b2x1bW4iLCAicGFnZSIpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJsaW5lc3R5bGUi KSkKIAkJCUNPTVBMRVRFX1dJVEhfQ1MoImFzY2lpIiwgIm9sZC1hc2NpaSIsICJ1bmljb2Rl Iik7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoInBhZ2VyIikpCmRpZmYgLS1naXQgYS9z cmMvZmVfdXRpbHMvcHJpbnQuYyBiL3NyYy9mZV91dGlscy9wcmludC5jCmluZGV4IGQ0OGZj YzRhMDMuLjFlOTQ3NzJiOGIgMTAwNjQ0Ci0tLSBhL3NyYy9mZV91dGlscy9wcmludC5jCisr KyBiL3NyYy9mZV91dGlscy9wcmludC5jCkBAIC0xMTUyLDE1ICsxMTUyLDE2IEBAIGNsZWFu dXA6CiAKIAogc3RhdGljIHZvaWQKLXByaW50X2FsaWduZWRfdmVydGljYWxfbGluZShjb25z dCBwcmludFRleHRGb3JtYXQgKmZvcm1hdCwKLQkJCQkJCQljb25zdCB1bnNpZ25lZCBzaG9y dCBvcHRfYm9yZGVyLAorcHJpbnRfYWxpZ25lZF92ZXJ0aWNhbF9saW5lKGNvbnN0IHByaW50 VGFibGVPcHQgKnRvcHQsCiAJCQkJCQkJdW5zaWduZWQgbG9uZyByZWNvcmQsCiAJCQkJCQkJ dW5zaWduZWQgaW50IGh3aWR0aCwKIAkJCQkJCQl1bnNpZ25lZCBpbnQgZHdpZHRoLAorCQkJ CQkJCWludCBvdXRwdXRfY29sdW1ucywKIAkJCQkJCQlwcmludFRleHRSdWxlIHBvcywKIAkJ CQkJCQlGSUxFICpmb3V0KQogewotCWNvbnN0IHByaW50VGV4dExpbmVGb3JtYXQgKmxmb3Jt YXQgPSAmZm9ybWF0LT5scnVsZVtwb3NdOworCWNvbnN0IHByaW50VGV4dExpbmVGb3JtYXQg Kmxmb3JtYXQgPSAmZ2V0X2xpbmVfc3R5bGUodG9wdCktPmxydWxlW3Bvc107CisJY29uc3Qg dW5zaWduZWQgc2hvcnQgb3B0X2JvcmRlciA9IHRvcHQtPmJvcmRlcjsKIAl1bnNpZ25lZCBp bnQgaTsKIAlpbnQJCQlyZWNsZW4gPSAwOwogCkBAIC0xMTg5LDggKzExOTAsMTggQEAgcHJp bnRfYWxpZ25lZF92ZXJ0aWNhbF9saW5lKGNvbnN0IHByaW50VGV4dEZvcm1hdCAqZm9ybWF0 LAogCQlpZiAocmVjbGVuLS0gPD0gMCkKIAkJCWZwdXRzKGxmb3JtYXQtPmhydWxlLCBmb3V0 KTsKIAkJaWYgKHJlY2xlbi0tIDw9IDApCi0JCQlmcHV0cyhsZm9ybWF0LT5taWR2cnVsZSwg Zm91dCk7Ci0JCWlmIChyZWNsZW4tLSA8PSAwKQorCQl7CisJCQlpZiAodG9wdC0+ZXhwYW5k ZWRfaGVhZGVyX3dpZHRoX3R5cGUgPT0gUFJJTlRfWEhFQURFUl9DT0xVTU4pCisJCQl7CisJ CQkJZnB1dHMobGZvcm1hdC0+cmlnaHR2cnVsZSwgZm91dCk7CisJCQl9CisJCQllbHNlCisJ CQl7CisJCQkJZnB1dHMobGZvcm1hdC0+bWlkdnJ1bGUsIGZvdXQpOworCQkJfQorCQl9CisJ CWlmIChyZWNsZW4tLSA8PSAwCisJCQkmJiB0b3B0LT5leHBhbmRlZF9oZWFkZXJfd2lkdGhf dHlwZSAhPSBQUklOVF9YSEVBREVSX0NPTFVNTikKIAkJCWZwdXRzKGxmb3JtYXQtPmhydWxl LCBmb3V0KTsKIAl9CiAJZWxzZQpAQCAtMTE5OCwxMiArMTIwOSw0MSBAQCBwcmludF9hbGln bmVkX3ZlcnRpY2FsX2xpbmUoY29uc3QgcHJpbnRUZXh0Rm9ybWF0ICpmb3JtYXQsCiAJCWlm IChyZWNsZW4tLSA8PSAwKQogCQkJZnB1dGMoJyAnLCBmb3V0KTsKIAl9Ci0JaWYgKHJlY2xl biA8IDApCi0JCXJlY2xlbiA9IDA7Ci0JZm9yIChpID0gcmVjbGVuOyBpIDwgZHdpZHRoOyBp KyspCi0JCWZwdXRzKG9wdF9ib3JkZXIgPiAwID8gbGZvcm1hdC0+aHJ1bGUgOiAiICIsIGZv dXQpOwotCWlmIChvcHRfYm9yZGVyID09IDIpCi0JCWZwcmludGYoZm91dCwgIiVzJXMiLCBs Zm9ybWF0LT5ocnVsZSwgbGZvcm1hdC0+cmlnaHR2cnVsZSk7CisKKwlpZiAodG9wdC0+ZXhw YW5kZWRfaGVhZGVyX3dpZHRoX3R5cGUgIT0gUFJJTlRfWEhFQURFUl9DT0xVTU4pCisJewor CQlpZiAodG9wdC0+ZXhwYW5kZWRfaGVhZGVyX3dpZHRoX3R5cGUgPT0gUFJJTlRfWEhFQURF Ul9QQUdFCisJCQl8fCB0b3B0LT5leHBhbmRlZF9oZWFkZXJfd2lkdGhfdHlwZSA9PSBQUklO VF9YSEVBREVSX0VYQUNUX1dJRFRIKQorCQl7CisJCQlpZiAodG9wdC0+ZXhwYW5kZWRfaGVh ZGVyX3dpZHRoX3R5cGUgPT0gUFJJTlRfWEhFQURFUl9FWEFDVF9XSURUSCkKKwkJCXsKKwkJ CQlvdXRwdXRfY29sdW1ucyA9IHRvcHQtPmV4cGFuZGVkX2hlYWRlcl9leGFjdF93aWR0aDsK KwkJCX0KKwkJCWlmIChvdXRwdXRfY29sdW1ucyA+IDApCisJCQl7CisJCQkJaWYgKG9wdF9i b3JkZXIgPT0gMCkKKwkJCQkJZHdpZHRoID0gTWluKGR3aWR0aCwgTWF4KDAsIChpbnQpIChv dXRwdXRfY29sdW1ucyAtIGh3aWR0aCkpKTsKKwkJCQlpZiAob3B0X2JvcmRlciA9PSAxKQor CQkJCQlkd2lkdGggPSBNaW4oZHdpZHRoLCBNYXgoMCwgKGludCkgKG91dHB1dF9jb2x1bW5z IC0gaHdpZHRoIC0gMykpKTsKKwkJCQkvKiBIYW5kbGluZyB0aGUgeGhlYWRlciB3aWR0aCBm b3IgYm9yZGVyPTIgZG9lc24ndCBtYWtlCisJCQkJICAgbXVjaCBzZW5zZSBiZWNhdXNlIHRo aXMgZm9ybWF0IGhhcyBhbiBhZGRpdGlvbmFsCisJCQkJICAgcmlnaHQgYm9yZGVyLCBidXQg SSd2ZSBhZGRlZCB0aGlzIGFueXdheSBmb3IgY29uc2lzdGVuY3kuICovCisJCQkJaWYgKG9w dF9ib3JkZXIgPT0gMikKKwkJCQkJZHdpZHRoID0gTWluKGR3aWR0aCwgTWF4KDAsIChpbnQp IChvdXRwdXRfY29sdW1ucyAtIGh3aWR0aCAtIDcpKSk7CisJCQl9CisJCX0KKworCQlpZiAo cmVjbGVuIDwgMCkKKwkJCXJlY2xlbiA9IDA7CisJCWlmIChkd2lkdGggPCByZWNsZW4pCisJ CQlkd2lkdGggPSByZWNsZW47CisKKwkJZm9yIChpID0gcmVjbGVuOyBpIDwgZHdpZHRoOyBp KyspCisJCQlmcHV0cyhvcHRfYm9yZGVyID4gMCA/IGxmb3JtYXQtPmhydWxlIDogIiAiLCBm b3V0KTsKKwkJaWYgKG9wdF9ib3JkZXIgPT0gMikKKwkJCWZwcmludGYoZm91dCwgIiVzJXMi LCBsZm9ybWF0LT5ocnVsZSwgbGZvcm1hdC0+cmlnaHR2cnVsZSk7CisJfQorCiAJZnB1dGMo J1xuJywgZm91dCk7CiB9CiAKQEAgLTE1MDAsMTEgKzE1NDAsMTIgQEAgcHJpbnRfYWxpZ25l ZF92ZXJ0aWNhbChjb25zdCBwcmludFRhYmxlQ29udGVudCAqY29udCwKIAkJCQlsaHdpZHRo Kys7CQkvKiBmb3IgbmV3bGluZSBpbmRpY2F0b3JzICovCiAKIAkJCWlmICghb3B0X3R1cGxl c19vbmx5KQotCQkJCXByaW50X2FsaWduZWRfdmVydGljYWxfbGluZShmb3JtYXQsIG9wdF9i b3JkZXIsIHJlY29yZCsrLAotCQkJCQkJCQkJCQlsaHdpZHRoLCBkd2lkdGgsIHBvcywgZm91 dCk7CisJCQkJcHJpbnRfYWxpZ25lZF92ZXJ0aWNhbF9saW5lKGNvbnQtPm9wdCwgcmVjb3Jk KyssCisJCQkJCQkJCQkJCWxod2lkdGgsIGR3aWR0aCwgb3V0cHV0X2NvbHVtbnMsCisJCQkJ CQkJCQkJCXBvcywgZm91dCk7CiAJCQllbHNlIGlmIChpICE9IDAgfHwgIWNvbnQtPm9wdC0+ c3RhcnRfdGFibGUgfHwgb3B0X2JvcmRlciA9PSAyKQotCQkJCXByaW50X2FsaWduZWRfdmVy dGljYWxfbGluZShmb3JtYXQsIG9wdF9ib3JkZXIsIDAsIGxod2lkdGgsCi0JCQkJCQkJCQkJ CWR3aWR0aCwgcG9zLCBmb3V0KTsKKwkJCQlwcmludF9hbGlnbmVkX3ZlcnRpY2FsX2xpbmUo Y29udC0+b3B0LCAwLCBsaHdpZHRoLAorCQkJCQkJCQkJCQlkd2lkdGgsIG91dHB1dF9jb2x1 bW5zLCBwb3MsIGZvdXQpOwogCQl9CiAKIAkJLyogRm9ybWF0IHRoZSBoZWFkZXIgKi8KQEAg LTE2OTAsOCArMTczMSw4IEBAIHByaW50X2FsaWduZWRfdmVydGljYWwoY29uc3QgcHJpbnRU YWJsZUNvbnRlbnQgKmNvbnQsCiAJaWYgKGNvbnQtPm9wdC0+c3RvcF90YWJsZSkKIAl7CiAJ CWlmIChvcHRfYm9yZGVyID09IDIgJiYgIWNhbmNlbF9wcmVzc2VkKQotCQkJcHJpbnRfYWxp Z25lZF92ZXJ0aWNhbF9saW5lKGZvcm1hdCwgb3B0X2JvcmRlciwgMCwgaHdpZHRoLCBkd2lk dGgsCi0JCQkJCQkJCQkJUFJJTlRfUlVMRV9CT1RUT00sIGZvdXQpOworCQkJcHJpbnRfYWxp Z25lZF92ZXJ0aWNhbF9saW5lKGNvbnQtPm9wdCwgMCwgaHdpZHRoLCBkd2lkdGgsCisJCQkJ CQkJCQkJb3V0cHV0X2NvbHVtbnMsIFBSSU5UX1JVTEVfQk9UVE9NLCBmb3V0KTsKIAogCQkv KiBwcmludCBmb290ZXJzICovCiAJCWlmICghb3B0X3R1cGxlc19vbmx5ICYmIGNvbnQtPmZv b3RlcnMgIT0gTlVMTCAmJiAhY2FuY2VsX3ByZXNzZWQpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9mZV91dGlscy9wcmludC5oIGIvc3JjL2luY2x1ZGUvZmVfdXRpbHMvcHJpbnQuaApp bmRleCAyN2NjYmQ1MTE5Li45ZDY1ZjU4ZTA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9m ZV91dGlscy9wcmludC5oCisrKyBiL3NyYy9pbmNsdWRlL2ZlX3V0aWxzL3ByaW50LmgKQEAg LTY2LDYgKzY2LDE1IEBAIHR5cGVkZWYgZW51bSBwcmludFRleHRMaW5lV3JhcAogCVBSSU5U X0xJTkVfV1JBUF9ORVdMSU5FCQkvKiBOZXdsaW5lIGluIGRhdGEgKi8KIH0gcHJpbnRUZXh0 TGluZVdyYXA7CiAKK3R5cGVkZWYgZW51bSBwcmludFhoZWFkZXJXaWR0aFR5cGUKK3sKKwkv KiBFeHBhbmRlZCBoZWFkZXIgbGluZSB3aWR0aCB2YXJpYW50cyAqLworCVBSSU5UX1hIRUFE RVJfRlVMTCwgLyogZG8gbm90IHRydW5jYXRlIGhlYWRlciBsaW5lICh0aGlzIGlzIHRoZSBk ZWZhdWx0KSAqLworCVBSSU5UX1hIRUFERVJfQ09MVU1OLCAvKiBvbmx5IHByaW50IGhlYWRl ciBsaW5lIGFib3ZlIHRoZSBmaXJzdCBjb2x1bW4gKi8KKwlQUklOVF9YSEVBREVSX1BBR0Us IC8qIGhlYWRlciBsaW5lIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIHRlcm1pbmFsIHdpZHRo ICovCisJUFJJTlRfWEhFQURFUl9FWEFDVF9XSURUSCwgLyogZXhwbGljaXRseSBzcGVjaWZp ZWQgd2lkdGggKi8KK30gcHJpbnRYaGVhZGVyV2lkdGhUeXBlOworCiB0eXBlZGVmIHN0cnVj dCBwcmludFRleHRGb3JtYXQKIHsKIAkvKiBBIGNvbXBsZXRlIGxpbmUgc3R5bGUgKi8KQEAg LTEwMSw2ICsxMTAsOCBAQCB0eXBlZGVmIHN0cnVjdCBwcmludFRhYmxlT3B0CiAJZW51bSBw cmludEZvcm1hdCBmb3JtYXQ7CS8qIHNlZSBlbnVtIGFib3ZlICovCiAJdW5zaWduZWQgc2hv cnQgaW50IGV4cGFuZGVkOwkvKiBleHBhbmRlZC92ZXJ0aWNhbCBvdXRwdXQgKGlmIHN1cHBv cnRlZAogCQkJCQkJCQkJICogYnkgb3V0cHV0IGZvcm1hdCk7IDA9bm8sIDE9eWVzLCAyPWF1 dG8gKi8KKwlwcmludFhoZWFkZXJXaWR0aFR5cGUJZXhwYW5kZWRfaGVhZGVyX3dpZHRoX3R5 cGU7IC8qIHdpZHRoIHR5cGUgZm9yIGhlYWRlciBsaW5lIGluIGV4cGFuZGVkIG1vZGUgKi8K KwlpbnQJCQkJZXhwYW5kZWRfaGVhZGVyX2V4YWN0X3dpZHRoOyAvKiBleHBsaWNpdCB3aWR0 aCBmb3IgaGVhZGVyIGxpbmUgaW4gZXhwYW5kZWQgbW9kZSAqLwogCXVuc2lnbmVkIHNob3J0 IGludCBib3JkZXI7CS8qIFByaW50IGEgYm9yZGVyIGFyb3VuZCB0aGUgdGFibGUuIDA9bm9u ZSwKIAkJCQkJCQkJICogMT1kaXZpZGluZyBsaW5lcywgMj1mdWxsICovCiAJdW5zaWduZWQg c2hvcnQgaW50IHBhZ2VyOwkvKiB1c2UgcGFnZXIgZm9yIG91dHB1dCAoaWYgdG8gc3Rkb3V0 IGFuZApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBjYjViNWVjNzRjLi4yYmNj YjM0MDZjIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMzQyNSw2ICszNDI1 LDcgQEAgcHJpbnRUZXh0Rm9ybWF0CiBwcmludFRleHRMaW5lRm9ybWF0CiBwcmludFRleHRM aW5lV3JhcAogcHJpbnRUZXh0UnVsZQorcHJpbnRYaGVhZGVyV2lkdGhUeXBlCiBwcmludGZ1 bmMKIHByaXZfbWFwCiBwcm9jZXNzX2ZpbGVfY2FsbGJhY2tfdAo= --------------p0qO50h0RIDH5QNATMD7TZzv--