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 1waZkh-001tzs-1u for pgsql-hackers@arkaria.postgresql.org; Fri, 19 Jun 2026 13:59:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1waZkf-00GWj6-0z for pgsql-hackers@arkaria.postgresql.org; Fri, 19 Jun 2026 13:59:21 +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 1waZke-00GWix-3A for pgsql-hackers@lists.postgresql.org; Fri, 19 Jun 2026 13:59:21 +0000 Received: from mail-yx1-xb12a.google.com ([2607:f8b0:4864:20::b12a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1waZkc-00000001HHG-29GR for pgsql-hackers@lists.postgresql.org; Fri, 19 Jun 2026 13:59:20 +0000 Received: by mail-yx1-xb12a.google.com with SMTP id 956f58d0204a3-662bf1dab83so2613899d50.3 for ; Fri, 19 Jun 2026 06:59:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781877556; cv=none; d=google.com; s=arc-20240605; b=US3nkWQ1K+EQbi6FllWdnYkiwK/oMSnk9Equ5L9KDig+hpnX2LOafLAC2cl4xH9gjc qairL/V+wL3WyHmhRYdy7QKE6BjSSr4/Rs4dgj6weOsCetn+OUZZ7Q0fh8h909Df0+bo yXdYFcLHsJLK2a2847w9V4Nv+jHlgfCyHBHavBsit7WydZGgrEZ40A7X6Li9YOsGyrhK +JMDn1AON9VXMNJQy1xPOx9c7J+HIpn+ChykFQkcZFN8g0XzPs51p6/8cb77FjZ40pVd 7tQMBmmNRSd6735ftg4PcqlsYRlInpKslkaDnlmr/N4hhUInct17cSUYtGKPNsm72M26 zqIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=wW184J4KwSCr8zztxP99EdmQAkd6BXg0UCSDmNuTFq0=; fh=dxJXJbLzq9Nah1LUdsj4QTuQ3JoDScd0wp1YHY64NXM=; b=GL7c4K6eNhH3P2C1NtZQxTWqwV167sXWIBb53BCKzBnt9T54xCimF2KTqyRMnR6FRR NeX0HICF54TmWvZVCYV03SYKs0pc508yi5BlFt/drDWZqxRnev7VcWbZi7Q+3OBBAQkW OR//XjODZnS4sFaMbePK227MCSQzVy8jzOQu5FULHPkr2oN00Dnmc6Exja6NIOGTfZja yGlp+BnOPN5ZCR+7nu4HjbwSgcQwXIlEpdsDcSadOKbOcXNlt20k/xcRbTBcNyUCxmTU ouVrMzAlDwpLXbXVJApLFbQkwmFmujZh6QRtK3n7pxEN2xZmLzZT4ernMbwEElP56ava ZsvA==; 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=1781877556; x=1782482356; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=wW184J4KwSCr8zztxP99EdmQAkd6BXg0UCSDmNuTFq0=; b=V0GMbvkszkETYbdjcErKo/+zl4fCQvN17QUUJ9ZNFSNkS8mL7dniRHGXJ2daz30wjB zq29TJYcp0qyYgSmb3BeDdYwsWIhihPuH+RG71TsbIOxs7H4UfzI+Q+L6fEYRQSm31bo oeD7xus3PJfVK5GBa8hHiH8PLScMCy5mp6Unu/rW++XGTfZAyGPCrGzVpL/auXAiB5dF g0f1mXMAH686pTapSbegVbs1HdDRce4d2Wh0R4qrmTCr3RzjwUySUB9zbv3aDCymD8wY pzFaLezIVGWVlU/ivXUpqXl9Sbk81yelZXIZuISiYd23DQ3RWlIWU0TZlywoMKTpJF+i Lefg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781877556; x=1782482356; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wW184J4KwSCr8zztxP99EdmQAkd6BXg0UCSDmNuTFq0=; b=Jn7ORdljSorB0UbqY9MEOJSn6SRh5y2wKhoixmDpP5DM3+l+7BIF0loV5rsziJm/3Q hh134mG/9TazXW42w7kYzqQWOrkUSGkfr29QMUadefJVLd29vXgva8r7Mw5F+TgnZV9w ngl7H1PpW7A+Hf13YVZ0a66MrEIexWaeIhhGP0qXpHiq1fwsx7hbjZiCPrJ+0PPsVOXs Dt1dvjmypevS9QTHKAe4SQRsENt+3sQDyqFrCih3DguairwhiqFRzax571RgiXBhCXa0 MmvUwauBxeeuq4mQ5tBVdpc3Ep7YY+17ON3y+twQMoir6DdeSPAe41/WX+m7UgUx2K8A N9Jg== X-Gm-Message-State: AOJu0YxIryUrNmpc5tFmmDR6m9/u6Qz3jxCOzT1qGcqo+YUrU7o6E9Rz ExVOrVsDks8xMIvz9boj4oWCyrixhjQrNgAw6z3ZqXtmqKGA6ersAmpHGcxsHiHTWx9FPWldhCH JHOwvzzwP1BkHtP5+Bm983TnWNXrOOHneCOfQ X-Gm-Gg: AfdE7clCLBeaPdLmYQeJKZRQzEnt3g3dKeVriiaq7rGVnk7IlnD6/4yRiuH7ouZ0Ak6 1qh6ldb99N/rxFt882a/c8zrOgOXxtK4Gcr/c+XFWmM0oB+058ej/B6EXJu+6wAwxwDrVyMwkc0 NPnv4b2bnnSkZf7q314tbuPpcGgYwWqPVMxi4+DbEEPtirJWaXSSWk+r5lvFooIOuAI2C8YAzzi VzWdNsNDwXVUeKi8BmGwnA5zqlGXFmZrUH+rYCsBgpkDIU2v8hW0kFRrMET7/KWaoQnUdVvxm3+ FZLAaEfKHbtGeYekJVIWN+WL1WtJ X-Received: by 2002:a05:690e:d55:b0:65e:37bc:c759 with SMTP id 956f58d0204a3-662fcccec59mr3776963d50.62.1781877556161; Fri, 19 Jun 2026 06:59:16 -0700 (PDT) MIME-Version: 1.0 From: vignesh C Date: Fri, 19 Jun 2026 19:29:03 +0530 X-Gm-Features: AVVi8CeMAjPKcgJCoKi4-Gj9xWRWl9Buk7DKdjVbhzp7aU1kNTTpiwGupCkDl-g Message-ID: Subject: Include sequences in publications created by pg_createsubscriber To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000c50d6206549bb2c8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c50d6206549bb2c8 Content-Type: text/plain; charset="UTF-8" Hi, pg_createsubscriber is primarily used to facilitate major-version upgrades of physical replication clusters by converting a physical standby into a logical subscriber. The current upgrade workflow is: Step 1) Run pg_createsubscriber to convert physical replication cluster to logical replication cluster: Step 2) Run pg_upgrade to upgrade Node-B to the new PG19 version: Step 3) Stop connections/data changes in Node-A Step 4) Synchronize the incremental data changes made on Node-A during the upgrade process to Node-B. Step 5) Redirect Writes to Node-B after the catchup Step 6) Decommission Node-A Step 7) Create Standby node using pg_basebackup, Node-C from Node-B However, there is a gap in this workflow: while table data is kept synchronized through logical replication, sequence state is not. As a result, sequence values on the upgraded node can lag behind the publisher and must be synchronized manually. Recently, commit 96b37849734673e7c82fb86c4f0a46a28f500ac8 added support for publishing ALL SEQUENCES, and commit 5509055d6956745532e65ab218e15b99d87d66ce introduced sequence synchronization support. These features can be leveraged by pg_createsubscriber to include sequences in the publication and synchronize their state. With sequence synchronization, the workflow becomes: Step 1) Run pg_createsubscriber to convert physical replication cluster to logical replication cluster: Step 2) Run pg_upgrade to upgrade Node-B to new PG19 version: Step 3) Stop connections/data changes in Node-A Step 4) Synchronize the incremental data changes made on Node-A during the upgrade process to Node-B. Step 5) Run ALTER SUBSCRIPTION ... REFRESH SEQUENCES to synchronize the state of all subscribed sequences. Step 6) Redirect Writes to Node-B after the catchup Step 7) Decommission Node-A Step 8) Create Standby node using pg_basebackup, Node-C from Node-B Compared to the earlier upgrade workflow, the only additional requirement is Step 5, which synchronizes sequence state between the publisher and subscriber. The attached patch modifies pg_createsubscriber to include sequences in the publication it creates, enabling this workflow. Thoughts? Regards, Vignesh --000000000000c50d6206549bb2c8 Content-Type: application/octet-stream; name="0001-Include-sequences-in-publications-created-by-pg_crea.patch" Content-Disposition: attachment; filename="0001-Include-sequences-in-publications-created-by-pg_crea.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqkztxja0 RnJvbSAyMTM4OWY0ODI4NWY3OThhNTA2NGNjMWYxMjExZGZlN2RhOGMxYmE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMTkgSnVuIDIwMjYgMTk6MTQ6MjcgKzA1MzAKU3ViamVjdDogW1BBVENIXSBJbmNsdWRl IHNlcXVlbmNlcyBpbiBwdWJsaWNhdGlvbnMgY3JlYXRlZCBieQogcGdfY3JlYXRlc3Vic2NyaWJl cgoKcGdfY3JlYXRlc3Vic2NyaWJlciBjcmVhdGVzIGEgcHVibGljYXRpb24gb24gdGhlIHB1Ymxp c2hlciB0byBlc3RhYmxpc2gKbG9naWNhbCByZXBsaWNhdGlvbiBiZXR3ZWVuIHRoZSBvcmlnaW5h bCBwcmltYXJ5IGFuZCB0aGUgY29udmVydGVkCnN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIHB1 YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBGT1IgQUxMIFRBQkxFUywKd2hpY2ggZW5zdXJlcyB0 aGF0IHRhYmxlIGRhdGEgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBkdXJpbmcgdGhlIHVwZ3JhZGUK cHJvY2Vzcy4KCkhvd2V2ZXIsIHNlcXVlbmNlIHN0YXRlIGlzIG5vdCByZXBsaWNhdGVkIGFzIHBh cnQgb2YgdGhpcyB3b3JrZmxvdy4KClJlY2VudCBhZGRpdGlvbnMgdG8gbG9naWNhbCByZXBsaWNh dGlvbiBpbnRyb2R1Y2VkIHN1cHBvcnQgZm9yIHB1Ymxpc2hpbmcKYWxsIHNlcXVlbmNlcyBhbmQg c3luY2hyb25pemluZyBzZXF1ZW5jZSBzdGF0ZSB0aHJvdWdoIHN1YnNjcmlwdGlvbgpyZWZyZXNo LiBCeSBjcmVhdGluZyBwdWJsaWNhdGlvbnMgd2l0aCBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVF TkNFUywKcGdfY3JlYXRlc3Vic2NyaWJlciBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlc2UgY2Fw YWJpbGl0aWVzIGFuZCBhbGxvdwpzZXF1ZW5jZSBzdGF0ZSB0byBiZSBzeW5jaHJvbml6ZWQgYmVm b3JlIHRoZSB1cGdyYWRlZCBub2RlIGlzIHByb21vdGVkLgoKVGhpcyBjaGFuZ2UgbW9kaWZpZXMg cGdfY3JlYXRlc3Vic2NyaWJlciB0byBpbmNsdWRlIGFsbCBzZXF1ZW5jZXMgaW4gdGhlCnB1Ymxp Y2F0aW9uIGl0IGNyZWF0ZXMuIEFkbWluaXN0cmF0b3JzIGNhbiB0aGVuIHJ1biBBTFRFUiBTVUJT Q1JJUFRJT04KLi4uIFJFRlJFU0ggU0VRVUVOQ0VTIGFmdGVyIHRoZSB1cGdyYWRlIHRvIHN5bmNo cm9uaXplIHNlcXVlbmNlIHN0YXRlLAplbnN1cmluZyBhIG1vcmUgY29tcGxldGUgYW5kIHJlbGlh YmxlIHVwZ3JhZGUgd29ya2Zsb3cuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJz Y3JpYmVyLnNnbWwgICAgIHwgMzcgKysrKysrKysrKysrLS0tLS0tLQogc3JjL2Jpbi9wZ19iYXNl YmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwgIDIgKy0KIC4uLi90LzA0MF9wZ19jcmVh dGVzdWJzY3JpYmVyLnBsICAgICAgICAgICAgICB8ICA4ICsrKysKIDMgZmlsZXMgY2hhbmdlZCwg MzIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2Ny ZWF0ZXN1YnNjcmliZXIuc2dtbAppbmRleCAzYjMwMzhkMTg5MS4uODJiMzg5ZTZiOTQgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCkBAIC00OCwxMSArNDgsMTEg QEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICAgPHBhcmE+CiAgICA8YXBwbGljYXRpb24+ cGdfY3JlYXRlc3Vic2NyaWJlcjwvYXBwbGljYXRpb24+IGNyZWF0ZXMgYSBuZXcgbG9naWNhbAot ICAgcmVwbGljYSBmcm9tIGEgcGh5c2ljYWwgc3RhbmRieSBzZXJ2ZXIuICBBbGwgdGFibGVzIGlu IHRoZSBzcGVjaWZpZWQKLSAgIGRhdGFiYXNlIGFyZSBpbmNsdWRlZCBpbiB0aGUgPGxpbmsgbGlu a2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbiI+bG9naWNhbAotICAgcmVwbGljYXRpb248L2xpbms+ IHNldHVwLiAgQSBwYWlyIG9mCi0gICBwdWJsaWNhdGlvbiBhbmQgc3Vic2NyaXB0aW9uIG9iamVj dHMgYXJlIGNyZWF0ZWQgZm9yIGVhY2ggZGF0YWJhc2UuICBJdAotICAgbXVzdCBiZSBydW4gYXQg dGhlIHRhcmdldCBzZXJ2ZXIuCisgICByZXBsaWNhIGZyb20gYSBwaHlzaWNhbCBzdGFuZGJ5IHNl cnZlci4gIEFsbCB0YWJsZXMgYW5kIHNlcXVlbmNlcyBpbiB0aGUKKyAgIHNwZWNpZmllZCBkYXRh YmFzZSBhcmUgaW5jbHVkZWQgaW4gdGhlCisgICA8bGluayBsaW5rZW5kPSJsb2dpY2FsLXJlcGxp Y2F0aW9uIj5sb2dpY2FsIHJlcGxpY2F0aW9uPC9saW5rPiBzZXR1cC4gIEEKKyAgIHBhaXIgb2Yg cHVibGljYXRpb24gYW5kIHN1YnNjcmlwdGlvbiBvYmplY3RzIGFyZSBjcmVhdGVkIGZvciBlYWNo IGRhdGFiYXNlLgorICAgSXQgbXVzdCBiZSBydW4gYXQgdGhlIHRhcmdldCBzZXJ2ZXIuCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KQEAgLTYwLDggKzYwLDkgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCiAgICBmcmVzaCBsb2dpY2FsIHJlcGxpY2F0aW9uIHNldHVwLiAgVGhlIG1haW4gZGlmZmVy ZW5jZSBiZXR3ZWVuIHRoZSBsb2dpY2FsCiAgICByZXBsaWNhdGlvbiBzZXR1cCBhbmQgPGFwcGxp Y2F0aW9uPnBnX2NyZWF0ZXN1YnNjcmliZXI8L2FwcGxpY2F0aW9uPiBpcyBob3cKICAgIHRoZSBk YXRhIHN5bmNocm9uaXphdGlvbiBpcyBkb25lLiA8YXBwbGljYXRpb24+cGdfY3JlYXRlc3Vic2Ny aWJlcjwvYXBwbGljYXRpb24+Ci0gICBkb2VzIG5vdCBjb3B5IHRoZSBpbml0aWFsIHRhYmxlIGRh dGEuIEl0IGRvZXMgb25seSB0aGUgc3luY2hyb25pemF0aW9uIHBoYXNlLAotICAgd2hpY2ggZW5z dXJlcyBlYWNoIHRhYmxlIGlzIGJyb3VnaHQgdXAgdG8gYSBzeW5jaHJvbml6ZWQgc3RhdGUuCisg ICBkb2VzIG5vdCBjb3B5IHRoZSBpbml0aWFsIHRhYmxlIG9yIHNlcXVlbmNlIGRhdGEuIEl0IGRv ZXMgb25seSB0aGUKKyAgIHN5bmNocm9uaXphdGlvbiBwaGFzZSwgd2hpY2ggZW5zdXJlcyBlYWNo IHRhYmxlIGFuZCBzZXF1ZW5jZSBpcyBicm91Z2h0IHVwCisgICB0byBhIHN5bmNocm9uaXplZCBz dGF0ZS4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMjc1LDEwICsyNzYsMTAgQEAgUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgog ICAgICAgICAgIDxsaXRlcmFsPnB1YmxpY2F0aW9uczwvbGl0ZXJhbD46Ci0gICAgICAgICAgVGhl IDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBwdWJsaWNhdGlvbnMgZXN0YWJsaXNo ZWQgZm9yIHRoaXMKLSAgICAgICAgICBzdWJzY3JpYmVyIGFyZSBhbHdheXMgZHJvcHBlZDsgc3Bl Y2lmeWluZyB0aGlzIG9iamVjdCB0eXBlIGNhdXNlcyBhbGwKLSAgICAgICAgICBvdGhlciBwdWJs aWNhdGlvbnMgcmVwbGljYXRlZCBmcm9tIHRoZSBzb3VyY2Ugc2VydmVyIHRvIGJlIGRyb3BwZWQg YXMKLSAgICAgICAgICB3ZWxsLgorICAgICAgICAgIFRoZSA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxF UywgQUxMIFNFUVVFTkNFUzwvbGl0ZXJhbD4gcHVibGljYXRpb25zCisgICAgICAgICAgZXN0YWJs aXNoZWQgZm9yIHRoaXMgc3Vic2NyaWJlciBhcmUgYWx3YXlzIGRyb3BwZWQ7IHNwZWNpZnlpbmcg dGhpcworICAgICAgICAgIG9iamVjdCB0eXBlIGNhdXNlcyBhbGwgb3RoZXIgcHVibGljYXRpb25z IHJlcGxpY2F0ZWQgZnJvbSB0aGUgc291cmNlCisgICAgICAgICAgc2VydmVyIHRvIGJlIGRyb3Bw ZWQgYXMgd2VsbC4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAg ICA8L2l0ZW1pemVkbGlzdD4KQEAgLTMyMyw3ICszMjQsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KICAgICAgICBJZiBhIHNwZWNpZmllZCBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cyBv biB0aGUgcHVibGlzaGVyLCBpdCBpcyByZXVzZWQuCiAgICAgICAgSXQgaXMgdXNlZnVsIHRvIHBh cnRpYWxseSByZXBsaWNhdGUgdGhlIGRhdGFiYXNlIGlmIHRoZSBzcGVjaWZpZWQKICAgICAgICBw dWJsaWNhdGlvbiBpbmNsdWRlcyBhIGxpc3Qgb2YgdGFibGVzLiBJZiB0aGUgcHVibGljYXRpb24g ZG9lcyBub3QgZXhpc3QsCi0gICAgICAgaXQgaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIHdpdGgg PGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LiBVc2UKKyAgICAgICBpdCBpcyBhdXRv bWF0aWNhbGx5IGNyZWF0ZWQgd2l0aAorICAgICAgIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTLCBB TEwgU0VRVUVOQ0VTPC9saXRlcmFsPi4gVXNlCiAgICAgICAgPG9wdGlvbj4tLWRyeS1ydW48L29w dGlvbj4gb3B0aW9uIHRvIHByZXZpZXcgd2hpY2ggcHVibGljYXRpb25zIHdpbGwgYmUKICAgICAg ICByZXVzZWQgYW5kIHdoaWNoIHdpbGwgYmUgY3JlYXRlZC4KICAgICAgIDwvcGFyYT4KQEAgLTUz NCw3ICs1MzYsOSBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIENyZWF0ZSBhIHB1 YmxpY2F0aW9uIGFuZCByZXBsaWNhdGlvbiBzbG90IGZvciBlYWNoIHNwZWNpZmllZCBkYXRhYmFz ZSBvbgogICAgICAgdGhlIHNvdXJjZSBzZXJ2ZXIuICBFYWNoIHB1YmxpY2F0aW9uIGlzIGNyZWF0 ZWQgdXNpbmcgPGxpbmsKICAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJh bXMtZm9yLWFsbC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwKLSAgICAgIFRBQkxFUzwvbGl0ZXJh bD48L2xpbms+LiAgSWYgdGhlIDxvcHRpb24+LS1wdWJsaWNhdGlvbjwvb3B0aW9uPiBvcHRpb24K KyAgICAgIFRBQkxFUzwvbGl0ZXJhbD48L2xpbms+IGFuZCA8bGluaworICAgICAgbGlua2VuZD0i c3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItYWxsLXNlcXVlbmNlcyI+PGxpdGVyYWw+ Rk9SIEFMTAorICAgICAgU0VRVUVOQ0VTPC9saXRlcmFsPjwvbGluaz4uICBJZiB0aGUgPG9wdGlv bj4tLXB1YmxpY2F0aW9uPC9vcHRpb24+IG9wdGlvbgogICAgICAgaXMgbm90IHNwZWNpZmllZCwg dGhlIHB1YmxpY2F0aW9uIGhhcyB0aGUgZm9sbG93aW5nIG5hbWUgcGF0dGVybjoKICAgICAgIDxx dW90ZT48bGl0ZXJhbD5wZ19jcmVhdGVzdWJzY3JpYmVyXyV1XyV4PC9saXRlcmFsPjwvcXVvdGU+ IChwYXJhbWV0ZXI6CiAgICAgICBkYXRhYmFzZSA8cGFyYW1ldGVyPm9pZDwvcGFyYW1ldGVyPiwg cmFuZG9tIDxwYXJhbWV0ZXI+aW50PC9wYXJhbWV0ZXI+KS4KQEAgLTYxNyw3ICs2MjEsMTIgQEAg UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgIDxwYXJhPgogICAgICAgRW5hYmxlIHRoZSBz dWJzY3JpcHRpb24gZm9yIGVhY2ggc3BlY2lmaWVkIGRhdGFiYXNlIG9uIHRoZSB0YXJnZXQgc2Vy dmVyLgogICAgICAgVGhlIHN1YnNjcmlwdGlvbiBzdGFydHMgYXBwbHlpbmcgdHJhbnNhY3Rpb25z IGZyb20gdGhlIHJlcGxpY2F0aW9uIHN0YXJ0Ci0gICAgICBwb2ludC4KKyAgICAgIHBvaW50LiBU aGUgc3Vic2NyaXB0aW9uIGlzIGNvbmZpZ3VyZWQgdG8gaW5jbHVkZSBzZXF1ZW5jZXMuIFNlcXVl bmNlCisgICAgICB2YWx1ZXMgY2FuIGJlIHN5bmNocm9uaXplZCBhdCBhbnkgdGltZSBieSBydW5u aW5nCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXJl ZnJlc2gtc2VxdWVuY2VzIj4KKyAgICAgIDxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4g UkVGUkVTSCBTRVFVRU5DRVM8L2NvbW1hbmQ+PC9saW5rPiwgd2hpY2gKKyAgICAgIGZldGNoZXMg dGhlIGN1cnJlbnQgc2VxdWVuY2Ugc3RhdGUgZnJvbSB0aGUgcHVibGlzaGVyIGFuZCBhZHZhbmNl cyB0aGUKKyAgICAgIGNvcnJlc3BvbmRpbmcgc3Vic2NyaWJlciBzZXF1ZW5jZXMuCiAgICAgIDwv cGFyYT4KICAgICA8L3N0ZXA+CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9w Z19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vi c2NyaWJlci5jCmluZGV4IDRkNzA1Nzc4NDU0Li4yMjMxOWZkMDZmZiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYworKysgYi9zcmMvYmluL3Bn X2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCkBAIC0xODQwLDcgKzE4NDAsNyBAQCBj cmVhdGVfcHVibGljYXRpb24oUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRi aW5mbykKIAkJcGdfbG9nX2luZm8oImNyZWF0aW5nIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRh YmFzZSBcIiVzXCIiLAogCQkJCQlkYmluZm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAot CWFwcGVuZFBRRXhwQnVmZmVyKHN0ciwgIkNSRUFURSBQVUJMSUNBVElPTiAlcyBGT1IgQUxMIFRB QkxFUyIsCisJYXBwZW5kUFFFeHBCdWZmZXIoc3RyLCAiQ1JFQVRFIFBVQkxJQ0FUSU9OICVzIEZP UiBBTEwgVEFCTEVTLCBBTEwgU0VRVUVOQ0VTIiwKIAkJCQkJICBpcHVibmFtZV9lc2MpOwogCiAJ cGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbCBiL3NyYy9i aW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCmluZGV4IDkyNTJk MWMzYzVjLi4wNDRmMjAyY2IzNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Qv MDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Qv MDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwKQEAgLTUwMyw2ICs1MDMsMTQgQEAgaXMoJHJlc3Vs dCwgcXEoMCksCiAJJ3RoZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IHVzZWQgYXMgcHJpbWFy eV9zbG90X25hbWUgaGFzIGJlZW4gcmVtb3ZlZCcKICk7CiAKKyMgVmVyaWZ5IHRoYXQgdGhlIHB1 YmxpY2F0aW9uIGlzIGNvbmZpZ3VyZWQgdG8gcHVibGlzaCBhbGwgdGFibGVzIGFuZAorIyBhbGwg c2VxdWVuY2VzLgorJHJlc3VsdCA9ICRub2RlX3AtPnNhZmVfcHNxbCgkZGIyLAorCSJTRUxFQ1Qg cHViYWxsdGFibGVzLCBwdWJhbGxzZXF1ZW5jZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiIpOworaXMo ICRyZXN1bHQsIHFxKHR8dCksCisJInB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBib3RoIGFs bC10YWJsZXMgYW5kIGFsbC1zZXF1ZW5jZXMgZW5hYmxlZCIKKyk7CisKICMgSW5zZXJ0IHJvd3Mg b24gUAogJG5vZGVfcC0+c2FmZV9wc3FsKCRkYjEsICJJTlNFUlQgSU5UTyB0YmwxIFZBTFVFUygn dGhpcmQgcm93JykiKTsKICRub2RlX3AtPnNhZmVfcHNxbCgkZGIyLCAiSU5TRVJUIElOVE8gdGJs MiBWQUxVRVMoJ3JvdyAxJykiKTsKLS0gCjIuNTMuMAoK --000000000000c50d6206549bb2c8--