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 1wPf9N-000vx4-2E for pgsql-bugs@arkaria.postgresql.org; Wed, 20 May 2026 11:31:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wPf9L-007LrQ-22 for pgsql-bugs@arkaria.postgresql.org; Wed, 20 May 2026 11:31:44 +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 1wPf9L-007LrI-18 for pgsql-bugs@lists.postgresql.org; Wed, 20 May 2026 11:31:44 +0000 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wPf9J-00000000XbN-3ZNH for pgsql-bugs@lists.postgresql.org; Wed, 20 May 2026 11:31:43 +0000 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7de4be15125so4711398a34.0 for ; Wed, 20 May 2026 04:31:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779276700; cv=none; d=google.com; s=arc-20240605; b=K+x5ypR244zP/pYN4kdlu08myqZ8CEeXB5dSpsSyfYCMhSq4aXUThUPrPC7pzsfNMo XeBxMIWSjvRjnWFQS1f9Tod5UfcmHIKrqvUv4clwFl8EBKGm2WADNrHFvSj9u+iDXtbW 02KH3imx/456fKjOXNt6SSZZQ0TP58ukFWSPBDltttpCCKSKiP0i0n78KIe99xBIx+3X hyyuazrl4Cf+GCHF656NnsVEQIuU7Dvy3KENnFuQQjaRbD2gaCxS9RZ/Xr7K4uLmgH2o IM3sp1ozoiN417UGP8LObkw9qS7zlNAAaxwMhRXiQfWFNaejH4WRa4oKZ5t+99GN/XLT vi4Q== 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=RcdpIPBbgKGpCNru/4L4miMkNUE4w1jpzZb9Mmroues=; fh=1jCvk+0D74/D/xiaKAJDeV0MIIAno5/HQpyLGoIv/Cw=; b=lM6FLW556kPMHz+Nn1MsknbI8TJqNw0+UguvDg0GF1NjIsa+XMmErGhfz3k0WnKqVG GCGRIiKVAuISPJ17HzYJ5gCZTW9GHH7V0vqktwd6oi0tlS1hfdxyia/Ui9JkU0HTk42L 1jh+kC0qC/mlVpwfHIyu6FVmZnLEEdA+pnnzod6s5l97sQOlEolQvLtWMeejZTQyb4zk 3JnLL2tKDK7CNfptKg12DwsGbOJjHJBICAtRyJmeQlQFcq3dBLyAW9B4G6FNWAPt7w9w igMitpGp4H/uc4yu5BUQqDRiPJGIeF4pSprJ/Ejq8EEjUerq5sLVZXGmULwmC8+1dn22 D6hA==; 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=1779276700; x=1779881500; 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=RcdpIPBbgKGpCNru/4L4miMkNUE4w1jpzZb9Mmroues=; b=kGuQNn2QtvhPQIwFhZbCEHnMI0XELbuXo+McbONQmr6hgr0JcbGDCl3OXJCsUsZKMs 5ZwSnMmg8LePbrL1o+WLx4wBiM26kI1vMUVEIV3gsa9q/s47+yuU0DBsndyuBsXVGpdR u6f/d5GWAJiJIcjWT02GZuLyvc+fSf5To5kZpEwpiJVy4WSjPCzCxJcKapmZAjghU0pQ DEnmNRxmTmlLT3UGbHCRjdlhTnznUJIK0AFEFKhzNyfTGjELKavoijmq+nlKn2z3pmxR Hjmpm+cp7dL0syIMaBcza471x5tZJfztdI7YOKFe3WOYh6eP6JqYc2X/ON1QYGEaepUQ I9VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779276700; x=1779881500; 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=RcdpIPBbgKGpCNru/4L4miMkNUE4w1jpzZb9Mmroues=; b=O9M/KrsbQdMGD5E7KuwPPSTd8qj8sxFT260MGlnNJZ+ly1LrfHSiZDKbXdqNYws/LL +HRWcsu4JbTSB5Bc1yYvy7RjEHV8NotiQrNT4nuoAlgzWauA197ptIsb4bRgNDJBzrjZ KadV17JQH1fJwncY/ZRhVI6rLOMu2f3KxjjA65iFT+2CGyM5olVibh/e49mKqHBG5MJZ kpE1daneGOs14LBa899JZPOFINljbRs2jrgD1yLUuzDkP6EOQnU5cFXI8lsEJLuTpm3x TeASrBWhG2fZ63pOkBSSKUoOoHMTxPYGVR93XD4nGHxMM9C79BWjPvS4A4imPtSVgbOc VoUw== X-Forwarded-Encrypted: i=1; AFNElJ/eNR6Z3grTWH2X98r7HdH8ZalcHLXHL+QebG85OS0QqjqSC4NrRoVSjh4bMy0Giq+mv9PdoujvAKjM@lists.postgresql.org X-Gm-Message-State: AOJu0Yz3XhMcDoyDSfQtflcTacEiRFLhEowoI2BsmZaatRbPPhiIslqi 9Ns4bUIlQ1MCe1s7Njl6aUEgqYy6WaFgYhqT4douIiJ9eT2qPCnpn+7rJxIBpRUf6XO2hmEp7jx efdt0HEkvk0S64shGQmaLCFz2tnIQx78= X-Gm-Gg: Acq92OFYQ7FLep2AuycjkvZAEgnWNdMoNPUJclqPmOv/JgtcJsMpvAnnmZ0T3/IVNmt 5d8EYBRZjzjWQv3ImCNWJboJ3DyiYraQlQTBAWhniSGz+ySEZ8OTWrDFp38rcUlpqB5IAKxZw5f 4Z21+xpTvyNMx7gPlM/MuA8MmW+h709JAReAYr0yWF0gPWb7N8LGETdFEeWi/oR+IYdtfNTYdE9 OBf4+8mjlcN6m2RJt8y7PmHJh0i3/GGnWyeGkG8AB5J0IHG7XHT9vrttQjZe/RBGA4Fvw5G3cpT Iak0WJ+kU9YXUxPX4bx2Rv5TRPvaqfK8xUsaUoO6mr4DTCVzzl4x0ztKSSZFh1ABwroRlc/0DZ9 UYyHl0qUJby35huhxncsH57/KNUT1zCb4eI0j0wpS X-Received: by 2002:a05:6820:290e:b0:696:63dc:cac9 with SMTP id 006d021491bc7-69c942fdf14mr14049736eaf.23.1779276699869; Wed, 20 May 2026 04:31:39 -0700 (PDT) MIME-Version: 1.0 References: <19488-d7ccfca2bf6b74b0@postgresql.org> In-Reply-To: From: Alexander Korotkov Date: Wed, 20 May 2026 14:31:27 +0300 X-Gm-Features: AVHnY4I3szsB8T_TiFixmbkyXLrjD135h1ySIwusTzfzsd7XMzB62FUryeXcJrQ Message-ID: Subject: Re: BUG #19488: Standby connection fails after dropping on login event trigger enabled always To: Fujii Masao Cc: Ayush Tiwari , kyzevan23@mail.ru, pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000a766e706523e2347" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a766e706523e2347 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, May 20, 2026 at 1:03=E2=80=AFPM Fujii Masao = wrote: > On Wed, May 20, 2026 at 1:37=E2=80=AFPM Ayush Tiwari > wrote: > > Thanks for the report and the precise repro. > > +1 > > > Attached patch adds a RecoveryInProgress() check to skip the cleanup > > branch on standbys. > > Thanks for investigating this issue and for the patch! > The patch looks good to me. > > > I think this needs to be backpatched too. > > Yes. Seems this should be backpatched to v17, where login event triggers > were introduced. I've added a tap test reproducing the bug. I'm going to push and backpatch this to v17 if no objections. ------ Regards, Alexander Korotkov Supabase --000000000000a766e706523e2347 Content-Type: application/octet-stream; name="v2-0001-Skip-pg_database.dathasloginevt-cleanup-on-standb.patch" Content-Disposition: attachment; filename="v2-0001-Skip-pg_database.dathasloginevt-cleanup-on-standb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpdzdw4j0 RnJvbSA3YmE0ZDkyZDQ2MWJiN2U1ZDdjZDhjMGE5YjBiNGVlYmViMzBmNWYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogV2VkLCAyMCBNYXkgMjAyNiAxNDoyMDo1MiArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjJdIFNraXAgcGdfZGF0YWJhc2UuZGF0aGFzbG9naW5ldnQgY2xlYW51cCBvbiBzdGFu ZGJ5CgpFdmVudFRyaWdnZXJPbkxvZ2luKCkgdHJpZXMgdG8gY2xlYXIgcGdfZGF0YWJhc2UuZGF0 aGFzbG9naW5ldnQgd2hlbgp0aGUgZGF0YWJhc2Ugbm8gbG9uZ2VyIGhhcyBhbnkgbG9naW4gZXZl bnQgdHJpZ2dlcnMgYnV0IHRoZSBmbGFnIGlzCnN0aWxsIHNldC4gIFRvIG1ha2UgdGhhdCBzYWZl IGFnYWluc3QgY29uY3VycmVudCBmbGFnIHNldHRlcnMsIGl0CnRha2VzIGEgY29uZGl0aW9uYWwg QWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGUgZGF0YWJhc2Ugb2JqZWN0LgoKT24gYSBob3Qgc3Rh bmRieSwgdGhhdCBsb2NrIGFjcXVpc2l0aW9uIGZhaWxzIG91dHJpZ2h0IHdpdGgKCiAgRkFUQUw6 ICBjYW5ub3QgYWNxdWlyZSBsb2NrIG1vZGUgQWNjZXNzRXhjbHVzaXZlTG9jayBvbiBkYXRhYmFz ZQogICAgICAgICAgb2JqZWN0cyB3aGlsZSByZWNvdmVyeSBpcyBpbiBwcm9ncmVzcwoKYmVjYXVz ZSBMb2NrQWNxdWlyZUV4dGVuZGVkKCkgcmVmdXNlcyBsb2NrcyBzdHJvbmdlciB0aGFuClJvd0V4 Y2x1c2l2ZUxvY2sgb24gZGF0YWJhc2Ugb2JqZWN0cyBkdXJpbmcgcmVjb3ZlcnkuICBUaGUgc3Rh bmRieQphbHJlYWR5IHJlcGxheXMgdGhlIGZsYWcncyB2YWx1ZSBmcm9tIHRoZSBwcmltYXJ5LCBz byB0aGUgZGFuZ2xpbmcKZmxhZyBpcyB0aGUgcmVzdWx0IG9mIHJlcGxheWluZyBhIHN0YXRlIGlu IHdoaWNoIHRoZSBwcmltYXJ5IGhhZAphbHJlYWR5IGRyb3BwZWQgaXRzIGxvZ2luIGV2ZW50IHRy aWdnZXJzIGJ1dCBub3QgeWV0IHJ1biBhIGxvZ2luCmV2ZW50IHRyaWdnZXIgcGFzcyB0byBjbGVh ciB0aGUgZmxhZy4gIEFueSBzZXNzaW9uIGNvbm5lY3RpbmcgdG8gdGhlCnN0YW5kYnkgaW4gdGhh dCB3aW5kb3cgdGhlcmVmb3JlIGZhaWxzIHRvIGNvbm5lY3QuCgpTa2lwIHRoZSBjbGVhbnVwIG9u IGEgc3RhbmRieS4gIFRoZSBmbGFnIHdpbGwgYmUgY2xlYXJlZCB2aWEgV0FMCnJlcGxheSBvbmNl IHRoZSBwcmltYXJ5IGNsZWFycyBpdCBvbiBpdHMgc2lkZS4KCkFkZCBhIHJlY292ZXJ5IFRBUCB0 ZXN0IHRoYXQgcmVwcm9kdWNlcyB0aGUgb3JpZ2luYWwgcmVwb3J0OiBjcmVhdGUKYW5kIGRyb3Ag YSBsb2dpbiBldmVudCB0cmlnZ2VyIG9uIHRoZSBwcmltYXJ5IGluIG9uZSBzZXNzaW9uLCB3YWl0 CmZvciB0aGUgc3RhbmRieSB0byByZXBsYXksIHRoZW4gdmVyaWZ5IHRoYXQgYSBmcmVzaCBjb25u ZWN0aW9uIHRvCnRoZSBzdGFuZGJ5IHN1Y2NlZWRzLgoKQmFja3BhdGNoIHRvIHYxNywgd2hlcmUg dGhlIGxvZ2luIGV2ZW50IHRyaWdnZXJzIHdlcmUgaW50cm9kdWNlZC4KCkF1dGhvcjogQXl1c2gg VGl3YXJpIDxheXVzaHRpd2FyaS5zbGcwMUBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBFZ29yIENo aW5keWFza2luIDxreXpldmFuMjNAbWFpbC5ydT4KUmV2aWV3ZWQtYnk6IEZ1amlpIE1hc2FvIDxt YXNhby5mdWppaUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFl a29yb3Rrb3ZAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzE5NDg4 LWQ3Y2NmY2EyYmY2Yjc0YjAlNDBwb3N0Z3Jlc3FsLm9yZwpCYWNrcGF0Y2gtdGhyb3VnaDogMTcK LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAxMCAr Ky0KIHNyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICB8ICAxICsK IC4uLi90LzA1M19zdGFuZGJ5X2xvZ2luX2V2ZW50X3RyaWdnZXIucGwgICAgICB8IDc4ICsrKysr KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlY292ZXJ5L3QvMDUzX3N0YW5k YnlfbG9naW5fZXZlbnRfdHJpZ2dlci5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2V2ZW50X3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YwppbmRleCBkY2QyZjVhMDliYi4uYWRjNmVhYmMwZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMKQEAgLTkzNyw4ICs5MzcsMTYgQEAgRXZlbnRUcmlnZ2VyT25Mb2dpbih2b2lk KQogCSAqIGxvY2sgdG8gcHJldmVudCBjb25jdXJyZW50IFNldERhdGFiYXNlSGFzTG9naW5FdmVu dFRyaWdnZXJzKCksIGJ1dCB3ZQogCSAqIGRvbid0IHdhbnQgdG8gaGFuZyB0aGUgY29ubmVjdGlv biB3YWl0aW5nIG9uIHRoZSBsb2NrLiAgVGh1cywgd2UgYXJlCiAJICoganVzdCB0cnlpbmcgdG8g YWNxdWlyZSB0aGUgbG9jayBjb25kaXRpb25hbGx5LgorCSAqCisJICogU2tpcCB0aGlzIG9uIGEg aG90IHN0YW5kYnk6IHRoZSBjb25kaXRpb25hbCBBY2Nlc3NFeGNsdXNpdmVMb2NrIG9uIHRoZQor CSAqIGRhdGFiYXNlIG9iamVjdCB3b3VsZCBmYWlsIHdpdGggImNhbm5vdCBhY3F1aXJlIGxvY2sg bW9kZSAuLi4gd2hpbGUKKwkgKiByZWNvdmVyeSBpcyBpbiBwcm9ncmVzcyIsIHdoaWNoIHRoZSBj YWxsZXIgd291bGQgc3VyZmFjZSBhcyBhIEZBVEFMCisJICogY29ubmVjdGlvbiBlcnJvci4gIE9u IGEgc3RhbmRieSwgd2UgY2Fubm90IChhbmQgbXVzdCBub3QpIGNsZWFyIHRoZQorCSAqIHBnX2Rh dGFiYXNlIGZsYWcgb3Vyc2VsdmVzOyBpdCB3aWxsIGJlIGNsZWFyZWQgdmlhIFdBTCByZXBsYXkg b25jZSB0aGUKKwkgKiBwcmltYXJ5J3MgbmV4dCBsb2dpbiBldmVudCB0cmlnZ2VyIHJ1biBjbGVh cnMgaXQgb24gdGhlIHByaW1hcnkuCiAJICovCi0JZWxzZSBpZiAoQ29uZGl0aW9uYWxMb2NrU2hh cmVkT2JqZWN0KERhdGFiYXNlUmVsYXRpb25JZCwgTXlEYXRhYmFzZUlkLAorCWVsc2UgaWYgKCFS ZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJgorCQkJIENvbmRpdGlvbmFsTG9ja1NoYXJlZE9iamVjdChE YXRhYmFzZVJlbGF0aW9uSWQsIE15RGF0YWJhc2VJZCwKIAkJCQkJCQkJCQkgMCwgQWNjZXNzRXhj bHVzaXZlTG9jaykpCiAJewogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVz b24uYnVpbGQgYi9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZAppbmRleCAzNmQ3ODk3MjBh My4uOWViOGVkMTE0MjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxk CisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCkBAIC02MSw2ICs2MSw3IEBAIHRl c3RzICs9IHsKICAgICAgICd0LzA1MF9yZWRvX3NlZ21lbnRfbWlzc2luZy5wbCcsCiAgICAgICAn dC8wNTFfZWZmZWN0aXZlX3dhbF9sZXZlbC5wbCcsCiAgICAgICAndC8wNTJfY2hlY2twb2ludF9z ZWdtZW50X21pc3NpbmcucGwnLAorICAgICAgJ3QvMDUzX3N0YW5kYnlfbG9naW5fZXZlbnRfdHJp Z2dlci5wbCcsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5 L3QvMDUzX3N0YW5kYnlfbG9naW5fZXZlbnRfdHJpZ2dlci5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5 L3QvMDUzX3N0YW5kYnlfbG9naW5fZXZlbnRfdHJpZ2dlci5wbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZWJkOGNjMjc4ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9yZWNvdmVyeS90LzA1M19zdGFuZGJ5X2xvZ2luX2V2ZW50X3RyaWdnZXIucGwKQEAgLTAs MCArMSw3OCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisjCisjIFZlcmlmeSB0aGF0IGNvbm5lY3RpbmcgdG8gYSBzdGFuZGJ5IHN0 aWxsIHdvcmtzIGFmdGVyIGEgbG9naW4gZXZlbnQKKyMgdHJpZ2dlciBoYXMgYmVlbiBjcmVhdGVk IGFuZCBkcm9wcGVkIG9uIHRoZSBwcmltYXJ5LgorIworIyBDUkVBVEUgRVZFTlQgVFJJR0dFUiAu Li4gT04gbG9naW4gc2V0cyBwZ19kYXRhYmFzZS5kYXRoYXNsb2dpbmV2dCB0bworIyB0cnVlIG9u IHRoZSBwcmltYXJ5LCBidXQgRFJPUCBFVkVOVCBUUklHR0VSIGRvZXMgbm90IGNsZWFyIGl0IC0t IHRoZQorIyBuZXh0IGxvZ2luIGV2ZW50IHRyaWdnZXIgcGFzcyBjbGVhcnMgdGhlIGZsYWcgbGF6 aWx5IG9uIHRoZSBwcmltYXJ5LgorIyBUaGF0IGRhbmdsaW5nIGZsYWcgcmVwbGljYXRlcyB0byB0 aGUgc3RhbmRieS4gIEJlZm9yZSB0aGUKKyMgUmVjb3ZlcnlJblByb2dyZXNzKCkgZ3VhcmQgaW4g RXZlbnRUcmlnZ2VyT25Mb2dpbigpLCB0aGUgc3RhbmRieQorIyB0cmllZCB0byBjbGVhciB0aGUg ZmxhZyBpdHNlbGYsIHdoaWNoIHJlcXVpcmVzIEFjY2Vzc0V4Y2x1c2l2ZUxvY2sKKyMgb24gdGhl IGRhdGFiYXNlIG9iamVjdDsgdGhhdCBsb2NrIG1vZGUgaXMgZm9yYmlkZGVuIGR1cmluZyByZWNv dmVyeSwKKyMgc28gdGhlIG5ldyBjb25uZWN0aW9uIGRpZWQgd2l0aCBGQVRBTC4KKwordXNlIHN0 cmljdDsKK3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7 CisKKyMgU2V0IHVwIHByaW1hcnkgYW5kIGEgc3RyZWFtaW5nIHN0YW5kYnkuCitteSAkcHJpbWFy eSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHJpbWFyeScpOworJHByaW1hcnkt PmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxKTsKKyRwcmltYXJ5LT5zdGFydDsKKworbXkgJGJh Y2t1cF9uYW1lID0gJ2xvZ2luX2V2dF9iYWNrdXAnOworJHByaW1hcnktPmJhY2t1cCgkYmFja3Vw X25hbWUpOworCitteSAkc3RhbmRieSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygn c3RhbmRieScpOworJHN0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoJHByaW1hcnksICRiYWNrdXBf bmFtZSwgaGFzX3N0cmVhbWluZyA9PiAxKTsKKyRzdGFuZGJ5LT5zdGFydDsKKworIyBTYW5pdHkg Y2hlY2s6IGEgZnJlc2ggc3RhbmRieSB3aXRoIGRhdGhhc2xvZ2luZXZ0ID0gZmFsc2UgYWNjZXB0 cworIyBjb25uZWN0aW9ucyB3aXRob3V0IGV4ZXJjaXNpbmcgdGhlIGNsZWFudXAgYnJhbmNoLgor JHN0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNUIDEnKTsKKworIyBDcmVhdGUg YW5kIGRyb3AgYSBsb2dpbiBldmVudCB0cmlnZ2VyIG9uIHRoZSBwcmltYXJ5IGluIGEgc2luZ2xl CisjIHNlc3Npb24uICBDUkVBVEUgRVZFTlQgVFJJR0dFUiBzZXRzIHBnX2RhdGFiYXNlLmRhdGhh c2xvZ2luZXZ0ID0KKyMgdHJ1ZTsgbWFyayBpdCBFTkFCTEUgQUxXQVlTIHNvIHRoZSBzY2VuYXJp byBtYXRjaGVzIHRoZSBvcmlnaW5hbAorIyBidWcgcmVwb3J0LiAgQWZ0ZXIgRFJPUCB0aGUgZmxh ZyByZW1haW5zIHNldCBvbiBkaXNrIHVudGlsIGEKKyMgc3Vic2VxdWVudCBsb2dpbiBvbiB0aGUg cHJpbWFyeSBjbGVhcnMgaXQgLS0gc28gd2UgbXVzdCBub3Qgb3BlbgorIyBhbm90aGVyIGNvbm5l Y3Rpb24gdG8gdGhlIHByaW1hcnkgdGhhdCB3b3VsZCBjbGVhciBpdCBiZWZvcmUgdGhlCisjIFdB TCBjb250YWluaW5nIGRhdGhhc2xvZ2luZXZ0ID0gdHJ1ZSBpcyBzaGlwcGVkIHRvIHRoZSBzdGFu ZGJ5LgorJHByaW1hcnktPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxeworQ1JFQVRFIEZVTkNU SU9OIGluaXRfc2Vzc2lvbigpIFJFVFVSTlMgZXZlbnRfdHJpZ2dlcgorTEFOR1VBR0UgcGxwZ3Nx bCBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJ2luaXRfc2Vzc2lvbic7IEVORCAkJDsKK0NSRUFU RSBFVkVOVCBUUklHR0VSIGluaXRfc2Vzc2lvbiBPTiBsb2dpbgorICAgIEVYRUNVVEUgRlVOQ1RJ T04gaW5pdF9zZXNzaW9uKCk7CitBTFRFUiBFVkVOVCBUUklHR0VSIGluaXRfc2Vzc2lvbiBFTkFC TEUgQUxXQVlTOworRFJPUCBFVkVOVCBUUklHR0VSIGluaXRfc2Vzc2lvbjsKK0RST1AgRlVOQ1RJ T04gaW5pdF9zZXNzaW9uKCk7Cit9KTsKKworIyBXYWl0IGZvciB0aGUgc3RhbmRieSB0byByZXBs YXkgdGhlIENSRUFURS9EUk9QIGNhdGFsb2cgc3RhdGUuICBBdAorIyB0aGlzIHBvaW50IHRoZSBz dGFuZGJ5J3MgcGdfZGF0YWJhc2UuZGF0aGFzbG9naW5ldnQgaXMgc3RpbGwgdHJ1ZS4KKyRwcmlt YXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieSk7CisKKyMgQSBuZXcgY29ubmVj dGlvbiB0byB0aGUgc3RhbmRieSBleGVyY2lzZXMgRXZlbnRUcmlnZ2VyT25Mb2dpbigpJ3MKKyMg Y2xlYW51cCBicmFuY2guICBXaXRoIHRoZSBSZWNvdmVyeUluUHJvZ3Jlc3MoKSBndWFyZCwgdGhh dCBicmFuY2ggaXMKKyMgc2tpcHBlZCBvbiB0aGUgc3RhbmRieSBhbmQgdGhlIGNvbm5lY3Rpb24g c3VjY2VlZHMuICBXaXRob3V0IGl0IHRoZQorIyBzZXNzaW9uIGFib3J0cyB3aXRoIGEgRkFUQUwg YWJvdXQgQWNjZXNzRXhjbHVzaXZlTG9jay4gIFByb2JpbmcgdGhlCisjIGZsYWcgaXRzZWxmIHZp YSBzYWZlX3BzcWwgaXMgd2hhdCB0cmlnZ2VycyB0aGUgY2xlYW51cCBwYXRoLgoraXMoICRzdGFu ZGJ5LT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsCisJCSJTRUxFQ1QgZGF0aGFzbG9naW5ldnQg RlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gJ3Bvc3RncmVzJyIpLAorCSd0JywKKwkn c3RhbmRieSBhY2NlcHRzIGNvbm5lY3Rpb24gYW5kIHJlcG9ydHMgZGFuZ2xpbmcgZGF0aGFzbG9n aW5ldnQnKTsKKworIyBSZXBlYXQgd2l0aCBhIG5vbi1kaWUgcHNxbCB0byBtYWtlIHN1cmUgbm8g RkFUQUwgaXMgZW1pdHRlZC4KK215ICgkcmV0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5 LT5wc3FsKCdwb3N0Z3JlcycsICdTRUxFQ1QgMScpOworaXMoJHJldCwgMCwgJ3N0YW5kYnkgYWNj ZXB0cyBzZWNvbmQgY29ubmVjdGlvbiB3aXRoIGRhbmdsaW5nIGRhdGhhc2xvZ2luZXZ0Jyk7Cit1 bmxpa2UoCisJJHN0ZGVyciwKKwlxci9jYW5ub3QgYWNxdWlyZSBsb2NrIG1vZGUgQWNjZXNzRXhj bHVzaXZlTG9jay8sCisJJ25vIEFjY2Vzc0V4Y2x1c2l2ZUxvY2sgRkFUQUwgb24gc3RhbmRieSBs b2dpbicpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000a766e706523e2347--