Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hiZeU-0003PY-Md for pgadmin-hackers@arkaria.postgresql.org; Wed, 03 Jul 2019 07:26:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hiZeT-0007Pc-HQ for pgadmin-hackers@arkaria.postgresql.org; Wed, 03 Jul 2019 07:26:01 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hiZeS-0007PP-Tu for pgadmin-hackers@lists.postgresql.org; Wed, 03 Jul 2019 07:26:01 +0000 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hiZeP-0001DB-7F for pgadmin-hackers@postgresql.org; Wed, 03 Jul 2019 07:25:59 +0000 Received: by mail-lf1-x131.google.com with SMTP id z15so966424lfh.13 for ; Wed, 03 Jul 2019 00:25:57 -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=Ld45LA3XjAkH6V8/zHCWSigyYtKV2EN0VKP4QYRC8S4=; b=hBW0WLYLnn+6x9svhlcWuTFSZ11IUZqB7bA3VRhTrex6z9/QLl8ytK9uRA1ijIDFRq tnjBDQMX2XrE7+wNWmKAPAhN//ZIzxDwOsK0HnfZ2Sqa6rVE70FDRoNrbGokGH6Jj7vQ /JFc3QWvjz1o5FThayIlKCBf0Wz4O37TWfolGYMZfSv0cYQuKOxv247N4yNL9Zns3Quw czZx7wW12UPMXb4lj5U+tSUlqE65c6AS9PE5JMkBwfE09QRhJwGunmuvg07uz0E+w+bM jXL1psj7VySCIO1jx1Cwq0CHQbynJExnPT92zfQetMUw8zu5rYvtvGG+AeHEmqBscSvA BuTw== 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=Ld45LA3XjAkH6V8/zHCWSigyYtKV2EN0VKP4QYRC8S4=; b=Vdqx64CoJKXVlXYSDE4nQpsPkhsHI5+VD+vEoQsvIyLlKsjmGhRMK5OQg8KF4QAQup ictRAamc7Z0jupL4+JZcxCm/wthfTkYkpNzC5lrFpiHbiZ32rfUt1zgMhnkaIbjTM2LM +Ee1OY43970JFuOAcbiw8PLKaUQ7XiDsjFQjV4KLIZmw3DoyS0/lVj/IBkYo+FO2NgPt /C+Y8kccCEu6yf28zltyTJZp5jbbljLiwqEhoFBJUPOI/lpG6YNKGuSVYyp1jvfUPWFP cBJxi9DW7Z8Rcxt0kFmMKVsc2fmlY+DunWwvhUhdjaRjcVsLHd0ebQXkR/0Hg37WPmRy QEpA== X-Gm-Message-State: APjAAAUlfbBhrPeB1rdqF7xbbYj2nebq2i2HyP7ikJj36OFMTZuiNL5K QoSmJi1iTMI9fzzEAGFtYmBsIB0feWpjUTuOAYfPULXw X-Google-Smtp-Source: APXvYqyK0UV2W/qzTw44w2p/XBkRmGOf4r4HMSpOn57YLlySYMrsJAHjYkPNwakR9V8yEaY6CPhgQ2feYKlEgjeMQPY= X-Received: by 2002:a19:4a50:: with SMTP id x77mr3511247lfa.91.1562138755129; Wed, 03 Jul 2019 00:25:55 -0700 (PDT) MIME-Version: 1.0 From: Aditya Toshniwal Date: Wed, 3 Jul 2019 12:55:19 +0530 Message-ID: Subject: [pgAdmin][RM4404] Feature tests To: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000097130b058cc1c500" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000097130b058cc1c500 Content-Type: multipart/alternative; boundary="000000000000971308058cc1c5fe" --000000000000971308058cc1c5fe Content-Type: text/plain; charset="UTF-8" Hi Hackers, I have added GUI test case for testing string primary keys. Also, refactored existing code to reuse code snippets. Tested on Chrome and Firefox. Kindly review. -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --000000000000971308058cc1c5fe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

I have added GUI test case for testing string = primary keys. Also, refactored existing code to reuse code snippets.
<= div class=3D"gmail_default" style=3D"font-family:verdana,sans-serif">Tested= on Chrome and Firefox.

Kindly review.

