Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fZy3u-0007NR-Ey for pgadmin-hackers@arkaria.postgresql.org; Mon, 02 Jul 2018 12:36:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fZy3s-0003ab-OP for pgadmin-hackers@arkaria.postgresql.org; Mon, 02 Jul 2018 12:36:08 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fZy3s-0003aP-7c for pgadmin-hackers@lists.postgresql.org; Mon, 02 Jul 2018 12:36:08 +0000 Received: from mail-lf0-x230.google.com ([2a00:1450:4010:c07::230]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fZy3n-0007xj-2T for pgadmin-hackers@postgresql.org; Mon, 02 Jul 2018 12:36:06 +0000 Received: by mail-lf0-x230.google.com with SMTP id m13-v6so11898352lfb.12 for ; Mon, 02 Jul 2018 05:36:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=YbFAHKQuTjokNfOsI4eWqUKwIP8MXATHaR7lXxrZ3xY=; b=uJaztshaTBk/duXgrXAKx9zT39SqztffvL+IchAG3vO7DZoRKfgrkWPlcTnXc46dpr yX2EwC4egs0rCB0D4ejR9eJLd81r7uRQ2ZMGqwyclZS7qlW35/7pV+LL4AHfZkfFzadg OcrSHhenCK7gb/pkOX/kyq8qJmiQFbf6JlBONWmUquTcIK7qwCmtL2dmG8tCeqB3AvV1 bslkoIKpTLP9EAbte3gDiPwOStD471vTn1i9fCrUYsCAKslRAkhEWadYcCtCDl+LWfkJ VxGPlqltXWF5V3y6fxdpB8c3qO6DYWnu0Ty/B7q8ReYWIhucdsHJ+MvuGmq7dst+hrar pUGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=YbFAHKQuTjokNfOsI4eWqUKwIP8MXATHaR7lXxrZ3xY=; b=bBGHcklqFIHLZA9OBt9KzfNZoWgG/0Qm1+UQiQADHM8zm6qgO0c+3qrb4Tqkp4wdoz vRuwGS9/BRhRUriY7ZWRPc/gXWPsJt2GOemWFHkQ3ZxcAoijE6ycuJcE2IRK0cN0wYmF 362N61yDDz0Q4AFIaEdCvOQIkIFT4zqcLoVYV6nrzZp3pBoz1ERgk0tgw0NZK4rHS3Zx sEc42whccCtqmO6k/uNxYzIFj4ItEuaLi7PMXrXV/f9dPo8z/kB238SkAXgVdaDpqMgS ViPB56A7zW2XVq06yFZ4htjhekT3+fW9V5K5e9gGqG4k0t8iRJDRp2kYBdeB2PbdJCnm Qx0Q== X-Gm-Message-State: APt69E3QK68j9lQ16TnVVyJcbX1JwBBB3zM+/vjBu4ZY8fkeMo8ma7dv C51tr8ZJZEwdZCUK+JzrRfRAcfHGCBEazK676oN8PA== X-Google-Smtp-Source: AAOMgpfA87Vox9Ii7WFhCs9JdLRYZrHXu5+TwLlM2xfX5SJrOtZm2rrW0ZnUm4RDjIL9649d8QPmOFiTjzvANbzeneU= X-Received: by 2002:a19:f104:: with SMTP id p4-v6mr13334177lfh.137.1530534960637; Mon, 02 Jul 2018 05:36:00 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:850b:0:0:0:0:0 with HTTP; Mon, 2 Jul 2018 05:35:59 -0700 (PDT) From: Aditya Toshniwal Date: Mon, 2 Jul 2018 18:05:59 +0530 Message-ID: Subject: [pgAdmin4][RM3371] Ping endpoint still send a pg4a_session cookie To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000a5d5e205700370f7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000a5d5e205700370f7 Content-Type: multipart/alternative; boundary="000000000000a5d5de05700370f5" --000000000000a5d5de05700370f5 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached is the patch for fixing RM3371 where /misc/ping service generate session file for each call and so cannot be used frequently. The patch is to skip session file generation and session caching for the URLs provided in SESSION_SKIP_PATH list config parameter. pg4a_session_cookie value will still be generated but nothing will be stored at the backend. Also, I have separated the garbage collection code in current ping service to a new url /misc/cleanup. /misc/ping will be purely for is alive check. Request you to kindly review. -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" --000000000000a5d5de05700370f5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the patch for fixing RM3371 where = /misc/ping service generate session file for each call and so cannot be use= d frequently.
The patch is to skip session file generation and session cach= ing for the URLs provided in SESSION_SKIP_PATH list config parameter. pg4a_= session_cookie value will still be generated but nothing will be stored at = the backend.
Also, I have separated the garbage collection code in current = ping service to a new url /misc/cleanup. /misc/ping will be purely for is a= live check.

Request you to kindly review.

--
<= div class=3D"gmail_signature" data-smartmail=3D"gmail_signature">
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB So= ftware Solutions |=C2=A0Pune
"Don't Complain about Heat, = Plant a tree"
--000000000000a5d5de05700370f5-- --000000000000a5d5e205700370f7 Content-Type: application/octet-stream; name="RM3371.patch" Content-Disposition: attachment; filename="RM3371.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jj48qjrc0 ZGlmZiAtLWdpdCBhL3dlYi9jb25maWcucHkgYi93ZWIvY29uZmlnLnB5CmluZGV4IGE4YTljZTAx Li4xMjhhZDExYiAxMDA2NDQKLS0tIGEvd2ViL2NvbmZpZy5weQorKysgYi93ZWIvY29uZmlnLnB5 CkBAIC0zOTEsMyArMzkxLDExIEBAIGlmIChTVVBQT1JUX1NTSF9UVU5ORUwgaXMgVHJ1ZSBhbmQK ICAgICAoKHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMiBhbmQgc3lzLnZlcnNpb25faW5mb1sxXSA8 IDcpIG9yCiAgICAgIChzeXMudmVyc2lvbl9pbmZvWzBdID09IDMgYW5kIHN5cy52ZXJzaW9uX2lu Zm9bMV0gPCA0KSkpOgogICAgIFNVUFBPUlRfU1NIX1RVTk5FTCA9IEZhbHNlCisKKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIyBTa2lwIHNlc3Npb24gc3Ryb2luZyBpbiBmaWxlcyBhbmQgY2FjaGUgZm9y IHBhdGhzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitTRVNTSU9OX1NLSVBfUEFUSFMgPSBbCisgICAgJy9t aXNjL3BpbmcnCitdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL19faW5pdF9fLnB5CmluZGV4IGU0YzljNDg0Li41OTI2NTU5ZCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vX19pbml0X18ucHkKQEAg LTM1NCw3ICszNTQsOSBAQCBkZWYgY3JlYXRlX2FwcChhcHBfbmFtZT1Ob25lKToKICAgICAjIHJl Z2lzdGVyIGN1c3RvbSB1bmF1dGhvcmlzZWQgaGFuZGxlci4KICAgICBhcHAubG9naW5fbWFuYWdl ci51bmF1dGhvcml6ZWRfaGFuZGxlcihwZ2FfdW5hdXRob3Jpc2VkKQogCi0gICAgYXBwLnNlc3Np b25faW50ZXJmYWNlID0gY3JlYXRlX3Nlc3Npb25faW50ZXJmYWNlKGFwcCkKKyAgICBhcHAuc2Vz c2lvbl9pbnRlcmZhY2UgPSBjcmVhdGVfc2Vzc2lvbl9pbnRlcmZhY2UoCisgICAgICAgIGFwcCwg Y29uZmlnLlNFU1NJT05fU0tJUF9QQVRIUworICAgICkKIAogICAgICMgTWFrZSB0aGUgU2Vzc2lv biBtb3JlIHNlY3VyZSBhZ2FpbnN0IFhTUyAmIENTUkYgd2hlbiBydW5uaW5nIGluIHdlYiBtb2Rl CiAgICAgaWYgY29uZmlnLlNFUlZFUl9NT0RFOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zdGF0aWMvanMvYnJvd3Nlci5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pz L2Jyb3dzZXIuanMKaW5kZXggYjI2NzM4Y2YuLmQwZWZlNDY4IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc3RhdGljL2pzL2Jyb3dzZXIuanMKQEAgLTQ5MCw3ICs0OTAsNyBAQCBkZWZpbmUoJ3BnYWRt aW4uYnJvd3NlcicsIFsKICAgICAgIC8vIFBpbmcgdGhlIHNlcnZlciBldmVyeSA1IG1pbnV0ZXMK ICAgICAgIHNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICAkLmFqYXgoewotICAgICAg ICAgIHVybDogdXJsX2ZvcignbWlzYy5waW5nJyksCisgICAgICAgICAgdXJsOiB1cmxfZm9yKCdt aXNjLmNsZWFudXAnKSwKICAgICAgICAgICB0eXBlOidQT1NUJywKICAgICAgICAgICBzdWNjZXNz OiBmdW5jdGlvbigpIHt9LAogICAgICAgICAgIGVycm9yOiBmdW5jdGlvbigpIHt9LApkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL21pc2MvX19p bml0X18ucHkKaW5kZXggNTVlM2ZlNzMuLmFkNGY5MjU0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9taXNjL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL21pc2MvX19pbml0X18ucHkKQEAg LTc0LDcgKzc0LDcgQEAgY2xhc3MgTWlzY01vZHVsZShQZ0FkbWluTW9kdWxlKToKICAgICAgICAg UmV0dXJuczoKICAgICAgICAgICAgIGxpc3Q6IGEgbGlzdCBvZiB1cmwgZW5kcG9pbnRzIGV4cG9z ZWQgdG8gdGhlIGNsaWVudC4KICAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBbJ21pc2MucGlu ZycsICdtaXNjLmluZGV4J10KKyAgICAgICAgcmV0dXJuIFsnbWlzYy5waW5nJywgJ21pc2MuaW5k ZXgnLCAnbWlzYy5jbGVhbnVwJ10KIAogCiAjIEluaXRpYWxpc2UgdGhlIG1vZHVsZQpAQCAtOTIs MTQgKzkyLDE5IEBAIGRlZiBpbmRleCgpOgogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQSBzcGVjaWFs IFVSTCB1c2VkIHRvICJwaW5nIiB0aGUgc2VydmVyCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotQGJsdWVw cmludC5yb3V0ZSgiL3BpbmciLCBtZXRob2RzPSgnZ2V0JywgJ3Bvc3QnKSkKK0BibHVlcHJpbnQu cm91dGUoIi9waW5nIikKIGRlZiBwaW5nKCk6CiAgICAgIiIiR2VuZXJhdGUgYSAiUElORyIgcmVz cG9uc2UgdG8gaW5kaWNhdGUgdGhhdCB0aGUgc2VydmVyIGlzIGFsaXZlLiIiIgotICAgIGRyaXZl ci5waW5nKCkKLQogICAgIHJldHVybiAiUElORyIKIAogCisjIEZvciBHYXJiYWdlIENvbGxlY3Rp bmcgY2xvc2VkIGNvbm5lY3Rpb25zCitAYmx1ZXByaW50LnJvdXRlKCIvY2xlYW51cCIsIG1ldGhv ZHM9WydQT1NUJ10pCitkZWYgY2xlYW51cCgpOgorICAgIGRyaXZlci5waW5nKCkKKyAgICByZXR1 cm4gIiIKKworCiBAYmx1ZXByaW50LnJvdXRlKCIvZXhwbGFpbi9leHBsYWluLmpzIikKIGRlZiBl eHBsYWluX2pzKCk6CiAgICAgIiIiCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGlscy9zZXNz aW9uLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvc2Vzc2lvbi5weQppbmRleCAyNjZmODNiMy4uZmEz MTNlMGEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL3Nlc3Npb24ucHkKKysrIGIvd2Vi L3BnYWRtaW4vdXRpbHMvc2Vzc2lvbi5weQpAQCAtMTAyLDEwICsxMDIsMTEgQEAgY2xhc3MgU2Vz c2lvbk1hbmFnZXIob2JqZWN0KToKIAogCiBjbGFzcyBDYWNoaW5nU2Vzc2lvbk1hbmFnZXIoU2Vz c2lvbk1hbmFnZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIG51bV90b19zdG9y ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbnVtX3RvX3N0b3JlLCBza2lwX3Bh dGhzPVtdKToKICAgICAgICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKICAgICAgICAgc2VsZi5udW1f dG9fc3RvcmUgPSBudW1fdG9fc3RvcmUKICAgICAgICAgc2VsZi5fY2FjaGUgPSBPcmRlcmVkRGlj dCgpCisgICAgICAgIHNlbGYuc2tpcF9wYXRocyA9IHNraXBfcGF0aHMKIAogICAgIGRlZiBfbm9y bWFsaXplKHNlbGYpOgogICAgICAgICBpZiBsZW4oc2VsZi5fY2FjaGUpID4gc2VsZi5udW1fdG9f c3RvcmU6CkBAIC0xMTUsNiArMTE2LDEyIEBAIGNsYXNzIENhY2hpbmdTZXNzaW9uTWFuYWdlcihT ZXNzaW9uTWFuYWdlcik6CiAKICAgICBkZWYgbmV3X3Nlc3Npb24oc2VsZik6CiAgICAgICAgIHNl c3Npb24gPSBzZWxmLnBhcmVudC5uZXdfc2Vzc2lvbigpCisKKyAgICAgICAgIyBEbyBub3Qgc3Rv cmUgdGhlIHNlc3Npb24gaWYgc2tpcCBwYXRocworICAgICAgICBmb3Igc3AgaW4gc2VsZi5za2lw X3BhdGhzOgorICAgICAgICAgICAgaWYgcmVxdWVzdC5wYXRoLnN0YXJ0c3dpdGgoc3ApOgorICAg ICAgICAgICAgICAgIHJldHVybiBzZXNzaW9uCisKICAgICAgICAgc2VsZi5fY2FjaGVbc2Vzc2lv bi5zaWRdID0gc2Vzc2lvbgogICAgICAgICBzZWxmLl9ub3JtYWxpemUoKQogCkBAIC0xNDMsNiAr MTUwLDExIEBAIGNsYXNzIENhY2hpbmdTZXNzaW9uTWFuYWdlcihTZXNzaW9uTWFuYWdlcik6CiAg ICAgICAgIGlmIG5vdCBzZXNzaW9uOgogICAgICAgICAgICAgc2Vzc2lvbiA9IHNlbGYucGFyZW50 LmdldChzaWQsIGRpZ2VzdCkKIAorICAgICAgICAjIERvIG5vdCBzdG9yZSB0aGUgc2Vzc2lvbiBp ZiBza2lwIHBhdGhzCisgICAgICAgIGZvciBzcCBpbiBzZWxmLnNraXBfcGF0aHM6CisgICAgICAg ICAgICBpZiByZXF1ZXN0LnBhdGguc3RhcnRzd2l0aChzcCk6CisgICAgICAgICAgICAgICAgcmV0 dXJuIHNlc3Npb24KKwogICAgICAgICBzZWxmLl9jYWNoZVtzaWRdID0gc2Vzc2lvbgogICAgICAg ICBzZWxmLl9ub3JtYWxpemUoKQogCkBAIC0xNTAsMjMgKzE2MiwzMSBAQCBjbGFzcyBDYWNoaW5n U2Vzc2lvbk1hbmFnZXIoU2Vzc2lvbk1hbmFnZXIpOgogCiAgICAgZGVmIHB1dChzZWxmLCBzZXNz aW9uKToKICAgICAgICAgc2VsZi5wYXJlbnQucHV0KHNlc3Npb24pCisKKyAgICAgICAgIyBEbyBu b3Qgc3RvcmUgdGhlIHNlc3Npb24gaWYgc2tpcCBwYXRocworICAgICAgICBmb3Igc3AgaW4gc2Vs Zi5za2lwX3BhdGhzOgorICAgICAgICAgICAgaWYgcmVxdWVzdC5wYXRoLnN0YXJ0c3dpdGgoc3Ap OgorICAgICAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIGlmIHNlc3Npb24uc2lkIGluIHNl bGYuX2NhY2hlOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGRlbCBzZWxmLl9j YWNoZVtzZXNzaW9uLnNpZF0KICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAg ICAgICAgICAgcGFzcworCiAgICAgICAgIHNlbGYuX2NhY2hlW3Nlc3Npb24uc2lkXSA9IHNlc3Np b24KICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKIAogCiBjbGFzcyBGaWxlQmFja2VkU2Vzc2lv bk1hbmFnZXIoU2Vzc2lvbk1hbmFnZXIpOgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgs IHNlY3JldCwgZGlza193cml0ZV9kZWxheSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgs IHNlY3JldCwgZGlza193cml0ZV9kZWxheSwgc2tpcF9wYXRocz1bXSk6CiAgICAgICAgIHNlbGYu cGF0aCA9IHBhdGgKICAgICAgICAgc2VsZi5zZWNyZXQgPSBzZWNyZXQKICAgICAgICAgc2VsZi5k aXNrX3dyaXRlX2RlbGF5ID0gZGlza193cml0ZV9kZWxheQogICAgICAgICBpZiBub3Qgb3MucGF0 aC5leGlzdHMoc2VsZi5wYXRoKToKICAgICAgICAgICAgIG9zLm1ha2VkaXJzKHNlbGYucGF0aCkK KyAgICAgICAgc2VsZi5za2lwX3BhdGhzID0gc2tpcF9wYXRocwogCiAgICAgZGVmIGV4aXN0cyhz ZWxmLCBzaWQpOgogICAgICAgICBmbmFtZSA9IG9zLnBhdGguam9pbihzZWxmLnBhdGgsIHNpZCkK QEAgLTE4NSw2ICsyMDUsMTEgQEAgY2xhc3MgRmlsZUJhY2tlZFNlc3Npb25NYW5hZ2VyKFNlc3Np b25NYW5hZ2VyKToKICAgICAgICAgICAgIHNpZCA9IHN0cih1dWlkNCgpKQogICAgICAgICAgICAg Zm5hbWUgPSBvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCBzaWQpCiAKKyAgICAgICAgIyBEbyBub3Qg c3RvcmUgdGhlIHNlc3Npb24gaWYgc2tpcCBwYXRocworICAgICAgICBmb3Igc3AgaW4gc2VsZi5z a2lwX3BhdGhzOgorICAgICAgICAgICAgaWYgcmVxdWVzdC5wYXRoLnN0YXJ0c3dpdGgoc3ApOgor ICAgICAgICAgICAgICAgIHJldHVybiBNYW5hZ2VkU2Vzc2lvbihzaWQ9c2lkKQorCiAgICAgICAg ICMgdG91Y2ggdGhlIGZpbGUKICAgICAgICAgd2l0aCBvcGVuKGZuYW1lLCAnd2InKToKICAgICAg ICAgICAgIHBhc3MKQEAgLTIzMyw2ICsyNTgsMTIgQEAgY2xhc3MgRmlsZUJhY2tlZFNlc3Npb25N YW5hZ2VyKFNlc3Npb25NYW5hZ2VyKToKIAogICAgICAgICBzZXNzaW9uLmxhc3Rfd3JpdGUgPSBj dXJyZW50X3RpbWUKICAgICAgICAgc2Vzc2lvbi5mb3JjZV93cml0ZSA9IEZhbHNlCisKKyAgICAg ICAgIyBEbyBub3Qgc3RvcmUgdGhlIHNlc3Npb24gaWYgc2tpcCBwYXRocworICAgICAgICBmb3Ig c3AgaW4gc2VsZi5za2lwX3BhdGhzOgorICAgICAgICAgICAgaWYgcmVxdWVzdC5wYXRoLnN0YXJ0 c3dpdGgoc3ApOgorICAgICAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIGZuYW1lID0gb3Mu cGF0aC5qb2luKHNlbGYucGF0aCwgc2Vzc2lvbi5zaWQpCiAgICAgICAgIHdpdGggb3BlbihmbmFt ZSwgJ3diJykgYXMgZjoKICAgICAgICAgICAgIGR1bXAoCkBAIC0yNDIsOSArMjczLDggQEAgY2xh c3MgRmlsZUJhY2tlZFNlc3Npb25NYW5hZ2VyKFNlc3Npb25NYW5hZ2VyKToKIAogCiBjbGFzcyBN YW5hZ2VkU2Vzc2lvbkludGVyZmFjZShTZXNzaW9uSW50ZXJmYWNlKToKLSAgICBkZWYgX19pbml0 X18oc2VsZiwgbWFuYWdlciwgc2tpcF9wYXRocywgY29va2llX3RpbWVkZWx0YSk6CisgICAgZGVm IF9faW5pdF9fKHNlbGYsIG1hbmFnZXIsIGNvb2tpZV90aW1lZGVsdGEpOgogICAgICAgICBzZWxm Lm1hbmFnZXIgPSBtYW5hZ2VyCi0gICAgICAgIHNlbGYuc2tpcF9wYXRocyA9IHNraXBfcGF0aHMK ICAgICAgICAgc2VsZi5jb29raWVfdGltZWRlbHRhID0gY29va2llX3RpbWVkZWx0YQogCiAgICAg ZGVmIGdldF9leHBpcmF0aW9uX3RpbWUoc2VsZiwgYXBwLCBzZXNzaW9uKToKQEAgLTI1NiwxMSAr Mjg2LDYgQEAgY2xhc3MgTWFuYWdlZFNlc3Npb25JbnRlcmZhY2UoU2Vzc2lvbkludGVyZmFjZSk6 CiAgICAgICAgIGNvb2tpZV92YWwgPSByZXF1ZXN0LmNvb2tpZXMuZ2V0KGFwcC5zZXNzaW9uX2Nv b2tpZV9uYW1lKQogCiAgICAgICAgIGlmIG5vdCBjb29raWVfdmFsIG9yICchJyBub3QgaW4gY29v a2llX3ZhbDoKLSAgICAgICAgICAgICMgRG9uJ3QgYm90aGVyIGNyZWF0aW5nIGEgY29va2llIGZv ciBzdGF0aWMgcmVzb3VyY2VzCi0gICAgICAgICAgICBmb3Igc3AgaW4gc2VsZi5za2lwX3BhdGhz OgotICAgICAgICAgICAgICAgIGlmIHJlcXVlc3QucGF0aC5zdGFydHN3aXRoKHNwKToKLSAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQogICAgICAgICAgICAgcmV0dXJuIHNlbGYubWFu YWdlci5uZXdfc2Vzc2lvbigpCiAKICAgICAgICAgc2lkLCBkaWdlc3QgPSBjb29raWVfdmFsLnNw bGl0KCchJywgMSkKQEAgLTMwMSwxMCArMzI2LDEyIEBAIGRlZiBjcmVhdGVfc2Vzc2lvbl9pbnRl cmZhY2UoYXBwLCBza2lwX3BhdGhzPVtdKToKICAgICAgICAgICAgIEZpbGVCYWNrZWRTZXNzaW9u TWFuYWdlcigKICAgICAgICAgICAgICAgICBhcHAuY29uZmlnWydTRVNTSU9OX0RCX1BBVEgnXSwK ICAgICAgICAgICAgICAgICBhcHAuY29uZmlnWydTRUNSRVRfS0VZJ10sCi0gICAgICAgICAgICAg ICAgYXBwLmNvbmZpZy5nZXQoJ1BHQURNSU5fU0VTU0lPTl9ESVNLX1dSSVRFX0RFTEFZJywgMTAp CisgICAgICAgICAgICAgICAgYXBwLmNvbmZpZy5nZXQoJ1BHQURNSU5fU0VTU0lPTl9ESVNLX1dS SVRFX0RFTEFZJywgMTApLAorICAgICAgICAgICAgICAgIHNraXBfcGF0aHMKICAgICAgICAgICAg ICksCi0gICAgICAgICAgICAxMDAwCi0gICAgICAgICksIHNraXBfcGF0aHMsCisgICAgICAgICAg ICAxMDAwLAorICAgICAgICAgICAgc2tpcF9wYXRocworICAgICAgICApLAogICAgICAgICBkYXRl dGltZS50aW1lZGVsdGEoZGF5cz0xKSkKIAogCg== --000000000000a5d5e205700370f7--