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.96) (envelope-from ) id 1w8ZKk-000fEH-35 for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Apr 2026 07:52:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w8ZKh-00ACWx-0f for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Apr 2026 07:52:47 +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.96) (envelope-from ) id 1w8ZKg-00ACWo-2P for pgsql-hackers@lists.postgresql.org; Fri, 03 Apr 2026 07:52:47 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w8ZKd-00000000L7t-3yha for pgsql-hackers@lists.postgresql.org; Fri, 03 Apr 2026 07:52:46 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-b9825ba7f9dso464245966b.0 for ; Fri, 03 Apr 2026 00:52:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1775202762; x=1775807562; darn=lists.postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=drVmNBJHxo2RcZEIl7wLRDLxEribGxZl+mfKvoNdcso=; b=XcAc9iFdVMzrM1hFemqtPLmKeZOYzNKRXhOn3OPUIGfLCcPd6wyDyNZVyXOOV5WKUZ 7wM7pjT9E6pnnZ5AUlb3eDj4LvBxwaT0Smpsc0scKEMA/UlB9EUJlsmy7fHtM0kudZCt 1lGKbbcY4drVopRWEoDWa1VaaiN/fsH9FSW3M8GDQBs7saL95zP3C6XNjUBhgn8nX29P BJ+hG1iJ8E4AFdhxtyov20g4sReJyLYTweN/ifHVzhAGJCZM5atCk/TTWUwYnU3ZPEZV t4I41natWkI4wC+Rq27xS1WDvsPF2tgW4miDNgvJnhKWOo/tKE5ikWcMKSm2E0OFPGC7 yjqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775202762; x=1775807562; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=drVmNBJHxo2RcZEIl7wLRDLxEribGxZl+mfKvoNdcso=; b=DBezgd6UKmC8IcR+lzpglgqQMtjq5xS1rSRVoZm8rwNuDIt4jXE6i21Qe6B3d+np8k weseRatGHfXVvjcVHbr++G9i5TqlWZMX2m7tCApxcAwtScw9EkyOO7KpL341JYNp/9zr uahJ1NMDodlqJtgtcznECMrxRmgq0Ifmt4KahlyTZ+tLLrPkYkDhy3UXOuCUDHorYNrt 6Mpd3H5kVv9ZFywjm1OvCq10JocdqwimbvpqjdaEIfOP3uWCT70uzyrY/Qv23NwdrtT+ AcCFj/essJs+B+utsWM/mGZ0SCH77ZeCXTk3HrTSXRkXh7+UJUAatbRbm0PMcDej2qD8 5pqA== X-Gm-Message-State: AOJu0YyE5YxCZHt7KiygqrMXDfiNcRchsivExqQsoKQ+2N1g4x/fHSbH USfdFXhtCpeVPSVYzNb7fNrTnGzc2k1QROhQbqcZmTqdWqz0kdZhXpjZjjEm924yj/w= X-Gm-Gg: AeBDiesxnCxJ54SbTPhQuyDiu3uDh9LPvWWgjkfRRoUNYNQaMRrG7NYElVACdJDCUsT 617boNSJBPN3dartWKCyODreYxE6c7xyCml3esWhTq47JVJhLnhUS0BtOakD6LRgaEis+0uorne qpucuEuIir72S4Rl8/MNStfs/p8J4NTFwKo2N53r/rFRGI81kemHEr2RQzakW74O6urfom56nU7 vZ/LI6aqM7up9ws/AilmXXaigBZYsgVlIFAsC2f0kZjcZjDete7tYr6y1YO1c6iodrUCSzsGzg8 hduipc6w7wcX/Yvm5E8DiN02NGNlvgwDeA/0Sea2QYSdFhMSboUOt6bIf+hmrRFxogwjdU9yJEH ZrtucM6uB/cWMhwa4oyY59vsB1M/ho84p8RQ/NwNF5mkYjVGqiwaLAaO+2Y6aHMpGy3nPldTsvI YHh0zUg1Xw6YawSSiB4znBgalab6oR9/dB7FcqySxSpLoqu3Wg X-Received: by 2002:a17:907:1c1b:b0:b9c:11ee:3c28 with SMTP id a640c23a62f3a-b9c658ec4c6mr97527066b.22.1775202745562; Fri, 03 Apr 2026 00:52:25 -0700 (PDT) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9c3c972e28sm172065766b.1.2026.04.03.00.52.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Apr 2026 00:52:24 -0700 (PDT) Content-Type: multipart/mixed; boundary=b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Mime-Version: 1.0 Date: Fri, 03 Apr 2026 09:52:24 +0200 Message-Id: Cc: "PostgreSQL Hackers" , "Daniel Gustafsson" Subject: Re: Add "format" target to make and ninja to run pgindent and pgperltidy To: "Peter Eisentraut" , "Andrew Dunstan" , "Tom Lane" , "Ashutosh Bapat" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <3913298.1767194804@sss.pgh.pa.us> <5611b8aa-8496-4632-92b4-e096654850d1@dunslane.net> <4645a523-8774-45d8-894e-9c83d5954155@eisentraut.org> In-Reply-To: <4645a523-8774-45d8-894e-9c83d5954155@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Type: multipart/alternative; boundary=6569e4e5f75dde424169f3c271bbfc1e201cd88d99771c74f705ef98243f --6569e4e5f75dde424169f3c271bbfc1e201cd88d99771c74f705ef98243f Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Fri Mar 27, 2026 at 2:32 PM CET, Peter Eisentraut wrote: > I have committed these two. Thanks! > v3-0003-pgindent-Use-git-ls-files-to-discover-files.patch > > This looks structurally correct, but I wonder whether this: > > my @git_files =3D `git ls-files -- @dirs`; > > could be written in a way that is more robust against funny file names.= =20 > (pgindent is also used against trees that are not stock PostgreSQL.) I have changed it to use open so the args are not string interpolated and -z so the resulting files are null-separated instead of newline-separated. Is this the kind of thing you had in mind? > v3-0004-pgindent-Default-to-indenting-the-current-directo.patch > > Note that other tools also share this behavior with pgindent: > > src/tools/pgindent/pgperltidy > src/tools/perlcheck/pgperlcritic > src/tools/perlcheck/pgperlsyncheck > > If we change one, we should change all. I think that's fair, but because the other tools don't use git ls-files I don't wanna do that in this commit. Instead I updated the later commits to not just integrate pgperltidy into pgindent, but create a new pgcheck tool that combines all of these tools (the old scripts are kept as tiny wrappers). So after committing all these tools behave the same way, not just in wheter no arguments means "current directory" but also in all the flags they accept. --6569e4e5f75dde424169f3c271bbfc1e201cd88d99771c74f705ef98243f-- --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0001-pgindent-Use-git-ls-files-to-discover-files.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0001-pgindent-Use-git-ls-files-to-discover-files.patch RnJvbSA3YmMyNDYyNTQ1N2JmYWY1NDMyMDUyM2RiNDliNDRjMmRhNGVhZDFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDMgTWFyIDIwMjYgMDk6NDM6MzMgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDEvN10gcGdpbmRlbnQ6IFVzZSBnaXQgbHMtZmlsZXMgdG8gZGlzY292ZXIgZmlsZXMKCldoZW4g cnVubmluZyBwZ2luZGVudCBvbiB0aGUgd2hvbGUgc291cmNlIHRyZWUsIGl0IHdvdWxkIG9mdGVu IGFsc28KaW5kZW50IGJ1aWxkIGFydGlmYWN0cy4gVGhpcyBjaGFuZ2VzIHRoZSBwZ2luZGVudCBk aXJlY3Rvcnkgc2VhcmNoIGxvZ2ljCnRvIGJlY29tZSBnaXQtYXdhcmUsIGFuZCBvbmx5IGluZGVu dCBmaWxlcyB0aGF0IGFyZSBhY3R1YWxseSB0cmFja2VkIGJ5CmdpdC4KCkFueSBmaWxlcyB0aGF0 IGFyZSBleHBsaWNpdGx5IHBhcnQgb2YgdGhlIHBnaW5kZW50IGl0cyBhcmd1bWVudHMsIGFyZQph bHdheXMgaW5kZW50ZWQgdGhvdWdoLCBldmVuIGlmIHRoZXkgYXJlIG5vdCB0cmFja2VkIGJ5IGdp dC4gVGhpcyBjYW4gYmUKdXNlZnVsIHRvIGZvcmNlIGluZGVudGF0aW9uIG9mIGFuIHVudHJhY2tl ZCBmaWxlIGFuZC9vciBmb3IgZWRpdG9yCmludGVncmF0aW9uLgotLS0KIHNyYy90b29scy9wZ2lu ZGVudC9wZ2luZGVudCB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgYi9zcmMvdG9vbHMvcGdpbmRlbnQv cGdpbmRlbnQKaW5kZXggYjJlYzVlMjkxNGIuLmY1YmM0YjM2NDJhIDEwMDc1NQotLS0gYS9zcmMv dG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50 CkBAIC0xMyw3ICsxMyw2IEBAIHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2Fs bCc7CiAKIHVzZSBDd2QgcXcoYWJzX3BhdGggZ2V0Y3dkKTsKLXVzZSBGaWxlOjpGaW5kOwogdXNl IEZpbGU6OlNwZWM7CiB1c2UgRmlsZTo6VGVtcDsKIHVzZSBJTzo6SGFuZGxlOwpAQCAtMzM4LDYg KzMzNyw0OSBAQCBzdWIgZGlmZgogCXJldHVybiAkZGlmZjsKIH0KIAorc3ViIGRpc2NvdmVyX2Zp bGVzCit7CisJbXkgQHBhdGhzID0gQF87CisJbXkgQGRpc2NvdmVyZWQ7CisKKwkjIFNlcGFyYXRl IGluZGl2aWR1YWwgZmlsZXMgZnJvbSBkaXJlY3RvcmllcworCW15IEBkaXJzOworCWZvcmVhY2gg bXkgJHBhdGggKEBwYXRocykKKwl7CisJCWlmICgtZiAkcGF0aCkKKwkJeworCQkJcHVzaChAZGlz Y292ZXJlZCwgJHBhdGgpOworCQl9CisJCWVsc2lmICgtZCAkcGF0aCkKKwkJeworCQkJcHVzaChA ZGlycywgJHBhdGgpOworCQl9CisJCWVsc2UKKwkJeworCQkJd2FybiAiQ291bGQgbm90IGZpbmQg JHBhdGgiOworCQl9CisJfQorCisJIyBVc2UgZ2l0IGxzLWZpbGVzIGZvciBkaXJlY3RvcmllcyB0 byBhdm9pZCBzZWFyY2hpbmcgYnVpbGQgdHJlZXMgZXRjLgorCWlmIChAZGlycykKKwl7CisJCSMg VXNlIC16IHRvIGhhbmRsZSBmaWxlcyB3aXRoIG5ld2xpbmVzIGluIHRoZWlyIG5hbWVzLCBhbmQg c3BsaXQgb24gXDAKKwkJIyBhZnRlcndhcmQuCisJCW9wZW4obXkgJGdpdF9scywgJy18JywgJ2dp dCcsICdscy1maWxlcycsICcteicsICctLScsIEBkaXJzKQorCQkgIHx8IGRpZSAiY291bGQgbm90 IG9wZW4gZ2l0IGxzLWZpbGVzOiAkISI7CisJCWJpbm1vZGUoJGdpdF9scyk7CisJCSMgU2x1cnAg YWxsIG91dHB1dCBpbnRvIGEgc2luZ2xlIHN0cmluZyBieSB0ZW1wb3JhcmlseSB1bnNldHRpbmcK KwkJIyB0aGUgbGluZSBzZXBhcmF0b3IuCisJCW15ICRnaXRfb3V0cHV0ID0gZG8geyBsb2NhbCAk LzsgPCRnaXRfbHM+IH07CisJCWNsb3NlKCRnaXRfbHMpOworCQlkaWUgImdpdCBscy1maWxlcyBl cnJvciIgaWYgJD87CisJCW15IEBnaXRfZmlsZXMgPSBzcGxpdCgvXDAvLCAkZ2l0X291dHB1dCk7 CisJCXB1c2goQGRpc2NvdmVyZWQsIGdyZXAgeyAvXC5bY2hdJC8gfSBAZ2l0X2ZpbGVzKTsKKwl9 CisKKwlyZXR1cm4gQGRpc2NvdmVyZWQ7Cit9CisKIHN1YiB1c2FnZQogewogCW15ICRtZXNzYWdl ID0gc2hpZnQ7CkBAIC0zNzMsMTYgKzQxNSw4IEBAICRmaWx0ZXJlZF90eXBlZGVmc19maCA9IGxv YWRfdHlwZWRlZnMoKTsKIAogY2hlY2tfaW5kZW50KCk7CiAKLW15ICR3YW50ZWQgPSBzdWIgewot CW15ICgkZGV2LCAkaW5vLCAkbW9kZSwgJG5saW5rLCAkdWlkLCAkZ2lkKTsKLQkoKCRkZXYsICRp bm8sICRtb2RlLCAkbmxpbmssICR1aWQsICRnaWQpID0gbHN0YXQoJF8pKQotCSAgJiYgLWYgXwot CSAgJiYgL14uKlwuW2NoXVx6L3MKLQkgICYmIHB1c2goQGZpbGVzLCAkRmlsZTo6RmluZDo6bmFt ZSk7Ci19OwotCiAjIGFueSBub24tb3B0aW9uIGFyZ3VtZW50cyBhcmUgZmlsZXMgb3IgZGlyZWN0 b3JpZXMgdG8gYmUgcHJvY2Vzc2VkCi1GaWxlOjpGaW5kOjpmaW5kKHsgd2FudGVkID0+ICR3YW50 ZWQgfSwgQEFSR1YpIGlmIEBBUkdWOworcHVzaChAZmlsZXMsIGRpc2NvdmVyX2ZpbGVzKEBBUkdW KSkgaWYgQEFSR1Y7CiAKICMgY29tbWl0IGZpbGUgbG9jYXRpb25zIGFyZSByZWxhdGl2ZSB0byB0 aGUgc291cmNlIHJvb3QKIGNoZGlyICIkc291cmNlZGlyLy4uLy4uLy4uIiBpZiBAY29tbWl0cyAm JiAkc291cmNlZGlyOwoKYmFzZS1jb21taXQ6IGVmZmFhNDY0YWZkMzU1ZTg5MjdiZjQzMGNmZTZh MGRkZDJlZTU2OTUKLS0gCjIuNTMuMAoK --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0002-pgindent-Default-to-indenting-the-current-directo.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0002-pgindent-Default-to-indenting-the-current-directo.patch RnJvbSBkM2Q0YTUyYzY2NzczNTI5YjEwYmM4MjY1NjhkZjc4YTJjYmE5MWI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDMgTWFyIDIwMjYgMjA6NTY6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDIvN10gcGdpbmRlbnQ6IERlZmF1bHQgdG8gaW5kZW50aW5nIHRoZSBjdXJyZW50IGRpcmVjdG9y eQogaWYgbm8gZmlsZXMgYXJlIGdpdmVuCgpQcmV2aW91c2x5IHJ1bm5pbmcgcGdpbmRlbnQgd2l0 aG91dCBnaXZpbmcgaXQgYW55IGZpbGVzIHdvdWxkIHJlc3VsdCBpbgp0aGlzIG91dHB1dDoKCnNy Yy90b29scy9wZ2luZGVudC9wZ2luZGVudApObyBmaWxlcyB0byBwcm9jZXNzIGF0IHNyYy90b29s cy9wZ2luZGVudC9wZ2luZGVudCBsaW5lIDUyNi4KClRoaXMgaW5zdGVhZCBpbmRlbnRzIHRoZSBj dXJyZW50IGRpcmVjdG9yeSwgd2hpY2ggaXMgcHJvYmFibHkgd2hhdCB0aGUKdXNlciBpbnRlbmRl ZC4KLS0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgfCAzICsrKwogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC9wZ2lu ZGVudCBiL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudAppbmRleCBmNWJjNGIzNjQyYS4uZTJl NmYxOTY3OGEgMTAwNzU1Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKQEAgLTYzLDYgKzYzLDkgQEAgdXNhZ2UoKSBpZiAk aGVscDsKIHVzYWdlKCJDYW5ub3QgdXNlIC0tY29tbWl0IHdpdGggY29tbWFuZCBsaW5lIGZpbGUg bGlzdCIpCiAgIGlmIChAY29tbWl0cyAmJiBAQVJHVik7CiAKKyMgZGVmYXVsdCB0byBjdXJyZW50 IGRpcmVjdG9yeSBpZiBubyBmaWxlcy9kaXJzIGdpdmVuCitAQVJHViA9ICgnLicpIHVubGVzcyBA QVJHViB8fCBAY29tbWl0czsKKwogIyBjb21tYW5kIGxpbmUgb3B0aW9uIHdpbnMsIHRoZW4gZW52 aXJvbm1lbnQsIHRoZW4gbG9jYXRpb25zIGJhc2VkIG9uIGN1cnJlbnQKICMgZGlyLCB0aGVuIGRl ZmF1bHQgbG9jYXRpb24KICR0eXBlZGVmc19maWxlIHx8PSAkRU5We1BHVFlQRURFRlN9OwotLSAK Mi41My4wCgo= --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0003-pgindent-Allow-parallel-pgindent-runs.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0003-pgindent-Allow-parallel-pgindent-runs.patch RnJvbSAxOTI0ZTVkYmQ5YTg4Y2UwMjM4ODE0ZWM0ZTVhNjdlNmYyZWVhMDJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBXZWQsIDQgTWFyIDIwMjYgMDk6MjQ6MjQgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDMvN10gcGdpbmRlbnQ6IEFsbG93IHBhcmFsbGVsIHBnaW5kZW50IHJ1bnMKClJ1bm5pbmcgcGdp bmRlbnQgb24gdGhlIHdob2xlIHNvdXJjZSB0cmVlIGNhbiB0YWtlIGEgd2hpbGUuIFRoaXMgYWRk cwpzdXBwb3J0IGZvciBwZ2luZGVudCB0byBpbmRlbnQgZmlsZXMgaW4gcGFyYWxsZWwuIFRoaXMg c3BlZWRzIHVwIGEgZnVsbApwZ2luZGVudCBydW4gZnJvbSB+NyBzZWNvbmRzIHRvIDEgc2Vjb25k IG9uIG15IG1hY2hpbmUuCgpFc3BlY2lhbGx5IHdpdGggZnV0dXJlIGNvbW1pdHMgdGhhdCBpbnRl Z3JhdGUgcGVybHRpZHkgaW50byBwZ2luZGVudCB0aGUKd2lucyBhcmUgaHVnZSwgYmVjYXVzZSBw ZXJsdGlkeSBpcyBtdWNoIHNsb3dlciBhdCBmb3JtYXR0aW5nIHRoYW4KcGdfYnNkX2luZGVudC4g V2l0aCB0aG9zZSBsYXRlciBjb21taXRzIHRoZSB0aW1lIGl0IHRha2VzIHRvIGRvIGEgZnVsbApw Z2luZGVudCBydW4gKGluY2x1ZGluZyBwZXJsdGlkeSkgdGFrZXMgbW9yZSB0aGFuIGEgbWludXRl IG9uIG15IG1hY2hpbmUKd2l0aG91dCB0aGUgcGFyYWxsZWxpemF0aW9uLCBidXQgb25seSB0YWtl IH43IHNlY29uZHMgd2hlbiBydW4gaW4KcGFyYWxsZWwuCi0tLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3BnaW5kZW50IHwgMTgxICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgYi9zcmMvdG9vbHMvcGdpbmRlbnQvcGdp bmRlbnQKaW5kZXggZTJlNmYxOTY3OGEuLmNhNTY3NThmZmFjIDEwMDc1NQotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvcGdpbmRlbnQKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50CkBA IC0xNyw2ICsxNyw3IEBAIHVzZSBGaWxlOjpTcGVjOwogdXNlIEZpbGU6OlRlbXA7CiB1c2UgSU86 OkhhbmRsZTsKIHVzZSBHZXRvcHQ6Okxvbmc7Cit1c2UgRmNudGwgcXcoOmZsb2NrKTsKIAogIyBC eSBkZWZhdWx0IFBlcmwncyBTSUdJTlQvU0lHVEVSTSBraWxsIHRoZSBwcm9jZXNzIHdpdGhvdXQg cnVubmluZwogIyBFTkQgYmxvY2tzLCBzbyBGaWxlOjpUZW1wIG5ldmVyIGdldHMgdG8gY2xlYW4g dXAuICBDb252ZXJ0aW5nIHRoZQpAQCAtNDIsMTAgKzQzLDExIEBAIG15ICRpbmRlbnRfb3B0cyA9 CiAKIG15ICRkZXZudWxsID0gRmlsZTo6U3BlYy0+ZGV2bnVsbDsKIAotbXkgKCR0eXBlZGVmc19m aWxlLCAkdHlwZWRlZl9zdHIsIEBleGNsdWRlcywgJGluZGVudCwgJGRpZmYsCi0JJGNoZWNrLCAk aGVscCwgQGNvbW1pdHMsKTsKK215ICgkdHlwZWRlZnNfZmlsZSwgJHR5cGVkZWZfc3RyLCBAZXhj bHVkZXMsICRpbmRlbnQsCisJJGRpZmYsICRjaGVjaywgJGhlbHAsIEBjb21taXRzLCAkam9icywp OwogCiAkaGVscCA9IDA7Ciskam9icyA9IDA7CiAKIG15ICVvcHRpb25zID0gKAogCSJoZWxwIiA9 PiBcJGhlbHAsCkBAIC01NSw5ICs1NywyMCBAQCBteSAlb3B0aW9ucyA9ICgKIAkiZXhjbHVkZXM9 cyIgPT4gXEBleGNsdWRlcywKIAkiaW5kZW50PXMiID0+IFwkaW5kZW50LAogCSJkaWZmIiA9PiBc JGRpZmYsCi0JImNoZWNrIiA9PiBcJGNoZWNrLCk7CisJImNoZWNrIiA9PiBcJGNoZWNrLAorCSJq b2JzfGo9aSIgPT4gXCRqb2JzLCk7CiBHZXRPcHRpb25zKCVvcHRpb25zKSB8fCB1c2FnZSgiYmFk IGNvbW1hbmQgbGluZSBhcmd1bWVudCIpOwogCitpZiAoJGpvYnMgPT0gMCkKK3sKKwkkam9icyA9 IGdldF9udW1fY3B1cygpOworfQorZWxzaWYgKCRqb2JzIDwgMCkKK3sKKwl1c2FnZSgiLS1qb2Jz IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyIik7Cit9CisKKwogdXNhZ2UoKSBpZiAkaGVs cDsKIAogdXNhZ2UoIkNhbm5vdCB1c2UgLS1jb21taXQgd2l0aCBjb21tYW5kIGxpbmUgZmlsZSBs aXN0IikKQEAgLTEwMyw2ICsxMTYsMTkgQEAgbXkgJWV4Y2x1ZGVkID0gbWFwIHsgKyIkX1xuIiA9 PiAxIH0gcXcoCiAjIGdsb2JhbHMKIG15IEBmaWxlczsKIG15ICRmaWx0ZXJlZF90eXBlZGVmc19m aDsKK215ICRzdGRvdXRfbG9ja19maDsKKworc3ViIGdldF9udW1fY3B1cworeworCSMgVHJ5IG5w cm9jIChMaW51eCwgc29tZSBCU0RzKSwgdGhlbiBzeXNjdGwgKG1hY09TLCBGcmVlQlNEKS4KKwlm b3IgbXkgJGNtZCAoJ25wcm9jJywgJ3N5c2N0bCAtbiBody5uY3B1JykKKwl7CisJCW15ICRuID0g YCRjbWQgMj4kZGV2bnVsbGA7CisJCWNob21wICRuOworCQlyZXR1cm4gJG4gKyAwIGlmICgkPyA9 PSAwICYmICRuID1+IC9eXGQrJC8gJiYgJG4gPiAwKTsKKwl9CisJcmV0dXJuIDE7Cit9CiAKIHN1 YiBjaGVja19pbmRlbnQKIHsKQEAgLTM4Myw2ICs0MDksNjcgQEAgc3ViIGRpc2NvdmVyX2ZpbGVz CiAJcmV0dXJuIEBkaXNjb3ZlcmVkOwogfQogCitzdWIgcHJvY2Vzc19maWxlCit7CisJbXkgJHNv dXJjZV9maWxlbmFtZSA9IHNoaWZ0OworCisJIyBpZ25vcmUgYW55dGhpbmcgdGhhdCdzIG5vdCBh IC5jIG9yIC5oIGZpbGUKKwlyZXR1cm4gMCB1bmxlc3MgJHNvdXJjZV9maWxlbmFtZSA9fiAvXC5b Y2hdJC87CisKKwkjIGRvbid0IHRyeSB0byBpbmRlbnQgYSBmaWxlIHRoYXQgZG9lc24ndCBleGlz dAorCXVubGVzcyAoLWYgJHNvdXJjZV9maWxlbmFtZSkKKwl7CisJCXdhcm4gIkNvdWxkIG5vdCBm aW5kICRzb3VyY2VfZmlsZW5hbWUiOworCQlyZXR1cm4gMDsKKwl9CisJIyBBdXRvbWF0aWNhbGx5 IGlnbm9yZSAuYyBhbmQgLmggZmlsZXMgdGhhdCBjb3JyZXNwb25kIHRvIGEgLnkgb3IgLmwKKwkj IGZpbGUuICBpbmRlbnQgdGVuZHMgdG8gZ2V0IGJhZGx5IGNvbmZ1c2VkIGJ5IEJpc29uL2ZsZXgg b3V0cHV0LAorCSMgYW5kIHRoZXJlJ3Mgbm8gdmFsdWUgaW4gaW5kZW50aW5nIGRlcml2ZWQgZmls ZXMgYW55d2F5LgorCW15ICRvdGhlcmZpbGUgPSAkc291cmNlX2ZpbGVuYW1lOworCSRvdGhlcmZp bGUgPX4gcy9cLltjaF0kLy55LzsKKwlyZXR1cm4gMCBpZiAkb3RoZXJmaWxlIG5lICRzb3VyY2Vf ZmlsZW5hbWUgJiYgLWYgJG90aGVyZmlsZTsKKwkkb3RoZXJmaWxlID1+IHMvXC55JC8ubC87CisJ cmV0dXJuIDAgaWYgJG90aGVyZmlsZSBuZSAkc291cmNlX2ZpbGVuYW1lICYmIC1mICRvdGhlcmZp bGU7CisKKwlteSAkc291cmNlID0gcmVhZF9zb3VyY2UoJHNvdXJjZV9maWxlbmFtZSk7CisJbXkg JG9yaWdfc291cmNlID0gJHNvdXJjZTsKKwlteSAkZXJyb3JfbWVzc2FnZSA9ICcnOworCisJJHNv dXJjZSA9IHByZV9pbmRlbnQoJHNvdXJjZSk7CisKKwkkc291cmNlID0gcnVuX2luZGVudCgkc291 cmNlLCBcJGVycm9yX21lc3NhZ2UpOworCWlmICgkc291cmNlIGVxICIiKQorCXsKKwkJcHJpbnQg U1RERVJSICJGYWlsdXJlIGluICRzb3VyY2VfZmlsZW5hbWU6ICIgLiAkZXJyb3JfbWVzc2FnZSAu ICJcbiI7CisJCXJldHVybiAzOworCX0KKworCSRzb3VyY2UgPSBwb3N0X2luZGVudCgkc291cmNl KTsKKworCWlmICgkc291cmNlIG5lICRvcmlnX3NvdXJjZSkKKwl7CisJCWlmICghJGRpZmYgJiYg ISRjaGVjaykKKwkJeworCQkJd3JpdGVfc291cmNlKCRzb3VyY2UsICRzb3VyY2VfZmlsZW5hbWUp OworCQl9CisJCWVsc2UKKwkJeworCQkJaWYgKCRkaWZmKQorCQkJeworCQkJCW15ICRvdXRwdXQg PSBkaWZmKCRzb3VyY2UsICRzb3VyY2VfZmlsZW5hbWUpOworCQkJCWZsb2NrKCRzdGRvdXRfbG9j a19maCwgTE9DS19FWCkgb3IgZGllICJmbG9jazogJCEiOworCQkJCXByaW50ICRvdXRwdXQ7CisJ CQkJU1RET1VULT5mbHVzaCgpOworCQkJCWZsb2NrKCRzdGRvdXRfbG9ja19maCwgTE9DS19VTikg b3IgZGllICJmbG9jazogJCEiOworCQkJfQorCisJCQlyZXR1cm4gMiBpZiAkY2hlY2s7CisJCX0K Kwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3ViIHVzYWdlCiB7CiAJbXkgJG1lc3NhZ2UgPSBzaGlm dDsKQEAgLTM5OCw2ICs0ODUsNyBAQCBPcHRpb25zOgogCS0taW5kZW50PVBBVEggICAgICAgICAg IHBhdGggdG8gcGdfYnNkX2luZGVudCBwcm9ncmFtCiAJLS1kaWZmICAgICAgICAgICAgICAgICAg c2hvdyB0aGUgY2hhbmdlcyB0aGF0IHdvdWxkIGJlIG1hZGUKIAktLWNoZWNrICAgICAgICAgICAg ICAgICBleGl0IHdpdGggc3RhdHVzIDIgaWYgYW55IGNoYW5nZXMgd291bGQgYmUgbWFkZQorCS0t am9icz1OLCAtaiBOICAgICAgICAgIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzICgwID0gbnVt IENQVXMsIGRlZmF1bHQgMCkKIFRoZSAtLWV4Y2x1ZGVzIGFuZCAtLWNvbW1pdCBvcHRpb25zIGNh biBiZSBnaXZlbiBtb3JlIHRoYW4gb25jZS4KIEVPRgogCWlmICgkaGVscCkKQEAgLTQzOSw2NyAr NTI3LDU2IEBAIHdhcm4gIk5vIGZpbGVzIHRvIHByb2Nlc3MiIHVubGVzcyBAZmlsZXM7CiAjIHJl bW92ZSBleGNsdWRlZCBmaWxlcyBmcm9tIHRoZSBmaWxlIGxpc3QKIHByb2Nlc3NfZXhjbHVkZSgp OwogCi1teSAlcHJvY2Vzc2VkOwotbXkgJHN0YXR1cyA9IDA7CisjIFVzZWQgYnkgZm9ya2VkIGNo aWxkcmVuIHRvIHNlcmlhbGl6ZSBkaWZmIG91dHB1dCB0byBTVERPVVQgdmlhIGZsb2NrKCkuCisk c3Rkb3V0X2xvY2tfZmggPSBuZXcgRmlsZTo6VGVtcChURU1QTEFURSA9PiAicGdsb2NrWFhYWFgi KTsKIAotZm9yZWFjaCBteSAkc291cmNlX2ZpbGVuYW1lIChAZmlsZXMpCi17Ci0JIyBza2lwIGR1 cGxpY2F0ZXMKLQluZXh0IGlmICRwcm9jZXNzZWR7JHNvdXJjZV9maWxlbmFtZX07Ci0JJHByb2Nl c3NlZHskc291cmNlX2ZpbGVuYW1lfSA9IDE7CisjIGRlZHVwbGljYXRlIGZpbGUgbGlzdAorbXkg JXNlZW47CitAZmlsZXMgPSBncmVwIHsgISRzZWVueyRffSsrIH0gQGZpbGVzOwogCi0JIyBpZ25v cmUgYW55dGhpbmcgdGhhdCdzIG5vdCBhIC5jIG9yIC5oIGZpbGUKLQluZXh0IHVubGVzcyAkc291 cmNlX2ZpbGVuYW1lID1+IC9cLltjaF0kLzsKK215ICRzdGF0dXMgPSAwOwogCi0JIyBkb24ndCB0 cnkgdG8gaW5kZW50IGEgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QKLQl1bmxlc3MgKC1mICRzb3Vy Y2VfZmlsZW5hbWUpCitpZiAoJGpvYnMgPD0gMSkKK3sKKwlmb3JlYWNoIG15ICRzb3VyY2VfZmls ZW5hbWUgKEBmaWxlcykKIAl7Ci0JCXdhcm4gIkNvdWxkIG5vdCBmaW5kICRzb3VyY2VfZmlsZW5h bWUiOwotCQluZXh0OworCQlteSAkZmlsZV9zdGF0dXMgPSBwcm9jZXNzX2ZpbGUoJHNvdXJjZV9m aWxlbmFtZSk7CisJCSRzdGF0dXMgPSAkZmlsZV9zdGF0dXMgaWYgJGZpbGVfc3RhdHVzID4gJHN0 YXR1czsKKwkJbGFzdCBpZiAkY2hlY2sgJiYgJHN0YXR1cyA+PSAyICYmICEkZGlmZjsKIAl9Ci0J IyBBdXRvbWF0aWNhbGx5IGlnbm9yZSAuYyBhbmQgLmggZmlsZXMgdGhhdCBjb3JyZXNwb25kIHRv IGEgLnkgb3IgLmwKLQkjIGZpbGUuICBpbmRlbnQgdGVuZHMgdG8gZ2V0IGJhZGx5IGNvbmZ1c2Vk IGJ5IEJpc29uL2ZsZXggb3V0cHV0LAotCSMgYW5kIHRoZXJlJ3Mgbm8gdmFsdWUgaW4gaW5kZW50 aW5nIGRlcml2ZWQgZmlsZXMgYW55d2F5LgotCW15ICRvdGhlcmZpbGUgPSAkc291cmNlX2ZpbGVu YW1lOwotCSRvdGhlcmZpbGUgPX4gcy9cLltjaF0kLy55LzsKLQluZXh0IGlmICRvdGhlcmZpbGUg bmUgJHNvdXJjZV9maWxlbmFtZSAmJiAtZiAkb3RoZXJmaWxlOwotCSRvdGhlcmZpbGUgPX4gcy9c LnkkLy5sLzsKLQluZXh0IGlmICRvdGhlcmZpbGUgbmUgJHNvdXJjZV9maWxlbmFtZSAmJiAtZiAk b3RoZXJmaWxlOwotCi0JbXkgJHNvdXJjZSA9IHJlYWRfc291cmNlKCRzb3VyY2VfZmlsZW5hbWUp OwotCW15ICRvcmlnX3NvdXJjZSA9ICRzb3VyY2U7Ci0JbXkgJGVycm9yX21lc3NhZ2UgPSAnJzsK LQotCSRzb3VyY2UgPSBwcmVfaW5kZW50KCRzb3VyY2UpOworfQorZWxzZQoreworCW15ICVjaGls ZHJlbjsgICAgIyBwaWQgPT4gMQogCi0JJHNvdXJjZSA9IHJ1bl9pbmRlbnQoJHNvdXJjZSwgXCRl cnJvcl9tZXNzYWdlKTsKLQlpZiAoJHNvdXJjZSBlcSAiIikKKwlteSAkZmlsZV9pZHggPSAwOwor CXdoaWxlICgkZmlsZV9pZHggPCBzY2FsYXIoQGZpbGVzKSB8fCAlY2hpbGRyZW4pCiAJewotCQlw cmludCBTVERFUlIgIkZhaWx1cmUgaW4gJHNvdXJjZV9maWxlbmFtZTogIiAuICRlcnJvcl9tZXNz YWdlIC4gIlxuIjsKLQkJJHN0YXR1cyA9IDM7Ci0JCW5leHQ7Ci0JfQorCQkjIEZvcmsgbmV3IGNo aWxkcmVuIHVwIHRvICRqb2JzIGxpbWl0CisJCXdoaWxlICgkZmlsZV9pZHggPCBzY2FsYXIoQGZp bGVzKSAmJiBzY2FsYXIoa2V5cyAlY2hpbGRyZW4pIDwgJGpvYnMpCisJCXsKKwkJCW15ICRzb3Vy Y2VfZmlsZW5hbWUgPSAkZmlsZXNbICRmaWxlX2lkeCsrIF07CiAKLQkkc291cmNlID0gcG9zdF9p bmRlbnQoJHNvdXJjZSk7CisJCQlteSAkcGlkID0gZm9yaygpOworCQkJZGllICJmb3JrIGZhaWxl ZDogJCFcbiIgdW5sZXNzIGRlZmluZWQgJHBpZDsKIAotCWlmICgkc291cmNlIG5lICRvcmlnX3Nv dXJjZSkKLQl7Ci0JCWlmICghJGRpZmYgJiYgISRjaGVjaykKLQkJewotCQkJd3JpdGVfc291cmNl KCRzb3VyY2UsICRzb3VyY2VfZmlsZW5hbWUpOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJaWYgKCRk aWZmKQorCQkJaWYgKCRwaWQgPT0gMCkKIAkJCXsKLQkJCQlwcmludCBkaWZmKCRzb3VyY2UsICRz b3VyY2VfZmlsZW5hbWUpOworCQkJCSMgY2hpbGQKKwkJCQlteSAkY2hpbGRfc3RhdHVzID0gcHJv Y2Vzc19maWxlKCRzb3VyY2VfZmlsZW5hbWUpOworCQkJCWV4aXQgJGNoaWxkX3N0YXR1czsKIAkJ CX0KIAotCQkJaWYgKCRjaGVjaykKLQkJCXsKLQkJCQkkc3RhdHVzIHx8PSAyOwotCQkJCWxhc3Qg dW5sZXNzICRkaWZmOwotCQkJfQorCQkJJGNoaWxkcmVueyRwaWR9ID0gMTsKKwkJfQorCisJCSMg V2FpdCBmb3IgYXQgbGVhc3Qgb25lIGNoaWxkIHRvIGZpbmlzaAorCQlteSAkcGlkID0gd2FpdHBp ZCgtMSwgMCk7CisJCWlmICgkcGlkID4gMCAmJiBleGlzdHMgJGNoaWxkcmVueyRwaWR9KQorCQl7 CisJCQlkZWxldGUgJGNoaWxkcmVueyRwaWR9OworCQkJbXkgJGNoaWxkX3N0YXR1cyA9ICQ/ID4+ IDg7CisJCQkkc3RhdHVzID0gJGNoaWxkX3N0YXR1cyBpZiAkY2hpbGRfc3RhdHVzID4gJHN0YXR1 czsKIAkJfQogCX0KIH0KLS0gCjIuNTMuMAoK --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0004-pgindent-Try-to-find-pg_bsd_indent-binary-in-comm.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0004-pgindent-Try-to-find-pg_bsd_indent-binary-in-comm.patch RnJvbSBiNTE1NWIyN2ExZWUzNTI4OTE4M2Q5MDIxOTQxZGIzYmU3NDFkNjY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDMgTWFyIDIwMjYgMjM6NDY6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDQvN10gcGdpbmRlbnQ6IFRyeSB0byBmaW5kIHBnX2JzZF9pbmRlbnQgYmluYXJ5IGluIGNvbW1v bgogbG9jYXRpb25zCgpUbyBydW4gcGdpbmRlbnQgeW91IG5lZWQgdG8gdG8gaGF2ZSB0aGUgcmln aHQgdmVyc2lvbiBvZiBwZ19ic2RfaW5kZW50CmluIHlvdXIgUEFUSCwgb3Igc3BlY2lmeSBpdCBt YW51YWxseS4gVGhpcyBpcyBhIGJpdCBvZiBhIGhhc3NsZSwKZXNwZWNpYWxseSBmb3IgbmV3Y29t ZXJzIG9yIHdoZW4gd29ya2luZyBvbiBiYWNrYnJhbmNoZXMuIFNvIHRoaXMKY2huYWdlcyBwZ2lu ZGVudCB0byBzZWFyY2ggZm9yIGEgcGdfYnNkX2luZGVudCB0aGF0J3MgYnVpbHQgZnJvbSB0aGUK Y3VycmVudCBzb3VyY2VzLCBib3RoIGluLXRyZWUgKGZvciBpbi10cmVlIGF1dG9jb25mIGJ1aWxk cykgYW5kIGluIGEKYnVpbGQgZGlyZWN0b3J5IChmb3IgbWVzb24gb3IgYXV0b2NvbmYgdnBhdGgg YnVpbGRzKS4KLS0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgfCAyOCArKysrKysrKysr KysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgYi9z cmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKaW5kZXggY2E1Njc1OGZmYWMuLjI3ZWJkYmRiZjI1 IDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKKysrIGIvc3JjL3Rvb2xz L3BnaW5kZW50L3BnaW5kZW50CkBAIC04MywxMSArODMsMzMgQEAgdXNhZ2UoIkNhbm5vdCB1c2Ug LS1jb21taXQgd2l0aCBjb21tYW5kIGxpbmUgZmlsZSBsaXN0IikKICMgZGlyLCB0aGVuIGRlZmF1 bHQgbG9jYXRpb24KICR0eXBlZGVmc19maWxlIHx8PSAkRU5We1BHVFlQRURFRlN9OwogCi0jIGdl dCBpbmRlbnQgbG9jYXRpb24gZm9yIGVudmlyb25tZW50IG9yIGRlZmF1bHQKLSRpbmRlbnQgfHw9 ICRFTlZ7UEdJTkRFTlR9IHx8ICRFTlZ7SU5ERU5UfSB8fCAicGdfYnNkX2luZGVudCI7Ci0KIG15 ICRzb3VyY2VkaXIgPSBsb2NhdGVfc291cmNlZGlyKCk7CiAKKyMgZ2V0IGluZGVudCBsb2NhdGlv bjogY29tbWFuZCBsaW5lIHdpbnMsIHRoZW4gZW52aXJvbm1lbnQsIHRoZW4gdHJ5IHRvIGZpbmQK KyMgYSBjb21waWxlZCBwZ19ic2RfaW5kZW50IGluIHRoZSBzb3VyY2UgdHJlZSwgdGhlbiBmYWxs IGJhY2sgdG8gUEFUSC4KKyRpbmRlbnQgfHw9ICRFTlZ7UEdJTkRFTlR9IHx8ICRFTlZ7SU5ERU5U fTsKK2lmICghJGluZGVudCAmJiAkc291cmNlZGlyKQoreworCW15ICRzcmNyb290ID0gIiRzb3Vy Y2VkaXIvLi4vLi4vLi4iOworCW15ICRic2RfaW5kZW50X3N1YmRpciA9ICJzcmMvdG9vbHMvcGdf YnNkX2luZGVudC9wZ19ic2RfaW5kZW50IjsKKworCSMgTG9vayBmb3IgcGdfYnNkX2luZGVudDog Zmlyc3QgaW4tdHJlZSAoYXV0b2NvbmYgaW4tdHJlZSBidWlsZCksCisJIyB0aGVuIGluIGEgImJ1 aWxkIiBkaXJlY3RvcnkgKG1lc29uIG9yIGF1dG9jb25mIHZwYXRoKSwKKwkjIHRoZW4gYW55ICJi dWlsZCoiIGRpcmVjdG9yeS4KKwlmb3JlYWNoIG15ICRjYW5kaWRhdGUgKAorCQkiJHNyY3Jvb3Qv JGJzZF9pbmRlbnRfc3ViZGlyIiwKKwkJIiRzcmNyb290L2J1aWxkLyRic2RfaW5kZW50X3N1YmRp ciIsCisJCWdsb2IoIiRzcmNyb290L2J1aWxkKi8kYnNkX2luZGVudF9zdWJkaXIiKSkKKwl7CisJ CWlmICgteCAkY2FuZGlkYXRlKQorCQl7CisJCQkkaW5kZW50ID0gJGNhbmRpZGF0ZTsKKwkJCWxh c3Q7CisJCX0KKwl9Cit9CiskaW5kZW50IHx8PSAicGdfYnNkX2luZGVudCI7CisKICMgaWYgaXQn cyB0aGUgYmFzZSBvZiBhIHBvc3RncmVzIHRyZWUsIHdlIHdpbGwgZXhjbHVkZSB0aGUgZmlsZXMK ICMgcG9zdGdyZXMgd2FudHMgZXhjbHVkZWQKIGlmICgkc291cmNlZGlyKQotLSAKMi41My4wCgo= --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0005-Move-pgindent-to-separate-pgcheck-script.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0005-Move-pgindent-to-separate-pgcheck-script.patch RnJvbSA5ZmEwMWRlZmJiNmM5MjI2MTJjM2E2ZWIxMTQyMjA2YmJmMjU1MjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDMwIE1hciAyMDI2IDIzOjE2OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NCA1LzddIE1vdmUgcGdpbmRlbnQgdG8gc2VwYXJhdGUgcGdjaGVjayBzY3JpcHQKCk92ZXIgdGlt ZSBvdXIgcGdpbmRlbnQgc2NyaXB0IGhhcyBnb3R0ZW4gYSBsb3Qgb2YgcXVhbGl0eSBvZiBsaWZl CmZlYXR1cmVzLCBsaWtlIHRoZSAtLWNvbW1pdCwgLS1kaWZmLCAtLWNoZWNrLCBhbmQgLS1qb2Jz IGZsYWdzLiBPdXIKcGdwZXJsdGlkeSwgcGdwZXJsY3JpdGljIGFuZCBwZ3BlcmxzeW5jaGVjayBh cmUgbWlzc2luZyB0aGVzZSBmZWF0dXJlcy4KSW4gdGhlIG5leHQgY29tbWl0IHRoZXNlIG90aGVy IHRvb2xzIHdpbGwgZ2FpbiB0aGVzZSBxdWFsaXR5IG9mIGxpZmUKZmVhdHVyZXMgdG9vLCBieSBp bnRyb2R1Y2luZyBhIG5ldyB0b29sIGNhbGxlZCAicGdjaGVjayIgdGhhdCBjb21iaW5lcwp0aGUg ZnVuY3Rpb25hbGl0eSBvZiBhbGwgdG9vbHMuIFRoaXMgY29tbWl0IG9ubHkgZG9lczoKCiAgIGdp dCBtdiBzcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQgc3JjL3Rvb2xzL3BnY2hlY2svcGdjaGVj awoKVGhlIHJlc3VsdGluZyBwZ2NoZWNrIHNjcmlwdCBpcyBub3QgZXZlbiBmdW5jdGlvbmFsLCBz aW5jZSBzb21lIG9mIHRoZQpoYXJkY29kZWQgcmVsYXRpdmUgcGF0aHMgaW4gdGhlIHNjcmlwdCBh cmUgbm93IGluY29ycmVjdC4gVGhlIG9ubHkKcmVhc29uIHRoaXMgaXMgc2VwYXJhdGUgZnJvbSB0 aGUgbmV4dCBjb21taXQsIGlzIHRvIHRvIG1ha2UgZ2l0CnVuZGVyc3RhbmQgdGhhdCB3ZSBtb3Zl ZCB0aGUgcGdpbmRlbnQgZmlsZSwgc28gdGhlIGdpdCBoaXN0b3J5IG9mIHRoZQpwZ2luZGVudCBm aWxlIGlzIHRyYW5zZmVycmVkIG92ZXIgY29ycmVjdGx5IHRvIHRoZSBwZ2NoZWNrIGZpbGUuCi0t LQogc3JjL3Rvb2xzL3twZ2luZGVudC9wZ2luZGVudCA9PiBwZ2NoZWNrL3BnY2hlY2t9IHwgMAog MSBmaWxlIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIHJlbmFtZSBz cmMvdG9vbHMve3BnaW5kZW50L3BnaW5kZW50ID0+IHBnY2hlY2svcGdjaGVja30gKDEwMCUpCgpk aWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3BnaW5kZW50IGIvc3JjL3Rvb2xzL3BnY2hl Y2svcGdjaGVjawpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rvb2xzL3Bn aW5kZW50L3BnaW5kZW50CnJlbmFtZSB0byBzcmMvdG9vbHMvcGdjaGVjay9wZ2NoZWNrCi0tIAoy LjUzLjAKCg== --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0006-Combine-all-formatting-and-linting-tools-into-pgc.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0006-Combine-all-formatting-and-linting-tools-into-pgc.patch RnJvbSAzNWMyMzE4YTkyMDVhNGE1YzVlMzgwYWY2MjVjOTM5MTg2NTIxNjQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDMwIE1hciAyMDI2IDIzOjMxOjAzICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NCA2LzddIENvbWJpbmUgYWxsIGZvcm1hdHRpbmcgYW5kIGxpbnRpbmcgdG9vbHMgaW50byBwZ2No ZWNrCgpPdmVyIHRpbWUgb3VyIHBnaW5kZW50IHNjcmlwdCBoYXMgZ290dGVuIGEgbG90IG9mIHF1 YWxpdHkgb2YgbGlmZQpmZWF0dXJlcywgbGlrZSB0aGUgLS1jb21taXQsIC0tZGlmZiwgLS1jaGVj aywgYW5kIC0tam9icyBmbGFncy4gT3VyCnBncGVybHRpZHksIHBncGVybGNyaXRpYyBhbmQgcGdw ZXJsc3luY2hlY2sgc2NyaXB0cyB3ZXJlIG1pc3NpbmcgYWxsCnRoZXNlIGZlYXR1cmVzLiBUaGlz IGNvbW1pdCBpbnRyb2R1Y2VzIGEgbmV3IHRvb2wgY2FsbGVkICJwZ2NoZWNrIiB0aGF0CmNvbWJp bmVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFsbCB0aGVzZSB0b29scywgc28gYWxsIG9mIHRoZW0g Y2FuCmJlbmVmaXQgZnJvbSB0aGUgaW1wcm92ZW1lbnRzIHRoYXQgaGF2ZSBiZWVuIG1hZGUgdG8g cGdpbmRlbnQuIFRoZSBvbGQKc2NyaXB0cyBhcmUgc3RpbGwgYXZhaWxhYmxlIGFzIHNpbXBsZSB3 cmFwcGVycyBhcm91bmQgcGdjaGVjay4KLS0tCiAuZWRpdG9yY29uZmlnICAgICAgICAgICAgICAg ICAgICAgIHwgICA2ICsKIC5naXRhdHRyaWJ1dGVzICAgICAgICAgICAgICAgICAgICAgfCAgIDMg Kwogc3JjL3Rvb2xzL3BlcmxjaGVjay9wZ3Blcmxjcml0aWMgICB8ICAyMCArLQogc3JjL3Rvb2xz L3BlcmxjaGVjay9wZ3BlcmxzeW5jaGVjayB8ICAxNiArLQogc3JjL3Rvb2xzL3BnY2hlY2svUkVB RE1FICAgICAgICAgICB8ICAyMSArKwogc3JjL3Rvb2xzL3BnY2hlY2svcGdjaGVjayAgICAgICAg ICB8IDM4NyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3BnaW5kZW50ICAgICAgICB8ICAgOCArCiBzcmMvdG9vbHMvcGdpbmRlbnQvcGdwZXJsdGlkeSAg ICAgIHwgIDE4ICstCiA4IGZpbGVzIGNoYW5nZWQsIDM5NyBpbnNlcnRpb25zKCspLCA4MiBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdG9vbHMvcGdjaGVjay9SRUFETUUKIGNy ZWF0ZSBtb2RlIDEwMDc1NSBzcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKCmRpZmYgLS1naXQg YS8uZWRpdG9yY29uZmlnIGIvLmVkaXRvcmNvbmZpZwppbmRleCAwZWU5YmQyOGFjNC4uNGZhNmZk MWFhZGIgMTAwNjQ0Ci0tLSBhLy5lZGl0b3Jjb25maWcKKysrIGIvLmVkaXRvcmNvbmZpZwpAQCAt NjcsNiArNjcsMTIgQEAgaW5kZW50X3N0eWxlID0gc3BhY2UKIHRhYl93aWR0aCA9IHVuc2V0CiBp bmRlbnRfc2l6ZSA9IDEKIAorW3NyYy90b29scy9wZ2NoZWNrL3BnY2hlY2tdCit0cmltX3RyYWls aW5nX3doaXRlc3BhY2UgPSB0cnVlCitpbnNlcnRfZmluYWxfbmV3bGluZSA9IHRydWUKK2luZGVu dF9zdHlsZSA9IHRhYgordGFiX3dpZHRoID0gNAorCiBbKi5kYXRhXQogaW5kZW50X3N0eWxlID0g dW5zZXQKIGluZGVudF9zaXplID0gdW5zZXQKZGlmZiAtLWdpdCBhLy5naXRhdHRyaWJ1dGVzIGIv LmdpdGF0dHJpYnV0ZXMKaW5kZXggMDAwOTIxNjgzOTMuLjhlMTQxZTk2MGZkIDEwMDY0NAotLS0g YS8uZ2l0YXR0cmlidXRlcworKysgYi8uZ2l0YXR0cmlidXRlcwpAQCAtMTUsNiArMTUsOSBAQAog UkVBRE1FCQljb25mbGljdC1tYXJrZXItc2l6ZT00OAogUkVBRE1FLioJY29uZmxpY3QtbWFya2Vy LXNpemU9NDgKIAorIyBTb21lIGZpbGVzIGFyZSBwZXJsIGV2ZW4gd2l0aG91dCBwZXJseSBleHRl bnNpb25zCitzcmMvdG9vbHMvcGdjaGVjay9wZ2NoZWNrCQl3aGl0ZXNwYWNlPXNwYWNlLWJlZm9y ZS10YWIsdHJhaWxpbmctc3BhY2UsaW5kZW50LXdpdGgtbm9uLXRhYix0YWJ3aWR0aD00CisKICMg Q2VydGFpbiBkYXRhIGZpbGVzIHRoYXQgY29udGFpbiBzcGVjaWFsIHdoaXRlc3BhY2UsIGFuZCBv dGhlciBzcGVjaWFsIGNhc2VzCiAqLmRhdGEJCQkJCQktd2hpdGVzcGFjZQogY29udHJpYi9wZ2Ny eXB0by9zcWwvcGdwLWFybW9yLnNxbAkJd2hpdGVzcGFjZT0tYmxhbmstYXQtZW9sCmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGVybGNoZWNrL3BncGVybGNyaXRpYyBiL3NyYy90b29scy9wZXJsY2hl Y2svcGdwZXJsY3JpdGljCmluZGV4IDJlYzZmMjBkZTMxLi4wMjIwMDUyYWNmMCAxMDA3NTUKLS0t IGEvc3JjL3Rvb2xzL3BlcmxjaGVjay9wZ3Blcmxjcml0aWMKKysrIGIvc3JjL3Rvb2xzL3Blcmxj aGVjay9wZ3Blcmxjcml0aWMKQEAgLTEsMjAgKzEsOCBAQAogIyEvYmluL3NoCiAKLSMgc3JjL3Rv b2xzL3BlcmxjaGVjay9wZ3Blcmxjcml0aWMKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjYsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAKLXRlc3QgLWYgc3JjL3Rvb2xzL3Bl cmxjaGVjay9wZXJsY3JpdGljcmMgfHwgewotCWVjaG8gY291bGQgbm90IGZpbmQgc3JjL3Rvb2xz L3BlcmxjaGVjay9wZXJsY3JpdGljcmMKLQlleGl0IDEKLQl9CisjIFdyYXBwZXIgdGhhdCBydW5z IHBnY2hlY2sgaW4gcGVybGNyaXRpYy1vbmx5IG1vZGUuCisjIFNlZSBzcmMvdG9vbHMvcGdjaGVj ay9wZ2NoZWNrIGZvciB0aGUgZnVsbCBpbXBsZW1lbnRhdGlvbi4KIAotc2V0IC1lCi0KLSMgc2V0 IHRoaXMgdG8gb3ZlcnJpZGUgZGVmYXVsdCBwZXJsY3JpdGljIHByb2dyYW06Ci1QRVJMQ1JJVElD PSR7UEVSTENSSVRJQzotcGVybGNyaXRpY30KLQotLiBzcmMvdG9vbHMvcGVybGNoZWNrL2ZpbmRf cGVybF9maWxlcwotCi1maW5kX3BlcmxfZmlsZXMgIiRAIiB8IHhhcmdzICRQRVJMQ1JJVElDIFwK LQkgIC0tcXVpZXQgXAotCSAgLS1wcm9ncmFtLWV4dGVuc2lvbnMgLnBsIFwKLQkgIC0tcHJvZmls ZT1zcmMvdG9vbHMvcGVybGNoZWNrL3Blcmxjcml0aWNyYworZXhlYyAiJChkaXJuYW1lICIkMCIp Ly4uL3BnY2hlY2svcGdjaGVjayIgLS1wZXJsY3JpdGljICIkQCIKZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZXJsY2hlY2svcGdwZXJsc3luY2hlY2sgYi9zcmMvdG9vbHMvcGVybGNoZWNrL3BncGVy bHN5bmNoZWNrCmluZGV4IDY1N2QyYWZjYzAyLi4zOTI4MzExZTEzYSAxMDA3NTUKLS0tIGEvc3Jj L3Rvb2xzL3BlcmxjaGVjay9wZ3BlcmxzeW5jaGVjaworKysgYi9zcmMvdG9vbHMvcGVybGNoZWNr L3BncGVybHN5bmNoZWNrCkBAIC0xLDE2ICsxLDggQEAKICMhL2Jpbi9zaAogCi0jIHNjcmlwdCB0 byBkZXRlY3QgY29tcGlsZSB0aW1lIGVycm9ycyBhbmQgd2FybmluZ3MgaW4gYWxsIHBlcmwgZmls ZXMKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCiAKLUlOQ0xVREVTPSItSSBzcmMvYmFja2VuZC9jYXRhbG9nIgotSU5DTFVERVM9 Ii1JIHNyYy90ZXN0L3BlcmwgLUkgc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZSAkSU5DTFVE RVMiCi1JTkNMVURFUz0iLUkgc3JjL2Jpbi9wZ19yZXdpbmQgLUkgc3JjL3Rlc3Qvc3NsL3QgJElO Q0xVREVTIgorIyBXcmFwcGVyIHRoYXQgcnVucyBwZ2NoZWNrIGluIHBlcmwtc3luY2hlY2stb25s eSBtb2RlLgorIyBTZWUgc3JjL3Rvb2xzL3BnY2hlY2svcGdjaGVjayBmb3IgdGhlIGZ1bGwgaW1w bGVtZW50YXRpb24uCiAKLXNldCAtZQotCi0uIHNyYy90b29scy9wZXJsY2hlY2svZmluZF9wZXJs X2ZpbGVzCi0KLSMgZm9yIHpzaAotc2V0b3B0IHNod29yZHNwbGl0IDI+L2Rldi9udWxsIHx8IHRy dWUKLQotZmluZF9wZXJsX2ZpbGVzICIkQCIgfCB4YXJncyAtTCAxIHBlcmwgJElOQ0xVREVTIC1j dyAyPiYxIHwgZ3JlcCAtdiBPSworZXhlYyAiJChkaXJuYW1lICIkMCIpLy4uL3BnY2hlY2svcGdj aGVjayIgLS1wZXJsLXN5bmNoZWNrICIkQCIKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2NoZWNr L1JFQURNRSBiL3NyYy90b29scy9wZ2NoZWNrL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNDdjNjI4ZjViNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdG9v bHMvcGdjaGVjay9SRUFETUUKQEAgLTAsMCArMSwyMSBAQAorcGdjaGVjaworPT09PT09PQorCitw Z2NoZWNrIGlzIGEgdW5pZmllZCB0b29sIGZvciBmb3JtYXR0aW5nIGFuZCBjaGVja2luZyBQb3N0 Z3JlU1FMJ3MgQworYW5kIFBlcmwgY29kZS4gIEl0IGNvbnNvbGlkYXRlcyB0aGUgZnVuY3Rpb25h bGl0eSBvZiBwZ2luZGVudCwKK3BncGVybHRpZHksIHBncGVybGNyaXRpYywgYW5kIHBncGVybHN5 bmNoZWNrIGludG8gYSBzaW5nbGUgc2NyaXB0LgorVGhlIGluZGl2aWR1YWwgdG9vbCBzY3JpcHRz IHN0aWxsIGV4aXN0IGFzIHRoaW4gd3JhcHBlcnMgYXJvdW5kIHBnY2hlY2suCisKKyAgICBzcmMv dG9vbHMvcGdjaGVjay9wZ2NoZWNrCisKK0J5IGRlZmF1bHQgcGdjaGVjayBydW5zIGFsbCB0b29s cyBvbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuIFlvdSBjYW4gc2VsZWN0CitzcGVjaWZpYyBvbmVz IG9yIHVzZSBhIHZhcmlldHkgb2Ygb3B0aW9uczoKKworCXNyYy90b29scy9wZ2NoZWNrL3BnY2hl Y2sgLS1wZ2luZGVudCBzcmMgY29udHJpYgorCXNyYy90b29scy9wZ2NoZWNrL3BnY2hlY2sgLS1w ZXJsdGlkeSAtLWNvbW1pdCBIRUFEIC0tY2hlY2sgLS1kaWZmCisJc3JjL3Rvb2xzL3BnY2hlY2sv cGdjaGVjayAtLXBlcmxjcml0aWMgLS1wZXJsLXN5bmNoZWNrCisKK1J1biBwZ2NoZWNrIC0taGVs cCBmb3IgdGhlIGZ1bGwgbGlzdCBvZiBvcHRpb25zLgorCitTZWUgc3JjL3Rvb2xzL3BnaW5kZW50 L1JFQURNRSBmb3IgcHJlcmVxdWlzaXRlcyBhbmQgZGV0YWlsZWQgdXNhZ2UKK2luc3RydWN0aW9u cy4KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2NoZWNrL3BnY2hlY2sgYi9zcmMvdG9vbHMvcGdj aGVjay9wZ2NoZWNrCmluZGV4IDI3ZWJkYmRiZjI1Li5kMDU4NmU5YWU2YyAxMDA3NTUKLS0tIGEv c3JjL3Rvb2xzL3BnY2hlY2svcGdjaGVjaworKysgYi9zcmMvdG9vbHMvcGdjaGVjay9wZ2NoZWNr CkBAIC0yLDEyICsyLDIxIEBACiAKICMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjYsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAKLSMgUHJvZ3JhbSB0byBtYWludGFpbiB1bmlm b3JtIGxheW91dCBzdHlsZSBpbiBvdXIgQyBjb2RlLgorIyBVbmlmaWVkIHRvb2wgZm9yIGZvcm1h dHRpbmcgYW5kIGNoZWNraW5nIFBvc3RncmVTUUwgQyBhbmQgUGVybCBjb2RlLgorIworIyBTdXBw b3J0ZWQgdG9vbHMKKyMgICAtLXBnaW5kZW50ICAgICAgIGZvcm1hdCBDIGNvZGUgd2l0aCBwZ19i c2RfaW5kZW50CisjICAgLS1wZXJsdGlkeSAgICAgICBmb3JtYXQgUGVybCBjb2RlIHdpdGggcGVy bHRpZHkKKyMgICAtLXBlcmxjcml0aWMgICAgIGxpbnQgUGVybCBjb2RlIHdpdGggcGVybGNyaXRp YworIyAgIC0tcGVybC1zeW5jaGVjayAgc3ludGF4LWNoZWNrIFBlcmwgY29kZSB3aXRoIHBlcmwg LWN3CisjCisjIFdoZW4gbm8gdG9vbCBmbGFncyBhcmUgZ2l2ZW4sIGFsbCB0b29scyBhcmUgcnVu LgorIwogIyBFeGl0IGNvZGVzOgogIyAgIDAgLS0gYWxsIE9LCi0jICAgMSAtLSBlcnJvciBpbnZv a2luZyBwZ2luZGVudCwgbm90aGluZyBkb25lCisjICAgMSAtLSBlcnJvciBpbnZva2luZyBwZ2No ZWNrLCBub3RoaW5nIGRvbmUKICMgICAyIC0tIC0tY2hlY2sgbW9kZSBhbmQgYXQgbGVhc3Qgb25l IGZpbGUgcmVxdWlyZXMgY2hhbmdlcwotIyAgIDMgLS0gcGdfYnNkX2luZGVudCBmYWlsZWQgb24g YXQgbGVhc3Qgb25lIGZpbGUKKyMgICAzIC0tIGEgZm9ybWF0dGluZyBvciBjaGVja2luZyB0b29s IGZhaWxlZCBvbiBhdCBsZWFzdCBvbmUgZmlsZQogCiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdz IEZBVEFMID0+ICdhbGwnOwpAQCAtNDQsMTEgKzUzLDIxIEBAIG15ICRpbmRlbnRfb3B0cyA9CiBt eSAkZGV2bnVsbCA9IEZpbGU6OlNwZWMtPmRldm51bGw7CiAKIG15ICgkdHlwZWRlZnNfZmlsZSwg JHR5cGVkZWZfc3RyLCBAZXhjbHVkZXMsICRpbmRlbnQsCi0JJGRpZmYsICRjaGVjaywgJGhlbHAs IEBjb21taXRzLCAkam9icywpOworCSRkaWZmLCAkY2hlY2ssICRoZWxwLCBAY29tbWl0cywKKwkk cGVybHRpZHlfYXJnLCAkcGVybGNyaXRpY19hcmcsICRqb2JzLCk7CisKKyMgdG9vbCBzZWxlY3Rv cnMKK215ICgkZG9fcGdpbmRlbnQsICRkb19wZXJsdGlkeSwgJGRvX3Blcmxjcml0aWMsICRkb19w ZXJsX3N5bmNoZWNrKTsKIAogJGhlbHAgPSAwOwogJGpvYnMgPSAwOwogCisjIFNhdmUgQEFSR1Yg YmVmb3JlIHBhcnNpbmcgc28gd2UgY2FuIGRpc3Rpbmd1aXNoIC0tcGVybHRpZHk9UEFUSCAod2hl cmUKKyMgdGhlIHZhbHVlIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBwZXJsdGlkeSBwYXRoKSBmcm9t IC0tcGVybHRpZHkgUEFUSAorIyAod2hlcmUgUEFUSCBpcyBhIGZpbGUgdG8gZm9ybWF0IHRoYXQg R2V0b3B0OjpMb25nIGdyZWVkaWx5IGNvbnN1bWVkKS4KKyMgU2FtZSBmb3IgLS1wZXJsY3JpdGlj LgorbXkgQG9yaWdfYXJndiA9IEBBUkdWOworCiBteSAlb3B0aW9ucyA9ICgKIAkiaGVscCIgPT4g XCRoZWxwLAogCSJjb21taXQ9cyIgPT4gXEBjb21taXRzLApAQCAtNTYsNiArNzUsMTAgQEAgbXkg JW9wdGlvbnMgPSAoCiAJImxpc3Qtb2YtdHlwZWRlZnM9cyIgPT4gXCR0eXBlZGVmX3N0ciwKIAki ZXhjbHVkZXM9cyIgPT4gXEBleGNsdWRlcywKIAkiaW5kZW50PXMiID0+IFwkaW5kZW50LAorCSJw Z2luZGVudCIgPT4gXCRkb19wZ2luZGVudCwKKwkicGVybHRpZHk6cyIgPT4gXCRwZXJsdGlkeV9h cmcsCisJInBlcmxjcml0aWM6cyIgPT4gXCRwZXJsY3JpdGljX2FyZywKKwkicGVybC1zeW5jaGVj ayIgPT4gXCRkb19wZXJsX3N5bmNoZWNrLAogCSJkaWZmIiA9PiBcJGRpZmYsCiAJImNoZWNrIiA9 PiBcJGNoZWNrLAogCSJqb2JzfGo9aSIgPT4gXCRqb2JzLCk7CkBAIC03MCw2ICs5MywzMiBAQCBl bHNpZiAoJGpvYnMgPCAwKQogCXVzYWdlKCItLWpvYnMgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBu dW1iZXIiKTsKIH0KIAorIyBGb3IgLS1wZXJsdGlkeSBhbmQgLS1wZXJsY3JpdGljLCBkaXN0aW5n dWlzaCA9UEFUSCBmcm9tIGJhcmUgUEFUSC4gVGhlIFBBVEgKKyMgaW4gPVBBVEggaXMgaW50ZXJw cmV0ZWQgYXMgYSBwYXRoIHRvIHRoZSBwZXJsdGlkeS9wZXJsY3JpdGljIGJpbmFyeSwgYnV0IGEK KyMgc2VwYXJhdGVkIFBBVEggaXMgaW50ZXJwcmV0ZWQgYXMgYSBmaWxlIHRvIGJlIHByb2Nlc3Nl ZC4KK2ZvcmVhY2ggbXkgJHBhaXIgKFsgXCRwZXJsdGlkeV9hcmcsICJwZXJsdGlkeSIgXSwKKwlb IFwkcGVybGNyaXRpY19hcmcsICJwZXJsY3JpdGljIiBdKQoreworCW15ICgkcmVmLCAkbmFtZSkg PSBAJHBhaXI7CisJaWYgKGRlZmluZWQoJCRyZWYpICYmICQkcmVmIG5lICcnKQorCXsKKwkJdW5s ZXNzIChncmVwIHsgJF8gZXEgIi0tJG5hbWU9JCRyZWYiIH0gQG9yaWdfYXJndikKKwkJeworCQkJ IyBJZiBpdCdzIG5vdCA9UEFUSCBhZGQgdGhlIGFyZ3VtZW50IGJhY2sgdG8gQEFSR1YgZm9yIHBy b2Nlc3NpbmcKKwkJCSMgYXMgYSBmaWxlIGFyZ3VtZW50CisJCQl1bnNoaWZ0KEBBUkdWLCAkJHJl Zik7CisJCQkjIFNldCB0aGUgJHBlcmx0aWR5X2FyZy9wZXJsY3JpdGljX2FyZyB0byB0aGUgZW1w dHkgc3RyaW5nLCB0bworCQkJIyBpbmRpY2F0ZSBmb3IgdGhlIGxhdGVyIGNvZGUgdGhhdCB0aGUg dG9vbCB3YXMgc2VsZWN0ZWQgYnV0IG5vCisJCQkjIHBhdGggd2FzIGdpdmVuLgorCQkJJCRyZWYg PSAnJzsKKwkJfQorCX0KK30KKworIyAtLXBlcmx0aWR5IGFuZCAtLXBlcmxjcml0aWMgYXMgdG9v bCBzZWxlY3RvcnM6IGlmIGdpdmVuIChldmVuCisjIHdpdGhvdXQgYSB2YWx1ZSksIHRoZXkgc2Vs ZWN0IHRoZWlyIHJlc3BlY3RpdmUgdG9vbC4KKyRkb19wZXJsdGlkeSA9IDEgaWYgZGVmaW5lZCgk cGVybHRpZHlfYXJnKTsKKyRkb19wZXJsY3JpdGljID0gMSBpZiBkZWZpbmVkKCRwZXJsY3JpdGlj X2FyZyk7CiAKIHVzYWdlKCkgaWYgJGhlbHA7CiAKQEAgLTc5LDYgKzEyOCwyMiBAQCB1c2FnZSgi Q2Fubm90IHVzZSAtLWNvbW1pdCB3aXRoIGNvbW1hbmQgbGluZSBmaWxlIGxpc3QiKQogIyBkZWZh dWx0IHRvIGN1cnJlbnQgZGlyZWN0b3J5IGlmIG5vIGZpbGVzL2RpcnMgZ2l2ZW4KIEBBUkdWID0g KCcuJykgdW5sZXNzIEBBUkdWIHx8IEBjb21taXRzOwogCisjIElmIG5vIHRvb2wgZmxhZ3Mgd2Vy ZSBnaXZlbiwgcnVuIGV2ZXJ5dGhpbmcuCitteSAkYW55X29wID0KKwkgJGRvX3BnaW5kZW50Cisg IHx8ICRkb19wZXJsdGlkeQorICB8fCAkZG9fcGVybGNyaXRpYworICB8fCAkZG9fcGVybF9zeW5j aGVjazsKK2lmICghJGFueV9vcCkKK3sKKwkkZG9fcGdpbmRlbnQgPSAxOworCSRkb19wZXJsdGlk eSA9IDE7CisJJGRvX3Blcmxjcml0aWMgPSAxOworCSRkb19wZXJsX3N5bmNoZWNrID0gMTsKK30K KworbXkgJGRvX3BlcmxfYW55ID0gJGRvX3Blcmx0aWR5IHx8ICRkb19wZXJsY3JpdGljIHx8ICRk b19wZXJsX3N5bmNoZWNrOworCiAjIGNvbW1hbmQgbGluZSBvcHRpb24gd2lucywgdGhlbiBlbnZp cm9ubWVudCwgdGhlbiBsb2NhdGlvbnMgYmFzZWQgb24gY3VycmVudAogIyBkaXIsIHRoZW4gZGVm YXVsdCBsb2NhdGlvbgogJHR5cGVkZWZzX2ZpbGUgfHw9ICRFTlZ7UEdUWVBFREVGU307CkBAIC0x MTAsNiArMTc1LDEyIEBAIGlmICghJGluZGVudCAmJiAkc291cmNlZGlyKQogfQogJGluZGVudCB8 fD0gInBnX2JzZF9pbmRlbnQiOwogCisjIGdldCBwZXJsdGlkeSBsb2NhdGlvbjogY29tbWFuZCBs aW5lIHdpbnMsIHRoZW4gZW52aXJvbm1lbnQsIHRoZW4gUEFUSC4KK215ICRwZXJsdGlkeSA9ICRw ZXJsdGlkeV9hcmcgfHwgJEVOVntQRVJMVElEWX0gfHwgInBlcmx0aWR5IjsKKworIyBnZXQgcGVy bGNyaXRpYyBsb2NhdGlvbjogY29tbWFuZCBsaW5lIHdpbnMsIHRoZW4gZW52aXJvbm1lbnQsIHRo ZW4gUEFUSC4KK215ICRwZXJsY3JpdGljID0gJHBlcmxjcml0aWNfYXJnIHx8ICRFTlZ7UEVSTENS SVRJQ30gfHwgInBlcmxjcml0aWMiOworCiAjIGlmIGl0J3MgdGhlIGJhc2Ugb2YgYSBwb3N0Z3Jl cyB0cmVlLCB3ZSB3aWxsIGV4Y2x1ZGUgdGhlIGZpbGVzCiAjIHBvc3RncmVzIHdhbnRzIGV4Y2x1 ZGVkCiBpZiAoJHNvdXJjZWRpcikKQEAgLTE4MSw2ICsyNTIsNTcgQEAgc3ViIGNoZWNrX2luZGVu dAogCXJldHVybjsKIH0KIAorbXkgJFBFUkxUSURZX1ZFUlNJT04gPSAiMjAyMzAzMDkiOworCitz dWIgY2hlY2tfcGVybHRpZHkKK3sKKwlpZiAoISRzb3VyY2VkaXIpCisJeworCQlwcmludCBTVERF UlIKKwkJICAiQ2Fubm90IGZpbmQgcGVybHRpZHlyYzogbm90IHJ1bm5pbmcgaW5zaWRlIGEgUG9z dGdyZVNRTCBzb3VyY2UgdHJlZS5cbiI7CisJCWV4aXQgMTsKKwl9CisKKwlteSAkdmVyID0gYCRw ZXJsdGlkeSAtdiAyPiYxYDsKKwlpZiAoJD8gIT0gMCkKKwl7CisJCXByaW50IFNUREVSUgorCQkg ICJZb3UgZG8gbm90IGFwcGVhciB0byBoYXZlICRwZXJsdGlkeSBpbnN0YWxsZWQgb24geW91ciBz eXN0ZW0uXG4iCisJCSAgLiAiU2VlIHNyYy90b29scy9wZ2luZGVudC9SRUFETUUgZm9yIGluc3Rh bGxhdGlvbiBpbnN0cnVjdGlvbnMuXG4iOworCQlleGl0IDE7CisJfQorCisJaWYgKCR2ZXIgIX4g bS8kUEVSTFRJRFlfVkVSU0lPTi8pCisJeworCQlwcmludCBTVERFUlIKKwkJICAiWW91IGRvIG5v dCBhcHBlYXIgdG8gaGF2ZSAkcGVybHRpZHkgdmVyc2lvbiAkUEVSTFRJRFlfVkVSU0lPTiBpbnN0 YWxsZWQgb24geW91ciBzeXN0ZW0uXG4iCisJCSAgLiAiU2VlIHNyYy90b29scy9wZ2luZGVudC9S RUFETUUgZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuXG4iOworCQlleGl0IDE7CisJfQor CisJcmV0dXJuOworfQorCitzdWIgY2hlY2tfcGVybGNyaXRpYworeworCWlmICghJHNvdXJjZWRp cikKKwl7CisJCXByaW50IFNUREVSUgorCQkgICJDYW5ub3QgZmluZCBwZXJsY3JpdGljcmM6IG5v dCBydW5uaW5nIGluc2lkZSBhIFBvc3RncmVTUUwgc291cmNlIHRyZWUuXG4iOworCQlleGl0IDE7 CisJfQorCisJbXkgJHZlciA9IGAkcGVybGNyaXRpYyAtLXZlcnNpb24gMj4mMWA7CisJaWYgKCQ/ ICE9IDApCisJeworCQlwcmludCBTVERFUlIKKwkJICAiWW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2 ZSAkcGVybGNyaXRpYyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0uXG4iOworCQlleGl0IDE7CisJ fQorCisJcmV0dXJuOworfQorCiBzdWIgbG9jYXRlX3NvdXJjZWRpcgogewogCSMgdHJ5IGZhaXJs eSBoYXJkIHRvIGxvY2F0ZSB0aGUgc291cmNlZGlyCkBAIC0zNzIsNiArNDk0LDc4IEBAIHN1YiBy dW5faW5kZW50CiAJcmV0dXJuICRzb3VyY2U7CiB9CiAKK3N1YiBmb3JtYXRfYworeworCW15ICRz b3VyY2UgPSBzaGlmdDsKKwlteSAkc291cmNlX2ZpbGVuYW1lID0gc2hpZnQ7CisJbXkgJGVycm9y X21lc3NhZ2UgPSAnJzsKKworCW15ICRmb3JtYXR0ZWQgPSBwcmVfaW5kZW50KCRzb3VyY2UpOwor CSRmb3JtYXR0ZWQgPSBydW5faW5kZW50KCRmb3JtYXR0ZWQsIFwkZXJyb3JfbWVzc2FnZSk7CisJ aWYgKCRmb3JtYXR0ZWQgZXEgIiIpCisJeworCQlwcmludCAiRmFpbHVyZSBpbiAkc291cmNlX2Zp bGVuYW1lOiAiIC4gJGVycm9yX21lc3NhZ2UgLiAiXG4iOworCQlyZXR1cm4gKCIiLCAxKTsKKwl9 CisJcmV0dXJuIHBvc3RfaW5kZW50KCRmb3JtYXR0ZWQpOworfQorCitzdWIgZm9ybWF0X3BlcmwK K3sKKwlteSAkc291cmNlID0gc2hpZnQ7CisJbXkgJHNvdXJjZV9maWxlbmFtZSA9IHNoaWZ0Owor CisJbXkgJHRtcF9maCA9IG5ldyBGaWxlOjpUZW1wKFRFTVBMQVRFID0+ICJwZ3Blcmx0aWR5WFhY WFgiKTsKKwlteSAkdG1wX2ZpbGVuYW1lID0gJHRtcF9maC0+ZmlsZW5hbWU7CisJcHJpbnQgJHRt cF9maCAkc291cmNlOworCSR0bXBfZmgtPmNsb3NlKCk7CisKKwlteSAkcGVybHRpZHlfcHJvZmls ZSA9ICIkc291cmNlZGlyL3Blcmx0aWR5cmMiOworCW15ICRlcnIgPQorCSAgYCRwZXJsdGlkeSAt LXByb2ZpbGU9JHBlcmx0aWR5X3Byb2ZpbGUgLWIgLWJleHQ9Jy8nICR0bXBfZmlsZW5hbWUgMj4m MWA7CisJaWYgKCQ/ICE9IDApCisJeworCQlwcmludCAiRmFpbHVyZSBpbiAkc291cmNlX2ZpbGVu YW1lOiAiIC4gJGVyciAuICJcbiI7CisJCXJldHVybiAoIiIsIDEpOworCX0KKwlyZXR1cm4gcmVh ZF9zb3VyY2UoJHRtcF9maWxlbmFtZSk7Cit9CisKK3N1YiBydW5fcGVybGNyaXRpYworeworCW15 ICRzb3VyY2VfZmlsZW5hbWUgPSBzaGlmdDsKKworCW15ICRwZXJsY2hlY2tfZGlyID0gIiRzb3Vy Y2VkaXIvLi4vcGVybGNoZWNrIjsKKwlteSAkY3JpdGljcmMgPSAiJHBlcmxjaGVja19kaXIvcGVy bGNyaXRpY3JjIjsKKworCW15ICRlcnIgPQorCSAgYCRwZXJsY3JpdGljIC0tcXVpZXQgLS1wcm9n cmFtLWV4dGVuc2lvbnMgLnBsIC0tcHJvZmlsZT0kY3JpdGljcmMgIiRzb3VyY2VfZmlsZW5hbWUi IDI+JjFgOworCXJldHVybiAoIiIsIDApIGlmICQ/ID09IDA7CisJcmV0dXJuICgkZXJyLCAxKTsK K30KKworc3ViIHJ1bl9wZXJsX3N5bmNoZWNrCit7CisJbXkgJHNvdXJjZV9maWxlbmFtZSA9IHNo aWZ0OworCisJbXkgJGluY2x1ZGVzID0gam9pbigKKwkJJyAnLAorCQltYXAgeyAiLUkgJF8iIH0g KAorCQkJInNyYy9iYWNrZW5kL2NhdGFsb2ciLCAic3JjL3Rlc3QvcGVybCIsCisJCQkic3JjL2Jh Y2tlbmQvdXRpbHMvbWIvVW5pY29kZSIsICJzcmMvYmluL3BnX3Jld2luZCIsCisJCQkic3JjL3Rl c3Qvc3NsL3QiLCkpOworCisJbXkgJG91dHB1dCA9IGBwZXJsICRpbmNsdWRlcyAtY3cgIiRzb3Vy Y2VfZmlsZW5hbWUiIDI+JjFgOworCW15ICRmYWlsZWQgPSAkPyAhPSAwOworCisJIyBGaWx0ZXIg b3V0ICJPSyIgbGluZXMg4oCUIHBlcmwgLWN3IHByaW50cyAiPGZpbGU+IHN5bnRheCBPSyIgb24g c3VjY2VzcworCW15IEBsaW5lcyA9IGdyZXAgeyAhL1xic3ludGF4IE9LJC8gfSBzcGxpdCgvXG4v LCAkb3V0cHV0KTsKKwlteSAkZmlsdGVyZWQgPSBqb2luKCJcbiIsIEBsaW5lcyk7CisJJGZpbHRl cmVkIC49ICJcbiIgaWYgJGZpbHRlcmVkOworCisJcmV0dXJuICgkZmlsdGVyZWQsICRmYWlsZWQg fHwgc2NhbGFyKEBsaW5lcykgPiAwKTsKK30KKwogc3ViIGRpZmYKIHsKIAlteSAkaW5kZW50ZWQg PSBzaGlmdDsKQEAgLTM4OCw2ICs1ODIsMzMgQEAgc3ViIGRpZmYKIAlyZXR1cm4gJGRpZmY7CiB9 CiAKK3N1YiBpc19jX2ZpbGUKK3sKKwlteSAkZmlsZW5hbWUgPSBzaGlmdDsKKwkjIEl0IG5lZWRz IHRvIGhhdmUgLmMgb3IgLmggZXh0ZW5zaW9uCisJcmV0dXJuIDAgdW5sZXNzICRmaWxlbmFtZSA9 fiAvXC5bY2hdJC87CisJIyBBdXRvbWF0aWNhbGx5IGlnbm9yZSAuYyBhbmQgLmggZmlsZXMgdGhh dCBjb3JyZXNwb25kIHRvIGEgLnkgb3IgLmwgZmlsZS4KKwkjIHBnX2JzZF9pbmRlbnQgdGVuZHMg dG8gZ2V0IGJhZGx5IGNvbmZ1c2VkIGJ5IEJpc29uL2ZsZXggb3V0cHV0LCBhbmQKKwkjIHRoZXJl J3Mgbm8gdmFsdWUgaW4gaW5kZW50aW5nIGRlcml2ZWQgZmlsZXMgYW55d2F5LgorCW15ICRvdGhl cmZpbGUgPSAkZmlsZW5hbWU7CisJJG90aGVyZmlsZSA9fiBzL1wuW2NoXSQvLnkvOworCXJldHVy biAwIGlmICRvdGhlcmZpbGUgbmUgJGZpbGVuYW1lICYmIC1mICRvdGhlcmZpbGU7CisJJG90aGVy ZmlsZSA9fiBzL1wueSQvLmwvOworCXJldHVybiAwIGlmICRvdGhlcmZpbGUgbmUgJGZpbGVuYW1l ICYmIC1mICRvdGhlcmZpbGU7CisJcmV0dXJuIDE7Cit9CisKK3N1YiBpc19wZXJsX2ZpbGUKK3sK KwlteSAkZmlsZW5hbWUgPSBzaGlmdDsKKwkjIHRha2UgYWxsIC5wbCBhbmQgLnBtIGZpbGVzCisJ cmV0dXJuIDEgaWYgJGZpbGVuYW1lID1+IC9cLnBbbG1dJC87CisJIyB0YWtlIGV4ZWN1dGFibGUg ZmlsZXMgdGhhdCBmaWxlKDEpIHRoaW5rcyBhcmUgcGVybCBmaWxlcworCXJldHVybiAwIHVubGVz cyAteCAkZmlsZW5hbWU7CisJbXkgJGZpbGVfb3V0ID0gYGZpbGUgIiRmaWxlbmFtZSJgOworCXJl dHVybiAkZmlsZV9vdXQgPX4gLzouKnBlcmxbMC05XSpcYi9pOworfQorCiBzdWIgZGlzY292ZXJf ZmlsZXMKIHsKIAlteSBAcGF0aHMgPSBAXzsKQEAgLTQyNSw3ICs2NDYsNyBAQCBzdWIgZGlzY292 ZXJfZmlsZXMKIAkJY2xvc2UoJGdpdF9scyk7CiAJCWRpZSAiZ2l0IGxzLWZpbGVzIGVycm9yIiBp ZiAkPzsKIAkJbXkgQGdpdF9maWxlcyA9IHNwbGl0KC9cMC8sICRnaXRfb3V0cHV0KTsKLQkJcHVz aChAZGlzY292ZXJlZCwgZ3JlcCB7IC9cLltjaF0kLyB9IEBnaXRfZmlsZXMpOworCQlwdXNoKEBk aXNjb3ZlcmVkLCBAZ2l0X2ZpbGVzKTsKIAl9CiAKIAlyZXR1cm4gQGRpc2NvdmVyZWQ7CkBAIC00 MzUsNTcgKzY1NiwxMTEgQEAgc3ViIHByb2Nlc3NfZmlsZQogewogCW15ICRzb3VyY2VfZmlsZW5h bWUgPSBzaGlmdDsKIAotCSMgaWdub3JlIGFueXRoaW5nIHRoYXQncyBub3QgYSAuYyBvciAuaCBm aWxlCi0JcmV0dXJuIDAgdW5sZXNzICRzb3VyY2VfZmlsZW5hbWUgPX4gL1wuW2NoXSQvOwotCi0J IyBkb24ndCB0cnkgdG8gaW5kZW50IGEgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QKKwkjIGRvbid0 IHRyeSB0byBmb3JtYXQgYSBmaWxlIHRoYXQgZG9lc24ndCBleGlzdAogCXVubGVzcyAoLWYgJHNv dXJjZV9maWxlbmFtZSkKIAl7CiAJCXdhcm4gIkNvdWxkIG5vdCBmaW5kICRzb3VyY2VfZmlsZW5h bWUiOwogCQlyZXR1cm4gMDsKIAl9Ci0JIyBBdXRvbWF0aWNhbGx5IGlnbm9yZSAuYyBhbmQgLmgg ZmlsZXMgdGhhdCBjb3JyZXNwb25kIHRvIGEgLnkgb3IgLmwKLQkjIGZpbGUuICBpbmRlbnQgdGVu ZHMgdG8gZ2V0IGJhZGx5IGNvbmZ1c2VkIGJ5IEJpc29uL2ZsZXggb3V0cHV0LAotCSMgYW5kIHRo ZXJlJ3Mgbm8gdmFsdWUgaW4gaW5kZW50aW5nIGRlcml2ZWQgZmlsZXMgYW55d2F5LgotCW15ICRv dGhlcmZpbGUgPSAkc291cmNlX2ZpbGVuYW1lOwotCSRvdGhlcmZpbGUgPX4gcy9cLltjaF0kLy55 LzsKLQlyZXR1cm4gMCBpZiAkb3RoZXJmaWxlIG5lICRzb3VyY2VfZmlsZW5hbWUgJiYgLWYgJG90 aGVyZmlsZTsKLQkkb3RoZXJmaWxlID1+IHMvXC55JC8ubC87Ci0JcmV0dXJuIDAgaWYgJG90aGVy ZmlsZSBuZSAkc291cmNlX2ZpbGVuYW1lICYmIC1mICRvdGhlcmZpbGU7Ci0KLQlteSAkc291cmNl ID0gcmVhZF9zb3VyY2UoJHNvdXJjZV9maWxlbmFtZSk7Ci0JbXkgJG9yaWdfc291cmNlID0gJHNv dXJjZTsKLQlteSAkZXJyb3JfbWVzc2FnZSA9ICcnOwogCi0JJHNvdXJjZSA9IHByZV9pbmRlbnQo JHNvdXJjZSk7CisJIyBUaGUgbW9yZSBjb21wbGV4IGZpbHRlcmluZyBpcyBhbHJlYWR5IGRvbmUg YnkgZGlzY292ZXJfZmlsZXMsIGF0IHRoaXMKKwkjIHBvaW50IHdlIGNhbiBzaW1wbHkgY2hlY2sg dGhlIGZpbGUgZXh0ZW5zaW9uIHRvIGRldGVybWluZSBpZiBpdCdzIGEgQworCSMgZmlsZS4KKwlt eSAkaXNfYyA9ICRzb3VyY2VfZmlsZW5hbWUgPX4gL1wuW2NoXSQvOworCSMgQWxsIG90aGVyIGZp bGVzIGFyZSBQZXJsIGZpbGVzCisJbXkgJGlzX3BlcmwgPSAhJGlzX2M7CiAKLQkkc291cmNlID0g cnVuX2luZGVudCgkc291cmNlLCBcJGVycm9yX21lc3NhZ2UpOwotCWlmICgkc291cmNlIGVxICIi KQorCSMgRm9ybWF0dGluZyBzdGVwOiBwZ2luZGVudCBvciBwZXJsdGlkeQorCWlmICgkaXNfYyAm JiAkZG9fcGdpbmRlbnQpCiAJewotCQlwcmludCBTVERFUlIgIkZhaWx1cmUgaW4gJHNvdXJjZV9m aWxlbmFtZTogIiAuICRlcnJvcl9tZXNzYWdlIC4gIlxuIjsKLQkJcmV0dXJuIDM7Ci0JfQorCQlt eSAkc291cmNlID0gcmVhZF9zb3VyY2UoJHNvdXJjZV9maWxlbmFtZSk7CisJCW15ICgkZm9ybWF0 dGVkLCAkZmFpbHVyZSkgPSBmb3JtYXRfYygkc291cmNlLCAkc291cmNlX2ZpbGVuYW1lKTsKIAot CSRzb3VyY2UgPSBwb3N0X2luZGVudCgkc291cmNlKTsKKwkJaWYgKCRmYWlsdXJlKQorCQl7CisJ CQlyZXR1cm4gMzsKKwkJfQogCi0JaWYgKCRzb3VyY2UgbmUgJG9yaWdfc291cmNlKQorCQlpZiAo JGZvcm1hdHRlZCBuZSAkc291cmNlKQorCQl7CisJCQlpZiAoISRkaWZmICYmICEkY2hlY2spCisJ CQl7CisJCQkJd3JpdGVfc291cmNlKCRmb3JtYXR0ZWQsICRzb3VyY2VfZmlsZW5hbWUpOworCQkJ fQorCQkJZWxzZQorCQkJeworCQkJCWlmICgkZGlmZikKKwkJCQl7CisJCQkJCW15ICRvdXRwdXQg PSBkaWZmKCRmb3JtYXR0ZWQsICRzb3VyY2VfZmlsZW5hbWUpOworCQkJCQlmbG9jaygkc3Rkb3V0 X2xvY2tfZmgsIExPQ0tfRVgpIG9yIGRpZSAiZmxvY2s6ICQhIjsKKwkJCQkJcHJpbnQgJG91dHB1 dDsKKwkJCQkJU1RET1VULT5mbHVzaCgpOworCQkJCQlmbG9jaygkc3Rkb3V0X2xvY2tfZmgsIExP Q0tfVU4pIG9yIGRpZSAiZmxvY2s6ICQhIjsKKwkJCQl9CisKKwkJCQlyZXR1cm4gMiBpZiAkY2hl Y2s7CisJCQl9CisJCX0KKwl9CisJZWxzaWYgKCRpc19wZXJsICYmICRkb19wZXJsdGlkeSkKIAl7 Ci0JCWlmICghJGRpZmYgJiYgISRjaGVjaykKKwkJbXkgJHNvdXJjZSA9IHJlYWRfc291cmNlKCRz b3VyY2VfZmlsZW5hbWUpOworCQlteSAoJGZvcm1hdHRlZCwgJGZhaWx1cmUpID0gZm9ybWF0X3Bl cmwoJHNvdXJjZSwgJHNvdXJjZV9maWxlbmFtZSk7CisKKwkJaWYgKCRmYWlsdXJlKQogCQl7Ci0J CQl3cml0ZV9zb3VyY2UoJHNvdXJjZSwgJHNvdXJjZV9maWxlbmFtZSk7CisJCQlyZXR1cm4gMzsK IAkJfQotCQllbHNlCisKKwkJaWYgKCRmb3JtYXR0ZWQgbmUgJHNvdXJjZSkKKwkJeworCQkJaWYg KCEkZGlmZiAmJiAhJGNoZWNrKQorCQkJeworCQkJCXdyaXRlX3NvdXJjZSgkZm9ybWF0dGVkLCAk c291cmNlX2ZpbGVuYW1lKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlpZiAoJGRpZmYpCisJ CQkJeworCQkJCQlteSAkb3V0cHV0ID0gZGlmZigkZm9ybWF0dGVkLCAkc291cmNlX2ZpbGVuYW1l KTsKKwkJCQkJZmxvY2soJHN0ZG91dF9sb2NrX2ZoLCBMT0NLX0VYKSBvciBkaWUgImZsb2NrOiAk ISI7CisJCQkJCXByaW50ICRvdXRwdXQ7CisJCQkJCVNURE9VVC0+Zmx1c2goKTsKKwkJCQkJZmxv Y2soJHN0ZG91dF9sb2NrX2ZoLCBMT0NLX1VOKSBvciBkaWUgImZsb2NrOiAkISI7CisJCQkJfQor CisJCQkJcmV0dXJuIDIgaWYgJGNoZWNrOworCQkJfQorCQl9CisJfQorCisJIyBWYWxpZGF0aW9u IHN0ZXBzOiBwZXJsY3JpdGljIGFuZCBzeW5jaGVjayAob25seSBmb3IgcGVybCBmaWxlcykKKwlp ZiAoJGlzX3BlcmwpCisJeworCQlpZiAoJGRvX3Blcmxjcml0aWMpCiAJCXsKLQkJCWlmICgkZGlm ZikKKwkJCW15ICgkb3V0cHV0LCAkZmFpbGVkKSA9IHJ1bl9wZXJsY3JpdGljKCRzb3VyY2VfZmls ZW5hbWUpOworCQkJaWYgKCRmYWlsZWQpCiAJCQl7Ci0JCQkJbXkgJG91dHB1dCA9IGRpZmYoJHNv dXJjZSwgJHNvdXJjZV9maWxlbmFtZSk7CiAJCQkJZmxvY2soJHN0ZG91dF9sb2NrX2ZoLCBMT0NL X0VYKSBvciBkaWUgImZsb2NrOiAkISI7CiAJCQkJcHJpbnQgJG91dHB1dDsKIAkJCQlTVERPVVQt PmZsdXNoKCk7CiAJCQkJZmxvY2soJHN0ZG91dF9sb2NrX2ZoLCBMT0NLX1VOKSBvciBkaWUgImZs b2NrOiAkISI7CisJCQkJcmV0dXJuIDM7CiAJCQl9CisJCX0KIAotCQkJcmV0dXJuIDIgaWYgJGNo ZWNrOworCQlpZiAoJGRvX3Blcmxfc3luY2hlY2spCisJCXsKKwkJCW15ICgkb3V0cHV0LCAkZmFp bGVkKSA9IHJ1bl9wZXJsX3N5bmNoZWNrKCRzb3VyY2VfZmlsZW5hbWUpOworCQkJaWYgKCRmYWls ZWQpCisJCQl7CisJCQkJZmxvY2soJHN0ZG91dF9sb2NrX2ZoLCBMT0NLX0VYKSBvciBkaWUgImZs b2NrOiAkISI7CisJCQkJcHJpbnQgJG91dHB1dDsKKwkJCQlTVERPVVQtPmZsdXNoKCk7CisJCQkJ ZmxvY2soJHN0ZG91dF9sb2NrX2ZoLCBMT0NLX1VOKSBvciBkaWUgImZsb2NrOiAkISI7CisJCQkJ cmV0dXJuIDM7CisJCQl9CiAJCX0KIAl9CiAKQEAgLTQ5Nyw5ICs3NzIsMTMgQEAgc3ViIHVzYWdl CiAJbXkgJG1lc3NhZ2UgPSBzaGlmdDsKIAlteSAkaGVscHRleHQgPSA8PCdFT0YnOwogVXNhZ2U6 Ci1wZ2luZGVudCBbT1BUSU9OXS4uLiBbRklMRXxESVJdLi4uCitwZ2NoZWNrIFtPUFRJT05dLi4u IFtGSUxFfERJUl0uLi4KIE9wdGlvbnM6CiAJLS1oZWxwICAgICAgICAgICAgICAgICAgc2hvdyB0 aGlzIG1lc3NhZ2UgYW5kIHF1aXQKKwktLXBnaW5kZW50ICAgICAgICAgICAgICBmb3JtYXQgQyBj b2RlIHdpdGggcGdfYnNkX2luZGVudAorCS0tcGVybHRpZHlbPVBBVEhdICAgICAgIGZvcm1hdCBQ ZXJsIGNvZGUgd2l0aCBwZXJsdGlkeQorCS0tcGVybGNyaXRpY1s9UEFUSF0gICAgIGxpbnQgUGVy bCBjb2RlIHdpdGggcGVybGNyaXRpYworCS0tcGVybC1zeW5jaGVjayAgICAgICAgIHN5bnRheC1j aGVjayBQZXJsIGNvZGUgd2l0aCBwZXJsIC1jdwogCS0tY29tbWl0PWdpdHJlZiAgICAgICAgIHVz ZSBmaWxlcyBtb2RpZmllZCBieSB0aGUgbmFtZWQgY29tbWl0CiAJLS10eXBlZGVmcz1GSUxFICAg ICAgICAgZmlsZSBjb250YWluaW5nIGEgbGlzdCBvZiB0eXBlZGVmcwogCS0tbGlzdC1vZi10eXBl ZGVmcz1TVFIgIHN0cmluZyBjb250YWluaW5nIHR5cGVkZWZzLCBzcGFjZSBzZXBhcmF0ZWQKQEAg LTUwOCw2ICs3ODcsOCBAQCBPcHRpb25zOgogCS0tZGlmZiAgICAgICAgICAgICAgICAgIHNob3cg dGhlIGNoYW5nZXMgdGhhdCB3b3VsZCBiZSBtYWRlCiAJLS1jaGVjayAgICAgICAgICAgICAgICAg ZXhpdCB3aXRoIHN0YXR1cyAyIGlmIGFueSBjaGFuZ2VzIHdvdWxkIGJlIG1hZGUKIAktLWpvYnM9 TiwgLWogTiAgICAgICAgICBudW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyAoMCA9IG51bSBDUFVz LCBkZWZhdWx0IDApCitXaGVuIG5vIC0tcGdpbmRlbnQsIC0tcGVybHRpZHksIC0tcGVybGNyaXRp Yywgb3IgLS1wZXJsLXN5bmNoZWNrIGZsYWdzIGFyZQorcHJvdmlkZWQsIGFsbCBvZiB0aGVzZSB0 b29scyBhcmUgcnVuLgogVGhlIC0tZXhjbHVkZXMgYW5kIC0tY29tbWl0IG9wdGlvbnMgY2FuIGJl IGdpdmVuIG1vcmUgdGhhbiBvbmNlLgogRU9GCiAJaWYgKCRoZWxwKQpAQCAtNTI0LDEyICs4MDUs MzcgQEAgRU9GCiAKICMgbWFpbgogCi0kZmlsdGVyZWRfdHlwZWRlZnNfZmggPSBsb2FkX3R5cGVk ZWZzKCk7CitpZiAoJGRvX3BnaW5kZW50KQoreworCSRmaWx0ZXJlZF90eXBlZGVmc19maCA9IGxv YWRfdHlwZWRlZnMoKTsKKwljaGVja19pbmRlbnQoKTsKK30KIAotY2hlY2tfaW5kZW50KCk7Citp ZiAoJGRvX3Blcmx0aWR5KQoreworCWNoZWNrX3Blcmx0aWR5KCk7Cit9CisKK2lmICgkZG9fcGVy bGNyaXRpYykKK3sKKwljaGVja19wZXJsY3JpdGljKCk7Cit9CiAKICMgYW55IG5vbi1vcHRpb24g YXJndW1lbnRzIGFyZSBmaWxlcyBvciBkaXJlY3RvcmllcyB0byBiZSBwcm9jZXNzZWQKLXB1c2go QGZpbGVzLCBkaXNjb3Zlcl9maWxlcyhAQVJHVikpIGlmIEBBUkdWOworaWYgKEBBUkdWKQorewor CWZvcmVhY2ggbXkgJGYgKGRpc2NvdmVyX2ZpbGVzKEBBUkdWKSkKKwl7CisJCWlmICgkZG9fcGdp bmRlbnQgJiYgaXNfY19maWxlKCRmKSkKKwkJeworCQkJcHVzaChAZmlsZXMsICRmKTsKKwkJfQor CQllbHNpZiAoJGRvX3BlcmxfYW55ICYmIGlzX3BlcmxfZmlsZSgkZikpCisJCXsKKwkJCXB1c2go QGZpbGVzLCAkZik7CisJCX0KKwl9Cit9CiAKICMgY29tbWl0IGZpbGUgbG9jYXRpb25zIGFyZSBy ZWxhdGl2ZSB0byB0aGUgc291cmNlIHJvb3QKIGNoZGlyICIkc291cmNlZGlyLy4uLy4uLy4uIiBp ZiBAY29tbWl0cyAmJiAkc291cmNlZGlyOwpAQCAtNTQxLDcgKzg0Nyw4IEBAIGZvcmVhY2ggbXkg JGNvbW1pdCAoQGNvbW1pdHMpCiAJbXkgQGFmZmVjdGVkID0gYGdpdCBkaWZmIC0tZGlmZi1maWx0 ZXI9QUNNUiAtLW5hbWUtb25seSAkcHJldiAkY29tbWl0YDsKIAlkaWUgImdpdCBlcnJvciIgaWYg JD87CiAJY2hvbXAoQGFmZmVjdGVkKTsKLQlwdXNoKEBmaWxlcywgQGFmZmVjdGVkKTsKKwlwdXNo KEBmaWxlcywgZ3JlcCB7IGlzX2NfZmlsZSgkXykgfSBAYWZmZWN0ZWQpIGlmICRkb19wZ2luZGVu dDsKKwlwdXNoKEBmaWxlcywgZ3JlcCB7IGlzX3BlcmxfZmlsZSgkXykgfSBAYWZmZWN0ZWQpIGlm ICRkb19wZXJsX2FueTsKIH0KIAogd2FybiAiTm8gZmlsZXMgdG8gcHJvY2VzcyIgdW5sZXNzIEBm aWxlczsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudCBiL3NyYy90b29s cy9wZ2luZGVudC9wZ2luZGVudApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw MC4uZjE1NTMwNzUwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvcGdp bmRlbnQKQEAgLTAsMCArMSw4IEBACisjIS9iaW4vc2gKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEt MjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBXcmFwcGVyIHRo YXQgcnVucyBwZ2NoZWNrIGluIHBnaW5kZW50LW9ubHkgbW9kZS4KKyMgU2VlIHNyYy90b29scy9w Z2NoZWNrL3BnY2hlY2sgZm9yIHRoZSBmdWxsIGltcGxlbWVudGF0aW9uLgorCitleGVjICIkKGRp cm5hbWUgIiQwIikvLi4vcGdjaGVjay9wZ2NoZWNrIiAtLXBnaW5kZW50ICIkQCIKZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luZGVudC9wZ3Blcmx0aWR5IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3Bn cGVybHRpZHkKaW5kZXggODc4MzhkNmJkZTMuLjcyMjczZjUwYzllIDEwMDc1NQotLS0gYS9zcmMv dG9vbHMvcGdpbmRlbnQvcGdwZXJsdGlkeQorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvcGdwZXJs dGlkeQpAQCAtMSwxOCArMSw4IEBACiAjIS9iaW4vc2gKIAotIyBzcmMvdG9vbHMvcGdpbmRlbnQv cGdwZXJsdGlkeQorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKIAotc2V0IC1lCisjIFdyYXBwZXIgdGhhdCBydW5zIHBnY2hlY2sg aW4gcGVybHRpZHktb25seSBtb2RlLgorIyBTZWUgc3JjL3Rvb2xzL3BnY2hlY2svcGdjaGVjayBm b3IgdGhlIGZ1bGwgaW1wbGVtZW50YXRpb24uCiAKLSMgc2V0IHRoaXMgdG8gb3ZlcnJpZGUgZGVm YXVsdCBwZXJsdGlkeSBwcm9ncmFtOgotUEVSTFRJRFk9JHtQRVJMVElEWTotcGVybHRpZHl9Ci0K LVBFUkxUSURZX1ZFUlNJT049MjAyMzAzMDkKLWlmICEgJFBFUkxUSURZIC12IHwgZ3JlcCAtcSAk UEVSTFRJRFlfVkVSU0lPTjsgdGhlbgotCWVjaG8gIllvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUg JFBFUkxUSURZIHZlcnNpb24gJFBFUkxUSURZX1ZFUlNJT04gaW5zdGFsbGVkIG9uIHlvdXIgc3lz dGVtLiIgPiYyCi0JZXhpdCAxCi1maQotCi0uIHNyYy90b29scy9wZXJsY2hlY2svZmluZF9wZXJs X2ZpbGVzCi0KLWZpbmRfcGVybF9maWxlcyAiJEAiIHwgeGFyZ3MgJFBFUkxUSURZIC0tcHJvZmls ZT1zcmMvdG9vbHMvcGdpbmRlbnQvcGVybHRpZHlyYworZXhlYyAiJChkaXJuYW1lICIkMCIpLy4u L3BnY2hlY2svcGdjaGVjayIgLS1wZXJsdGlkeSAiJEAiCi0tIAoyLjUzLjAKCg== --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0007-pgcheck-Add-easy-way-of-getting-perltidy.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0007-pgcheck-Add-easy-way-of-getting-perltidy.patch RnJvbSBjNjVlNjMzMGVjMTRlYTFhMDViMDI3YjI5MjY5ZGNkNTMzMWUzMzZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBXZWQsIDQgTWFyIDIwMjYgMDk6MDQ6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDcvN10gcGdjaGVjazogQWRkIGVhc3kgd2F5IG9mIGdldHRpbmcgcGVybHRpZHkKCnBnY2hlY2sg bmVlZHMgYSB2ZXJ5IHNwZWNpZmljIHBlcmx0aWR5IHZlcnNpb24sIGJ1dCBnZXR0aW5nIHRoYXQK aW5zdGFsbGVkIGlzIHF1aXRlIGEgaGFzc2xlLiBFc3BlY2lhbGx5IGZvciBwZW9wbGUgd2hvIGRv bid0IHVzZSBwZXJsIG9uCmEgZGFpbHkgYmFzaXMuIFRoaXMgY29tbWl0IGFkZHMgYSBzbWFsbCBz Y3JpcHQgdG8gZG93bmxvYWQgdGhlIGV4YWN0CnBlcmx0aWR5IHZlcnNpb24gdGhhdCB3ZSBuZWVk IGFuZCBpbnN0YWxsIGl0IGxvY2FsbHkgaW4gdGhlIHJlcG8uIEl0CmFsc28gdGVhY2hlcyBwZ2No ZWNrIHRvIHVzZSB0aGF0IGxvY2FsbHkgaW5zdGFsbGVkIHBlcmx0aWR5IGlmIGl0IGlzCmF2YWls YWJsZS4KLS0tCiBzcmMvdG9vbHMvcGdjaGVjay9wZ2NoZWNrICAgICAgIHwgMjUgKysrKysrKysr KystLQogc3JjL3Rvb2xzL3BnaW5kZW50Ly5naXRpZ25vcmUgICB8ICAxICsKIHNyYy90b29scy9w Z2luZGVudC9SRUFETUUgICAgICAgfCAxNiArKysrLS0tLS0KIHNyYy90b29scy9wZ2luZGVudC9n ZXRfcGVybHRpZHkgfCA2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rvb2xzL3BnaW5kZW50Ly5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDc1 NSBzcmMvdG9vbHMvcGdpbmRlbnQvZ2V0X3Blcmx0aWR5CgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnY2hlY2svcGdjaGVjayBiL3NyYy90b29scy9wZ2NoZWNrL3BnY2hlY2sKaW5kZXggZDA1ODZl OWFlNmMuLmY5ZmVmNjExOTVhIDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvcGdjaGVjay9wZ2NoZWNr CisrKyBiL3NyYy90b29scy9wZ2NoZWNrL3BnY2hlY2sKQEAgLTE3NSw4ICsxNzUsMjkgQEAgaWYg KCEkaW5kZW50ICYmICRzb3VyY2VkaXIpCiB9CiAkaW5kZW50IHx8PSAicGdfYnNkX2luZGVudCI7 CiAKLSMgZ2V0IHBlcmx0aWR5IGxvY2F0aW9uOiBjb21tYW5kIGxpbmUgd2lucywgdGhlbiBlbnZp cm9ubWVudCwgdGhlbiBQQVRILgotbXkgJHBlcmx0aWR5ID0gJHBlcmx0aWR5X2FyZyB8fCAkRU5W e1BFUkxUSURZfSB8fCAicGVybHRpZHkiOworIyBnZXQgcGVybHRpZHkgbG9jYXRpb246IGNvbW1h bmQgbGluZSB3aW5zLCB0aGVuIGVudmlyb25tZW50LCB0aGVuIHRyeSB0bworIyBmaW5kIGEgZ2V0 X3Blcmx0aWR5LWluc3RhbGxlZCBjb3B5IGluIHRoZSBzb3VyY2UgdHJlZSwgdGhlbiBmYWxsIGJh Y2sgdG8KKyMgUEFUSC4KK215ICRwZXJsdGlkeSA9ICRwZXJsdGlkeV9hcmcgfHwgJEVOVntQRVJM VElEWX07CitpZiAoISRwZXJsdGlkeSAmJiAkc291cmNlZGlyKQoreworCSMgTG9vayBmb3IgYSBn ZXRfcGVybHRpZHktaW5zdGFsbGVkIHBlcmx0aWR5IGluIHRoZSBzb3VyY2UgdHJlZS4KKwlteSAk Y2FuZGlkYXRlID0gIiRzb3VyY2VkaXIvcGVybHRpZHkvYmluL3Blcmx0aWR5IjsKKwlpZiAoLXgg JGNhbmRpZGF0ZSkKKwl7CisJCSRwZXJsdGlkeSA9ICRjYW5kaWRhdGU7CisKKwkJIyBMb2NhbCBp bnN0YWxscyBuZWVkIFBFUkw1TElCIHNldCBzbyBwZXJsdGlkeSBjYW4gZmluZCBpdHMKKwkJIyBt b2R1bGVzLgorCQlteSAkbGliZGlyID0gIiRzb3VyY2VkaXIvcGVybHRpZHkvbGliL3Blcmw1IjsK KwkJaWYgKC1kICRsaWJkaXIpCisJCXsKKwkJCSRFTlZ7UEVSTDVMSUJ9ID0KKwkJCSAgJEVOVntQ RVJMNUxJQn0gPyAiJGxpYmRpcjokRU5We1BFUkw1TElCfSIgOiAkbGliZGlyOworCQl9CisJfQor fQorJHBlcmx0aWR5IHx8PSAicGVybHRpZHkiOwogCiAjIGdldCBwZXJsY3JpdGljIGxvY2F0aW9u OiBjb21tYW5kIGxpbmUgd2lucywgdGhlbiBlbnZpcm9ubWVudCwgdGhlbiBQQVRILgogbXkgJHBl cmxjcml0aWMgPSAkcGVybGNyaXRpY19hcmcgfHwgJEVOVntQRVJMQ1JJVElDfSB8fCAicGVybGNy aXRpYyI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvLmdpdGlnbm9yZSBiL3NyYy90 b29scy9wZ2luZGVudC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4xNDk3MjE3MTEzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90b29scy9wZ2luZGVu dC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKy9wZXJsdGlkeS8KZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ2luZGVudC9SRUFETUUgYi9zcmMvdG9vbHMvcGdpbmRlbnQvUkVBRE1FCmluZGV4IGI2 Y2Q0YzZmNmI3Li5lYmMxOGQ4M2U5YyAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L1JF QURNRQorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvUkVBRE1FCkBAIC0xNywxNCArMTcsMTQgQEAg UFJFUkVRVUlTSVRFUzoKIAogMikgSW5zdGFsbCBwZXJsdGlkeS4gIFBsZWFzZSBiZSBzdXJlIGl0 IGlzIHZlcnNpb24gMjAyMzAzMDkgKG9sZGVyIGFuZCBuZXdlcgogICAgdmVyc2lvbnMgbWFrZSBk aWZmZXJlbnQgZm9ybWF0dGluZyBjaG9pY2VzLCBhbmQgd2Ugd2FudCBjb25zaXN0ZW5jeSkuCi0g ICBZb3UgY2FuIGdldCB0aGUgY29ycmVjdCB2ZXJzaW9uIGZyb20KLSAgIGh0dHBzOi8vY3Bhbi5t ZXRhY3Bhbi5vcmcvYXV0aG9ycy9pZC9TL1NIL1NIQU5DT0NLLwotICAgVG8gaW5zdGFsbCwgZm9s bG93IHRoZSB1c3VhbCBpbnN0YWxsIHByb2Nlc3MgZm9yIGEgUGVybCBtb2R1bGUKLSAgICgibWFu IHBlcmxtb2RpbnN0YWxsIiBleHBsYWlucyBpdCkuICBPciwgaWYgeW91IGhhdmUgY3BhbiBpbnN0 YWxsZWQsCi0gICB0aGlzIHNob3VsZCB3b3JrOgotICAgY3BhbiBTSEFOQ09DSy9QZXJsLVRpZHkt MjAyMzAzMDkudGFyLmd6Ci0gICBPciBpZiB5b3UgaGF2ZSBjcGFubSBpbnN0YWxsZWQsIHlvdSBj YW4ganVzdCB1c2U6Ci0gICBjcGFubSBodHRwczovL2NwYW4ubWV0YWNwYW4ub3JnL2F1dGhvcnMv aWQvUy9TSC9TSEFOQ09DSy9QZXJsLVRpZHktMjAyMzAzMDkudGFyLmd6CisKKyAgIFRoZSBlYXNp ZXN0IHdheSBpcyB0byB1c2UgdGhlIGdldF9wZXJsdGlkeSBzY3JpcHQsIHdoaWNoIGRvd25sb2Fk cywKKyAgIHZlcmlmaWVzLCBhbmQgaW5zdGFsbHMgdGhlIGNvcnJlY3QgdmVyc2lvbiBpbnRvIHRo ZSBzb3VyY2UgdHJlZToKKworCXNyYy90b29scy9wZ2luZGVudC9nZXRfcGVybHRpZHkKKworICAg VGhpcyBpbnN0YWxscyBwZXJsdGlkeSBpbnRvIHNyYy90b29scy9wZ2luZGVudC9wZXJsdGlkeS8s IHdoaWNoCisgICBwZ2luZGVudCB3aWxsIGZpbmQgYXV0b21hdGljYWxseS4KIAogCiBET0lORyBU SEUgSU5ERU5UIFJVTiBCRUZPUkUgQSBOT1JNQUwgQ09NTUlUOgpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L2dldF9wZXJsdGlkeSBiL3NyYy90b29scy9wZ2luZGVudC9nZXRfcGVybHRp ZHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLjA5Y2U0YTE5NWNiCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L2dldF9wZXJsdGlkeQpAQCAtMCww ICsxLDYyIEBACisjIS9iaW4vc2gKKworIyBzcmMvdG9vbHMvcGdpbmRlbnQvZ2V0X3Blcmx0aWR5 CisjCisjIERvd25sb2FkcyBhbmQgaW5zdGFsbHMgcGVybHRpZHkgMjAyMzAzMDkgaW50byBzcmMv dG9vbHMvcGdpbmRlbnQvcGVybHRpZHkvLgorCitzZXQgLWUKKworUEVSTFRJRFlfVkVSU0lPTj0y MDIzMDMwOQorUEVSTFRJRFlfVEFSQkFMTD0iUGVybC1UaWR5LSR7UEVSTFRJRFlfVkVSU0lPTn0u dGFyLmd6IgorUEVSTFRJRFlfVVJMPSJodHRwczovL2NwYW4ubWV0YWNwYW4ub3JnL2F1dGhvcnMv aWQvUy9TSC9TSEFOQ09DSy8ke1BFUkxUSURZX1RBUkJBTEx9IgorUEVSTFRJRFlfU0hBMjU2PSJl MjI5NDlhMjA4YzYxOGQ2NzFhMThjNTgyOWI0NTFhYmJlOWRhMGRhMmNkZGQ3OGZkYmZjYjAzNmM3 MzYxYzE4IgorCisjIERldGVybWluZSB0aGUgZGlyZWN0b3J5IHRoaXMgc2NyaXB0IGxpdmVzIGlu LCBpLmUuIHNyYy90b29scy9wZ2luZGVudAorU0NSSVBUX0RJUj0kKGNkICIkKGRpcm5hbWUgIiQw IikiICYmIHB3ZCkKKworUEVSTFRJRFlfRElSPSIkU0NSSVBUX0RJUi9wZXJsdGlkeSIKK1BFUkxU SURZX0JJTj0iJFBFUkxUSURZX0RJUi9iaW4vcGVybHRpZHkiCisKKyMgQ2hlY2sgaWYgYWxyZWFk eSBpbnN0YWxsZWQgd2l0aCB0aGUgY29ycmVjdCB2ZXJzaW9uCitpZiBbIC14ICIkUEVSTFRJRFlf QklOIiBdOyB0aGVuCisJcGVybHRpZHlfbGliPSIkUEVSTFRJRFlfRElSL2xpYi9wZXJsNSIKKwlp bnN0YWxsZWRfdmVyc2lvbj0kKFBFUkw1TElCPSIkcGVybHRpZHlfbGliJHtQRVJMNUxJQjorOiRQ RVJMNUxJQn0iICIkUEVSTFRJRFlfQklOIiAtdiAyPi9kZXYvbnVsbCB8fCB0cnVlKQorCWlmIGVj aG8gIiRpbnN0YWxsZWRfdmVyc2lvbiIgfCBncmVwIC1xICIkUEVSTFRJRFlfVkVSU0lPTiI7IHRo ZW4KKwkJZWNobyAicGVybHRpZHkgJFBFUkxUSURZX1ZFUlNJT04gaXMgYWxyZWFkeSBpbnN0YWxs ZWQgaW4gJFBFUkxUSURZX0RJUiIKKwkJZXhpdCAwCisJZmkKK2ZpCisKK1dPUktfRElSPSQobWt0 ZW1wIC1kKQordHJhcCAncm0gLXJmICIkV09SS19ESVIiJyBFWElUCisKKyMgRG93bmxvYWQKK1RB UkJBTEw9IiRXT1JLX0RJUi8kUEVSTFRJRFlfVEFSQkFMTCIKK2lmIGNvbW1hbmQgLXYgY3VybCA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KKwljdXJsIC1zU0wgLW8gIiRUQVJCQUxMIiAiJFBFUkxUSURZ X1VSTCIKK2VsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4mMTsgdGhlbgorCXdnZXQg LXEgLU8gIiRUQVJCQUxMIiAiJFBFUkxUSURZX1VSTCIKK2Vsc2UKKwllY2hvICJlcnJvcjogbmVp dGhlciBjdXJsIG5vciB3Z2V0IGZvdW5kIiA+JjIKKwlleGl0IDEKK2ZpCisKKyMgVmVyaWZ5IFNI QTI1NgoraWYgY29tbWFuZCAtdiBzaGEyNTZzdW0gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJZWNo byAiJFBFUkxUSURZX1NIQTI1NiAgJFRBUkJBTEwiIHwgc2hhMjU2c3VtIC1jIC0gPi9kZXYvbnVs bAorZWxpZiBjb21tYW5kIC12IHNoYXN1bSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKwllY2hvICIk UEVSTFRJRFlfU0hBMjU2ICAkVEFSQkFMTCIgfCBzaGFzdW0gLWEgMjU2IC1jIC0gPi9kZXYvbnVs bAorZWxzZQorCWVjaG8gImVycm9yOiBuZWl0aGVyIHNoYTI1NnN1bSBub3Igc2hhc3VtIGZvdW5k IiA+JjIKKwlleGl0IDEKK2ZpCisKKyMgRXh0cmFjdCwgYnVpbGQsIGluc3RhbGwKK2NkICIkV09S S19ESVIiCit0YXIgeHpmICIkVEFSQkFMTCIKK2NkICJQZXJsLVRpZHktJHtQRVJMVElEWV9WRVJT SU9OfSIKK3BlcmwgTWFrZWZpbGUuUEwgSU5TVEFMTF9CQVNFPSIkUEVSTFRJRFlfRElSIiA+L2Rl di9udWxsCittYWtlID4vZGV2L251bGwKK21ha2UgaW5zdGFsbCA+L2Rldi9udWxsCisKK2VjaG8g InBlcmx0aWR5ICRQRVJMVElEWV9WRVJTSU9OIGluc3RhbGxlZCBpbiAkUEVSTFRJRFlfRElSIgot LSAKMi41My4wCgo= --b766b5396a2207cfe4a3acca625399661ac1822c98d05162f8de0733a1d2--