--
<= div dir=3D"ltr">
Thanks and Regards,=
Aditya Toshniwal<= /div>
Software Engineer |= =C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a TREE&quo= t;
--000000000000971308058cc1c5fe-- --00000000000097130b058cc1c500 Content-Type: application/octet-stream; name="RM4404.feature_test.patch" Content-Disposition: attachment; filename="RM4404.feature_test.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxmx1v3l0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvbG9jYXRvcnMucHkgYi93ZWIv cGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2xvY2F0b3JzLnB5CmluZGV4IDQ2NjczZjEwLi4zYjVhNTQ5 ZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9sb2NhdG9ycy5weQorKysg Yi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2xvY2F0b3JzLnB5CkBAIC0yMCwzICsyMCw0IEBA IGNsYXNzIFF1ZXJ5VG9vbExvY2F0b3JzQ3NzOgogICAgIHF1ZXJ5X2hpc3Rvcnlfc2VsZWN0ZWQg PSAiI3F1ZXJ5X2xpc3QgLnNlbGVjdGVkIgogICAgIHF1ZXJ5X2hpc3RvcnlfZGV0YWlsID0gIiNx dWVyeV9kZXRhaWwiCiAgICAgZWRpdG9yX3BhbmVsID0gIiNvdXRwdXQtcGFuZWwiCisgICAgcXVl cnlfbWVzc2FnZXNfcGFuZWwgPSAiLnNxbC1lZGl0b3ItbWVzc2FnZSIKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdGVzdF9kYXRhLmpzb24gYi93ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL3Rlc3RfZGF0YS5qc29uCmluZGV4IDUwMzc0YzZjLi40MTY0MDY3MyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy90ZXN0X2RhdGEuanNvbgorKysgYi93ZWIv cGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3Rlc3RfZGF0YS5qc29uCkBAIC0xLDYgKzEsMTEgQEAKIHsK KyAgImNvbW1lbnQiOiB7CisgICAgInNhbXBsZV90ZXN0X2Nhc2UiOiB7CisgICAgICAiY29sbm8i OiBbInZhbHVlIHRvIHNldCIsICJ2YWx1ZSB0byB2ZXJmaXkiLCAiZGF0YSB0eXBlIl0KKyAgICB9 CisgIH0sCiAgICJ0YWJsZV9pbnNlcnRfdXBkYXRlX2Nhc2VzIjogewotICAgICJhZGRfdXBkYXRl IjogeworICAgICJhZGQiOiB7CiAgICAgICAiMSI6IFsxLCAiMSIsICJpbnQiLCAiVmFsdWUgYXQg MCBpbmRleCBpcyBhY3R1YWwgdmFsdWUodG8gYmUgaW5zZXJ0ZWQpLCBWYWx1ZSBhdCBpbmRleCAx IGlzIGV4cGVjdGVkIHZhbHVlLCBpbnQgaXMgY29sdW1uIHR5cGUiXSwKICAgICAgICIyIjogWyIi LCAiMSIsICJpbnQiXSwKICAgICAgICIzIjogWyIiLCAiW251bGxdIiwgImludCJdLApAQCAtMjEs NiArMjYsMjggQEAKICAgICAgICIxOCI6IFsiezEyMywxMjMsNDU2fSIsICJ7MTIzLDEyMyw0NTZ9 IiwgImludFtdIl0sCiAgICAgICAiMTkiOiBbIiIsICJbbnVsbF0iLCAiYm9vbGVhbltdIl0sCiAg ICAgICAiMjAiOiBbIntmYWxzZSxudWxsLHRydWV9IiwgIntmLE5VTEwsdH0iLCAiYm9vbGVhbltd Il0KKyAgICB9LAorICAgICJjb3B5IjogeworICAgICAgIjEiOiBbMiwgIjIiLCAiaW50Il0sCisg ICAgICAiMiI6IFsiMSIsICIxIiwgImludCJdCisgICAgfSwKKyAgICAidXBkYXRlIjogeworICAg ICAgIjQiOiBbIkhlbGxvIFdvcmxkIEFnYWluIiwgIkhlbGxvIFdvcmxkIEFnYWluIiwgInRleHQi XQorICAgIH0KKyAgfSwKKyAgInRhYmxlX2luc2VydF91cGRhdGVfbm9uaW50IjogeworICAgICJh ZGQiOiB7CisgICAgICAiMSI6IFsicGslZXkxIiwgInBrJWV5MSIsICJ0ZXh0Il0sCisgICAgICAi MiI6IFsic29tZXRleHQiLCAic29tZXRleHQiLCAidGV4dCJdLAorICAgICAgIjMiOiBbMTIzLCAi MTIzIiwgImludCJdCisgICAgfSwKKyAgICAiY29weSI6IHsKKyAgICAgICIxIjogWyJwayVleTIi LCAicGslZXkyIiwgInRleHQiXQorICAgIH0sCisgICAgInVwZGF0ZSI6IHsKKyAgICAgICIxIjog WyJwayVleTEiLCAicGslZXkxIiwgInRleHQiXSwKKyAgICAgICIyIjogWyJzb21ldGV4dGNoYW5n ZSIsICJzb21ldGV4dGNoYW5nZSIsICJ0ZXh0Il0sCisgICAgICAiMyI6IFszMjEsICIzMjEiLCAi aW50Il0KICAgICB9CiAgIH0KIH0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVz dHMvdmlld19kYXRhX2RtbF9xdWVyaWVzLnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy92 aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKaW5kZXggOGU2OWZmYzUuLmU0NzE0NWUyIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3ZpZXdfZGF0YV9kbWxfcXVlcmllcy5weQor KysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3ZpZXdfZGF0YV9kbWxfcXVlcmllcy5weQpA QCAtMTUsMTcgKzE1LDE5IEBAIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rpb25D aGFpbnMKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cwogZnJvbSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMuYmFzZV9mZWF0dXJlX3Rlc3QgaW1wb3J0 IEJhc2VGZWF0dXJlVGVzdAogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9y dCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmtleXMgaW1wb3J0IEtleXMKIGZy b20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMg YXMgRUMKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZl cldhaXQKK2Zyb20gLmxvY2F0b3JzIGltcG9ydCBRdWVyeVRvb2xMb2NhdG9yc0NzcwogCiBDVVJS RU5UX1BBVEggPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCiAK LXRyeToKLSAgICB3aXRoIG9wZW4oQ1VSUkVOVF9QQVRIICsgJy90ZXN0X2RhdGEuanNvbicpIGFz IGRhdGFfZmlsZToKLSAgICAgICAgY29uZmlnX2RhdGEgPSBqc29uLmxvYWQoZGF0YV9maWxlKVsK LSAgICAgICAgICAgICd0YWJsZV9pbnNlcnRfdXBkYXRlX2Nhc2VzJ11bJ2FkZF91cGRhdGUnXQot ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgIHByaW50KHN0cihlKSkKK2NvbmZpZ19kYXRhID0g Y29uZmlnX2RhdGFfanNvbiA9IHt9CisjIHRyeToKK3dpdGggb3BlbihDVVJSRU5UX1BBVEggKyAn L3Rlc3RfZGF0YS5qc29uJykgYXMgZGF0YV9maWxlOgorICAgIGNvbmZpZ19kYXRhX2pzb24gPSBq c29uLmxvYWQoZGF0YV9maWxlKQorIyBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisjICAgICBwcmlu dChzdHIoZSkpCiAKIAogY2xhc3MgQ2hlY2tGb3JWaWV3RGF0YVRlc3QoQmFzZUZlYXR1cmVUZXN0 KToKQEAgLTgwLDYgKzgyLDE1IEBAIENSRUFURSBUQUJMRSBwdWJsaWMuZGVmYXVsdHNfezB9CiAg ICAgQ09OU1RSQUlOVCBkZWZhdWx0c19wa2V5X3swfSBQUklNQVJZIEtFWSAoezF9KQogKQogIiIi CisgICAgbm9uX2ludF9wa2V5X3RhYmxlID0gIiIiCitDUkVBVEUgVEFCTEUgcHVibGljLm5vbmlu dHBrZXkKKygKKyAgICBjaGFyaWQgdGV4dCBDT0xMQVRFIHBnX2NhdGFsb2cuImRlZmF1bHQiIE5P VCBOVUxMLAorICAgIGNvbDEgdGV4dCwKKyAgICBjb2wyIG51bWVyaWMoMTAwKSwKKyAgICBDT05T VFJBSU5UIG5vbmludHBrZXlfcGtleSBQUklNQVJZIEtFWSAoY2hhcmlkKQorKQorICAgICIiIgog CiAgICAgZGVmIGJlZm9yZShzZWxmKToKICAgICAgICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNl KHNlbGYuc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgXyk6CkBAIC05NSw2ICsxMDYsMTIgQEAgQ1JF QVRFIFRBQkxFIHB1YmxpYy5kZWZhdWx0c197MH0KICAgICAgICAgICAgICAgICBzZWxmLnRlc3Rf ZGIsCiAgICAgICAgICAgICAgICAgQ2hlY2tGb3JWaWV3RGF0YVRlc3QuZGVmYXVsdHNfcXVlcnku Zm9ybWF0KGssIHYpKQogCisgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlX3dpdGhfcXVl cnkoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYudGVzdF9kYiwK KyAgICAgICAgICAgIENoZWNrRm9yVmlld0RhdGFUZXN0Lm5vbl9pbnRfcGtleV90YWJsZQorICAg ICAgICApCisKICAgICAgICAgIyBJbml0aWFsaXplIGFuIGluc3RhbmNlIG9mIFdlYkRyaXZlcldh aXQgd2l0aCB0aW1lb3V0IG9mIDMgc2Vjb25kcwogICAgICAgICBzZWxmLndhaXQgPSBXZWJEcml2 ZXJXYWl0KHNlbGYuZHJpdmVyLCAzKQogCkBAIC0xMDUsMjAgKzEyMiwxNSBAQCBDUkVBVEUgVEFC TEUgcHVibGljLmRlZmF1bHRzX3swfQogICAgICAgICBzZWxmLnBhZ2Uud2FpdF9mb3Jfc3Bpbm5l cl90b19kaXNhcHBlYXIoKQogICAgICAgICBzZWxmLnBhZ2UuYWRkX3NlcnZlcihzZWxmLnNlcnZl cikKICAgICAgICAgc2VsZi5fdGFibGVzX25vZGVfZXhwYW5kYWJsZSgpCisKKyAgICAgICAgc2Vs Zi5fbG9hZF9jb25maWdfZGF0YSgndGFibGVfaW5zZXJ0X3VwZGF0ZV9jYXNlcycpCiAgICAgICAg ICMgaXRlcmF0ZSBvbiBib3RoIHRhYmxlcwogICAgICAgICBmb3IgY250IGluICgxLCAyKToKLSAg ICAgICAgICAgIHNlbGYucGFnZS5zZWxlY3RfdHJlZV9pdGVtKCdkZWZhdWx0c197MH0nLmZvcm1h dChzdHIoY250KSkpCi0gICAgICAgICAgICAjIE9wZW4gT2JqZWN0IC0+IFZpZXcvRWRpdCBkYXRh Ci0gICAgICAgICAgICBzZWxmLl92aWV3X2RhdGFfZ3JpZCgnZGVmYXVsdHNfezB9Jy5mb3JtYXQo c3RyKGNudCkpKQorICAgICAgICAgICAgc2VsZi5fcGVyZm9ybV90ZXN0X2Zvcl90YWJsZSgnZGVm YXVsdHNfezB9Jy5mb3JtYXQoc3RyKGNudCkpKQogCi0gICAgICAgICAgICBzZWxmLnBhZ2Uud2Fp dF9mb3JfcXVlcnlfdG9vbF9sb2FkaW5nX2luZGljYXRvcl90b19kaXNhcHBlYXIoKQotICAgICAg ICAgICAgIyBSdW4gdGVzdCB0byBpbnNlcnQgYSBuZXcgcm93IGluIHRhYmxlIHdpdGggZGVmYXVs dCB2YWx1ZXMKLSAgICAgICAgICAgIHNlbGYuX2FkZF9yb3coKQotICAgICAgICAgICAgc2VsZi5f dmVyaWZ5X3Jvd19kYXRhKFRydWUpCi0KLSAgICAgICAgICAgICMgUnVuIHRlc3QgdG8gY29weS9w YXN0ZSBhIHJvdwotICAgICAgICAgICAgc2VsZi5fY29weV9wYXN0ZV9yb3coKQotICAgICAgICAg ICAgc2VsZi5wYWdlLmNsb3NlX2RhdGFfZ3JpZCgpCisgICAgICAgICMgdGVzdCBub25pbnQgcGtl eSB0YWJsZQorICAgICAgICBzZWxmLl9sb2FkX2NvbmZpZ19kYXRhKCd0YWJsZV9pbnNlcnRfdXBk YXRlX25vbmludCcpCisgICAgICAgIHNlbGYuX3BlcmZvcm1fdGVzdF9mb3JfdGFibGUoJ25vbmlu dHBrZXknKQogCiAgICAgZGVmIGFmdGVyKHNlbGYpOgogICAgICAgICBzZWxmLnBhZ2UucmVtb3Zl X3NlcnZlcihzZWxmLnNlcnZlcikKQEAgLTEzOSw2ICsxNTEsMzYgQEAgQ1JFQVRFIFRBQkxFIHB1 YmxpYy5kZWZhdWx0c197MH0KIAogICAgICAgICByZXR1cm4geHBhdGhfY2VsbAogCisgICAgQHN0 YXRpY21ldGhvZAorICAgIGRlZiBfbG9hZF9jb25maWdfZGF0YShjb25maWdfa2V5KToKKyAgICAg ICAgZ2xvYmFsIGNvbmZpZ19kYXRhCisgICAgICAgIGNvbmZpZ19kYXRhID0gY29uZmlnX2RhdGFf anNvbltjb25maWdfa2V5XQorCisgICAgZGVmIF9wZXJmb3JtX3Rlc3RfZm9yX3RhYmxlKHNlbGYs IHRhYmxlX25hbWUpOgorICAgICAgICBzZWxmLnBhZ2Uuc2VsZWN0X3RyZWVfaXRlbSh0YWJsZV9u YW1lKQorICAgICAgICAjIE9wZW4gT2JqZWN0IC0+IFZpZXcvRWRpdCBkYXRhCisgICAgICAgIHNl bGYuX3ZpZXdfZGF0YV9ncmlkKHRhYmxlX25hbWUpCisKKyAgICAgICAgc2VsZi5wYWdlLndhaXRf Zm9yX3F1ZXJ5X3Rvb2xfbG9hZGluZ19pbmRpY2F0b3JfdG9fZGlzYXBwZWFyKCkKKyAgICAgICAg IyBSdW4gdGVzdCB0byBpbnNlcnQgYSBuZXcgcm93IGluIHRhYmxlIHdpdGggZGVmYXVsdCB2YWx1 ZXMKKyAgICAgICAgc2VsZi5fYWRkX3JvdygpCisgICAgICAgIHNlbGYuX3ZlcmlmeV9yb3dfZGF0 YShUcnVlLCBjb25maWdfZGF0YVsnYWRkJ10pCisKKyAgICAgICAgIyBSdW4gdGVzdCB0byBjb3B5 L3Bhc3RlIGEgcm93CisgICAgICAgIHNlbGYuX2NvcHlfcGFzdGVfcm93KCkKKworICAgICAgICBz ZWxmLl91cGRhdGVfcm93KCkKKyAgICAgICAgc2VsZi5wYWdlLmNsaWNrX3RhYigiTWVzc2FnZXMi KQorICAgICAgICBzZWxmLl92ZXJpZnlfbWVzc3NhZ2VzKCIiKQorICAgICAgICBzZWxmLnBhZ2Uu Y2xpY2tfdGFiKCJEYXRhIE91dHB1dCIpCisgICAgICAgIHVwZGF0ZWRfcm93X2RhdGEgPSB7Cisg ICAgICAgICAgICBpOiBjb25maWdfZGF0YVsndXBkYXRlJ11baV0gaWYgaSBpbiBjb25maWdfZGF0 YVsndXBkYXRlJ10gZWxzZSB2YWwKKyAgICAgICAgICAgIGZvciBpLCB2YWwgaW4gY29uZmlnX2Rh dGFbJ2FkZCddLml0ZW1zKCkKKyAgICAgICAgfQorICAgICAgICBzZWxmLl92ZXJpZnlfcm93X2Rh dGEoRmFsc2UsIHVwZGF0ZWRfcm93X2RhdGEpCisKKyAgICAgICAgc2VsZi5wYWdlLmNsb3NlX2Rh dGFfZ3JpZCgpCisKICAgICBkZWYgX2NvbXBhcmVfY2VsbF92YWx1ZShzZWxmLCB4cGF0aCwgdmFs dWUpOgogICAgICAgICAjIEluaXRpYWxpemUgYW4gaW5zdGFuY2Ugb2YgV2ViRHJpdmVyV2FpdCB3 aXRoIHRpbWVvdXQgb2YgNSBzZWNvbmRzCiAgICAgICAgIHdhaXQgPSBXZWJEcml2ZXJXYWl0KHNl bGYuZHJpdmVyLCA1KQpAQCAtMTgxLDEwICsyMjMsMTIgQEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5k ZWZhdWx0c197MH0KICAgICAgICAgICAgIGlmIHZhbHVlID09ICdjbGVhcic6CiAgICAgICAgICAg ICAgICAgY2VsbF9lbC5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCdpbnB1dCcpLmNsZWFy KCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYu ZHJpdmVyKS5zZW5kX2tleXModmFsdWUpLnBlcmZvcm0oKQorICAgICAgICAgICAgICAgIEFjdGlv bkNoYWlucyhzZWxmLmRyaXZlcikuc2VuZF9rZXlzKHZhbHVlKS5cCisgICAgICAgICAgICAgICAg ICAgIHNlbmRfa2V5cyhLZXlzLkVOVEVSKS5wZXJmb3JtKCkKICAgICAgICAgZWxpZiBjZWxsX3R5 cGUgaW4gWyd0ZXh0JywgJ2pzb24nLCAndGV4dFtdJywgJ2Jvb2xlYW5bXSddOgogICAgICAgICAg ICAgdGV4dF9hcmVhX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKICAgICAg ICAgICAgICAgICAiLnBnLXRleHQtZWRpdG9yID4gdGV4dGFyZWEiKQorICAgICAgICAgICAgdGV4 dF9hcmVhX2VsZS5jbGVhcigpCiAgICAgICAgICAgICB0ZXh0X2FyZWFfZWxlLmNsaWNrKCkKICAg ICAgICAgICAgIHRleHRfYXJlYV9lbGUuc2VuZF9rZXlzKHZhbHVlKQogCkBAIC0yMzgsNDcgKzI4 MiwyOCBAQCBDUkVBVEUgVEFCTEUgcHVibGljLmRlZmF1bHRzX3swfQogCiAgICAgZGVmIF9jb3B5 X3Bhc3RlX3JvdyhzZWxmKToKICAgICAgICAgcm93MF9jZWxsMF94cGF0aCA9IENoZWNrRm9yVmll d0RhdGFUZXN0Ll9nZXRfY2VsbF94cGF0aCgicjAiLCAxKQotICAgICAgICByb3cxX2NlbGwxX3hw YXRoID0gQ2hlY2tGb3JWaWV3RGF0YVRlc3QuX2dldF9jZWxsX3hwYXRoKCJyMSIsIDIpCi0gICAg ICAgIHJvdzFfY2VsbDJfeHBhdGggPSBDaGVja0ZvclZpZXdEYXRhVGVzdC5fZ2V0X2NlbGxfeHBh dGgoInIyIiwgMikKIAogICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aChyb3cwX2NlbGww X3hwYXRoKS5jbGljaygpCiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKCIvLypbQGlk PSdidG4tY29weS1yb3cnXSIpLmNsaWNrKCkKICAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfeHBh dGgoIi8vKltAaWQ9J2J0bi1wYXN0ZS1yb3cnXSIpLmNsaWNrKCkKLSAgICAgICAgIyBVcGRhdGUg cHJpbWFyeSBrZXkgb2YgY29waWVkIGNlbGwKLSAgICAgICAgc2VsZi5fdXBkYXRlX2NlbGwocm93 MV9jZWxsMV94cGF0aCwgWzIsICIiLCAiaW50Il0pCi0gICAgICAgIHNlbGYucGFnZS5maW5kX2J5 X3hwYXRoKAotICAgICAgICAgICAgQ2hlY2tGb3JWaWV3RGF0YVRlc3QuX2dldF9jZWxsX3hwYXRo KCJyMSIsICIzIikKLSAgICAgICAgKS5jbGljaygpCi0KLSAgICAgICAgIyBDaGVjayBpZiByZW1v dmluZyBhIGNlbGwgdmFsdWUgd2l0aCBkZWZhdWx0IHZhbHVlIHNldHMKLSAgICAgICAgIyBtYXJr dXAgdG8gW2RlZmF1bHRdIGlmIGNlbGwgaXMgY2xlYXJlZAotICAgICAgICBzZWxmLl91cGRhdGVf Y2VsbChyb3cxX2NlbGwyX3hwYXRoLCBbImNsZWFyIiwgIiIsICJpbnQiXSkKLSAgICAgICAgIyBj bGljayBvdXRzaWRlCi0gICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKAotICAgICAgICAg ICAgQ2hlY2tGb3JWaWV3RGF0YVRlc3QuX2dldF9jZWxsX3hwYXRoKCJyMSIsICIzIikKLSAgICAg ICAgKS5jbGljaygpCi0KLSAgICAgICAgc2VsZi5fY29tcGFyZV9jZWxsX3ZhbHVlKHJvdzFfY2Vs bDJfeHBhdGgsICJbZGVmYXVsdF0iKQotICAgICAgICAjIHJlc2V0IGNlbGwgdmFsdWUgdG8gcHJl dmlvdXMgb25lCi0gICAgICAgIHNlbGYuX3VwZGF0ZV9jZWxsKHJvdzFfY2VsbDJfeHBhdGgsIFsi MSIsICIiLCAiaW50Il0pCiAKLSAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfaWQoImJ0bi1zYXZl IikuY2xpY2soKSAgIyBTYXZlIGRhdGEKLSAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgc29tZSBk ZWxheSBhZnRlciBzYXZlIGJ1dHRvbiBpcyBjbGlja2VkLCBhcyBpdAotICAgICAgICAjIHRha2Vz IHNvbWUgdGltZSB0byBjb21wbGV0ZSBzYXZlIGFqYXggY2FsbCBvdGhlcndpc2UgZGlzY2FyZCB1 bnNhdmVkCi0gICAgICAgICMgY2hhbmdlcyBkaWFsb2cgd2lsbCBhcHBlYXIgaWYgd2UgdHJ5IHRv IGV4ZWN1dGUgcXVlcnkgYmVmb3JlIHByZXZpb3VzCi0gICAgICAgICMgc2F2ZSBhamF4IGlzIGNv bXBsZXRlZC4KLSAgICAgICAgdGltZS5zbGVlcCgyKQorICAgICAgICAjIFVwZGF0ZSBwcmltYXJ5 IGtleSBvZiBjb3BpZWQgY2VsbAorICAgICAgICBzZWxmLl9hZGRfdXBkYXRlX3NhdmVfcm93KGNv bmZpZ19kYXRhWydjb3B5J10sIHJvdz0yKQogCiAgICAgICAgICMgVmVyaWZ5IHJvdyAxIGFuZCBy b3cgMiBkYXRhCi0gICAgICAgIHNlbGYuX3ZlcmlmeV9yb3dfZGF0YShGYWxzZSkKLQotICAgIGRl ZiBfYWRkX3JvdyhzZWxmKToKLSAgICAgICAgZm9yIGlkeCBpbiByYW5nZSgxLCBsZW4oY29uZmln X2RhdGEua2V5cygpKSArIDEpOgorICAgICAgICB1cGRhdGVkX3Jvd19kYXRhID0geworICAgICAg ICAgICAgaTogY29uZmlnX2RhdGFbJ2NvcHknXVtpXSBpZiBpIGluIGNvbmZpZ19kYXRhWydjb3B5 J10gZWxzZSB2YWwKKyAgICAgICAgICAgIGZvciBpLCB2YWwgaW4gY29uZmlnX2RhdGFbJ2FkZCdd Lml0ZW1zKCkKKyAgICAgICAgfQorICAgICAgICBzZWxmLl92ZXJpZnlfcm93X2RhdGEoRmFsc2Us IHVwZGF0ZWRfcm93X2RhdGEpCisKKyAgICBkZWYgX2FkZF91cGRhdGVfc2F2ZV9yb3coc2VsZiwg ZGF0YSwgcm93PTEpOgorICAgICAgICBmb3IgaWR4IGluIGRhdGEua2V5cygpOgogICAgICAgICAg ICAgY2VsbF94cGF0aCA9IENoZWNrRm9yVmlld0RhdGFUZXN0Ll9nZXRfY2VsbF94cGF0aCgKLSAg ICAgICAgICAgICAgICAncicgKyBzdHIoaWR4KSwgMQorICAgICAgICAgICAgICAgICdyJyArIHN0 cihpZHgpLCByb3cKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4yKQot ICAgICAgICAgICAgc2VsZi5fdXBkYXRlX2NlbGwoY2VsbF94cGF0aCwgY29uZmlnX2RhdGFbc3Ry KGlkeCldKQorICAgICAgICAgICAgc2VsZi5fdXBkYXRlX2NlbGwoY2VsbF94cGF0aCwgZGF0YVtz dHIoaWR4KV0pCiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2lkKCJidG4tc2F2ZSIpLmNsaWNr KCkgICMgU2F2ZSBkYXRhCiAgICAgICAgICMgVGhlcmUgc2hvdWxkIGJlIHNvbWUgZGVsYXkgYWZ0 ZXIgc2F2ZSBidXR0b24gaXMgY2xpY2tlZCwgYXMgaXQKICAgICAgICAgIyB0YWtlcyBzb21lIHRp bWUgdG8gY29tcGxldGUgc2F2ZSBhamF4IGNhbGwgb3RoZXJ3aXNlIGRpc2NhcmQgdW5zYXZlZApA QCAtMjg2LDcgKzMxMSwxOCBAQCBDUkVBVEUgVEFCTEUgcHVibGljLmRlZmF1bHRzX3swfQogICAg ICAgICAjIHNhdmUgYWpheCBpcyBjb21wbGV0ZWQuCiAgICAgICAgIHRpbWUuc2xlZXAoMikKIAot ICAgIGRlZiBfdmVyaWZ5X3Jvd19kYXRhKHNlbGYsIGlzX25ld19yb3cpOgorICAgIGRlZiBfYWRk X3JvdyhzZWxmKToKKyAgICAgICAgc2VsZi5fYWRkX3VwZGF0ZV9zYXZlX3Jvdyhjb25maWdfZGF0 YVsnYWRkJ10sIDEpCisKKyAgICBkZWYgX3VwZGF0ZV9yb3coc2VsZik6CisgICAgICAgIHNlbGYu X2FkZF91cGRhdGVfc2F2ZV9yb3coY29uZmlnX2RhdGFbJ3VwZGF0ZSddLCAxKQorCisgICAgZGVm IF92ZXJpZnlfbWVzc3NhZ2VzKHNlbGYsIHRleHQpOgorICAgICAgICBtZXNzYWdlc19lbGUgPSBz ZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoCisgICAgICAgICAgICBRdWVyeVRvb2xMb2Nh dG9yc0Nzcy5xdWVyeV9tZXNzYWdlc19wYW5lbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo dGV4dCwgbWVzc2FnZXNfZWxlLnRleHQpCisKKyAgICBkZWYgX3ZlcmlmeV9yb3dfZGF0YShzZWxm LCBpc19uZXdfcm93LCBjb25maWdfY2hlY2tfZGF0YSk6CiAgICAgICAgIHNlbGYucGFnZS5maW5k X2J5X2lkKCJidG4tZmxhc2giKS5jbGljaygpCiAKICAgICAgICAgIyBGaXJzdCByb3cgaWYgcm93 IGhlaWdodCA9IDAsIHNlY29uZCByb3cgaWYgaXRzIDI1CkBAIC0zMDAsMjEgKzMzNiwxNyBAQCBD UkVBVEUgVEFCTEUgcHVibGljLmRlZmF1bHRzX3swfQogICAgICAgICByZXN1bHRfcm93ID0gc2Vs Zi5wYWdlLmZpbmRfYnlfeHBhdGgoeHBhdGgpCiAKICAgICAgICAgIyBMaXN0IG9mIHJvdyB2YWx1 ZXMgaW4gYW4gYXJyYXkKLSAgICAgICAgZm9yIGlkeCBpbiByYW5nZSgxLCBsZW4oY29uZmlnX2Rh dGEua2V5cygpKSArIDEpOgotICAgICAgICAgICAgIyBhZnRlciBjb3B5ICYgcGFzdGUgcm93LCB0 aGUgZmlyc3QgY2VsbCBvZiByb3cgMSBhbmQKLSAgICAgICAgICAgICMgcm93IDIoYmVpbmcgcHJp bWFyeSBrZXlzKSB3b24ndCBtYXRjaAotICAgICAgICAgICAgIyBzZWUgaWYgY2VsbCB2YWx1ZXMg bWF0Y2hlZCB0byBhY3R1YWwgdmFsdWUKKyAgICAgICAgZm9yIGlkeCBpbiBjb25maWdfY2hlY2tf ZGF0YS5rZXlzKCk6CiAgICAgICAgICAgICBlbGVtZW50ID0gcmVzdWx0X3Jvdy5maW5kX2VsZW1l bnRfYnlfY2xhc3NfbmFtZSgiciIgKyBzdHIoaWR4KSkKICAgICAgICAgICAgIHNlbGYucGFnZS5k cml2ZXIuZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAgImFyZ3VtZW50c1swXS5zY3Jv bGxJbnRvVmlldyhmYWxzZSkiLCBlbGVtZW50KQogCi0gICAgICAgICAgICBpZiAoaWR4ICE9IDEg YW5kIG5vdCBpc19uZXdfcm93KSBvciBpc19uZXdfcm93OgotICAgICAgICAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKGVsZW1lbnQudGV4dCwgY29uZmlnX2RhdGFbc3RyKGlkeCldWzFdKQotICAg ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGVsZW1lbnQudGV4dCwgY29uZmlnX2RhdGFb c3RyKGlkeCldWzFdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZWxlbWVudC50ZXh0 LCBjb25maWdfY2hlY2tfZGF0YVtzdHIoaWR4KV1bMV0pCisgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhlbGVtZW50LnRleHQsIGNvbmZpZ19jaGVja19kYXRhW3N0cihpZHgpXVsxXSkKIAog ICAgICAgICAjIHNjcm9sbCBicm93c2VyIGJhY2sgdG8gdGhlIGxlZnQKICAgICAgICAgIyB0byBy ZXNldCBwb3NpdGlvbiBzbyBvdGhlciBhc3NlcnRpb25zIGNhbiBzdWNjZWVkCi0gICAgICAgIGZv ciBpZHggaW4gcmFuZ2UobGVuKGNvbmZpZ19kYXRhLmtleXMoKSksIDEsIC0xKToKKyAgICAgICAg Zm9yIGlkeCBpbiByZXZlcnNlZChsaXN0KGNvbmZpZ19jaGVja19kYXRhLmtleXMoKSkpOgogICAg ICAgICAgICAgZWxlbWVudCA9IHJlc3VsdF9yb3cuZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUo InIiICsgc3RyKGlkeCkpCiAgICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLmV4ZWN1dGVfc2Ny aXB0KAogICAgICAgICAgICAgICAgICJhcmd1bWVudHNbMF0uc2Nyb2xsSW50b1ZpZXcoZmFsc2Up IiwgZWxlbWVudCkK --00000000000097130b058cc1c500--