Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lqstc-00087G-Nr for pgsql-hackers@arkaria.postgresql.org; Wed, 09 Jun 2021 07:45:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lqstb-00014C-Dy for pgsql-hackers@arkaria.postgresql.org; Wed, 09 Jun 2021 07:45:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lqstb-000144-3f for pgsql-hackers@lists.postgresql.org; Wed, 09 Jun 2021 07:45:03 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lqstX-0005OU-OJ for pgsql-hackers@postgresql.org; Wed, 09 Jun 2021 07:45:02 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id BF45A60251; Wed, 9 Jun 2021 16:44:55 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.2 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_2cb20d972e161e6ef70c8ff31e30a8e0" Content-Transfer-Encoding: 7bit Date: Wed, 09 Jun 2021 16:44:55 +0900 From: torikoshia To: Dilip Kumar , Pgsql Hackers Cc: Bharath Rupireddy Subject: Re: RFC: Logging plan of the running query In-Reply-To: References: User-Agent: Roundcube Webmail/1.4.11 Message-ID: <0842b5da697a03869fb50be93817e4e1@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_2cb20d972e161e6ef70c8ff31e30a8e0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2021-05-28 15:51, torikoshia wrote: > On 2021-05-13 21:57, Dilip Kumar wrote: >> On Thu, May 13, 2021 at 5:18 PM Dilip Kumar >> wrote: >>> >>> On Thu, May 13, 2021 at 5:15 PM Bharath Rupireddy >>> wrote: >>> > >>> > On Thu, May 13, 2021 at 5:14 PM Dilip Kumar wrote: >>> > > >>> > > On Thu, May 13, 2021 at 4:16 PM Bharath Rupireddy >>> > > wrote: >>> > > > >>> > > > I'm saying that - currently, queries are logged with LOG level when >>> > > > the log_statement GUC is set. The queries might be sent to the >>> > > > non-superuser clients. So, your point of "sending the plan to those >>> > > > clients is not a good idea from a security perspective" gets violated >>> > > > right? Should the log level be changed(in the below code) from "LOG" >>> > > > to "LOG_SERVER_ONLY"? I think we can discuss this separately so as not >>> > > > to sidetrack the main feature. >>> > > > >>> > > > /* Log immediately if dictated by log_statement */ >>> > > > if (check_log_statement(parsetree_list)) >>> > > > { >>> > > > ereport(LOG, >>> > > > (errmsg("statement: %s", query_string), >>> > > > errhidestmt(true), >>> > > > errdetail_execute(parsetree_list))); >>> > > > >>> > > >>> > > Yes, that was my exact point, that in this particular code log with >>> > > LOG_SERVER_ONLY. >>> > > >>> > > Like this. >>> > > /* Log immediately if dictated by log_statement */ >>> > > if (check_log_statement(parsetree_list)) >>> > > { >>> > > ereport(LOG_SERVER_ONLY, >>> > >>> > Agree, but let's discuss that in a separate thread. >>> >>> Did not understand why separate thread? this is part of this thread >>> no? but anyways now everyone agreed that we will log with >>> LOG_SERVER_ONLY. > > Modified elevel from LOG to LOG_SERVER_ONLY. > > I also modified the patch to log JIT Summary and GUC settings > information. > If there is other useful information to log, I would appreciate it if > you could point it out. Updated the patch. - reordered superuser check which was pointed out in another thread[1] - added a regression test [1] https://postgr.es/m/YLxw1uVGIAP5uMPl@paquier.xyz Regards, -- Atsushi Torikoshi NTT DATA CORPORATION --=_2cb20d972e161e6ef70c8ff31e30a8e0 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0001-log-running-query-plan.patch Content-Disposition: attachment; filename=v3-0001-log-running-query-plan.patch; size=13791 RnJvbSA3YWQ5YTI4MGI2Zjc0ZTQ3MTgyOTM4NjM3MTYwNDZjMDJiMGEzODM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhdG9yaWsgPHRvcmlrb3NoaWFAb3NzLm50dGRhdGEuY29tPgpE YXRlOiBXZWQsIDkgSnVuIDIwMjEgMTU6MDM6MzkgKzA5MDAKU3ViamVjdDogW1BBVENIIHYzXSBB ZGQgZnVuY3Rpb24gdG8gbG9nIHRoZSB1bnRydW5jYXRlZCBxdWVyeSBzdHJpbmcgYW5kIGl0cwog cGxhbiBmb3IgdGhlIHF1ZXJ5IGN1cnJlbnRseSBydW5uaW5nIG9uIHRoZSBiYWNrZW5kIHdpdGgg dGhlIHNwZWNpZmllZAogcHJvY2VzcyBJRC4KCkN1cnJlbnRseSwgd2UgaGF2ZSB0byB3YWl0IGZv ciB0aGUgcXVlcnkgZXhlY3V0aW9uIHRvIGZpbmlzaApiZWZvcmUgd2UgY2hlY2sgaXRzIHBsYW4u IFRoaXMgaXMgbm90IHNvIGNvbnZlbmllbnQgd2hlbgppbnZlc3RpZ2F0aW5nIGxvbmctcnVubmlu ZyBxdWVyaWVzIG9uIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzCndoZXJlIHdlIGNhbm5vdCB1c2Ug ZGVidWdnZXJzLgpUbyBpbXByb3ZlIHRoaXMgc2l0dWF0aW9uLCB0aGlzIHBhdGNoIGFkZHMKcGdf bG9nX2N1cnJlbnRfcGxhbigpIGZ1bmN0aW9uIHRoYXQgcmVxdWVzdHMgdG8gbG9nIHRoZSBwbGFu Cm9mIHRoZSBzcGVjaWZpZWQgYmFja2VuZCBwcm9jZXNzLgoKT25seSBzdXBlcnVzZXJzIGFyZSBh bGxvd2VkIHRvIHJlcXVlc3QgdG8gbG9nIHRoZSBwbGFucyBiZWNhdXNlCmFsbG93aW5nIGFueSB1 c2VycyB0byBpc3N1ZSB0aGlzIHJlcXVlc3QgYXQgYW4gdW5ib3VuZGVkIHJhdGUKd291bGQgY2F1 c2UgbG90cyBvZiBsb2cgbWVzc2FnZXMgYW5kIHdoaWNoIGNhbiBsZWFkIHRvIGRlbmlhbApvZiBz ZXJ2aWNlLgoKT24gcmVjZWlwdCBvZiB0aGUgcmVxdWVzdCwgYXQgdGhlIG5leHQgQ0hFQ0tfRk9S X0lOVEVSUlVQVFMoKSwKdGhlIHRhcmdldCBiYWNrZW5kIGxvZ3MgaXRzIHBsYW4gYXQgTE9HX1NF UlZFUl9PTkxZIGxldmVsLCBzbwp0aGF0IHRoZXNlIHBsYW5zIHdpbGwgYXBwZWFyIGluIHRoZSBz ZXJ2ZXIgbG9nIGJ1dCBub3QgYmUgc2VudAp0byB0aGUgY2xpZW50LgotLS0KIGRvYy9zcmMvc2dt bC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAgIHwgIDIxICsrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAgICAgICAgIHwgMTE2ICsrKysrKysrKysrKysrKysr KysKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyAgICAgICAgIHwgICA0ICsK IHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHNy Yy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jICAgICAgICAgICAgIHwgICAxICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNs dWRlL2NvbW1hbmRzL2V4cGxhaW4uaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRl L21pc2NhZG1pbi5oICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3N0 b3JhZ2UvcHJvY3NpZ25hbC5oICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0IHwgIDEwICstCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9taXNjX2Z1bmN0aW9ucy5zcWwgICAgICB8ICAgNiArLQogMTEgZmlsZXMgY2hhbmdlZCwgMTY3 IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggMDhiMDdmNTYxZS4uMzk5 ZmExMmFhMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvZnVuYy5zZ21sCkBAIC0yNDk0MCw2ICsyNDk0MCwyNyBAQCBTRUxFQ1QgY29sbGF0aW9u IGZvciAoJ2ZvbycgQ09MTEFURSAiZGVfREUiKTsKICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgIDwvcm93PgogCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+ CisgICAgICAgICA8cHJpbWFyeT5wZ19sb2dfY3VycmVudF9wbGFuPC9wcmltYXJ5PgorICAgICAg ICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPnBnX2xvZ19jdXJyZW50X3BsYW48L2Z1 bmN0aW9uPiAoIDxwYXJhbWV0ZXI+cGlkPC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+ ICkKKyAgICAgICAgPHJldHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwv cGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgUmVxdWVzdHMgdG8gbG9nIHRoZSB1bnRydW5j YXRlZCBxdWVyeSBzdHJpbmcgYW5kIGl0cyBwbGFuIGZvcgorICAgICAgICB0aGUgcXVlcnkgY3Vy cmVudGx5IHJ1bm5pbmcgb24gdGhlIGJhY2tlbmQgd2l0aCB0aGUgc3BlY2lmaWVkCisgICAgICAg IHByb2Nlc3MgSUQuCisgICAgICAgIFRoZXkgd2lsbCBiZSBsb2dnZWQgYXQgPGxpdGVyYWw+TE9H PC9saXRlcmFsPiBtZXNzYWdlIGxldmVsIGFuZAorICAgICAgICB3aWxsIGFwcGVhciBpbiB0aGUg c2VydmVyIGxvZyBiYXNlZCBvbiB0aGUgbG9nCisgICAgICAgIGNvbmZpZ3VyYXRpb24gc2V0IChT ZWUgPHhyZWYgbGlua2VuZD0icnVudGltZS1jb25maWctbG9nZ2luZyIvPgorICAgICAgICBmb3Ig bW9yZSBpbmZvcm1hdGlvbiksIGJ1dCB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjbGllbnQKKyAg ICAgICAgcmVnYXJkbGVzcyBvZiA8eHJlZiBsaW5rZW5kPSJndWMtY2xpZW50LW1pbi1tZXNzYWdl cyIvPi4KKyAgICAgICAgT25seSBzdXBlcnVzZXJzIGNhbiByZXF1ZXN0IHRvIGxvZyBwbGFuIG9m IHRoZSBydW5uaW5nIHF1ZXJ5LgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+ CisKICAgICAgIDxyb3c+CiAgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V4cGxhaW4uYwppbmRleCA5YTYwODY1ZDE5Li4xY2VhNTU3NzY0IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbi5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZUhhc2guaCIK ICNpbmNsdWRlICJmb3JlaWduL2Zkd2FwaS5oIgogI2luY2x1ZGUgImppdC9qaXQuaCIKKyNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9leHRlbnNpYmxlLmgiCiAjaW5jbHVk ZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0y OCw2ICsyOSw4IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInJl d3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgorI2lu Y2x1ZGUgInN0b3JhZ2UvcHJvY2FycmF5LmgiCisjaW5jbHVkZSAidGNvcC9wcXVlcnkuaCIKICNp bmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9ndWNfdGFibGVzLmgiCkBAIC00OTI4LDMgKzQ5MzEsMTE2IEBAIGVzY2Fw ZV95YW1sKFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFyICpzdHIpCiB7CiAJZXNjYXBlX2pzb24o YnVmLCBzdHIpOwogfQorCisvKgorICogSGFuZGxlTG9nQ3VycmVudFBsYW5JbnRlcnJ1cHQKKyAq CQlIYW5kbGUgcmVjZWlwdCBvZiBhbiBpbnRlcnJ1cHQgaW5kaWNhdGluZyBsb2dnaW5nIHRoZQor ICoJCXBsYW4gb2YgYSBjdXJyZW50bHkgcnVubmluZyBxdWVyeS4KKyAqCisgKiBBbGwgdGhlIGFj dHVhbCB3b3JrIGlzIGRlZmVycmVkIHRvIFByb2Nlc3NMb2dFeHBsYWluSW50ZXJydXB0KCksCisg KiBiZWNhdXNlIHdlIGNhbm5vdCBzYWZlbHkgZW1pdCBhIGxvZyBtZXNzYWdlIGluc2lkZSB0aGUg c2lnbmFsIGhhbmRsZXIuCisgKi8KK3ZvaWQKK0hhbmRsZUxvZ0N1cnJlbnRQbGFuSW50ZXJydXB0 KHZvaWQpCit7CisJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7CisJTG9nQ3VycmVudFBsYW5QZW5k aW5nID0gdHJ1ZTsKKwkvKiBsYXRjaCB3aWxsIGJlIHNldCBieSBwcm9jc2lnbmFsX3NpZ3VzcjFf aGFuZGxlciAqLworfQorCisvKgorICogUHJvY2Vzc0xvZ0N1cnJlbnRQbGFuSW50ZXJydXB0Cisg KiAJCVBlcmZvcm0gbG9nZ2luZyBwbGFuIG9mIHRoZSBjdXJyZW50bHkgcnVubmluZyBxdWVyeSBv biB0aGlzCisgKiAJCWJhY2tlbmQgcHJvY2Vzcy4KKyAqCisgKiBBbnkgYmFja2VuZCB0aGF0IHBh cnRpY2lwYXRlcyBpbiBQcm9jU2lnbmFsIHNpZ25hbGluZyBtdXN0IGFycmFuZ2UgdG8gY2FsbAor ICogdGhpcyBmdW5jdGlvbiBpZiB3ZSBzZWUgTG9nQ3VycmVudFBsYW5QZW5kaW5nIHNldC4KKyAq IEl0IGlzIGNhbGxlZCBmcm9tIENIRUNLX0ZPUl9JTlRFUlJVUFRTKCksIHdoaWNoIGlzIGVub3Vn aCBiZWNhdXNlIHRoZSB0YXJnZXQKKyAqIHByb2Nlc3MgZm9yIGxvZ2dpbmcgcGxhbiBpcyBhIGJh Y2tlbmQuCisgKi8KK3ZvaWQKK1Byb2Nlc3NMb2dDdXJyZW50UGxhbkludGVycnVwdCh2b2lkKQor eworCUV4cGxhaW5TdGF0ZSAqZXMgPSBOZXdFeHBsYWluU3RhdGUoKTsKKworCUxvZ0N1cnJlbnRQ bGFuUGVuZGluZyA9IGZhbHNlOworCisJZXMtPmZvcm1hdCA9IEVYUExBSU5fRk9STUFUX1RFWFQ7 CisJZXMtPnNldHRpbmdzID0gdHJ1ZTsKKworCWlmIChBY3RpdmVQb3J0YWwgJiYgQWN0aXZlUG9y dGFsLT5xdWVyeURlc2MgIT0gTlVMTCkKKwl7CisJCUV4cGxhaW5RdWVyeVRleHQoZXMsIEFjdGl2 ZVBvcnRhbC0+cXVlcnlEZXNjKTsKKwkJRXhwbGFpblByaW50UGxhbihlcywgQWN0aXZlUG9ydGFs LT5xdWVyeURlc2MpOworCQlFeHBsYWluUHJpbnRKSVRTdW1tYXJ5KGVzLCBBY3RpdmVQb3J0YWwt PnF1ZXJ5RGVzYyk7CisKKwkJLyogUmVtb3ZlIGxhc3QgbGluZSBicmVhayAqLworCQlpZiAoZXMt PnN0ci0+bGVuID4gMCAmJiBlcy0+c3RyLT5kYXRhW2VzLT5zdHItPmxlbiAtIDFdID09ICdcbicp CisJCQllcy0+c3RyLT5kYXRhWy0tZXMtPnN0ci0+bGVuXSA9ICdcMCc7CisKKwkJZXJlcG9ydChM T0dfU0VSVkVSX09OTFksCisJCQkJKGVycm1zZygibG9nZ2luZyBwbGFuIG9mIHRoZSBydW5uaW5n IHF1ZXJ5IG9uIFBJRCAlZFxuJXMiLAorCQkJCQlNeVByb2NQaWQsCisJCQkJCWVzLT5zdHItPmRh dGEpLAorCQkJCSBlcnJoaWRlc3RtdCh0cnVlKSkpOworCX0KKwllbHNlCisJCWVyZXBvcnQoTE9H X1NFUlZFUl9PTkxZLAorCQkJCShlcnJtc2coIlBJRCAlZCBpcyBub3QgZXhlY3V0aW5nIHF1ZXJp ZXMgbm93IiwKKwkJCQkJTXlQcm9jUGlkKSkpOworfQorCisvKgorICogcGdfbG9nX2N1cnJlbnRf cGxhbgorICoJCVNpZ25hbCBhIGJhY2tlbmQgcHJvY2VzcyB0byBsb2cgcGxhbiB0aGUgb2YgcnVu bmluZyBxdWVyeS4KKyAqCisgKiBPbmx5IHN1cGVydXNlcnMgYXJlIGFsbG93ZWQgdG8gc2lnbmFs IHRvIGxvZyBwbGFuIGJlY2F1c2UgYW55IHVzZXJzIHRvCisgKiBpc3N1ZSB0aGlzIHJlcXVlc3Qg YXQgYW4gdW5ib3VuZGVkIHJhdGUgd291bGQgY2F1c2UgbG90cyBvZiBsb2cgbWVzc2FnZXMKKyAq IGFuZCB3aGljaCBjYW4gbGVhZCB0byBkZW5pYWwgb2Ygc2VydmljZS4KKyAqCisgKiBPbiByZWNl aXB0IG9mIHRoaXMgc2lnbmFsLCBhIGJhY2tlbmQgc2V0cyB0aGUgZmxhZyBpbiB0aGUgc2lnbmFs IGhhbmRsZXIsCisgKiB3aGljaCBjYXVzZXMgdGhlIG5leHQgQ0hFQ0tfRk9SX0lOVEVSUlVQVFMo KSB0byBsb2cgcGxhbi4KKyAqLworRGF0dW0KK3BnX2xvZ19jdXJyZW50X3BsYW4oUEdfRlVOQ1RJ T05fQVJHUykKK3sKKwlpbnQJCQlwaWQgPSBQR19HRVRBUkdfSU5UMzIoMCk7CisJUEdQUk9DCSAg ICpwcm9jOworCisJLyogT25seSBhbGxvdyBzdXBlcnVzZXJzIHRvIGxvZyBwbGFuIG9mIHRoZSBy dW5uaW5nIHF1ZXJpZXMuICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJt c2coIm11c3QgYmUgYSBzdXBlcnVzZXIgdG8gbG9nIHBsYW4gb2YgdGhlIHJ1bm5pbmcgcXVlcnki KSkpOworCisJcHJvYyA9IEJhY2tlbmRQaWRHZXRQcm9jKHBpZCk7CisKKwkvKgorCSAqIEJhY2tl bmRQaWRHZXRQcm9jIHJldHVybnMgTlVMTCBpZiB0aGUgcGlkIGlzbid0IHZhbGlkOyBidXQgYnkg dGhlIHRpbWUKKwkgKiB3ZSByZWFjaCBraWxsKCksIGEgcHJvY2VzcyBmb3Igd2hpY2ggd2UgZ2V0 IGEgdmFsaWQgcHJvYyBoZXJlIG1pZ2h0CisJICogaGF2ZSB0ZXJtaW5hdGVkIG9uIGl0cyBvd24u ICBUaGVyZSdzIG5vIHdheSB0byBhY3F1aXJlIGEgbG9jayBvbiBhbgorCSAqIGFyYml0cmFyeSBw cm9jZXNzIHRvIHByZXZlbnQgdGhhdC4gQnV0IHNpbmNlIHRoaXMgbWVjaGFuaXNtIGlzIHVzdWFs bHkKKwkgKiB1c2VkIHRvIGxvb2sgaW50byBwbGFucyBvZiBsb25nIHJ1bm5pbmcgcXVlcmllcywg dGhhdCBpdCBtaWdodCBlbmQgaXRzCisJICogb3duIGZpcnN0IGFuZCBpdHMgcGxhbiBpcyBub3Qg bG9nZ2VkIGlzIG5vdCBhIHByb2JsZW0uCisJICovCisJaWYgKHByb2MgPT0gTlVMTCkKKwl7CisJ CS8qCisJCSAqIFRoaXMgaXMganVzdCBhIHdhcm5pbmcgc28gYSBsb29wLXRocm91Z2gtcmVzdWx0 c2V0IHdpbGwgbm90IGFib3J0CisJCSAqIGlmIG9uZSBiYWNrZW5kIHRlcm1pbmF0ZWQgb24gaXRz IG93biBkdXJpbmcgdGhlIHJ1bi4KKwkJICovCisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJy bXNnKCJQSUQgJWQgaXMgbm90IGEgUG9zdGdyZVNRTCBzZXJ2ZXIgcHJvY2VzcyIsIHBpZCkpKTsK KwkJUEdfUkVUVVJOX0JPT0woZmFsc2UpOworCX0KKworCWlmIChTZW5kUHJvY1NpZ25hbChwaWQs IFBST0NTSUdfTE9HX0NVUlJFTlRfUExBTiwgcHJvYy0+YmFja2VuZElkKSA8IDApCisJeworCQkv KiBBZ2FpbiwganVzdCBhIHdhcm5pbmcgdG8gYWxsb3cgbG9vcHMgKi8KKwkJZXJlcG9ydChXQVJO SU5HLAorCQkJCShlcnJtc2coImNvdWxkIG5vdCBzZW5kIHNpZ25hbCB0byBwcm9jZXNzICVkOiAl bSIsIHBpZCkpKTsKKwkJUEdfUkVUVVJOX0JPT0woZmFsc2UpOworCX0KKworCVBHX1JFVFVSTl9C T09MKHRydWUpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3Np Z25hbC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IGRlZmI3 NWFhMjYuLjliOTY1MzU0NGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3By b2NzaWduYWwuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKQEAg LTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvcGFyYWxsZWwuaCIKICNpbmNsdWRlICJw b3J0L3BnX2JpdHV0aWxzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9leHBsYWluLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAi cGdzdGF0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCkBAIC02NjEsNiAr NjYyLDkgQEAgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lHTkFMX0FSR1MpCiAJaWYgKENo ZWNrUHJvY1NpZ25hbChQUk9DU0lHX0xPR19NRU1PUllfQ09OVEVYVCkpCiAJCUhhbmRsZUxvZ01l bW9yeUNvbnRleHRJbnRlcnJ1cHQoKTsKIAorCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19M T0dfQ1VSUkVOVF9QTEFOKSkKKwkJSGFuZGxlTG9nQ3VycmVudFBsYW5JbnRlcnJ1cHQoKTsKKwog CWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9EQVRBQkFTRSkp CiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9E QVRBQkFTRSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCA4Y2VhMTBjOTAxLi5hYzhlYTY3ZTgxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dGNvcC9wb3N0Z3Jlcy5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hhY3Qu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3lu Yy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2V4cGxhaW4uaCIKICNpbmNsdWRlICJjb21tYW5kcy9w cmVwYXJlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAiaml0L2ppdC5o IgpAQCAtMzM2Niw2ICszMzY3LDkgQEAgUHJvY2Vzc0ludGVycnVwdHModm9pZCkKIAogCWlmIChM b2dNZW1vcnlDb250ZXh0UGVuZGluZykKIAkJUHJvY2Vzc0xvZ01lbW9yeUNvbnRleHRJbnRlcnJ1 cHQoKTsKKworCWlmIChMb2dDdXJyZW50UGxhblBlbmRpbmcpCisJCVByb2Nlc3NMb2dDdXJyZW50 UGxhbkludGVycnVwdCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2lu aXQvZ2xvYmFscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKaW5kZXggMzgx ZDllNTQ4ZC4uMTI2ZWQxMDM2MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9n bG9iYWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKQEAgLTM2LDYg KzM2LDcgQEAgdm9sYXRpbGUgc2lnX2F0b21pY190IElkbGVJblRyYW5zYWN0aW9uU2Vzc2lvblRp bWVvdXRQZW5kaW5nID0gZmFsc2U7CiB2b2xhdGlsZSBzaWdfYXRvbWljX3QgSWRsZVNlc3Npb25U aW1lb3V0UGVuZGluZyA9IGZhbHNlOwogdm9sYXRpbGUgc2lnX2F0b21pY190IFByb2NTaWduYWxC YXJyaWVyUGVuZGluZyA9IGZhbHNlOwogdm9sYXRpbGUgc2lnX2F0b21pY190IExvZ01lbW9yeUNv bnRleHRQZW5kaW5nID0gZmFsc2U7Cit2b2xhdGlsZSBzaWdfYXRvbWljX3QgTG9nQ3VycmVudFBs YW5QZW5kaW5nID0gZmFsc2U7CiB2b2xhdGlsZSB1aW50MzIgSW50ZXJydXB0SG9sZG9mZkNvdW50 ID0gMDsKIHZvbGF0aWxlIHVpbnQzMiBRdWVyeUNhbmNlbEhvbGRvZmZDb3VudCA9IDA7CiB2b2xh dGlsZSB1aW50MzIgQ3JpdFNlY3Rpb25Db3VudCA9IDA7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApp bmRleCBhY2JjYWU0NjA3Li5hNmJlMWFiMGI1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAg LTc5NzUsNiArNzk3NSwxMiBAQAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMg PT4gJ2ludDQnLAogICBwcm9zcmMgPT4gJ3BnX2xvZ19iYWNrZW5kX21lbW9yeV9jb250ZXh0cycg fSwKIAorIyBsb2dnaW5nIHBsYW4gb2YgdGhlIHJ1bm5pbmcgcXVlcnkgb24gdGhlIHNwZWNpZmll ZCBiYWNrZW5kCit7IG9pZCA9PiAnNDU0NCcsIGRlc2NyID0+ICdsb2cgcGxhbiBvZiB0aGUgcnVu bmluZyBxdWVyeSBvbiB0aGUgc3BlY2lmaWVkIGJhY2tlbmQnLAorICBwcm9uYW1lID0+ICdwZ19s b2dfY3VycmVudF9wbGFuJywKKyAgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICdi b29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ2ludDQnLCBwcm9zcmMgPT4gJ3BnX2xvZ19jdXJyZW50 X3BsYW4nIH0sCisKICMgbm9uLXBlcnNpc3RlbnQgc2VyaWVzIGdlbmVyYXRvcgogeyBvaWQgPT4g JzEwNjYnLCBkZXNjciA9PiAnbm9uLXBlcnNpc3RlbnQgc2VyaWVzIGdlbmVyYXRvcicsCiAgIHBy b25hbWUgPT4gJ2dlbmVyYXRlX3NlcmllcycsIHByb3Jvd3MgPT4gJzEwMDAnLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oCmluZGV4IGU5NGQ5ZTQ5Y2YuLmZhODFiZWI1NTMgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBs YWluLmgKQEAgLTEyNCw0ICsxMjQsNiBAQCBleHRlcm4gdm9pZCBFeHBsYWluT3Blbkdyb3VwKGNv bnN0IGNoYXIgKm9ianR5cGUsIGNvbnN0IGNoYXIgKmxhYmVsbmFtZSwKIGV4dGVybiB2b2lkIEV4 cGxhaW5DbG9zZUdyb3VwKGNvbnN0IGNoYXIgKm9ianR5cGUsIGNvbnN0IGNoYXIgKmxhYmVsbmFt ZSwKIAkJCQkJCQkgIGJvb2wgbGFiZWxlZCwgRXhwbGFpblN0YXRlICplcyk7CiAKK2V4dGVybiB2 b2lkIEhhbmRsZUxvZ0N1cnJlbnRQbGFuSW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIHZvaWQgUHJv Y2Vzc0xvZ0N1cnJlbnRQbGFuSW50ZXJydXB0KHZvaWQpOwogI2VuZGlmCQkJCQkJCS8qIEVYUExB SU5fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggYi9zcmMvaW5jbHVk ZS9taXNjYWRtaW4uaAppbmRleCA0ZGMzNDNjYmM1Li4zNTVlM2RiNjIyIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9taXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApAQCAt OTQsNiArOTQsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgdm9sYXRpbGUgc2lnX2F0b21pY190IElk bGVJblRyYW5zYWN0aW9uU2Vzc2lvblRpbWVvdXRQZW5kaW5nOwogZXh0ZXJuIFBHRExMSU1QT1JU IHZvbGF0aWxlIHNpZ19hdG9taWNfdCBJZGxlU2Vzc2lvblRpbWVvdXRQZW5kaW5nOwogZXh0ZXJu IFBHRExMSU1QT1JUIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBQcm9jU2lnbmFsQmFycmllclBlbmRp bmc7CiBleHRlcm4gUEdETExJTVBPUlQgdm9sYXRpbGUgc2lnX2F0b21pY190IExvZ01lbW9yeUNv bnRleHRQZW5kaW5nOworZXh0ZXJuIFBHRExMSU1QT1JUIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBM b2dDdXJyZW50UGxhblBlbmRpbmc7CiAKIGV4dGVybiBQR0RMTElNUE9SVCB2b2xhdGlsZSBzaWdf YXRvbWljX3QgQ2hlY2tDbGllbnRDb25uZWN0aW9uUGVuZGluZzsKIGV4dGVybiBQR0RMTElNUE9S VCB2b2xhdGlsZSBzaWdfYXRvbWljX3QgQ2xpZW50Q29ubmVjdGlvbkxvc3Q7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv cHJvY3NpZ25hbC5oCmluZGV4IGVlYzE4NmJlMmUuLmMxYTcyMThkNjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv cHJvY3NpZ25hbC5oCkBAIC0zNSw2ICszNSw3IEBAIHR5cGVkZWYgZW51bQogCVBST0NTSUdfV0FM U05EX0lOSVRfU1RPUFBJTkcsCS8qIGFzayB3YWxzZW5kZXJzIHRvIHByZXBhcmUgZm9yIHNodXRk b3duICAqLwogCVBST0NTSUdfQkFSUklFUiwJCQkvKiBnbG9iYWwgYmFycmllciBpbnRlcnJ1cHQg ICovCiAJUFJPQ1NJR19MT0dfTUVNT1JZX0NPTlRFWFQsIC8qIGFzayBiYWNrZW5kIHRvIGxvZyB0 aGUgbWVtb3J5IGNvbnRleHRzICovCisJUFJPQ1NJR19MT0dfQ1VSUkVOVF9QTEFOLCAvKiBhc2sg YmFja2VuZCB0byBsb2cgcGxhbiBvZiB0aGUgY3VycmVudCBxdWVyeSAqLwogCiAJLyogUmVjb3Zl cnkgY29uZmxpY3QgcmVhc29ucyAqLwogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfREFUQUJB U0UsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21pc2NfZnVuY3Rpb25z Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CmluZGV4 IGU4NDUwNDJkMzguLjRjNjE1OWExMWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bWlzY19mdW5jdGlvbnMub3V0CkBAIC0xMzQsOSArMTM0LDkgQEAgTElORSAxOiBTRUxFQ1QgbnVt X251bGxzKCk7CiAgICAgICAgICAgICAgICBeCiBISU5UOiAgTm8gZnVuY3Rpb24gbWF0Y2hlcyB0 aGUgZ2l2ZW4gbmFtZSBhbmQgYXJndW1lbnQgdHlwZXMuIFlvdSBtaWdodCBuZWVkIHRvIGFkZCBl eHBsaWNpdCB0eXBlIGNhc3RzLgogLS0KLS0tIHBnX2xvZ19iYWNrZW5kX21lbW9yeV9jb250ZXh0 cygpCistLSBUZXN0IGxvZ2dpbmcgZnVuY3Rpb25zCiAtLQotLS0gTWVtb3J5IGNvbnRleHRzIGFy ZSBsb2dnZWQgYW5kIHRoZXkgYXJlIG5vdCByZXR1cm5lZCB0byB0aGUgZnVuY3Rpb24uCistLSBT b21lIGZ1bmN0aW9ucyBvdXRwdXQgd2hhdCB5b3Ugd2FudCB0byB0aGUgbG9nLgogLS0gRnVydGhl cm1vcmUsIHRoZWlyIGNvbnRlbnRzIGNhbiB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgdGltaW5nLiBI b3dldmVyLAogLS0gd2UgY2FuIGF0IGxlYXN0IHZlcmlmeSB0aGF0IHRoZSBjb2RlIGRvZXNuJ3Qg ZmFpbC4KIC0tCkBAIC0xNDYsNiArMTQ2LDEyIEBAIFNFTEVDVCAqIEZST00gcGdfbG9nX2JhY2tl bmRfbWVtb3J5X2NvbnRleHRzKHBnX2JhY2tlbmRfcGlkKCkpOwogIHQKICgxIHJvdykKIAorU0VM RUNUICogRlJPTSBwZ19sb2dfY3VycmVudF9wbGFuKHBnX2JhY2tlbmRfcGlkKCkpOworIHBnX2xv Z19jdXJyZW50X3BsYW4gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKIC0t CiAtLSBUZXN0IHNvbWUgYnVpbHQtaW4gU1JGcwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2Nf ZnVuY3Rpb25zLnNxbAppbmRleCBhMzk4MzQ5YWZjLi43YWVkNTJmNDM3IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvbWlzY19mdW5jdGlvbnMuc3FsCkBAIC0yOSwxNSArMjksMTUgQEAgU0VMRUNUIG51 bV9udWxscyhWQVJJQURJQyAne30nOjppbnRbXSk7CiAtLSBzaG91bGQgZmFpbCwgb25lIG9yIG1v cmUgYXJndW1lbnRzIGlzIHJlcXVpcmVkCiBTRUxFQ1QgbnVtX25vbm51bGxzKCk7CiBTRUxFQ1Qg bnVtX251bGxzKCk7Ci0KIC0tCi0tLSBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29udGV4dHMoKQor LS0gVGVzdCBsb2dnaW5nIGZ1bmN0aW9ucwogLS0KLS0tIE1lbW9yeSBjb250ZXh0cyBhcmUgbG9n Z2VkIGFuZCB0aGV5IGFyZSBub3QgcmV0dXJuZWQgdG8gdGhlIGZ1bmN0aW9uLgorLS0gU29tZSBm dW5jdGlvbnMgb3V0cHV0IHdoYXQgeW91IHdhbnQgdG8gdGhlIGxvZy4KIC0tIEZ1cnRoZXJtb3Jl LCB0aGVpciBjb250ZW50cyBjYW4gdmFyeSBkZXBlbmRpbmcgb24gdGhlIHRpbWluZy4gSG93ZXZl ciwKIC0tIHdlIGNhbiBhdCBsZWFzdCB2ZXJpZnkgdGhhdCB0aGUgY29kZSBkb2Vzbid0IGZhaWwu CiAtLQogU0VMRUNUICogRlJPTSBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29udGV4dHMocGdfYmFj a2VuZF9waWQoKSk7CitTRUxFQ1QgKiBGUk9NIHBnX2xvZ19jdXJyZW50X3BsYW4ocGdfYmFja2Vu ZF9waWQoKSk7CiAKIC0tCiAtLSBUZXN0IHNvbWUgYnVpbHQtaW4gU1JGcwoKYmFzZS1jb21taXQ6 IGJlOTAwOTg5MDc0NzVmM2NmZmY3ZGM2ZDU5MDY0MWI5YzJkYWUwODEKLS0gCjIuMjcuMAoK --=_2cb20d972e161e6ef70c8ff31e30a8e0--