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 1vzjWI-001GQb-0H for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 22:56:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzjWF-00165C-0g for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 22:56:11 +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 1vzjWE-001654-2i for pgsql-hackers@lists.postgresql.org; Mon, 09 Mar 2026 22:56:11 +0000 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vzjWC-00000001sV6-3P7d for pgsql-hackers@lists.postgresql.org; Mon, 09 Mar 2026 22:56:10 +0000 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-59dcdf60427so7107006e87.3 for ; Mon, 09 Mar 2026 15:56:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773096968; cv=none; d=google.com; s=arc-20240605; b=Ig7NdKNr9JFQFUzN0vcBqqYvaQBE7sKs+/CtTXrfXqj2r3z510sLdaXCB3wc8hAy3v JklnU/Lt+PJ5xlEIph6mjq0LavjOy+MlxkAIZjHcmRTUXdfqNU3RO9KexQhZIsk5DXzd e1madat+Ko6SJRWSaeh2eeeOvJbDaH+bSdFEdtokH+VV0Pmp4M5QD6a/QuK2icS4INA+ KcwZnneIM7RokTk6+xxr69YNHpSrPyKiuG7WoT+6pztLMojitbZrXQ4xmk3KmeRKeVB0 PSzEE/Me/T8ssoBuNvh7Cm1NDKxw+VvGS/vDU1+BjKMQYeBM1j0xyMs++lT0MFE1Kith A5Xw== 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=hW5+3CxqOjQT3gc1v6eVqgJ3zJOhvkMWdRAyQuATmWY=; fh=shOyJD133NL57HqahtMe01pPz3Eo1sM0B64q8tBuA80=; b=bgHI9RBxzrHWQ6iPIXLGMWmdEtecA9Hi3uYlvcNLvOmc97lu+34vroH5qPDODhH1kY m82DjES351rKoPu6lNBQIKKBIZdc/iv5N8yOyo448uogbHbTwd38b2oiB6sAKNfyYxIV pGSy+ZT67IpDz/we0m6zq9NwwFabAhkDAQkMlGPmB+kT7CsI+rGnUpN/yAoEKJkBmrui Y7g4LSPW2knDG2eXulLeuc4iBGT+xW3IS4KC3Y5aSo54H+plerGBBkJYkiRBbxUlyiv9 YvR4PBiPror9BpzErkQ8MwES9q4d0RsaUKxiKQhhHFMcACD+8s8WIggohP4mbMHYTF0j LKBg==; 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=20230601; t=1773096968; x=1773701768; 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=hW5+3CxqOjQT3gc1v6eVqgJ3zJOhvkMWdRAyQuATmWY=; b=UZr91k8hH7yOame3aBFocssVmxvAGmTlcJawNrFkldXg5tsCSwOOZqIrFxvsgLgbfb DOrDjQ3vdnGhG/gi+iFEvzDb5cLyraIY+y8PORptghDwx947xEXiVsx1wOshrWI+yRZJ +p2F5kGKkYb0y5t6BqmcqsBSU7DYOGHkLBg3cT5nXY344tOAQ2tSnSH4oxFhNT83qPsF owGKcLCL9Sf/L6bIjzY1fh5cWzMaYBQSE73rRXS0UwmunCqwPIOGDCzcPyGgld0aoWgP r4PeRBHbIDwagarHUksca7C04X8KMdzCuxKztopOvEksN7o0/yPJzWcBNLg8d8d2hIaj mOIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773096968; x=1773701768; 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=hW5+3CxqOjQT3gc1v6eVqgJ3zJOhvkMWdRAyQuATmWY=; b=X1BN78OW5RxGCDNjMvvC00ytUVxbWxMc93hFqn6NCFNsAq4qlcZPAZij8w/c+xVIIo rjyQd+015cBy7dI1AlGbI4bJv1FPfOA9eGShlszqrPjw2EeQp3xPi7NTN5VVGo2WeCSd JBlEZjUWpGaH/cCCSO7r6H2H3hQ3s+ttYF2VGfo96/utOEzUfL+yMoa9NgIOpKOMoIBk zJ2M0qM2asM74Y1+0tnPRyJ5k6wvUMegnS+QXCrhlCKZGONNUuY8wv7buSBbJlE+7p8r 64vBsiS095ziNf0avq4vruWaayzewsWLBFSnvybq9fRhZ535Ar1b5aqhPP5pICrInbUY vtrA== X-Forwarded-Encrypted: i=1; AJvYcCW8PFd4husR1h0+5dghtbVDf6n2Z74uT+6uMJkCU1lhdQQw6QWI7HQv8yovm0q7xi4LMoUe1AwrSl1dFSfJ@lists.postgresql.org X-Gm-Message-State: AOJu0Yz8rxNZXRQ92ZFhS1BUTxYskWnJ33CNUsroGVFQB+NilwkJ4ck1 0imJ3OIpdmMDZPQku1OrG3qwjZJsl3nxoEOBALUuu2QdC6tl0knoxvsII95Xn83fxZs1JJ6gbl3 +JPcqzEhkp9PzjtKeb965oDBO3q0HxZA= X-Gm-Gg: ATEYQzz9rlkVa4ZoWZR4T4QGWjD2/7RKh5ZA4XQMQIwzA9/8fQ1DRGDB6S73BlChGwV FNnA73xfQdk69v3LuGC9AcLcuaMbh/6S6OzYG3R7KihiB5ks+SkNkXKm4ZbbWd4so23q2ZPPCXV G4oeEHdzwTAhIY7ucSKrvjRfxennhmFKn3TFki/jbBzflqztkUBFpruc5oE7YKUsTQpxhKVgQFB Lw+rJ/E1Feo1tG+/tPUSH1p0X3E8nzHq5WyMWQAc1t/+N3oWGK1JP+T3AY/53xo9/fBzgkiIGVS Z2i8 X-Received: by 2002:a05:6512:3d19:b0:5a1:28a2:b9de with SMTP id 2adb3069b0e04-5a13cd68daemr4829935e87.48.1773096967670; Mon, 09 Mar 2026 15:56:07 -0700 (PDT) MIME-Version: 1.0 References: <48261e54-c4f1-4bde-a4a9-4f3698a6b380@app.fastmail.com> In-Reply-To: From: Gyan Sreejith Date: Mon, 9 Mar 2026 18:55:56 -0400 X-Gm-Features: AaiRm515IK-f9SDfiQsm7prAOJ7r1U5I8aWZNCALKspT7jmQbA1wqOUhCr2XUJg Message-ID: Subject: Re: [Proposal] Adding Log File Capability to pg_createsubscriber To: Amit Kapila Cc: Euler Taveira , vignesh C , "kuroda.hayato@fujitsu.com" , "pgsql-hackers@lists.postgresql.org" , Peter Smith Content-Type: multipart/mixed; boundary="000000000000e92889064c9f4ed5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e92889064c9f4ed5 Content-Type: multipart/alternative; boundary="000000000000e92888064c9f4ed3" --000000000000e92888064c9f4ed3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 5, 2026 at 9:49=E2=80=AFAM Euler Taveira wr= ote: Don't duplicate code. If you are reusing a function, my advice is to move > it to > src/common. You can always use "ifdef FRONTEND" to use the appropriate lo= g > message (elog/ereport vs pg_error, for example). I have made all the changes except for this one, and I am deferring to Amit Kapila regarding the marks. Regarding duplicating code - I was trying to keep the change contained. Is it okay to make that change in a separate check in since it would also touch src/backend/postmaster/syslogger.c? Thank you! Gyan Sreejith On Fri, Mar 6, 2026 at 5:51=E2=80=AFAM Amit Kapila wrote: > On Thu, Mar 5, 2026 at 8:19=E2=80=AFPM Euler Taveira = wrote: > > > > One of the arguments to have this feature was that pg_createsubscriber > mixes the > > server and tool messages. Couldn't we fix it adding "marks" on the > output saying > > the server log messages starts here and the server log messages ends > here? > > > > It will simplify the output to some extent but still it will be mixed > at different intervals in the LOG which is not good for grepping > required info. Also, I am not sure if we use such markers at other > places. > > -- > With Regards, > Amit Kapila. > --000000000000e92888064c9f4ed3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On = Thu, Mar 5, 2026 at 9:49=E2=80=AFAM Euler Taveira <euler@eulerto.com> wrote:

