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 1wcMbK-003I7s-29 for pgsql-bugs@arkaria.postgresql.org; Wed, 24 Jun 2026 12:21:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wcMaJ-000gwf-2S for pgsql-bugs@arkaria.postgresql.org; Wed, 24 Jun 2026 12:20:03 +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 1wcMaJ-000gwX-1O for pgsql-bugs@lists.postgresql.org; Wed, 24 Jun 2026 12:20:03 +0000 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wcMaG-000000001So-3NqZ for pgsql-bugs@lists.postgresql.org; Wed, 24 Jun 2026 12:20:03 +0000 Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-48c862a572fso455375b6e.1 for ; Wed, 24 Jun 2026 05:20:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782303599; cv=none; d=google.com; s=arc-20240605; b=e7Lbe/P7vpYeKs6/CjnBcnEbRDX3GJe16GOULancV8vlqv//DmUJtDMgbuGUaa02C5 F1HjTiDcsRUj9qRq9WibWCoNVWa3/iVrULBKutJu+8L8cy6bZelBGn0iOHllAxZKkEXC zRXMbg91ytXZKBW1uc/BedQ8WzaxcPn6uHMJwwwecQ9grjLySUYKBkGxFGdTlfBTxlLa l0HjtB3X30yr6L5pQr22Q3SlrndbBg2gO1C/tzAiIGRAGkm7gnPnb+T6Xx353FkQxvVJ kagn9uk6i+PDcF3+Zl85GqEEvuHuTULTpa/1edekITBYqS4ex0jUINUOt9qGaDX0wS+4 0B8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=IFkaIaF8fAyHtXrOs+QWkMYJBAv6hVY76v8oNDqiBjk=; fh=CpLKU0oeJLsI6WjrZ2n0FnfSX2GE5ALRUj5O/IXgR8g=; b=PSn+mb4kTiI2frGkLwA7bQdjcNfOUdXR8KrWeCOUje9lfdDjquFgEP/uduBq6KS7U9 zxI0hhwpf+sLmlQ0fZwVgE5cRhI9qzPtOk89n78ZqWjcLqwUQdGz6jrbmXW/YI1Sn32+ B10gjroMjwk8WcmWFGnkCJDPipD5b9+AiH85tOVuPtXVgZpKcjrN7pihK/dlgNbHjTLv /GxCW9Kw0YE1jJq8K0s+pScOO0qZLt/+yD8bEIFwElSQ39M0XDa2ASjzuws0SoFttUmx SGnH+qQlXdF77b2h2Q4k0g42lShUyex7f0kHUxwzqz3g2Grem3HrGxP8bov0el5mJXk2 a01g==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782303599; x=1782908399; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=IFkaIaF8fAyHtXrOs+QWkMYJBAv6hVY76v8oNDqiBjk=; b=BEw8mgek25QSbEvYs9CjJlRNNPTkOKT36RU1Zd+mPFqc8ofNushjatJoPI4T/ikt6y zFl5F41pkC7TTSRvu6xWbRsBQiaVCHpXuv/CheOnj7qA7nnNqg14YwQ5yRR5VZjkmAnX IY5E9Y30gEilyzkL3cYI8nrmWimhZtcOVSQORvhBzKqM19TIgXafbOIdA3OOYPTARQOk 0bUcrRR/wRbkDEo1bzOP5x/dadQT3SUpSuaqDv9rtouSSSDl6ls3OC7LhThmoA6pTvXk t3yBmHLB9ZZZPuIvVk8QK9aTQL2xx1ne3Y07tb98El+Sg2nEcQCtsA2JxjRPO0qZ6wEx 4ovQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782303599; x=1782908399; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=IFkaIaF8fAyHtXrOs+QWkMYJBAv6hVY76v8oNDqiBjk=; b=Ms/KXUcR5g5e7vHuEiR5KwvU6/aS9L5qIUsqLK6a6/fHSYkdJOD5WbnBQs9AIlC5BH hnFWp3Gjd7tFw5Zmj1lWRZhCQLwD8gCAXeoP3zDbxmocsLmsTXbL95rsLOM8cumjx6o6 9c1WEGOBOeJLfjHP+ZZY6I6j4KIh6c9cGcqP5NUGTrGc++S8z+GKOescPHmeero89UV3 jUEpKltBOrGQs7nbLIYQoE//WOJ6DWhiP09WSlQm1+Il2wj1cEnBUIP8fVSGdXpso6HP /NdqcFeiIGLQegny2PdRWP95sRQL9Cn4YYE5K30XeeO5a5UV1yE6RBcp8Mc1sQwAtCMb hVGg== X-Forwarded-Encrypted: i=1; AFNElJ8PfJiQFxjccEMrWuIZyVxkT8NgKSh+AA3rrt4Un2Jl5iwgQNPxJBColPQ/uMkjOVjlOi9t+8/JAwL/@lists.postgresql.org X-Gm-Message-State: AOJu0YweXT0j+G9KdEabPuFBq6+bz9nNnLtrtn775pez3TVEkH8D38M6 YqeY0ObKkjI64wDvbn6na6gP+WwklpMXFq+hBLGtaCRXUmbOKXUUe/NVSWixRRGoBBTdhSrjeEG 32ejxyhQoYVFRZNl4iMfyN/cBe0Z51ik= X-Gm-Gg: AfdE7cl0XUte1wTNh3y86usMaIFKGCgmsKvDSZYSMyTkGqSu8loSQSf7Vh5TE9zWjd/ Jt2J73GkWNGh9FT3uCMKGzkelc0V2YuSNA8PsOSV5iTbCEYYGTJDEHYVCy4NUEx4fgL08uoBB4i TYbTJxISITavHqWWWI8dy87UGZcEAukFgmAj+oUADzjMggqzB4A5yIffS4U2ChLSOONBzI24l21 XmKiqyH8bmvXZRWTqYHX+h1+7DFP+TBsMUT0FzXD7Omqe4Pd35WgMkWQyJbU37rhhGMduOooNW/ 8zr23ZM86J2jUJ1+hsmUq441aXJqVIzZB6lSQhalLRgbR/pqfBxIG/GRZ1H2T1DXmQ== X-Received: by 2002:a05:6808:448a:b0:490:c8b9:a16e with SMTP id 5614622812f47-490c8b9a370mr1258403b6e.10.1782303599005; Wed, 24 Jun 2026 05:19:59 -0700 (PDT) MIME-Version: 1.0 References: <19483-80de42dc4e62cfd6@postgresql.org> <104812.1780847519@sss.pgh.pa.us> <5184088806e70ed5db7e83bd6540a016b3802c1d.camel@cybertec.at> <0d7531c192859057c6aad54c89a8d453376bd00c.camel@cybertec.at> <592839.1782153054@sss.pgh.pa.us> In-Reply-To: From: =?UTF-8?Q?H=C3=BCseyin_Demir?= Date: Wed, 24 Jun 2026 14:19:47 +0200 X-Gm-Features: AVVi8CeUcf6_BfvNAwXU--Zq9FFXv9nY99xQHcJToP3jsno5GWZ0waipoC1911Y Message-ID: Subject: Re: BUG #19483: pg_upgrade fails with orphan records in pg_init_priv catalog table To: Laurenz Albe Cc: Tom Lane , Greg Sabino Mullane , pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000e6acf30654fee4bb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e6acf30654fee4bb Content-Type: text/plain; charset="UTF-8" > > While the technique of fetching the all-numeric role names in advance > is certainly much cheaper than running a complicated subquery for > every object dumped, I have one remaining doubt: > > What if there is a dangling role OID 65432 in pg_init_privs *and* > a valid role with the same name (but a different OID)? Then the patch > would tacitly restore the dangling reference to the latter role. > Apart from the result being wrong, I wonder if that could be used for > a privilege escalation attack: you detect that there are dangling > pg_init_privs entries that grant high privileges. Then you abuse your > CREATEROLE to create a role with the same name as the dangling OID. > After a dump and restore, your role has been assigned those privileges. > > Perhaps it would be a better approach to fetch the data from > pg_init_privs once at the beginning of the dump, ignoring the entries > with dangling OIDs? > > Yours, > Laurenz Albe Thank you for the reviews. This v6 patch adds a SAFE_INITPRIVS macro that filters aclitem[] arrays server-side by checking that each entry's grantor and grantee OID still exists in pg_roles. It is applied in exactly two queries: 1. getAdditionalACLs() -- the one-time fetch of pg_init_privs at startup 2. dumpTable() column ACL prepared statement -- per-table column initprivs Crucially, the WHERE clauses in getAggregates()/getFuncs() are NOT modified. Those queries use raw pip.initprivs only for object selection (not output), and any spuriously-selected objects produce zero output because the stored initprivs (from getAdditionalACLs) is already filtered. pg_roles is used instead of pg_authid to support non-superuser pg_dump. So this patch covers the security and performance concerns together I believe. In addition to this, I tried to introduce different tests to verify it. When it comes to performance results I tried to draw a conclusion. Performance testing shows the overhead is ~1-2ms on the one-time pg_init_privs fetch (249-749 rows) and zero measurable impact on a database with 10,000 functions + 500 aggregates. The filtering adds ~1ms (249 rows) to ~2ms (749 rows) to the one-time getAdditionalACLs() query that runs at pg_dump startup. This is a fixed cost that does NOT scale with the number of functions, aggregates, or other objects in the database. Let me know if you have additional feedback and concerns. Regards, Demir --000000000000e6acf30654fee4bb Content-Type: text/plain; charset="US-ASCII"; name="performance_tests.txt" Content-Disposition: attachment; filename="performance_tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs1d0540 UGVyZm9ybWFuY2UgUmVzdWx0cwo9PT09PT09PT09PT09PT09PT09CgpUZXN0IEVudmlyb25tZW50 OgotIENQVTogQXBwbGUgTTIgUHJvICgxMiBjb3JlcykKLSBSQU06IDMyIEdCCi0gT1M6IG1hY09T IDI2LjUuMSAoZGFyd2luIDI1LjUuMCwgYXJtNjQpCi0gQ29tcGlsZXI6IEFwcGxlIGNsYW5nIDIx LjAuMCAoY2xhbmctMjEwMC4xLjEuMTAxKQotIFBvc3RncmVTUUw6IDE5YmV0YTEgKGJ1aWx0IGZy b20gc291cmNlLCAtTzIsIG5vIC0tZW5hYmxlLWNhc3NlcnQpCi0gRGlzazogaW50ZXJuYWwgU1NE IChBUEZTKQoKV2FsbCBDbG9jayBUaW1pbmc6IHBnX2R1bXAgLS1zY2hlbWEtb25seSAoNyBydW5z IGVhY2gsIG1pbGxpc2Vjb25kcykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpEYXRhYmFzZTogcGVyZl9iYXNlbGlu ZQogIHBnX2luaXRfcHJpdnMgcm93czogMjQ5IHwgdXNlciBmdW5jdGlvbnMvYWdnczogMAoKICBV bnBhdGNoZWQ6ICA0OS42OSAgNTIuMjkgIDQ2LjQyICA0OS43MyAgNjMuMTEgIDUxLjU4ICA1My41 MAogIFBhdGNoZWQgdjY6IDUyLjQ5ICA1MC4yMyAgNTAuMDIgIDUxLjg3ICA0OC44MyAgNjUuMjMg IDY0LjU4CgogIE1lZGlhbiB1bnBhdGNoZWQ6IDUxLjU4IG1zCiAgTWVkaWFuIHBhdGNoZWQ6ICAg NTIuNDkgbXMKICBEZWx0YTogKzAuOTEgbXMgKCsxLjglKQoKRGF0YWJhc2U6IHBlcmZfMTBrX2Z1 bmN0aW9ucwogIHBnX2luaXRfcHJpdnMgcm93czogMjQ5IHwgdXNlciBmdW5jdGlvbnMvYWdnczog MTA1MDAKCiAgVW5wYXRjaGVkOiAgMTYxOS4wNCAgMTY3NC4yNyAgMTYzOC4zMCAgMTU5OC44MiAg MTU5Ny41NiAgMTYxMy43NiAgMTU5MS40NAogIFBhdGNoZWQgdjY6IDE1ODIuMjMgIDE1ODQuMDEg IDE2NTcuMjggIDE1OTguMTMgIDE1NzMuOTggIDE1NzYuMDEgIDE1NzIuNTEKCiAgTWVkaWFuIHVu cGF0Y2hlZDogMTYxMy43NiBtcwogIE1lZGlhbiBwYXRjaGVkOiAgIDE1ODIuMjMgbXMKICBEZWx0 YTogLTMxLjUzIG1zICgtMi4wJSkgIFt3aXRoaW4gbm9pc2UsIHBhdGNoZWQgaXMgTk9UIHNsb3dl cl0KCkRhdGFiYXNlOiBwZXJmX2RhbmdsaW5nXzUwMAogIHBnX2luaXRfcHJpdnMgcm93czogNzQ5 ICg1MDAgZGFuZ2xpbmcpIHwgdXNlciBmdW5jdGlvbnMvYWdnczogNTAwCgogIFVucGF0Y2hlZDog IDEwNy4yOCAgMTA0LjU5ICAxMDQuMjMgIDEwMi44OSAgMTAyLjIwICA5Ni4yNiAgMTAyLjk1CiAg UGF0Y2hlZCB2NjogMTAzLjkwICAxMDUuNjQgIDEwNC42MSAgMTA1LjE4ICAxMDYuNzEgIDEwNS41 MCAgMTA3LjIwCgogIE1lZGlhbiB1bnBhdGNoZWQ6IDEwMi45NSBtcwogIE1lZGlhbiBwYXRjaGVk OiAgIDEwNS41MCBtcwogIERlbHRhOiArMi41NSBtcyAoKzIuNSUpCgpTdW1tYXJ5IFRhYmxlOgoK ICB8IERhdGFiYXNlICAgICAgICAgICB8IGluaXRwcml2cyByb3dzIHwgTWVkaWFuIHVucGF0Y2hl ZCB8IE1lZGlhbiBwYXRjaGVkIHwgRGVsdGEgICAgICB8CiAgfC0tLS0tLS0tLS0tLS0tLS0tLS0t fC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS18LS0t LS0tLS0tLS0tfAogIHwgcGVyZl9iYXNlbGluZSAgICAgIHwgMjQ5ICAgICAgICAgICAgfCA1MS41 OCBtcyAgICAgICAgIHwgNTIuNDkgbXMgICAgICAgfCArMC45IG1zICAgIHwKICB8IHBlcmZfMTBr X2Z1bmN0aW9ucyB8IDI0OSAgICAgICAgICAgIHwgMTYxMy43NiBtcyAgICAgICB8IDE1ODIuMjMg bXMgICAgIHwgLTMxLjUgbXMgKiB8CiAgfCBwZXJmX2RhbmdsaW5nXzUwMCAgfCA3NDkgICAgICAg ICAgICB8IDEwMi45NSBtcyAgICAgICAgfCAxMDUuNTAgbXMgICAgICB8ICsyLjYgbXMgICAgfAoK ICAqIE5lZ2F0aXZlIGRlbHRhID0gd2l0aGluIG1lYXN1cmVtZW50IG5vaXNlOyB0aGUgcGF0Y2gg ZG9lcyBOT1Qgc2xvdwogICAgZG93biBsYXJnZS1zY2hlbWEgZHVtcHMuCgpFWFBMQUlOIEFOQUxZ WkU6IGdldEFkZGl0aW9uYWxBQ0xzKCkgUXVlcnkgSXNvbGF0aW9uCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpEYXRhYmFzZTogcGVyZl9iYXNl bGluZSAoMjQ5IHJvd3MsIG5vIGRhbmdsaW5nIGVudHJpZXMpCgogIFVucGF0Y2hlZDoKICAgIFNl cSBTY2FuIG9uIHBnX2luaXRfcHJpdnMgKGFjdHVhbCB0aW1lPTAuMDA1Li4wLjAxNCByb3dzPTI0 OSBsb29wcz0xKQogICAgICBCdWZmZXJzOiBzaGFyZWQgaGl0PTMKICAgIFBsYW5uaW5nIFRpbWU6 IDAuMTk4IG1zCiAgICBFeGVjdXRpb24gVGltZTogMC4wNDMgbXMKCiAgUGF0Y2hlZCB2NjoKICAg IFNlcSBTY2FuIG9uIHBnX2luaXRfcHJpdnMgcGlwIChhY3R1YWwgdGltZT0wLjA0Mi4uMS4wMzcg cm93cz0yNDkgbG9vcHM9MSkKICAgICAgQnVmZmVyczogc2hhcmVkIGhpdD01CiAgICAgIFN1YlBs YW4gYXJyYXlfMQogICAgICAgIC0+IEZ1bmN0aW9uIFNjYW4gb24gdW5uZXN0IGVsdCAoYWN0dWFs IHRpbWU9MC4wMDMuLjAuMDAzIHJvd3M9MS42NSBsb29wcz0yNDkpCiAgICAgICAgICAgICBTdWJQ bGFuIGV4aXN0c18xCiAgICAgICAgICAgICAgIC0+IEZ1bmN0aW9uIFNjYW4gb24gYWNsZXhwbG9k ZSBhY2UgKGFjdHVhbCB0aW1lPTAuMDAxLi4wLjAwMSByb3dzPTAgbG9vcHM9NDExKQogICAgICAg ICAgICAgICAgICAgIFN1YlBsYW4gZXhpc3RzXzMKICAgICAgICAgICAgICAgICAgICAgIC0+IFNl cSBTY2FuIG9uIHBnX2F1dGhpZCAocm93cz0xOCBsb29wcz0xKSBbaGFzaGVkXQogICAgICAgICAg ICAgICAgICAgIFN1YlBsYW4gZXhpc3RzXzUKICAgICAgICAgICAgICAgICAgICAgIC0+IFNlcSBT Y2FuIG9uIHBnX2F1dGhpZCAocm93cz0xOCBsb29wcz0xKSBbaGFzaGVkXQogICAgUGxhbm5pbmcg VGltZTogMC42MjAgbXMKICAgIEV4ZWN1dGlvbiBUaW1lOiAxLjA4MiBtcwoKICBPdmVyaGVhZDog KzEuMDQgbXMgKG9uZS10aW1lIGNvc3QgYXQgZHVtcCBzdGFydHVwKQoKRGF0YWJhc2U6IHBlcmZf ZGFuZ2xpbmdfNTAwICg3NDkgcm93cywgNTAwIGRhbmdsaW5nIGVudHJpZXMpCgogIFVucGF0Y2hl ZDoKICAgIFNlcSBTY2FuIG9uIHBnX2luaXRfcHJpdnMgKGFjdHVhbCB0aW1lPTAuMDA1Li4wLjAz MiByb3dzPTc0OSBsb29wcz0xKQogICAgICBCdWZmZXJzOiBzaGFyZWQgaGl0PTkKICAgIFBsYW5u aW5nIFRpbWU6IDAuMjMwIG1zCiAgICBFeGVjdXRpb24gVGltZTogMC4wNjkgbXMKCiAgUGF0Y2hl ZCB2NjoKICAgIFNlcSBTY2FuIG9uIHBnX2luaXRfcHJpdnMgcGlwIChhY3R1YWwgdGltZT0wLjAz OC4uMi4xNzQgcm93cz03NDkgbG9vcHM9MSkKICAgICAgQnVmZmVyczogc2hhcmVkIGhpdD05Ngog ICAgICBTdWJQbGFuIGFycmF5XzEKICAgICAgICAtPiBGdW5jdGlvbiBTY2FuIG9uIHVubmVzdCBl bHQgKGFjdHVhbCB0aW1lPTAuMDAyLi4wLjAwMiByb3dzPTAuNTUgbG9vcHM9NzQ5KQogICAgICAg ICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogMQogICAgICAgICAgICAgU3ViUGxhbiBleGlz dHNfMQogICAgICAgICAgICAgICAtPiBGdW5jdGlvbiBTY2FuIG9uIGFjbGV4cGxvZGUgYWNlIChh Y3R1YWwgdGltZT0wLjAwMS4uMC4wMDEgcm93cz0wLjU1IGxvb3BzPTkxMSkKICAgICAgICAgICAg ICAgICAgICBTdWJQbGFuIGV4aXN0c18zCiAgICAgICAgICAgICAgICAgICAgICAtPiBTZXEgU2Nh biBvbiBwZ19hdXRoaWQgKHJvd3M9MTggbG9vcHM9MSkgW2hhc2hlZF0KICAgICAgICAgICAgICAg ICAgICBTdWJQbGFuIGV4aXN0c181CiAgICAgICAgICAgICAgICAgICAgICAtPiBTZXEgU2NhbiBv biBwZ19hdXRoaWQgKHJvd3M9MTggbG9vcHM9MSkgW2hhc2hlZF0KICAgIFBsYW5uaW5nIFRpbWU6 IDAuNTE3IG1zCiAgICBFeGVjdXRpb24gVGltZTogMi4yMjUgbXMKCiAgT3ZlcmhlYWQ6ICsyLjE2 IG1zICh3b3JzdCBjYXNlOiA1MDAgZGFuZ2xpbmcgZW50cmllcyBmaWx0ZXJlZCkKCktleSBvYnNl cnZhdGlvbjogcGdfYXV0aGlkIGlzIHNjYW5uZWQgT05DRSBhbmQgaGFzaGVkIChsb29wcz0xKS4g VGhlCmhhc2hlZCBzdWJwbGFuIGlzIHJldXNlZCBmb3IgYWxsIDc0OSByb3dzLCBtYWtpbmcgdGhl IG92ZXJoZWFkIE8obikgaW4KcGdfaW5pdF9wcml2cyByb3dzIHdpdGggYSB2ZXJ5IHNtYWxsIGNv bnN0YW50LgoKRVhQTEFJTiBBTkFMWVpFOiBnZXRBZ2dyZWdhdGVzIFdIRVJFIENsYXVzZSAoVU5D SEFOR0VEKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKRGF0YWJhc2U6IHBlcmZfMTBrX2Z1bmN0aW9ucyAoNTAwIHVzZXIgYWdncmVnYXRl cywgMTAwMDAgdXNlciBmdW5jdGlvbnMpCgogIEhhc2ggTGVmdCBKb2luIChhY3R1YWwgdGltZT0x LjAwNC4uMS4xMTMgcm93cz01MDAgbG9vcHM9MSkKICAgIEhhc2ggQ29uZDogKHAub2lkID0gcGlw Lm9iam9pZCkKICAgIEZpbHRlcjogKHAucHJvbmFtZXNwYWNlIDw+IC4uLiBPUiBwLnByb2FjbCBJ UyBESVNUSU5DVCBGUk9NIHBpcC5pbml0cHJpdnMpCiAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVy OiAxNjMKICAgIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MzQ4CiAgICAtPiBTZXEgU2NhbiBvbiBwZ19w cm9jIHAgKGFjdHVhbCB0aW1lPTAuMDM5Li4xLjAyOSByb3dzPTY2MyBsb29wcz0xKQogICAgICAg ICBGaWx0ZXI6IChwcm9raW5kID0gJ2EnKQogICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVy OiAxMzI3NAogICAgLT4gSGFzaCAoYWN0dWFsIHRpbWU9MC4wMjIuLjAuMDIyIHJvd3M9NjkgbG9v cHM9MSkKICAgICAgICAgLT4gU2VxIFNjYW4gb24gcGdfaW5pdF9wcml2cyBwaXAgKGFjdHVhbCB0 aW1lPTAuMDEwLi4wLjAxMyByb3dzPTY5IGxvb3BzPTEpCiAgICAgICAgICAgICAgRmlsdGVyOiAo Y2xhc3NvaWQgPSAxMjU1IEFORCBvYmpzdWJpZCA9IDApCiAgICAgICAgICAgICAgUm93cyBSZW1v dmVkIGJ5IEZpbHRlcjogMTgwCiAgUGxhbm5pbmcgVGltZTogMC44MzQgbXMKICBFeGVjdXRpb24g VGltZTogMS4xNjggbXMKCiAgVGhpcyBxdWVyeSBpcyBieXRlLWZvci1ieXRlIElERU5USUNBTCBp biBwYXRjaGVkIGFuZCB1bnBhdGNoZWQgY29kZS4KICBUaGUgcGF0Y2ggZG9lcyBOT1QgbW9kaWZ5 IGFueSBXSEVSRSBjbGF1c2UuIFRpbWluZyBpcyBpZGVudGljYWwuCgoKVGhlIGZpbHRlcmluZyBh ZGRzIH4xbXMgKDI0OSByb3dzKSB0byB+Mm1zICg3NDkgcm93cykgdG8gdGhlIG9uZS10aW1lCmdl dEFkZGl0aW9uYWxBQ0xzKCkgcXVlcnkgdGhhdCBydW5zIGF0IHBnX2R1bXAgc3RhcnR1cC4gVGhp cyBpcyBhIGZpeGVkCmNvc3QgdGhhdCBkb2VzIE5PVCBzY2FsZSB3aXRoIHRoZSBudW1iZXIgb2Yg ZnVuY3Rpb25zLCBhZ2dyZWdhdGVzLCBvcgpvdGhlciBvYmplY3RzIGluIHRoZSBkYXRhYmFzZS4K ClRoZSBjcml0aWNhbCBwZXJmb3JtYW5jZSB0ZXN0IGlzIHBlcmZfMTBrX2Z1bmN0aW9ucyAoMTAs MDAwIGZ1bmN0aW9ucyArCjUwMCBhZ2dyZWdhdGVzKTogdGhlIHBhdGNoZWQgdmVyc2lvbiBzaG93 cyBOTyByZWdyZXNzaW9uLiBUaGUgbWVkaWFuIGlzCmFjdHVhbGx5IDMxbXMgZmFzdGVyLCB3aGlj aCBpcyBqdXN0IG5vaXNlLiBUaGUgcGVyLW9iamVjdCBxdWVyaWVzCihnZXRBZ2dyZWdhdGVzLCBn ZXRGdW5jcykgYXJlIGNvbXBsZXRlbHkgdW5jaGFuZ2VkIGFuZCBwcm9kdWNlIGlkZW50aWNhbApl eGVjdXRpb24gcGxhbnMuCgo= --000000000000e6acf30654fee4bb Content-Type: application/octet-stream; name="v6-0001-pg_dump-skip-dangling-initprivs.patch" Content-Disposition: attachment; filename="v6-0001-pg_dump-skip-dangling-initprivs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqs1d05a1 RnJvbSAzOTY4NmYyZDg5ZmRhYTU1YjQxODE2YmNiZTE4ZDQ0NGI3ZjhmNTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBodXNleWluIDxodXNleWluLmRlbWlyQGFkeWVuLmNvbT4KRGF0 ZTogV2VkLCAyNCBKdW4gMjAyNiAxMzoyNToyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIHBnX2R1 bXA6IHNraXAgcGdfaW5pdF9wcml2cyBlbnRyaWVzIGZvciBub24tZXhpc3RlbnQgcm9sZXMKTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkJlZm9yZSBjb21taXQgNTM0Mjg3NDAzOTEs IFBvc3RncmVTUUwgZGlkIG5vdCByZWNvcmQgcm9sZSBkZXBlbmRlbmNpZXMKZm9yIHBnX2luaXRf cHJpdnMgZW50cmllcyBpbiBwZ19zaGRlcGVuZCwgbWVhbmluZyBEUk9QIFJPTEUgY291bGQgbGVh dmUKYmVoaW5kIEFDTCBlbnRyaWVzIHdob3NlIGdyYW50ZWUgb3IgZ3JhbnRvciBPSUQgbm8gbG9u Z2VyIGV4aXN0cyBpbgpwZ19hdXRoaWQuICBDcm9zcy1jbHVzdGVyIHJlc3RvcmVzIGNhbiBwcm9k dWNlIHRoZSBzYW1lIHNpdHVhdGlvbiBvbgptb2Rlcm4gcmVsZWFzZXMuCgpEYW5nbGluZyBlbnRy aWVzIGNhdXNlZCBwZ19kdW1wIHRvIGVtaXQgaW52YWxpZCBTUUwgc3VjaCBhcwoiR1JBTlQgLi4u IFRPICI4Nzg2OCIiIHdpdGggYSBudW1lcmljIE9JRCBhcyByb2xlIG5hbWUsIHdoaWNoIGZhaWxz Cm9uIHJlc3RvcmUgb3IgcGdfdXBncmFkZS4gIEFkZGl0aW9uYWxseSwgd2hlbiBhbGwgaW5pdHBy aXZzIGVudHJpZXMgZm9yCmFuIG9iamVjdCBhcmUgZGFuZ2xpbmcgYW5kIHByb2FjbCBpcyBOVUxM LCBhIHNwdXJpb3VzIFJFVk9LRSB3YXMgZW1pdHRlZC4KCkZpeCBieSBmaWx0ZXJpbmcgZWFjaCBh Y2xpdGVtIHdob3NlIGdyYW50b3Igb3Igbm9uLVBVQkxJQyBncmFudGVlIE9JRApkb2VzIG5vdCBh cHBlYXIgaW4gcGdfcm9sZXMgKHVzZWQgaW5zdGVhZCBvZiBwZ19hdXRoaWQgdG8gc3VwcG9ydApu b24tc3VwZXJ1c2VyIHBnX2R1bXApLiAgVGhlIGZpbHRlcmluZyBpcyBhcHBsaWVkIHNlcnZlci1z aWRlIGluIHRoZQpxdWVyaWVzIHRoYXQgZmV0Y2ggcGdfaW5pdF9wcml2cyBkYXRhIChnZXRBZGRp dGlvbmFsQUNMcyBhbmQgdGhlCmNvbHVtbi1sZXZlbCBBQ0wgcHJlcGFyZWQgc3RhdGVtZW50KSwg d2hlcmUgdGhlIE9JRCBjaGVjayBpcwphdXRob3JpdGF0aXZlLiAgVGhpcyBhdm9pZHMgbW9kaWZ5 aW5nIHRoZSBXSEVSRSBjbGF1c2VzIGluCmdldEFnZ3JlZ2F0ZXMvZ2V0RnVuY3MsIHByZXNlcnZp bmcgcGdfZHVtcCBwZXJmb3JtYW5jZSBvbiBsYXJnZSBzY2hlbWFzLgoKSWYgYWxsIGVudHJpZXMg Zm9yIGFuIG9iamVjdCBhcmUgZGFuZ2xpbmcgdGhlIHJlc3VsdCBpcyBOVUxMIGFuZCBubyBBQ0wK aXMgZW1pdHRlZCwgd2hpY2ggaXMgY29ycmVjdCAtLSB3ZSBjYW5ub3QgcmVzdG9yZSBncmFudHMg aW52b2x2aW5nIHJvbGVzCnRoYXQgZG8gbm90IGV4aXN0LgoKQXV0aG9yOiBIw7xzZXlpbiBEZW1p ciA8aHVzZXlpbi5kM3JAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t LzE5NDgzLTgwZGU0MmRjNGU2MmNmZDYlNDBwb3N0Z3Jlc3FsLm9yZwpCYWNrcGF0Y2gtdGhyb3Vn aDogMTQKLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAg fCAgMzcgKysrKy0KIC4uLi90LzAwOF9wZ19kdW1wX2RhbmdsaW5nX2luaXRwcml2cy5wbCAgICAg ICB8IDE0MCArKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTc0IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Jpbi9wZ19kdW1w L3QvMDA4X3BnX2R1bXBfZGFuZ2xpbmdfaW5pdHByaXZzLnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYzU2 NDM3ZDYwNTcuLmVlNGMxNGEzNjM1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTIzNyw2ICsyMzcsMzUgQEAg c3RhdGljIGludAluc2VxdWVuY2VzID0gMDsKIAlmbXRRdWFsaWZpZWRJZCgob2JqKS0+ZG9iai5u YW1lc3BhY2UtPmRvYmoubmFtZSwgXAogCQkJCSAgIChvYmopLT5kb2JqLm5hbWUpCiAKKy8qCisg KiBTUUwgZXhwcmVzc2lvbiB0aGF0IGZpbHRlcnMgZGFuZ2xpbmcgcm9sZSBPSURzIGZyb20gYSBw Z19pbml0X3ByaXZzCisgKiBhY2xpdGVtW10gY29sdW1uLiAgQW4gYWNsaXRlbSBpcyBkYW5nbGlu ZyB3aGVuIGl0cyBncmFudG9yIG9yIG5vbi1QVUJMSUMKKyAqIGdyYW50ZWUgT0lEIG5vIGxvbmdl ciBleGlzdHMgaW4gcGdfcm9sZXMuICBXZSB1c2UgcGdfcm9sZXMgcmF0aGVyIHRoYW4KKyAqIHBn X2F1dGhpZCBzbyB0aGF0IG5vbi1zdXBlcnVzZXIgcGdfZHVtcCB3b3Jrcy4KKyAqCisgKiBBcHBs aWVkIG9ubHkgaW4gcXVlcmllcyB0aGF0IGZldGNoIHBnX2luaXRfcHJpdnMgZGF0YSAobm90IGlu IFdIRVJFIGNsYXVzZXMKKyAqIG9mIHBlci1vYmplY3QgcXVlcmllcykgdG8gYXZvaWQgcnVubmlu ZyB0aGlzIHN1YnF1ZXJ5IHBlciBmdW5jdGlvbi9hZ2dyZWdhdGUuCisgKi8KKyNkZWZpbmUgU0FG RV9JTklUUFJJVlMoY29sKSBcCisJIk5VTExJRihcbiIgXAorCSIgIEFSUkFZKFxuIiBcCisJIiAg ICBTRUxFQ1QgZWx0IEZST00gcGdfY2F0YWxvZy51bm5lc3QoIiBjb2wgIikgQVMgZWx0XG4iIFwK KwkiICAgIFdIRVJFIE5PVCBFWElTVFMgKFxuIiBcCisJIiAgICAgIFNFTEVDVCAxIEZST00gcGdf Y2F0YWxvZy5hY2xleHBsb2RlKEFSUkFZW2VsdF0pIGFjZVxuIiBcCisJIiAgICAgIFdIRVJFIE5P VCBFWElTVFMgKFxuIiBcCisJIiAgICAgICAgU0VMRUNUIDEgRlJPTSBwZ19jYXRhbG9nLnBnX3Jv bGVzXG4iIFwKKwkiICAgICAgICBXSEVSRSBvaWQgPSBhY2UuZ3JhbnRvclxuIiBcCisJIiAgICAg IClcbiIgXAorCSIgICAgICBPUiAoYWNlLmdyYW50ZWUgPD4gMFxuIiBcCisJIiAgICAgICAgICBB TkQgTk9UIEVYSVNUUyAoXG4iIFwKKwkiICAgICAgICAgICAgU0VMRUNUIDEgRlJPTSBwZ19jYXRh bG9nLnBnX3JvbGVzXG4iIFwKKwkiICAgICAgICAgICAgV0hFUkUgb2lkID0gYWNlLmdyYW50ZWVc biIgXAorCSIgICAgICAgICAgKSlcbiIgXAorCSIgICAgKVxuIiBcCisJIiAgKSxcbiIgXAorCSIg IEFSUkFZW106OnBnX2NhdGFsb2cuYWNsaXRlbVtdXG4iIFwKKwkiKSIKKwogc3RhdGljIHZvaWQg aGVscChjb25zdCBjaGFyICpwcm9nbmFtZSk7CiBzdGF0aWMgdm9pZCBzZXR1cF9jb25uZWN0aW9u KEFyY2hpdmUgKkFILAogCQkJCQkJCSBjb25zdCBjaGFyICpkdW1wZW5jb2RpbmcsIGNvbnN0IGNo YXIgKmR1bXBzbmFwc2hvdCwKQEAgLTEwOTAwLDggKzEwOTI5LDkgQEAgZ2V0QWRkaXRpb25hbEFD THMoQXJjaGl2ZSAqZm91dCkKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSA5MDYwMCkKIAl7 CiAJCXByaW50ZlBRRXhwQnVmZmVyKHF1ZXJ5LAotCQkJCQkJICAiU0VMRUNUIG9iam9pZCwgY2xh c3NvaWQsIG9ianN1YmlkLCBwcml2dHlwZSwgaW5pdHByaXZzICIKLQkJCQkJCSAgIkZST00gcGdf aW5pdF9wcml2cyIpOworCQkJCQkJICAiU0VMRUNUIHBpcC5vYmpvaWQsIHBpcC5jbGFzc29pZCwg cGlwLm9ianN1YmlkLCBwaXAucHJpdnR5cGUsXG4iCisJCQkJCQkgICIgICIgU0FGRV9JTklUUFJJ VlMoInBpcC5pbml0cHJpdnMiKSAiIEFTIGluaXRwcml2c1xuIgorCQkJCQkJICAiRlJPTSBwZ19j YXRhbG9nLnBnX2luaXRfcHJpdnMgcGlwIik7CiAKIAkJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZv dXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwogCkBAIC0xNzEwMCw3ICsxNzEzMCw4 IEBAIGR1bXBUYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJ CQkJCQkJCSAiU0VMRUNUIGF0LmF0dG5hbWUsICIKIAkJCQkJCQkJCSAiYXQuYXR0YWNsLCAiCiAJ CQkJCQkJCQkgIid7fScgQVMgYWNsZGVmYXVsdCwgIgotCQkJCQkJCQkJICJwaXAucHJpdnR5cGUs IHBpcC5pbml0cHJpdnMgIgorCQkJCQkJCQkJICJwaXAucHJpdnR5cGUsXG4iCisJCQkJCQkJCQkg IiAgIiBTQUZFX0lOSVRQUklWUygicGlwLmluaXRwcml2cyIpICIgQVMgaW5pdHByaXZzXG4iCiAJ CQkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYXQgIgogCQkJCQkJCQkJICJM RUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19pbml0X3ByaXZzIHBpcCBPTiAiCiAJCQkJCQkJCQkgIihh dC5hdHRyZWxpZCA9IHBpcC5vYmpvaWQgIgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDA4X3BnX2R1bXBfZGFuZ2xpbmdfaW5pdHByaXZzLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDA4 X3BnX2R1bXBfZGFuZ2xpbmdfaW5pdHByaXZzLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4xNTgwYTI1NjM4YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC90LzAwOF9wZ19kdW1wX2RhbmdsaW5nX2luaXRwcml2cy5wbApAQCAtMCwwICsxLDE0MCBA QAorIyBDb3B5cmlnaHQgKGMpIDIwMjQtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyMKKyMgVGVzdHMgdGhhdCBwZ19kdW1wIHNpbGVudGx5IHNraXBzIHBnX2luaXRf cHJpdnMgZW50cmllcyB0aGF0IHJlZmVyZW5jZQorIyByb2xlcyBubyBsb25nZXIgcHJlc2VudCBp biBwZ19hdXRoaWQsIHJhdGhlciB0aGFuIGVtaXR0aW5nIGludmFsaWQgR1JBTlQKKyMgc3RhdGVt ZW50cyB3aXRoIG51bWVyaWMgT0lEcyBhcyByb2xlIG5hbWVzLgorCit1c2Ugc3RyaWN0OwordXNl IHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOworCit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl cjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitteSAk bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbWFpbicpOworJG5vZGUtPmlu aXQ7Ciskbm9kZS0+c3RhcnQ7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFU RSBEQVRBQkFTRSByZWdyZXNzX2RhbmdsaW5nJyk7CisKKyMgLS0tIFNldHVwIC0tLQorIyBTaW11 bGF0ZSBkYW5nbGluZyBwZ19pbml0X3ByaXZzIGVudHJpZXMgYnkgaW5zZXJ0aW5nIGdyYW50cyBm b3IgYSByb2xlCisjIGFuZCB0aGVuIGRlbGV0aW5nIHRoZSByb2xlIGRpcmVjdGx5IGZyb20gcGdf YXV0aGlkIChieXBhc3NpbmcgcGdfc2hkZXBlbmQpLgorJG5vZGUtPnNhZmVfcHNxbCgKKwkncmVn cmVzc19kYW5nbGluZycsCisJcXsKK1NFVCBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyA9IHRydWU7 CisKKy0tIFJvbGVzIGZvciB0ZXN0aW5nCitDUkVBVEUgUk9MRSBnaG9zdF9ncmFudGVlOworQ1JF QVRFIFJPTEUgZ2hvc3RfZ3JhbnRvcjsKK0NSRUFURSBST0xFICIwMDciOworCistLSBDYXNlIDE6 IGRhbmdsaW5nIGdyYW50ZWUgKGZ1bmN0aW9uKQorQ1JFQVRFIEZVTkNUSU9OIHB1YmxpYy50ZXN0 X2Z1bmNfZ3JhbnRlZSgpIFJFVFVSTlMgaW50IExBTkdVQUdFIHNxbCBBUyAnU0VMRUNUIDEnOwor SU5TRVJUIElOVE8gcGdfaW5pdF9wcml2cyAob2Jqb2lkLCBjbGFzc29pZCwgb2Jqc3ViaWQsIHBy aXZ0eXBlLCBpbml0cHJpdnMpCitTRUxFQ1QgcC5vaWQsCisgICAgICAgKFNFTEVDVCBvaWQgRlJP TSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX3Byb2MnKSwKKyAgICAgICAwLCAnZScsCisg ICAgICAgQVJSQVlbKCdnaG9zdF9ncmFudGVlPVgvJyB8fCBjdXJyZW50X3VzZXIpOjphY2xpdGVt XQorRlJPTSBwZ19wcm9jIHAKK1dIRVJFIHAucHJvbmFtZSA9ICd0ZXN0X2Z1bmNfZ3JhbnRlZScK KyAgQU5EIHAucHJvbmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVzcGFjZTsKKworLS0gQ2Fz ZSAyOiBkYW5nbGluZyBncmFudG9yIChmdW5jdGlvbikKK0NSRUFURSBGVU5DVElPTiBwdWJsaWMu dGVzdF9mdW5jX2dyYW50b3IoKSBSRVRVUk5TIGludCBMQU5HVUFHRSBzcWwgQVMgJ1NFTEVDVCAy JzsKK0lOU0VSVCBJTlRPIHBnX2luaXRfcHJpdnMgKG9iam9pZCwgY2xhc3NvaWQsIG9ianN1Ymlk LCBwcml2dHlwZSwgaW5pdHByaXZzKQorU0VMRUNUIHAub2lkLAorICAgICAgIChTRUxFQ1Qgb2lk IEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdwZ19wcm9jJyksCisgICAgICAgMCwgJ2Un LAorICAgICAgIEFSUkFZWyhjdXJyZW50X3VzZXIgfHwgJz1YL2dob3N0X2dyYW50b3InKTo6YWNs aXRlbV0KK0ZST00gcGdfcHJvYyBwCitXSEVSRSBwLnByb25hbWUgPSAndGVzdF9mdW5jX2dyYW50 b3InCisgIEFORCBwLnByb25hbWVzcGFjZSA9ICdwdWJsaWMnOjpyZWduYW1lc3BhY2U7CisKKy0t IENhc2UgMzogZGFuZ2xpbmcgY29sdW1uLWxldmVsIGdyYW50ZWUgKHRhYmxlKQorQ1JFQVRFIFRB QkxFIHB1YmxpYy50ZXN0X3RibCAoaWQgaW50LCBzZWNyZXQgdGV4dCk7CitJTlNFUlQgSU5UTyBw Z19pbml0X3ByaXZzIChvYmpvaWQsIGNsYXNzb2lkLCBvYmpzdWJpZCwgcHJpdnR5cGUsIGluaXRw cml2cykKK1NFTEVDVCBjLm9pZCwKKyAgICAgICAoU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdI RVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnKSwKKyAgICAgICAyLCAnZScsCisgICAgICAgQVJSQVlb KCdnaG9zdF9ncmFudGVlPXIvJyB8fCBjdXJyZW50X3VzZXIpOjphY2xpdGVtXQorRlJPTSBwZ19j bGFzcyBjCitXSEVSRSBjLnJlbG5hbWUgPSAndGVzdF90YmwnCisgIEFORCBjLnJlbG5hbWVzcGFj ZSA9ICdwdWJsaWMnOjpyZWduYW1lc3BhY2U7CisKKy0tIENhc2UgNDogc3B1cmlvdXMgUkVWT0tF IC0tIGFsbC1kYW5nbGluZyBpbml0cHJpdnMgb24gYSBjYXRhbG9nIGZ1bmN0aW9uCistLSB3aXRo IE5VTEwgcHJvYWNsIChzaW11bGF0ZXMgdGhlIHNwdXJpb3VzLXNlbGVjdGlvbiBzY2VuYXJpbykK K0NSRUFURSBGVU5DVElPTiBwdWJsaWMudGVzdF9mdW5jX3Jldm9rZSgpIFJFVFVSTlMgaW50IExB TkdVQUdFIHNxbCBBUyAnU0VMRUNUIDMnOworSU5TRVJUIElOVE8gcGdfaW5pdF9wcml2cyAob2Jq b2lkLCBjbGFzc29pZCwgb2Jqc3ViaWQsIHByaXZ0eXBlLCBpbml0cHJpdnMpCitTRUxFQ1QgcC5v aWQsCisgICAgICAgKFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Bn X3Byb2MnKSwKKyAgICAgICAwLCAnZScsCisgICAgICAgQVJSQVlbKCdnaG9zdF9ncmFudGVlPVgv JyB8fCBjdXJyZW50X3VzZXIpOjphY2xpdGVtXQorRlJPTSBwZ19wcm9jIHAKK1dIRVJFIHAucHJv bmFtZSA9ICd0ZXN0X2Z1bmNfcmV2b2tlJworICBBTkQgcC5wcm9uYW1lc3BhY2UgPSAncHVibGlj Jzo6cmVnbmFtZXNwYWNlOworCistLSBDYXNlIDU6IHZhbGlkIGFsbC1kaWdpdCByb2xlICIwMDci IHdpdGggYSBncmFudCAobXVzdCBOT1QgYmUgZmlsdGVyZWQpCitDUkVBVEUgRlVOQ1RJT04gcHVi bGljLnRlc3RfZnVuY18wMDcoKSBSRVRVUk5TIGludCBMQU5HVUFHRSBzcWwgQVMgJ1NFTEVDVCA3 JzsKK0dSQU5UIEVYRUNVVEUgT04gRlVOQ1RJT04gcHVibGljLnRlc3RfZnVuY18wMDcoKSBUTyAi MDA3IjsKKworLS0gTm93IGRlbGV0ZSB0aGUgZ2hvc3Qgcm9sZXMgdG8gY3JlYXRlIGRhbmdsaW5n IE9JRHMKK0RFTEVURSBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ2dob3N0X2dyYW50 ZWUnOworREVMRVRFIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAnZ2hvc3RfZ3JhbnRv cic7CisKKworfSk7CisKK215ICR0ZW1wZGlyICAgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6 dGVtcGRpcjsKK215ICRkdW1wX2ZpbGUgPSAiJHRlbXBkaXIvZGFuZ2xpbmcuc3FsIjsKKworIyBw Z19kdW1wIG11c3Qgc3VjY2VlZCBldmVuIHdpdGggZGFuZ2xpbmcgcGdfaW5pdF9wcml2cyBlbnRy aWVzLgorY29tbWFuZF9vaygKKwlbCisJCSdwZ19kdW1wJywKKwkJJy0tcG9ydCcgICAgICAgID0+ ICRub2RlLT5wb3J0LAorCQknLS1zY2hlbWEtb25seScsCisJCSctZicgICAgICAgICAgICA9PiAk ZHVtcF9maWxlLAorCQkncmVncmVzc19kYW5nbGluZycsCisJXSwKKwkncGdfZHVtcCBzdWNjZWVk cyB3aXRoIGRhbmdsaW5nIHBnX2luaXRfcHJpdnMgZW50cmllcycpOworCitteSAkZHVtcCA9IHNs dXJwX2ZpbGUoJGR1bXBfZmlsZSk7CisKKyMgLS0tIENhc2UgMTogZGFuZ2xpbmcgZ3JhbnRlZSAt LS0KK2xpa2UoJGR1bXAsIHFyL0NSRUFURSBGVU5DVElPTiBwdWJsaWNcLnRlc3RfZnVuY19ncmFu dGVlLywKKwknY2FzZSAxOiBmdW5jdGlvbiBpcyBwcmVzZW50IGluIGR1bXAnKTsKK3VubGlrZSgk ZHVtcCwgcXIvR1JBTlRcYi4qXGJ0ZXN0X2Z1bmNfZ3JhbnRlZS8sCisJJ2Nhc2UgMTogbm8gR1JB TlQgZm9yIGZ1bmN0aW9uIHdpdGggZGFuZ2xpbmcgZ3JhbnRlZScpOworCisjIC0tLSBDYXNlIDI6 IGRhbmdsaW5nIGdyYW50b3IgLS0tCitsaWtlKCRkdW1wLCBxci9DUkVBVEUgRlVOQ1RJT04gcHVi bGljXC50ZXN0X2Z1bmNfZ3JhbnRvci8sCisJJ2Nhc2UgMjogZnVuY3Rpb24gaXMgcHJlc2VudCBp biBkdW1wJyk7Cit1bmxpa2UoJGR1bXAsIHFyL0dSQU5UXGIuKlxidGVzdF9mdW5jX2dyYW50b3Iv LAorCSdjYXNlIDI6IG5vIEdSQU5UIGZvciBmdW5jdGlvbiB3aXRoIGRhbmdsaW5nIGdyYW50b3In KTsKKworIyAtLS0gQ2FzZSAzOiBjb2x1bW4tbGV2ZWwgZGFuZ2xpbmcgLS0tCitsaWtlKCRkdW1w LCBxci9DUkVBVEUgVEFCTEUgcHVibGljXC50ZXN0X3RibC8sCisJJ2Nhc2UgMzogdGFibGUgaXMg cHJlc2VudCBpbiBkdW1wJyk7Cit1bmxpa2UoJGR1bXAsIHFyL0dSQU5UXGIuKlxidGVzdF90Ymxc Yi4qc2VjcmV0L2ksCisJJ2Nhc2UgMzogbm8gY29sdW1uIEdSQU5UIGZvciBkYW5nbGluZyBjb2x1 bW4tbGV2ZWwgZW50cnknKTsKKworIyAtLS0gQ2FzZSA0OiBzcHVyaW91cyBSRVZPS0UgLS0tCits aWtlKCRkdW1wLCBxci9DUkVBVEUgRlVOQ1RJT04gcHVibGljXC50ZXN0X2Z1bmNfcmV2b2tlLywK KwknY2FzZSA0OiBmdW5jdGlvbiBpcyBwcmVzZW50IGluIGR1bXAnKTsKK3VubGlrZSgkZHVtcCwg cXIvUkVWT0tFXGIuKlxidGVzdF9mdW5jX3Jldm9rZS8sCisJJ2Nhc2UgNDogbm8gc3B1cmlvdXMg UkVWT0tFIGZvciBmdW5jdGlvbiB3aXRoIGFsbC1kYW5nbGluZyBpbml0cHJpdnMnKTsKKworIyAt LS0gQ2FzZSA1OiB2YWxpZCBhbGwtZGlnaXQgcm9sZSAiMDA3IiAtLS0KK2xpa2UoJGR1bXAsIHFy L0NSRUFURSBGVU5DVElPTiBwdWJsaWNcLnRlc3RfZnVuY18wMDcvLAorCSdjYXNlIDU6IGZ1bmN0 aW9uIGlzIHByZXNlbnQgaW4gZHVtcCcpOworbGlrZSgkZHVtcCwgcXIvR1JBTlRcYi4qXGJ0ZXN0 X2Z1bmNfMDA3XGIuKlRPXHMrIjAwNyIvLAorCSdjYXNlIDU6IEdSQU5UIHRvIHZhbGlkIGFsbC1k aWdpdCByb2xlICIwMDciIGlzIHByZXNlcnZlZCcpOworCisjIC0tLSBHZW5lcmFsOiBubyBudW1l cmljIE9JRCBhcyByb2xlIG5hbWUgKG90aGVyIHRoYW4gdGhlIHZhbGlkICIwMDciKSAtLS0KKyMg TWF0Y2ggYW55IEdSQU5UIC4uLiBUTyAiZGlnaXRzIiB3aGVyZSB0aGUgZGlnaXRzIGFyZSBOT1Qg IjAwNyIuCit1bmxpa2UoJGR1bXAsIHFyL0dSQU5UXGIuKlxiVE9ccysiKD8hMDA3IilbMC05XSsi LywKKwknbm8gR1JBTlQgd2l0aCBiYXJlIG51bWVyaWMgT0lEIGFzIHJvbGUgbmFtZSAob3RoZXIg dGhhbiB2YWxpZCAiMDA3IiknKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjU0LjAKCg== --000000000000e6acf30654fee4bb--