On Fri, = Mar 6, 2026 at 5:51=E2=80=AFAM Amit Kapila <amit.kapila16@gmail.com> wrote:
On Thu, Mar 5, 2026 at 8:19=E2=80=AFP= M Euler Taveira <= euler@eulerto.com> wrote:
>
> One of the arguments to have this feature was that pg_createsubscriber= mixes the
> server and tool messages. Couldn't we fix it adding "marks&qu= ot; on the output saying
> the server log messages starts here and the server log messages ends h= ere?
>

It will simplify the output to some extent but still it will be mixed
at different intervals in the LOG which is not good for grepping
required info. Also, I am not sure if we use such markers at other
places.

--
With Regards,
Amit Kapila.
--000000000000e92888064c9f4ed3-- --000000000000e92889064c9f4ed5 Content-Type: application/octet-stream; name="v7-0001-Add-a-new-argument-l-logdir-to-pg_createsubscribe.patch" Content-Disposition: attachment; filename="v7-0001-Add-a-new-argument-l-logdir-to-pg_createsubscribe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmjs33fb0 RnJvbSA4NjJiYTI0MTlmZWJlNzBjNTgxNjMxNDc4Njc3ZjdmMDgzNDc4MTE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCA4IE1hciAyMDI2IDIwOjA2OjQ5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCB2 N10gQWRkIGEgbmV3IGFyZ3VtZW50IC1sIDxsb2dkaXI+IHRvIHBnX2NyZWF0ZXN1YnNjcmliZXIu CgpFbmFibGluZyB0aGUgb3B0aW9uIHRvIHdyaXRlIG1lc3NhZ2VzIHRvIGxvZyBmaWxlcyBpbiB0 aGUgc3BlY2lmaWVkIGRpcmVjdG9yeS4KQSBuZXcgZGlyZWN0b3J5IGlzIGNyZWF0ZWQgaWYgcmVx dWlyZWQuIEEgc3ViZGlyZWN0b3J5IGlzIGNyZWF0ZWQgd2l0aCB0aW1lc3RhbXAgYXMgaXRzIG5h bWUsIGFuZCBpdCB3aWxsIGNvbnRhaW4gdHdvIG5ldyBsb2dmaWxlczoKMS4gcGdfY3JlYXRlc3Vi c2NyaWJlcl9zZXJ2ZXIubG9nICAtIGNhcHR1cmVzIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gc3RhcnRp bmcgYW5kIHN0b3BwaW5nIHRoZSBzdGFuZGJ5IHNlcnZlci4KMi4gcGdfY3JlYXRlc3Vic2NyaWJl cl9pbnRlcm5hbC5sb2cgLSBjYXB0dXJlcyBpbnRlcm5hbCBkaWFnbm9zdGljIG91dHB1dCBmcm9t IHBnX2NyZWF0ZXN1YnNjcmliZXIuCgpGb3IgZXhhbXBsZSwgaWYgd2Ugc3BlY2lmeSAtbCBhYmMg YXMgYW4gYXJndW1lbnQsIGFuZCBpZiB0aGUgdGltZXN0YW1wIG9uIHJ1bm5pbmcgaXQgaXMgMjAy NjAxMTlUMjA0MzE3LjIwNCwgYSBkaXJlY3RvcnkgYWJjIGlzIGNyZWF0ZWQgaWYgaXQgZG9lc24n dCBleGlzdCBhbHJlYWR5LCB3aXRoIDIwMjYwMTE5VDIwNDMxNy4yMDQgYXMgaXRzIHN1YmRpcmVj dG9yeSBhbmQgaXQgd2lsbCBjb250YWluIHRoZSB0d28gbG9nIGZpbGVzIHBnX2NyZWF0ZXN1YnNj cmliZXJfc2VydmVyLmxvZyBhbmQgcGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cKLS0t CiBkb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbCAgICAgfCAgMjIgKysr CiBzcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jICAgfCAxNjcgKysr KysrKysrKysrKysrKystCiAuLi4vdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbCAgICAgICAg ICAgICAgfCAgMTIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTk3IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3Jp YmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbAppbmRl eCBjZjQ1ZmYzNTczZC4uNjdhNjgzZTY2YzcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv cGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRl c3Vic2NyaWJlci5zZ21sCkBAIC0xMzYsNiArMTM2LDI4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PG9wdGlvbj4tbCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGlyZWN0b3J5PC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgIDx0ZXJt PjxvcHRpb24+LS1sb2dkaXI9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRpcmVjdG9y eTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8 cGFyYT4KKyAgICAgICBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBsb2cgZGlyZWN0b3J5LiBBIG5l dyBkaXJlY3RvcnkgaXMgY3JlYXRlZCB3aXRoIHRoaXMgbmFtZSBpZiBpdCBkb2VzIG5vdCBleGlz dC4gQSBzdWJkaXJlY3Rvcnkgd2l0aCBhIHRpbWVzdGFtcCBpbmRpY2F0aW5nIHRoZSB0aW1lIGF0 IHdoaWNoIHBnX2NyZWF0ZXN1YnNjcmliZXIgd2FzIHJ1biB3aWxsIGJlIGNyZWF0ZWQuIFRoZSBm b2xsb3dpbmcgdHdvIGxvZyBmaWxlcyB3aWxsIGJlIGNyZWF0ZWRpbiB0aGUgc3ViZGlyZWN0b3J5 IHdpdGggYSB1bWFzayBvZiAwNzcgc28gdGhhdCBhY2Nlc3MgaXMgZGlzYWxsb3dlZCB0byBvdGhl ciB1c2VycyBieSBkZWZhdWx0LgorICAgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfc2Vy dmVyLmxvZyB3aGljaCBjYXB0dXJlcyBsb2dzIHJlbGF0ZWQgdG8gc3RvcHBpbmcgYW5kIHN0YXJ0 aW5nIHRoZSBzdGFuZGJ5IHNlcnZlciwKKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgcGdf Y3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgd2hpY2ggY2FwdHVyZXMgaW50ZXJuYWwgZGlh Z25vc3RpYyBvdXRwdXQgKHZhbGlkYXRpb25zLCBjaGVja3MsIGV0Yy4pCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICA8 L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFy bGlzdGVudHJ5PgogICAgICA8dGVybT48b3B0aW9uPi1uPC9vcHRpb24+PC90ZXJtPgogICAgICA8 dGVybT48b3B0aW9uPi0tZHJ5LXJ1bjwvb3B0aW9uPjwvdGVybT4KZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3BnX2Jhc2Vi YWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCmluZGV4IDJiYzg0NTA1YWFiLi5jMTUyNDY3YjA5 YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIu YworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCkBAIC00 OSwxMCArNDksMTQgQEAKICNkZWZpbmUgSU5DTFVERURfQ09ORl9GSUxFCQkJInBnX2NyZWF0ZXN1 YnNjcmliZXIuY29uZiIKICNkZWZpbmUgSU5DTFVERURfQ09ORl9GSUxFX0RJU0FCTEVECUlOQ0xV REVEX0NPTkZfRklMRSAiLmRpc2FibGVkIgogCisjZGVmaW5lIFNFUlZFUl9MT0dfRklMRV9OQU1F ICJwZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlciIKKyNkZWZpbmUgSU5URVJOQUxfTE9HX0ZJTEVf TkFNRSAicGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbCIKKwogLyogQ29tbWFuZC1saW5lIG9w dGlvbnMgKi8KIHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucwogewogCWNoYXIJICAgKmNv bmZpZ19maWxlOwkvKiBjb25maWd1cmF0aW9uIGZpbGUgKi8KKwljaGFyCSAgICpsb2dfZGlyOwkJ LyogbG9nIGRpcmVjdG9yeSBuYW1lICovCiAJY2hhcgkgICAqcHViX2Nvbm5pbmZvX3N0cjsJLyog cHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nICovCiAJY2hhcgkgICAqc29ja2V0X2RpcjsJCS8q IGRpcmVjdG9yeSBmb3IgVW5peC1kb21haW4gc29ja2V0LCBpZiBhbnkgKi8KIAljaGFyCSAgICpz dWJfcG9ydDsJCS8qIHN1YnNjcmliZXIgcG9ydCBudW1iZXIgKi8KQEAgLTE0Niw2ICsxNTAsOSBA QCBzdGF0aWMgdm9pZCBkcm9wX2V4aXN0aW5nX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNv bnN0IGNoYXIgKnN1Ym5hbWUsCiAJCQkJCQkJCQkgICBjb25zdCBjaGFyICpkYm5hbWUpOwogc3Rh dGljIHZvaWQgZ2V0X3B1Ymxpc2hlcl9kYXRhYmFzZXMoc3RydWN0IENyZWF0ZVN1YnNjcmliZXJP cHRpb25zICpvcHQsCiAJCQkJCQkJCQlib29sIGRibmFtZXNwZWNpZmllZCk7CitzdGF0aWMgdm9p ZAorCQkJaW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoY29uc3QgY2hhciAqZm9ybWF0LC4uLikgX19h dHRyaWJ1dGVfXygoZm9ybWF0KHByaW50ZiwgMSwgMikpKTsKKwogCiAjZGVmaW5lCVdBSVRfSU5U RVJWQUwJMQkJLyogMSBzZWNvbmQgKi8KIApAQCAtMTY3LDYgKzE3NCwxMCBAQCBzdGF0aWMgcGdf cHJuZ19zdGF0ZSBwcm5nX3N0YXRlOwogc3RhdGljIGNoYXIgKnBnX2N0bF9wYXRoID0gTlVMTDsK IHN0YXRpYyBjaGFyICpwZ19yZXNldHdhbF9wYXRoID0gTlVMTDsKIAorc3RhdGljIEZJTEUgKmlu dGVybmFsX2xvZ19maWxlX2ZwID0gTlVMTDsJLyogRmlsZSBwdHIgdG8gbG9nIGFsbCBtZXNzYWdl cyB0byAqLworc3RhdGljIGNoYXIgKmxvZ190aW1lc3RhbXAgPSBOVUxMOwkvKiBUaW1lc3RhbXAg dG8gYmUgdXNlZCBpbiBhbGwgbG9nIGZpbGUKKwkJCQkJCQkJCSAqIG5hbWVzICovCisKIC8qIHN0 YW5kYnkgLyBzdWJzY3JpYmVyIGRhdGEgZGlyZWN0b3J5ICovCiBzdGF0aWMgY2hhciAqc3Vic2Ny aWJlcl9kaXIgPSBOVUxMOwogCkBAIC0xNzQsNiArMTg1LDEyMyBAQCBzdGF0aWMgYm9vbCByZWNv dmVyeV9lbmRlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgc3RhbmRieV9ydW5uaW5nID0gZmFsc2U7 CiBzdGF0aWMgYm9vbCByZWNvdmVyeV9wYXJhbXNfc2V0ID0gZmFsc2U7CiAKKyN1bmRlZiBwZ19s b2dfaW5mbworI2RlZmluZSBwZ19sb2dfaW5mbyguLi4pIGRve1wKKwlpZiAoaW50ZXJuYWxfbG9n X2ZpbGVfZnAgIT0gTlVMTCkgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShfX1ZBX0FSR1Nf Xyk7IFwKKwllbHNlIFwKKwkJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX0lORk8sUEdfTE9HX1BSSU1B UlksX19WQV9BUkdTX18pO1wKK30gd2hpbGUoMCkKKworI3VuZGVmIHBnX2xvZ19pbmZvX2hpbnQK KyNkZWZpbmUgcGdfbG9nX2luZm9faGludCguLi4pIGRve1wKKwlpZiAoaW50ZXJuYWxfbG9nX2Zp bGVfZnAgIT0gTlVMTCkgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShfX1ZBX0FSR1NfXyk7 IFwKKwllbHNlIFwKKwkJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX0lORk8sIFBHX0xPR19ISU5ULCBf X1ZBX0FSR1NfXyk7XAorfSB3aGlsZSgwKQorCisjdW5kZWYgcGdfbG9nX2RlYnVnCisjZGVmaW5l IHBnX2xvZ19kZWJ1ZyguLi4pIGRve1wKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVM TCkgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShfX1ZBX0FSR1NfXyk7IFwKKwllbHNlIFwK KwkJaWYgKHVubGlrZWx5KF9fcGdfbG9nX2xldmVsIDw9IFBHX0xPR19ERUJVRykpIFwKKwkJCXBn X2xvZ19nZW5lcmljKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksIF9fVkFfQVJHU19fKTsg XAorfSB3aGlsZSgwKQorCisjdW5kZWYgcGdfZmF0YWwKKyNkZWZpbmUgcGdfZmF0YWwoLi4uKSBk b3tcCisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpIFwKKwkJaW50ZXJuYWxfbG9n X2ZpbGVfd3JpdGUoX19WQV9BUkdTX18pOyBcCisJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX0VSUk9S LCBQR19MT0dfUFJJTUFSWSwgX19WQV9BUkdTX18pOyBcCisJZXhpdCgxKTsgXAorfSB3aGlsZSgw KQorCitzdGF0aWMgdm9pZAoraW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoY29uc3QgY2hhciAqZm9y bWF0LC4uLikKK3sKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkKKwl7CisJCXZh X2xpc3QJCWFyZ3M7CisKKwkJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKwkJdmZwcmludGYoaW50 ZXJuYWxfbG9nX2ZpbGVfZnAsIGZvcm1hdCwgYXJncyk7CisJCWZwcmludGYoaW50ZXJuYWxfbG9n X2ZpbGVfZnAsICJcbiIpOworCQlmZmx1c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworCQl2YV9l bmQoYXJncyk7CisJfQorfQorCisvKgorICogT3BlbiBhIG5ldyBsb2dmaWxlIHdpdGggcHJvcGVy IHBlcm1pc3Npb25zLgorICogRnJvbSBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5j CisgKi8KK3N0YXRpYyBGSUxFICoKK2xvZ2ZpbGVfb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSwg Y29uc3QgY2hhciAqbW9kZSkKK3sKKwlGSUxFCSAgICpmaDsKKwltb2RlX3QJCW91bWFzazsKKwor CW91bWFzayA9IHVtYXNrKChtb2RlX3QpICgofihTX0lSVVNSIHwgU19JV1VTUikpICYgKFNfSVJX WFUgfCBTX0lSV1hHIHwgU19JUldYTykpKTsKKwlmaCA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsK Kwl1bWFzayhvdW1hc2spOworCisJaWYgKGZoKQorCXsKKwkJc2V0dmJ1ZihmaCwgTlVMTCwgUEdf SU9MQkYsIDApOworCisjaWZkZWYgV0lOMzIKKwkJLyogdXNlIENSTEYgbGluZSBlbmRpbmdzIG9u IFdpbmRvd3MgKi8KKwkJX3NldG1vZGUoX2ZpbGVubyhmaCksIF9PX1RFWFQpOworI2VuZGlmCisJ fQorCWVsc2UKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGxvZyBmaWxlIFwiJXNcIjogJW0i LAorCQkJCSBmaWxlbmFtZSk7CisKKwlyZXR1cm4gZmg7Cit9CisKK3N0YXRpYyB2b2lkCittYWtl X2RpcihjaGFyICpkaXIpCit7CisJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKworCWlmIChzdGF0KGRp ciwgJnN0YXRidWYpICE9IDApCisJCWlmIChlcnJubyA9PSBFTk9FTlQpCisJCXsKKwkJCWlmICht a2RpcihkaXIsIFNfSVJXWFUpID09IDApCisJCQkJcGdfbG9nX2luZm8oImRpcmVjdG9yeSAlcyBj cmVhdGVkIiwgZGlyKTsKKwkJCWVsc2UKKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IGNyZWF0ZSBs b2cgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBkaXIpOworCQl9Cit9CisKK3N0YXRpYyB2b2lkCitt YWtlX291dHB1dF9kaXJzKGNoYXIgKmxvZ19kaXIpCit7CisJY2hhcgkJdGltZXN0YW1wWzEyOF07 CisJc3RydWN0IHRpbWV2YWwgdHZhbDsKKwl0aW1lX3QJCW5vdzsKKwlzdHJ1Y3QgdG0JdG1idWY7 CisJY2hhcgkJdGltZXN0YW1wX2RpcltNQVhQR1BBVEhdOworCWludAkJCWxlbjsKKworCWdldHRp bWVvZmRheSgmdHZhbCwgTlVMTCk7CisJbm93ID0gdHZhbC50dl9zZWM7CisJc3RyZnRpbWUodGlt ZXN0YW1wLCBzaXplb2YodGltZXN0YW1wKSwgIiVZJW0lZFQlSCVNJVMiLCBsb2NhbHRpbWVfcigm bm93LCAmdG1idWYpKTsKKwkvKiBhcHBlbmQgbWlsbGlzZWNvbmRzICovCisJc25wcmludGYodGlt ZXN0YW1wICsgc3RybGVuKHRpbWVzdGFtcCksIHNpemVvZih0aW1lc3RhbXApIC0gc3RybGVuKHRp bWVzdGFtcCksCisJCQkgIi4lMDN1IiwgKHVuc2lnbmVkIGludCkgKHR2YWwudHZfdXNlYyAvIDEw MDApKTsKKwlsb2dfdGltZXN0YW1wID0gcGdfc3RyZHVwKHRpbWVzdGFtcCk7CisKKwltYWtlX2Rp cihsb2dfZGlyKTsKKwlsZW4gPSBzbnByaW50Zih0aW1lc3RhbXBfZGlyLCBNQVhQR1BBVEgsICIl cy8lcyIsIGxvZ19kaXIsIHRpbWVzdGFtcCk7CisJaWYgKGxlbiA+PSBNQVhQR1BBVEgpCisJCXBn X2ZhdGFsKCJkaXJlY3RvcnkgcGF0aCBmb3IgbG9nIGZpbGVzLCAlcy8lcywgaXMgdG9vIGxvbmci LCBsb2dfZGlyLCB0aW1lc3RhbXApOworCW1ha2VfZGlyKHRpbWVzdGFtcF9kaXIpOworfQogCiAv KgogICogQ2xlYW4gdXAgb2JqZWN0cyBjcmVhdGVkIGJ5IHBnX2NyZWF0ZXN1YnNjcmliZXIuCkBA IC0yNjksNiArMzk3LDEyIEBAIGNsZWFudXBfb2JqZWN0c19hdGV4aXQodm9pZCkKIAogCWlmIChz dGFuZGJ5X3J1bm5pbmcpCiAJCXN0b3Bfc3RhbmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIpOwor CisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpCisJeworCQlmY2xvc2UoaW50ZXJu YWxfbG9nX2ZpbGVfZnApOworCQlpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IE5VTEw7CisJfQogfQog CiBzdGF0aWMgdm9pZApAQCAtMjgzLDYgKzQxNyw3IEBAIHVzYWdlKHZvaWQpCiAJCQkgIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZXMgYW5kIGRhdGFiYXNlcyB0aGF0 IGRvbid0IGFsbG93IGNvbm5lY3Rpb25zXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWQsIC0tZGF0YWJh c2U9REJOQU1FICAgICAgICAgICBkYXRhYmFzZSBpbiB3aGljaCB0byBjcmVhdGUgYSBzdWJzY3Jp cHRpb25cbiIpKTsKIAlwcmludGYoXygiICAtRCwgLS1wZ2RhdGE9REFUQURJUiAgICAgICAgICAg IGxvY2F0aW9uIGZvciB0aGUgc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9yeVxuIikpOworCXByaW50 ZihfKCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIgICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBu ZXcgbG9nIGRpcmVjdG9yeVxuIikpOwogCXByaW50ZihfKCIgIC1uLCAtLWRyeS1ydW4gICAgICAg ICAgICAgICAgICAgZHJ5IHJ1biwganVzdCBzaG93IHdoYXQgd291bGQgYmUgZG9uZVxuIikpOwog CXByaW50ZihfKCIgIC1wLCAtLXN1YnNjcmliZXItcG9ydD1QT1JUICAgICAgc3Vic2NyaWJlciBw b3J0IG51bWJlciAoZGVmYXVsdCAlcylcbiIpLCBERUZBVUxUX1NVQl9QT1JUKTsKIAlwcmludGYo XygiICAtUCwgLS1wdWJsaXNoZXItc2VydmVyPUNPTk5TVFIgIHB1Ymxpc2hlciBjb25uZWN0aW9u IHN0cmluZ1xuIikpOwpAQCAtNzAyLDYgKzgzNyw3IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lk KGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCWJvb2wJCWNyY19v azsKIAlzdHJ1Y3QgdGltZXZhbCB0djsKIAorCWNoYXIJICAgKm91dF9maWxlOwogCWNoYXIJICAg KmNtZF9zdHI7CiAKIAlwZ19sb2dfaW5mbygibW9kaWZ5aW5nIHN5c3RlbSBpZGVudGlmaWVyIG9m IHN1YnNjcmliZXIiKTsKQEAgLTczNSw4ICs4NzEsMTQgQEAgbW9kaWZ5X3N1YnNjcmliZXJfc3lz aWQoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQpCiAJZWxzZQogCQlw Z19sb2dfaW5mbygicnVubmluZyBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCi0J Y21kX3N0ciA9IHBzcHJpbnRmKCJcIiVzXCIgLUQgXCIlc1wiID4gXCIlc1wiIiwgcGdfcmVzZXR3 YWxfcGF0aCwKLQkJCQkJICAgc3Vic2NyaWJlcl9kaXIsIERFVk5VTEwpOworCisJaWYgKG9wdC0+ bG9nX2RpciAhPSBOVUxMKQorCQlvdXRfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcy8lcy5sb2ciLCBv cHQtPmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsIFNFUlZFUl9MT0dfRklMRV9OQU1FKTsKKwllbHNl CisJCW91dF9maWxlID0gREVWTlVMTDsKKworCWNtZF9zdHIgPSBwc3ByaW50ZigiXCIlc1wiIC1E IFwiJXNcIiA+PiBcIiVzXCIiLCBwZ19yZXNldHdhbF9wYXRoLAorCQkJCQkgICBzdWJzY3JpYmVy X2Rpciwgb3V0X2ZpbGUpOwogCiAJcGdfbG9nX2RlYnVnKCJwZ19yZXNldHdhbCBjb21tYW5kIGlz OiAlcyIsIGNtZF9zdHIpOwogCkBAIC0xNjUwLDYgKzE3OTIsMTEgQEAgc3RhcnRfc3RhbmRieV9z ZXJ2ZXIoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsIGJvb2wgcmVz dHJpY3RlZF8KIAlpZiAocmVzdHJpY3RfbG9naWNhbF93b3JrZXIpCiAJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHBnX2N0bF9jbWQsICIgLW8gXCItYyBtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3Jr ZXJzPTBcIiIpOwogCisJaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQorCXsKKwkJYXBwZW5kUFFF eHBCdWZmZXIocGdfY3RsX2NtZCwgIiAtbCAlcy8lcy8lcy5sb2ciLCBvcHQtPmxvZ19kaXIsIGxv Z190aW1lc3RhbXAsIFNFUlZFUl9MT0dfRklMRV9OQU1FKTsKKwl9CisKIAlwZ19sb2dfZGVidWco InBnX2N0bCBjb21tYW5kIGlzOiAlcyIsIHBnX2N0bF9jbWQtPmRhdGEpOwogCXJjID0gc3lzdGVt KHBnX2N0bF9jbWQtPmRhdGEpOwogCXBnX2N0bF9zdGF0dXMocGdfY3RsX2NtZC0+ZGF0YSwgcmMp OwpAQCAtMjE4MSw2ICsyMzI4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsi YWxsIiwgbm9fYXJndW1lbnQsIE5VTEwsICdhJ30sCiAJCXsiZGF0YWJhc2UiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgJ2QnfSwKIAkJeyJwZ2RhdGEiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVM TCwgJ0QnfSwKKwkJeyJsb2dkaXIiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2wnfSwKIAkJ eyJkcnktcnVuIiwgbm9fYXJndW1lbnQsIE5VTEwsICduJ30sCiAJCXsic3Vic2NyaWJlci1wb3J0 IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdwJ30sCiAJCXsicHVibGlzaGVyLXNlcnZlciIs IHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnUCd9LApAQCAtMjIxNSw2ICsyMzYzLDcgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJY2hhcgkgICAqY29uc2lzdGVudF9sc247CiAKIAlj aGFyCQlwaWRmaWxlW01BWFBHUEFUSF07CisJY2hhcgkgICAqaW50ZXJuYWxfbG9nX2ZpbGU7CiAK IAlwZ19sb2dnaW5nX2luaXQoYXJndlswXSk7CiAJcGdfbG9nZ2luZ19zZXRfbGV2ZWwoUEdfTE9H X1dBUk5JTkcpOwpAQCAtMjIzOSw2ICsyMzg4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAJLyogRGVmYXVsdCBzZXR0aW5ncyAqLwogCXN1YnNjcmliZXJfZGlyID0gTlVMTDsKIAlv cHQuY29uZmlnX2ZpbGUgPSBOVUxMOworCW9wdC5sb2dfZGlyID0gTlVMTDsKIAlvcHQucHViX2Nv bm5pbmZvX3N0ciA9IE5VTEw7CiAJb3B0LnNvY2tldF9kaXIgPSBOVUxMOwogCW9wdC5zdWJfcG9y dCA9IERFRkFVTFRfU1VCX1BPUlQ7CkBAIC0yMjY3LDcgKzI0MTcsNyBAQCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKIAogCWdldF9yZXN0cmljdGVkX3Rva2VuKCk7CiAKLQl3aGlsZSAoKGMg PSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWQ6RDpucDpQOnM6dDpUVTp2IiwKKwl3aGlsZSAo KGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWQ6RDpsOm5wOlA6czp0OlRVOnYiLAogCQkJ CQkJCWxvbmdfb3B0aW9ucywgJm9wdGlvbl9pbmRleCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChj KQpAQCAtMjI4OCw2ICsyNDM4LDE0IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJ CXN1YnNjcmliZXJfZGlyID0gcGdfc3RyZHVwKG9wdGFyZyk7CiAJCQkJY2Fub25pY2FsaXplX3Bh dGgoc3Vic2NyaWJlcl9kaXIpOwogCQkJCWJyZWFrOworCQkJY2FzZSAnbCc6CisJCQkJb3B0Lmxv Z19kaXIgPSBwZ19zdHJkdXAob3B0YXJnKTsKKwkJCQljYW5vbmljYWxpemVfcGF0aChvcHQubG9n X2Rpcik7CisJCQkJbWFrZV9vdXRwdXRfZGlycyhvcHQubG9nX2Rpcik7CisJCQkJaW50ZXJuYWxf bG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMvJXMubG9nIiwgb3B0LmxvZ19kaXIsIGxvZ190aW1l c3RhbXAsIElOVEVSTkFMX0xPR19GSUxFX05BTUUpOworCQkJCWlmICgoaW50ZXJuYWxfbG9nX2Zp bGVfZnAgPSBsb2dmaWxlX29wZW4oaW50ZXJuYWxfbG9nX2ZpbGUsICJhIikpID09IE5VTEwpCisJ CQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBsb2cgZmlsZSBcIiVzXCI6ICVtIiwgaW50ZXJu YWxfbG9nX2ZpbGUpOworCQkJCWJyZWFrOwogCQkJY2FzZSAnbic6CiAJCQkJZHJ5X3J1biA9IHRy dWU7CiAJCQkJYnJlYWs7CkBAIC0yNjIxLDUgKzI3NzksOCBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAogCXBnX2xvZ19pbmZvKCJEb25lISIpOwogCisJaWYgKGludGVybmFsX2xvZ19m aWxlX2ZwICE9IE5VTEwpCisJCWZjbG9zZShpbnRlcm5hbF9sb2dfZmlsZV9mcCk7CisKIAlyZXR1 cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVh dGVzdWJzY3JpYmVyLnBsIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1 YnNjcmliZXIucGwKaW5kZXggMGMyN2ZjYTdiYjcuLjdhNGI5Y2E0MzNhIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbAorKysgYi9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbApAQCAtMTMs NyArMTMsOCBAQCBwcm9ncmFtX2hlbHBfb2soJ3BnX2NyZWF0ZXN1YnNjcmliZXInKTsKIHByb2dy YW1fdmVyc2lvbl9vaygncGdfY3JlYXRlc3Vic2NyaWJlcicpOwogcHJvZ3JhbV9vcHRpb25zX2hh bmRsaW5nX29rKCdwZ19jcmVhdGVzdWJzY3JpYmVyJyk7CiAKLW15ICRkYXRhZGlyID0gUG9zdGdy ZVNRTDo6VGVzdDo6VXRpbHM6OnRlbXBkaXI7CitteSAkZGF0YWRpciA9IFBvc3RncmVTUUw6OlRl c3Q6OlV0aWxzOjp0ZW1wZGlyICsgIi9kYXRhZGlyIjsKK215ICRsb2dkaXIgPSBQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczo6dGVtcGRpciArICIvbG9nZGlyIjsKIAogIyBHZW5lcmF0ZSBhIGRhdGFi YXNlIHdpdGggYSBuYW1lIG1hZGUgb2YgYSByYW5nZSBvZiBBU0NJSSBjaGFyYWN0ZXJzLgogIyBF eHRyYWN0ZWQgZnJvbSAwMDJfcGdfdXBncmFkZS5wbC4KQEAgLTM2Miw5ICszNjMsMTggQEAgY29t bWFuZF9vaygKIAkJJy0tc3Vic2NyaXB0aW9uJyA9PiAnc3ViMicsCiAJCSctLWRhdGFiYXNlJyA9 PiAkZGIxLAogCQknLS1kYXRhYmFzZScgPT4gJGRiMiwKKwkJJy0tbG9nZGlyJyA9PiAkbG9nZGly LAogCV0sCiAJJ3J1biBwZ19jcmVhdGVzdWJzY3JpYmVyIC0tZHJ5LXJ1biBvbiBub2RlIFMnKTsK IAorIyBDaGVjayB0aGF0IHRoZSBsb2cgZmlsZXMgd2VyZSBjcmVhdGVkCitteSBAc2VydmVyX2xv Z19maWxlcyA9IGdsb2IgIiRsb2dkaXIvKi9wZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2ci OworaXMoIHNjYWxhcihAc2VydmVyX2xvZ19maWxlcyksIDEsICIKKyAgICBwZ19jcmVhdGVzdWJz Y3JpYmVyX3NlcnZlci5sb2cgZmlsZSB3YXMgY3JlYXRlZCIpOworbXkgQGludGVybmFsX2xvZ19m aWxlcyA9IGdsb2IgIiRsb2dkaXIvKi9wZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZyI7 Citpcyggc2NhbGFyKEBpbnRlcm5hbF9sb2dfZmlsZXMpLCAxLCAiCisgICAgcGdfY3JlYXRlc3Vi c2NyaWJlcl9pbnRlcm5hbC5sb2cgZmlsZSB3YXMgY3JlYXRlZCIpOworCiAjIENoZWNrIGlmIG5v ZGUgUyBpcyBzdGlsbCBhIHN0YW5kYnkKICRub2RlX3MtPnN0YXJ0OwogaXMoJG5vZGVfcy0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICdTRUxFQ1QgcGdfY2F0YWxvZy5wZ19pc19pbl9yZWNvdmVyeSgp JyksCi0tIAoyLjQzLjAKCg== --000000000000e92889064c9f4ed5--