Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dHyeZ-0007nY-3K for pgadmin-hackers@arkaria.postgresql.org; Mon, 05 Jun 2017 20:31:07 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dHyeY-0006L0-MD for pgadmin-hackers@arkaria.postgresql.org; Mon, 05 Jun 2017 20:31:06 +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.84_2) (envelope-from ) id 1dHyeX-0006Km-H1 for pgadmin-hackers@postgresql.org; Mon, 05 Jun 2017 20:31:05 +0000 Received: from mail-it0-x22b.google.com ([2607:f8b0:4001:c0b::22b]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dHyeT-00044c-HF for pgadmin-hackers@postgresql.org; Mon, 05 Jun 2017 20:31:03 +0000 Received: by mail-it0-x22b.google.com with SMTP id m62so73890119itc.0 for ; Mon, 05 Jun 2017 13:31:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=ltVIdIf1JCrHT5rJL8BvjJ7BNxobwgWZ3RvI6bhsoMU=; b=KIn5byNQvXw06fGipnZQ0smS9yXiGUZFMeQar766tsMuM2I5cjR+OoiODehtbPhybu gMCM65cdNlcDyBBA1xg4nykvm/eJqM1KUMx/rYgNwuu1wJn36bzpBvpI16NM+JgicUot VQ/1PH1lab8CraA0RApfU7e3lfGF+bGWjbYYm/VoLN9zZX67FUJ1SSwZCjIvOi6kACgn wteU1UGYBl6E4F1bk5veEQfTH1JReujRNRbN+sC0EV6U3dfTKICCpoq0iE7fLNXbTMtF nkw5mUg4jTpvTX3t9mh12+pbwVoKPU2A3NcpkLCFjS5EgkiGJxz7aAkzDz310DFwJvbG Mj9A== 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=ltVIdIf1JCrHT5rJL8BvjJ7BNxobwgWZ3RvI6bhsoMU=; b=ELla61PnvJGphpeL9DXdANjGr0x3OIb6wH+uR9sU70dwbSTd2mQbfc7ZZ8sdrrNvyH 4vLVxzIW7z2eu/UWBmqqkz9kt/lwT3ncrntY70YG8KLt/SLY+XwevplAs+3DXBVleBCl nSj18gRpu4TbuWPHQ/9hFWzd74l/tDOjzYefGwJWF9s94asqpiaBtPUKuWgSvzMr2SI0 rp0Dx1uqx522amj+wfG7tNaImc2ZOY3PkWcxAjCW2oP/XDK7Tn/OQtUTvPA6gvJcliB3 eMfcxQfm20I+hQY/T9vGGJsyi4/q+KtqTdknmD5OfTAX49HsfGEWNAB/IcdFJOKK2c8L mGXw== X-Gm-Message-State: AODbwcCb3crs5R8rxkE4ahtiWw15JeKEfJdFNe2M+x3yuWNR8apSAy6/ o7qDzdKXNe1GTLkDpnhvK5NtYE9oealG X-Received: by 10.107.128.86 with SMTP id b83mr3480379iod.173.1496694659339; Mon, 05 Jun 2017 13:30:59 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.205.198 with HTTP; Mon, 5 Jun 2017 13:30:38 -0700 (PDT) From: George Gelashvili Date: Mon, 5 Jun 2017 16:30:38 -0400 Message-ID: Subject: [PATCH] extract function from sqleditor To: pgadmin-hackers Content-Type: multipart/mixed; boundary="001a113c7c1082a9d805513c6129" X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a113c7c1082a9d805513c6129 Content-Type: multipart/alternative; boundary="001a113c7c1082a9d405513c6127" --001a113c7c1082a9d405513c6127 Content-Type: text/plain; charset="UTF-8" Hello Hackers! Re. https://www.postgresql.org/message-id/CAFS4TJb- 7VTQQrnOi0g6MaoxMfEK9LzCds2yG%2BByS-mLHwydQA%40mail.gmail.com We extracted the function bound to onSelectedRangesChanged from sqleditor! - we read through the existing implementation and wrapped it in `web/regression/javascript/selection/set_staged_rows_spec.js` - we made some changes for clarity Thanks, Joao and George --001a113c7c1082a9d405513c6127 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Hackers!


We extracted the f= unction bound to onSelectedRangesChanged from sqleditor!

- we read through the existing implementation and wrapped it in `web= /regression/javascript/selection/set_staged_rows_spec.js`
- we made some changes for clarity

Thanks,
Joao and George
--001a113c7c1082a9d405513c6127-- --001a113c7c1082a9d805513c6129 Content-Type: text/plain; charset="US-ASCII"; name="set_staged_rows_sqleditor_extraction.diff" Content-Disposition: attachment; filename="set_staged_rows_sqleditor_extraction.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3klbx450 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zZWxlY3Rpb24v c2V0X3N0YWdlZF9yb3dzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3Nl bGVjdGlvbi9zZXRfc3RhZ2VkX3Jvd3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAuLmNhY2U3MjgyCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NlbGVjdGlvbi9zZXRfc3RhZ2Vk X3Jvd3MuanMKQEAgLTAsMCArMSwxMTQgQEAKKy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K Ky8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8g Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KKworZGVmaW5lKAorICBbCisgICAgJ2pxdWVyeScsCisgICAgJ3VuZGVy c2NvcmUnCisgIF0sCisgIGZ1bmN0aW9uICgkLCBfKSB7CisgICAgZnVuY3Rp b24gZGlzYWJsZUJ1dHRvbihzZWxlY3RvcikgeworICAgICAgJChzZWxlY3Rv cikucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsKKyAgICB9CisKKyAgICBmdW5j dGlvbiBlbmFibGVCdXR0b24oc2VsZWN0b3IpIHsKKyAgICAgICQoc2VsZWN0 b3IpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOworICAgIH0KKworICAgIGZ1 bmN0aW9uIGdldFJvd1ByaW1hcnlLZXlWYWx1ZXNUb1N0YWdlKHNlbGVjdGVk Um93cywgcHJpbWFyeUtleUNvbHVtbkluZGljZXMsIGdyaWREYXRhKSB7Cisg ICAgICByZXR1cm4gXy5yZWR1Y2Uoc2VsZWN0ZWRSb3dzLCBmdW5jdGlvbiAo cHJpbWFyeUtleVZhbHVlc1RvU3RhZ2UsIGRhdGFHcmlkUm93SW5kZXgpIHsK KyAgICAgICAgdmFyIGdyaWRSb3cgPSBncmlkRGF0YVtkYXRhR3JpZFJvd0lu ZGV4XTsKKworICAgICAgICBpZiAoaXNSb3dNaXNzaW5nUHJpbWFyeUtleXMo Z3JpZFJvdywgcHJpbWFyeUtleUNvbHVtbkluZGljZXMpKSB7CisgICAgICAg ICAgcmV0dXJuIHByaW1hcnlLZXlWYWx1ZXNUb1N0YWdlOworICAgICAgICB9 CisKKyAgICAgICAgdmFyIHRlbXBQSyA9IGdyaWRSb3cuX190ZW1wX1BLOwor ICAgICAgICBwcmltYXJ5S2V5VmFsdWVzVG9TdGFnZVt0ZW1wUEtdID0gZ2V0 U2luZ2xlUm93UHJpbWFyeUtleVZhbHVlVG9TdGFnZShwcmltYXJ5S2V5Q29s dW1uSW5kaWNlcywgZ3JpZFJvdyk7CisKKyAgICAgICAgcmV0dXJuIHByaW1h cnlLZXlWYWx1ZXNUb1N0YWdlOworICAgICAgfSwge30pOworICAgIH0KKwor ICAgIGZ1bmN0aW9uIGlzUm93TWlzc2luZ1ByaW1hcnlLZXlzKGdyaWRSb3cs IHByaW1hcnlLZXlDb2x1bW5JbmRpY2VzKSB7CisgICAgICBpZiAoXy5pc1Vu ZGVmaW5lZChncmlkUm93KSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgIH0KKworICAgICAgcmV0dXJuICFfLmlzVW5kZWZpbmVkKAorICAgICAg ICBfLmZpbmQocHJpbWFyeUtleUNvbHVtbkluZGljZXMsIGZ1bmN0aW9uIChw a0luZGV4KSB7CisgICAgICAgICAgcmV0dXJuIF8uaXNVbmRlZmluZWQoZ3Jp ZFJvd1twa0luZGV4XSk7CisgICAgICAgIH0pCisgICAgICApOworICAgIH0K KworICAgIGZ1bmN0aW9uIGdldFNpbmdsZVJvd1ByaW1hcnlLZXlWYWx1ZVRv U3RhZ2UocHJpbWFyeUtleUNvbHVtbkluZGljZXMsIGdyaWRSb3cpIHsKKyAg ICAgIHZhciByb3dUb1N0YWdlID0ge307CisgICAgICBpZiAocHJpbWFyeUtl eUNvbHVtbkluZGljZXMubGVuZ3RoKSB7CisgICAgICAgIF8uZWFjaChfLmtl eXMoZ3JpZFJvdyksIGZ1bmN0aW9uIChjb2x1bW5Qb3MpIHsKKyAgICAgICAg ICBpZiAoXy5jb250YWlucyhwcmltYXJ5S2V5Q29sdW1uSW5kaWNlcywgTnVt YmVyKGNvbHVtblBvcykpKQorICAgICAgICAgICAgcm93VG9TdGFnZVtjb2x1 bW5Qb3NdID0gZ3JpZFJvd1tjb2x1bW5Qb3NdOworICAgICAgICB9KQorICAg ICAgfQorICAgICAgcmV0dXJuIHJvd1RvU3RhZ2U7CisgICAgfQorCisgICAg ZnVuY3Rpb24gZ2V0UHJpbWFyeUtleXNGb3JTZWxlY3RlZFJvd3Moc2VsZiwg c2VsZWN0ZWRSb3dzKSB7CisgICAgICB2YXIgcHJpbWFyeUtleUNvbHVtbklu ZGljZXMgPSBfLm1hcChfLmtleXMoc2VsZi5rZXlzKSwgZnVuY3Rpb24gKGNv bHVtbk5hbWUpIHsKKyAgICAgICAgdmFyIGNvbHVtbkluZm8gPSBfLmZpbmRX aGVyZShzZWxmLmNvbHVtbnMsIHtuYW1lOiBjb2x1bW5OYW1lfSk7CisgICAg ICAgIHJldHVybiBjb2x1bW5JbmZvWydwb3MnXTsKKyAgICAgIH0pOworCisg ICAgICB2YXIgZ3JpZERhdGEgPSBzZWxmLmdyaWQuZ2V0RGF0YSgpOworICAg ICAgdmFyIHN0YWdlZFJvd3MgPSBnZXRSb3dQcmltYXJ5S2V5VmFsdWVzVG9T dGFnZShzZWxlY3RlZFJvd3MsIHByaW1hcnlLZXlDb2x1bW5JbmRpY2VzLCBn cmlkRGF0YSk7CisKKyAgICAgIHJldHVybiBzdGFnZWRSb3dzOworICAgIH0K KworICAgIHZhciBzZXRTdGFnZWRSb3dzID0gZnVuY3Rpb24gKGUsIGFyZ3Mp IHsKKyAgICAgIHZhciBzZWxmID0gdGhpczsKKworICAgICAgZnVuY3Rpb24g c2V0U3RhZ2VkUm93cyhyb3dzVG9TdGFnZSkgeworICAgICAgICBzZWxmLmVk aXRvci5oYW5kbGVyLmRhdGFfc3RvcmUuc3RhZ2VkX3Jvd3MgPSByb3dzVG9T dGFnZTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gaXNFZGl0TW9kZSgp IHsKKyAgICAgICAgcmV0dXJuIHNlbGYuZWRpdG9yLmhhbmRsZXIuY2FuX2Vk aXQ7CisgICAgICB9CisKKyAgICAgIGRpc2FibGVCdXR0b24oJyNidG4tZGVs ZXRlLXJvdycpOworICAgICAgZGlzYWJsZUJ1dHRvbignI2J0bi1jb3B5LXJv dycpOworCisgICAgICBpZiAoIV8uaGFzKHRoaXMuc2VsZWN0aW9uLCAnZ2V0 U2VsZWN0ZWRSb3dzJykpIHsKKyAgICAgICAgc2V0U3RhZ2VkUm93cyh7fSk7 CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIHNlbGVj dGVkUm93cyA9IHRoaXMuc2VsZWN0aW9uLmdldFNlbGVjdGVkUm93cygpOwor CisgICAgICBpZiAoc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDApIHsKKyAgICAg ICAgdmFyIHN0YWdlZFJvd3MgPSBnZXRQcmltYXJ5S2V5c0ZvclNlbGVjdGVk Um93cyhzZWxmLCBzZWxlY3RlZFJvd3MpOworICAgICAgICBzZXRTdGFnZWRS b3dzKHN0YWdlZFJvd3MpOworICAgICAgICBpZiAoXy5pc0VtcHR5KHN0YWdl ZFJvd3MpKSB7CisgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0U2VsZWN0 ZWRSb3dzKFtdKTsKKyAgICAgICAgfQorCisgICAgICAgIGVuYWJsZUJ1dHRv bignI2J0bi1jb3B5LXJvdycpOworICAgICAgICBpZiAoaXNFZGl0TW9kZSgp KSB7CisgICAgICAgICAgZW5hYmxlQnV0dG9uKCcjYnRuLWRlbGV0ZS1yb3cn KTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgc2V0U3Rh Z2VkUm93cyh7fSk7CisgICAgICB9CisgICAgfTsKKyAgICByZXR1cm4gc2V0 U3RhZ2VkUm93czsKKyAgfQorKTsKKworCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9qcy9z cWxlZGl0b3IuanMgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVt cGxhdGVzL3NxbGVkaXRvci9qcy9zcWxlZGl0b3IuanMKaW5kZXggNTk3YzQz NjcuLmM4M2QxYjM2IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9qcy9zcWxlZGl0b3IuanMK KysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9z cWxlZGl0b3IvanMvc3FsZWRpdG9yLmpzCkBAIC00LDYgKzQsNyBAQCBkZWZp bmUoCiAgICAgJ2JhY2tib25lJywgJ2JhY2tncmlkJywgJ2NvZGVtaXJyb3In LCAncGdhZG1pbi5taXNjLmV4cGxhaW4nLAogICAgICdzb3VyY2VzL3NlbGVj dGlvbi9ncmlkX3NlbGVjdG9yJywgJ3NvdXJjZXMvc2VsZWN0aW9uL2NsaXBi b2FyZCcsCiAgICAgJ3NvdXJjZXMvc2VsZWN0aW9uL2NvcHlfZGF0YScsCisg ICAgJ3NvdXJjZXMvc2VsZWN0aW9uL3NldF9zdGFnZWRfcm93cycsCiAKICAg ICAnc2xpY2tncmlkJywgJ2Jvb3RzdHJhcCcsICdwZ2FkbWluLmJyb3dzZXIn LCAnd2Nkb2NrZXInLAogICAgICdjb2RlbWlycm9yL21vZGUvc3FsL3NxbCcs ICdjb2RlbWlycm9yL2FkZG9uL3NlbGVjdGlvbi9tYXJrLXNlbGVjdGlvbics CkBAIC0yNyw3ICsyOCw3IEBAIGRlZmluZSgKICAgICAnc2xpY2tncmlkL3Ns aWNrLmdyaWQnCiAgIF0sCiAgIGZ1bmN0aW9uKAotICAgICQsIF8sIFMsIGFs ZXJ0aWZ5LCBwZ0FkbWluLCBCYWNrYm9uZSwgQmFja2dyaWQsIENvZGVNaXJy b3IsIHBnRXhwbGFpbiwgR3JpZFNlbGVjdG9yLCBjbGlwYm9hcmQsIGNvcHlE YXRhCisgICAgJCwgXywgUywgYWxlcnRpZnksIHBnQWRtaW4sIEJhY2tib25l LCBCYWNrZ3JpZCwgQ29kZU1pcnJvciwgcGdFeHBsYWluLCBHcmlkU2VsZWN0 b3IsIGNsaXBib2FyZCwgY29weURhdGEsIHNldFN0YWdlZFJvd3MKICAgKSB7 CiAgICAgLyogUmV0dXJuIGJhY2ssIHRoaXMgaGFzIGJlZW4gY2FsbGVkIG1v cmUgdGhhbiBvbmNlICovCiAgICAgaWYgKHBnQWRtaW4uU3FsRWRpdG9yKQpA QCAtNjkzLDg0ICs2OTQsOCBAQCBkZWZpbmUoCiAKICAgICAgICAgLy8gTGlz dGVuZXIgZnVuY3Rpb24gdG8gd2F0Y2ggc2VsZWN0ZWQgcm93cyBmcm9tIGdy aWQKICAgICAgICAgaWYgKGVkaXRvcl9kYXRhLnNlbGVjdGlvbikgewotICAg ICAgICAgICBlZGl0b3JfZGF0YS5zZWxlY3Rpb24ub25TZWxlY3RlZFJhbmdl c0NoYW5nZWQuc3Vic2NyaWJlKGZ1bmN0aW9uKGUsIGFyZ3MpIHsKLSAgICAg ICAgICAgICB2YXIgY29sbGVjdGlvbiA9IHRoaXMuZ3JpZC5nZXREYXRhKCks Ci0gICAgICAgICAgICAgICBwcmltYXJ5X2tleV9saXN0ID0gXy5rZXlzKHRo aXMua2V5cyksCi0gICAgICAgICAgICAgICBfdG1wX2tleXMgPSBbXSwKLSAg ICAgICAgICAgICAgIF9jb2x1bW5zID0gdGhpcy5jb2x1bW5zLAotICAgICAg ICAgICAgICAgcm93c19mb3Jfc3RhZ2UgPSB7fSwKLSAgICAgICAgICAgICAg IHNlbGVjdGVkX3Jvd3NfbGlzdCA9IFtdOwotCi0gICAgICAgICAgICAgICAv LyBPbmx5IGlmIGVudGlyZSByb3cocykgYXJlIHNlbGVjdGVkIHZpYSBjaGVj ayBib3gKLSAgICAgICAgICAgICAgIGlmKF8uaGFzKHRoaXMuc2VsZWN0aW9u LCAnZ2V0U2VsZWN0ZWRSb3dzJykpIHsKLSAgICAgICAgICAgICAgICAgc2Vs ZWN0ZWRfcm93c19saXN0ID0gdGhpcy5zZWxlY3Rpb24uZ2V0U2VsZWN0ZWRS b3dzKCk7Ci0gICAgICAgICAgICAgICAgIC8vIFdlIHdpbGwgbWFwIHNlbGVj dGVkIHJvdyBwcmltYXJ5IGtleSBuYW1lIHdpdGggcG9zaXRpb24KLSAgICAg ICAgICAgICAgICAgLy8gRm9yIGVhY2ggUHJpbWFyeSBrZXkKLSAgICAgICAg ICAgICAgICAgXy5lYWNoKHByaW1hcnlfa2V5X2xpc3QsIGZ1bmN0aW9uKHAp IHsKLSAgICAgICAgICAgICAgICAgICAvLyBGb3IgZWFjaCBjb2x1bW5zIHNl YXJjaCBwcmltYXJ5IGtleSBwb3NpdGlvbgotICAgICAgICAgICAgICAgICAg IF8uZWFjaChfY29sdW1ucywgZnVuY3Rpb24oYykgewotICAgICAgICAgICAg ICAgICAgICAgIGlmKGMubmFtZSA9PSBwKSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICBfdG1wX2tleXMucHVzaChjLnBvcyk7Ci0gICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg ICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgLy8gTm93IGFzc2lnbiBt YXBwZWQgdGVtcCBQSyB0byBQSwotICAgICAgICAgICAgICAgICBwcmltYXJ5 X2tleV9saXN0ID0gIF90bXBfa2V5czsKLQotICAgICAgICAgICAgICAgICAv LyBDaGVjayBpZiBzZWxlY3RlZCBpcyBuZXcgcm93ID8KLSAgICAgICAgICAg ICAgICAgLy8gQWxsb3cgdG8gZGVsZXRlIGlmIHllcwotICAgICAgICAgICAg ICAgICB2YXIgY291bnQgPSBzZWxlY3RlZF9yb3dzX2xpc3QubGVuZ3RoLTEs Ci0gICAgICAgICAgICAgICAgICBjZWxsX2VsID0gdGhpcy5ncmlkLmdldENl bGxOb2RlKHNlbGVjdGVkX3Jvd3NfbGlzdFtjb3VudF0sMCksCi0gICAgICAg ICAgICAgICAgICBwYXJlbnRfZWwgPSAkKGNlbGxfZWwpLnBhcmVudCgpLAot ICAgICAgICAgICAgICAgICAgaXNfbmV3X3JvdyA9ICQocGFyZW50X2VsKS5o YXNDbGFzcygnbmV3X3JvdycpOwotCi0gICAgICAgICAgICAgICAgIC8vIENs ZWFyIHNlbGVjdGlvbiBtb2RlbCBpZiByb3cgcHJpbWFyeSBrZXlzIGlzIHNl dCB0byBkZWZhdWx0Ci0gICAgICAgICAgICAgICAgIHZhciByb3dfZGF0YSA9 IF8uY2xvbmUoY29sbGVjdGlvbltzZWxlY3RlZF9yb3dzX2xpc3RbY291bnRd XSksCi0gICAgICAgICAgICAgICAgICAgaXNfcHJpbWFyeV9rZXkgPSBfLmhh cyhyb3dfZGF0YSwgcHJpbWFyeV9rZXlfbGlzdCkgJiYKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93X2RhdGFbMF0gIT0gdW5k ZWZpbmVkID8gdHJ1ZSA6IGZhbHNlOwotCi0gICAgICAgICAgICAgICAgIGlm IChwcmltYXJ5X2tleV9saXN0Lmxlbmd0aCAmJgotICAgICAgICAgICAgICAg ICAgICAgIWlzX3ByaW1hcnlfa2V5ICYmICFpc19uZXdfcm93Ci0gICAgICAg ICAgICAgICAgICkgewotICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0 aW9uLnNldFNlbGVjdGVkUm93cyhbXSk7Ci0gICAgICAgICAgICAgICAgICAg c2VsZWN0ZWRfcm93c19saXN0ID0gW107Ci0gICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAvLyBDbGVhciB0 aGUgb2JqZWN0IGFzIG5vIHJvd3MgdG8gZGVsZXRlCi0gICAgICAgICAgICAg IC8vIGFuZCBkaXNhYmxlIGRlbGV0ZS9jb3B5IHJvd3MgYnV0dG9uCi0gICAg ICAgICAgICAgIHZhciBjbGVhcl9zdGFnZWRfcm93cyA9IGZ1bmN0aW9uKCkg ewotICAgICAgICAgICAgICAgIHJvd3NfZm9yX3N0YWdlID0ge307Ci0gICAg ICAgICAgICAgICAgJCgiI2J0bi1kZWxldGUtcm93IikucHJvcCgnZGlzYWJs ZWQnLCB0cnVlKTsKLSAgICAgICAgICAgICAgICAkKCIjYnRuLWNvcHktcm93 IikucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsKLSAgICAgICAgICAgICAgfQot Ci0gICAgICAgICAgICAgIC8vIElmIGFueSByb3cocykgc2VsZWN0ZWQgPwot ICAgICAgICAgICAgICBpZihzZWxlY3RlZF9yb3dzX2xpc3QubGVuZ3RoKSB7 Ci0gICAgICAgICAgICAgICAgaWYodGhpcy5lZGl0b3IuaGFuZGxlci5jYW5f ZWRpdCkKLSAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBkZWxldGUgcm93 cyBhbmQgY29weSByb3dzIGJ1dHRvbgotICAgICAgICAgICAgICAgICAgJCgi I2J0bi1kZWxldGUtcm93IikucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7Ci0g ICAgICAgICAgICAgICAgICAkKCIjYnRuLWNvcHktcm93IikucHJvcCgnZGlz YWJsZWQnLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAvLyBDb2xsZWN0 IHByaW1hcnkga2V5IGRhdGEgZnJvbSBjb2xsZWN0aW9uIGFzIG5lZWRlZCBm b3Igc3RhZ2Ugcm93Ci0gICAgICAgICAgICAgICAgICBfLmVhY2goc2VsZWN0 ZWRfcm93c19saXN0LCBmdW5jdGlvbihyb3dfaW5kZXgpIHsKLSAgICAgICAg ICAgICAgICAgICAgdmFyIHJvd19kYXRhID0gY29sbGVjdGlvbltyb3dfaW5k ZXhdLAotICAgICAgICAgICAgICAgICAgICAgIHBfa2V5c19saXN0ID0gXy5w aWNrKHJvd19kYXRhLCBwcmltYXJ5X2tleV9saXN0KSwKLSAgICAgICAgICAg ICAgICAgICAgICBpc19wcmltYXJ5X2tleSA9IE9iamVjdC5rZXlzKHBfa2V5 c19saXN0KS5sZW5ndGggPwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcF9rZXlzX2xpc3RbMF0gOiB1bmRlZmluZWQ7Ci0KLSAg ICAgICAgICAgICAgICAgICAgLy8gU3RvcmUgUHJpbWFyeSBrZXkgZGF0YSBm b3Igc2VsZWN0ZWQgcm93cwotICAgICAgICAgICAgICAgICAgICBpZiAoIV8u aXNVbmRlZmluZWQocm93X2RhdGEpICYmICFfLmlzVW5kZWZpbmVkKHBfa2V5 c19saXN0KSkgewotICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGZv ciBpbnZhbGlkIHJvdwotICAgICAgICAgICAgICAgICAgICAgIHJvd3NfZm9y X3N0YWdlW3Jvd19kYXRhLl9fdGVtcF9QS10gPSBwX2tleXNfbGlzdDsKLSAg ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfSk7Ci0g ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy9jbGVh ciBzdGFnZWQgcm93cwotICAgICAgICAgICAgICAgIGNsZWFyX3N0YWdlZF9y b3dzKCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAvLyBVcGRh dGUgbWFpbiBkYXRhIHN0b3JlCi0gICAgICAgICAgICAgdGhpcy5lZGl0b3Iu aGFuZGxlci5kYXRhX3N0b3JlLnN0YWdlZF9yb3dzID0gcm93c19mb3Jfc3Rh Z2U7Ci0gICAgICAgICAgIH0uYmluZChlZGl0b3JfZGF0YSkpOworICAgICAg ICAgICBlZGl0b3JfZGF0YS5zZWxlY3Rpb24ub25TZWxlY3RlZFJhbmdlc0No YW5nZWQuc3Vic2NyaWJlKAorICAgICAgICAgICAgIHNldFN0YWdlZFJvd3Mu YmluZChlZGl0b3JfZGF0YSkpOwogICAgICAgICB9CiAKIApkaWZmIC0tZ2l0 IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxlY3Rpb24vc2V0X3N0 YWdlZF9yb3dzX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L3NlbGVjdGlvbi9zZXRfc3RhZ2VkX3Jvd3Nfc3BlYy5qcwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMTFlMjkzZmQKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NlbGVjdGlv bi9zZXRfc3RhZ2VkX3Jvd3Nfc3BlYy5qcwpAQCAtMCwwICsxLDIzOCBAQAor Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8v CisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLworCitkZWZpbmUoWworICAianF1ZXJ5IiwK KyAgInVuZGVyc2NvcmUiLAorICAic291cmNlcy9zZWxlY3Rpb24vc2V0X3N0 YWdlZF9yb3dzIiwKK10sIGZ1bmN0aW9uICgkLCBfLCBTZXRTdGFnZWRSb3dz KSB7CisgIGRlc2NyaWJlKCd3aGVuIG5vIGZ1bGwgcm93cyBhcmUgc2VsZWN0 ZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgdmFyIHNxbEVkaXRvck9iaiwgZGVs ZXRlQnV0dG9uLCBjb3B5QnV0dG9uOworICAgIGJlZm9yZUVhY2goZnVuY3Rp b24gKCkgeworICAgICAgdmFyIGdyaWRTcHkgPSBqYXNtaW5lLmNyZWF0ZVNw eU9iaignZ3JpZFNweScsIFsnZ2V0RGF0YScsICdnZXRDZWxsTm9kZSddKTsK KyAgICAgIGdyaWRTcHkuZ2V0RGF0YS5hbmQucmV0dXJuVmFsdWUoWworICAg ICAgICB7MDogJ29uZScsIDE6ICd0d28nLCBfX3RlbXBfUEs6ICcxMjMnfSwK KyAgICAgICAgezA6ICd0aHJlZScsIDE6ICdmb3VyJywgX190ZW1wX1BLOiAn NDU2J30sCisgICAgICAgIHswOiAnZml2ZScsIDE6ICdzaXgnLCBfX3RlbXBf UEs6ICc3ODknfSwKKyAgICAgICAgezA6ICdzZXZlbicsIDE6ICdlaWdodCcs IF9fdGVtcF9QSzogJzQzMid9CisgICAgICBdKTsKKyAgICAgIGRlbGV0ZUJ1 dHRvbiA9ICQoJzxidXR0b24gaWQ9ImJ0bi1kZWxldGUtcm93Ij48L2J1dHRv bj4nKTsKKyAgICAgIGNvcHlCdXR0b24gPSAkKCc8YnV0dG9uIGlkPSJidG4t Y29weS1yb3ciPjwvYnV0dG9uPicpOworICAgICAgc3FsRWRpdG9yT2JqID0g eworICAgICAgICBncmlkOiBncmlkU3B5LAorICAgICAgICBlZGl0b3I6IHsK KyAgICAgICAgICBoYW5kbGVyOiB7CisgICAgICAgICAgICBkYXRhX3N0b3Jl OiB7CisgICAgICAgICAgICAgIHN0YWdlZF9yb3dzOiB7MTogWzEsIDJdfQor ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg fTsKKyAgICAgICQoJ2JvZHknKS5hcHBlbmQoZGVsZXRlQnV0dG9uKTsKKyAg ICAgICQoJ2JvZHknKS5hcHBlbmQoY29weUJ1dHRvbik7CisgICAgICBkZWxl dGVCdXR0b24ucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7CisgICAgICBjb3B5 QnV0dG9uLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOworICAgIH0pOworCisg ICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgIGNvcHlCdXR0b24u cmVtb3ZlKCk7CisgICAgICBkZWxldGVCdXR0b24ucmVtb3ZlKCk7CisgICAg fSk7CisKKyAgICBkZXNjcmliZSgnd2hlbiBnZXRTZWxlY3RlZFJvd3MgaXMg bm90IHByZXNlbnQgaW4gdGhlIHNlbGVjdGlvbiBtb2RlbCcsIGZ1bmN0aW9u ICgpIHsKKyAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgICAg ICBTZXRTdGFnZWRSb3dzLmNhbGwoc3FsRWRpdG9yT2JqLCB7fSwge30pOwor ICAgICAgfSk7CisgICAgICBpdCgnc2hvdWxkIGRpc2FibGUgdGhlIGRlbGV0 ZSByb3cgYnV0dG9uJywgZnVuY3Rpb24gKCkgeworICAgICAgICBleHBlY3Qo JCgnI2J0bi1kZWxldGUtcm93JykucHJvcCgnZGlzYWJsZWQnKSkudG9CZVRy dXRoeSgpOworICAgICAgfSk7CisKKyAgICAgIGl0KCdzaG91bGQgZGlzYWJs ZSB0aGUgY29weSByb3cgYnV0dG9uJywgZnVuY3Rpb24gKCkgeworICAgICAg ICBleHBlY3QoJCgnI2J0bi1jb3B5LXJvdycpLnByb3AoJ2Rpc2FibGVkJykp LnRvQmVUcnV0aHkoKTsKKyAgICAgIH0pOworCisgICAgICBpdCgnc2hvdWxk IGNsZWFyIHN0YWdlZCByb3dzJywgZnVuY3Rpb24gKCkgeworICAgICAgICBl eHBlY3Qoc3FsRWRpdG9yT2JqLmVkaXRvci5oYW5kbGVyLmRhdGFfc3RvcmUu c3RhZ2VkX3Jvd3MpLnRvRXF1YWwoe30pOworICAgICAgfSk7CisgICAgfSk7 CisKKyAgICBkZXNjcmliZSgnd2hlbiBnZXRTZWxlY3RlZFJvd3MgaXMgcHJl c2VudCBpbiB0aGUgc2VsZWN0aW9uIG1vZGVsJywgZnVuY3Rpb24gKCkgewor ICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBz ZWxlY3Rpb25TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweU9iaignc2VsZWN0aW9u U3B5JywgWydnZXRTZWxlY3RlZFJvd3MnLCAnc2V0U2VsZWN0ZWRSb3dzJ10p OworICAgICAgICBzZWxlY3Rpb25TcHkuZ2V0U2VsZWN0ZWRSb3dzLmFuZC5y ZXR1cm5WYWx1ZShbXSk7CisgICAgICAgIHNxbEVkaXRvck9iai5zZWxlY3Rp b24gPSBzZWxlY3Rpb25TcHk7CisgICAgICAgIFNldFN0YWdlZFJvd3MuY2Fs bChzcWxFZGl0b3JPYmosIHt9LCB7fSk7CisgICAgICB9KTsKKworICAgICAg aXQoJ3Nob3VsZCBkaXNhYmxlIHRoZSBkZWxldGUgcm93IGJ1dHRvbicsIGZ1 bmN0aW9uICgpIHsKKyAgICAgICAgZXhwZWN0KCQoJyNidG4tZGVsZXRlLXJv dycpLnByb3AoJ2Rpc2FibGVkJykpLnRvQmVUcnV0aHkoKTsKKyAgICAgIH0p OworCisgICAgICBpdCgnc2hvdWxkIGRpc2FibGUgdGhlIGNvcHkgcm93IGJ1 dHRvbicsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZXhwZWN0KCQoJyNidG4t Y29weS1yb3cnKS5wcm9wKCdkaXNhYmxlZCcpKS50b0JlVHJ1dGh5KCk7Cisg ICAgICB9KTsKKworICAgICAgaXQoJ3Nob3VsZCBjbGVhciBzdGFnZWQgcm93 cycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZXhwZWN0KHNxbEVkaXRvck9i ai5lZGl0b3IuaGFuZGxlci5kYXRhX3N0b3JlLnN0YWdlZF9yb3dzKS50b0Vx dWFsKHt9KTsKKyAgICAgIH0pOworICAgIH0pOworICB9KTsKKworICBkZXNj cmliZSgnd2hlbiAyIGZ1bGwgcm93cyBhcmUgc2VsZWN0ZWQnLCBmdW5jdGlv biAoKSB7CisgICAgZGVzY3JpYmUoJ3doZW4gZ2V0U2VsZWN0ZWRSb3dzIGlz IHByZXNlbnQgaW4gdGhlIHNlbGVjdGlvbiBtb2RlbCcsIGZ1bmN0aW9uICgp IHsKKyAgICAgIHZhciBzcWxFZGl0b3JPYmosIGdyaWRTcHksIGRlbGV0ZUJ1 dHRvbiwgY29weUJ1dHRvbjsKKyAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24g KCkgeworICAgICAgICBncmlkU3B5ID0gamFzbWluZS5jcmVhdGVTcHlPYmoo J2dyaWRTcHknLCBbJ2dldERhdGEnLCAnZ2V0Q2VsbE5vZGUnXSk7CisgICAg ICAgIGdyaWRTcHkuZ2V0RGF0YS5hbmQucmV0dXJuVmFsdWUoWworICAgICAg ICAgIHswOiAnb25lJywgMTogJ3R3bycsIF9fdGVtcF9QSzogJzEyMyd9LAor ICAgICAgICAgIHswOiAndGhyZWUnLCAxOiAnZm91cicsIF9fdGVtcF9QSzog JzQ1Nid9LAorICAgICAgICAgIHswOiAnZml2ZScsIDE6ICdzaXgnLCBfX3Rl bXBfUEs6ICc3ODknfSwKKyAgICAgICAgICB7MDogJ3NldmVuJywgMTogJ2Vp Z2h0JywgX190ZW1wX1BLOiAnNDMyJ30KKyAgICAgICAgXSk7CisKKyAgICAg ICAgdmFyIHNlbGVjdGlvblNweSA9IGphc21pbmUuY3JlYXRlU3B5T2JqKCdz ZWxlY3Rpb25TcHknLCBbJ2dldFNlbGVjdGVkUm93cycsICdzZXRTZWxlY3Rl ZFJvd3MnXSk7CisgICAgICAgIHNlbGVjdGlvblNweS5nZXRTZWxlY3RlZFJv d3MuYW5kLnJldHVyblZhbHVlKFsxLCAyXSk7CisKKyAgICAgICAgZGVsZXRl QnV0dG9uID0gJCgnPGJ1dHRvbiBpZD0iYnRuLWRlbGV0ZS1yb3ciPjwvYnV0 dG9uPicpOworICAgICAgICBjb3B5QnV0dG9uID0gJCgnPGJ1dHRvbiBpZD0i YnRuLWNvcHktcm93Ij48L2J1dHRvbj4nKTsKKworICAgICAgICBzcWxFZGl0 b3JPYmogPSB7CisgICAgICAgICAgZ3JpZDogZ3JpZFNweSwKKyAgICAgICAg ICBlZGl0b3I6IHsKKyAgICAgICAgICAgIGhhbmRsZXI6IHsKKyAgICAgICAg ICAgICAgZGF0YV9zdG9yZTogeworICAgICAgICAgICAgICAgIHN0YWdlZF9y b3dzOiB7JzQ1Nic6IHt9fQorICAgICAgICAgICAgICB9LAorICAgICAgICAg ICAgICBjYW5fZWRpdDogZmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICB9LAorICAgICAgICAgIGtleXM6IG51bGwsCisgICAgICAgICAgc2VsZWN0 aW9uOiBzZWxlY3Rpb25TcHksCisgICAgICAgICAgY29sdW1uczogWworICAg ICAgICAgICAgeworICAgICAgICAgICAgICBuYW1lOiAnYSBwayBjb2x1bW4n LAorICAgICAgICAgICAgICBwb3M6IDAKKyAgICAgICAgICAgIH0sCisgICAg ICAgICAgICB7CisgICAgICAgICAgICAgIG5hbWU6ICdzb21lIGNvbHVtbics CisgICAgICAgICAgICAgIHBvczogMQorICAgICAgICAgICAgfQorICAgICAg ICAgIF0KKyAgICAgICAgfTsKKworICAgICAgICAkKCdib2R5JykuYXBwZW5k KGRlbGV0ZUJ1dHRvbik7CisgICAgICAgICQoJ2JvZHknKS5hcHBlbmQoY29w eUJ1dHRvbik7CisKKyAgICAgICAgZGVsZXRlQnV0dG9uLnByb3AoJ2Rpc2Fi bGVkJywgdHJ1ZSk7CisgICAgICAgIGNvcHlCdXR0b24ucHJvcCgnZGlzYWJs ZWQnLCB0cnVlKTsKKworICAgICAgfSk7CisKKyAgICAgIGFmdGVyRWFjaChm dW5jdGlvbiAoKSB7CisgICAgICAgIGNvcHlCdXR0b24ucmVtb3ZlKCk7Cisg ICAgICAgIGRlbGV0ZUJ1dHRvbi5yZW1vdmUoKTsKKyAgICAgIH0pOworCisg ICAgICBkZXNjcmliZSgnd2hlbiB0YWJsZSBkb2VzIG5vdCBoYXZlIHByaW1h cnkga2V5cycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaXQoJ3Nob3VsZCBl bmFibGUgdGhlIGNvcHkgcm93IGJ1dHRvbicsIGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgICBTZXRTdGFnZWRSb3dzLmNhbGwoc3FsRWRpdG9yT2JqLCB7fSwg e30pOworICAgICAgICAgIGV4cGVjdCgkKCcjYnRuLWNvcHktcm93JykucHJv cCgnZGlzYWJsZWQnKSkudG9CZUZhbHN5KCk7CisgICAgICAgIH0pOworCisg ICAgICAgIGl0KCdzaG91bGQgbm90IGVuYWJsZSB0aGUgZGVsZXRlIHJvdyBi dXR0b24nLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgU2V0U3RhZ2VkUm93 cy5jYWxsKHNxbEVkaXRvck9iaiwge30sIHt9KTsKKyAgICAgICAgICBleHBl Y3QoJCgnI2J0bi1kZWxldGUtcm93JykucHJvcCgnZGlzYWJsZWQnKSkudG9C ZVRydXRoeSgpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxk IHVwZGF0ZSBzdGFnZWQgcm93cyB3aXRoIHRoZSBfX3RlbXBfUEsgdmFsdWUg b2YgdGhlIG5ldyBTZWxlY3RlZCBSb3dzJywgZnVuY3Rpb24gKCkgeworICAg ICAgICAgIFNldFN0YWdlZFJvd3MuY2FsbChzcWxFZGl0b3JPYmosIHt9LCB7 fSk7CisgICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck9iai5lZGl0b3IuaGFu ZGxlci5kYXRhX3N0b3JlLnN0YWdlZF9yb3dzKS50b0VxdWFsKHsnNDU2Jzog e30sICc3ODknOiB7fX0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNj cmliZSgndGhlIHVzZXIgY2FuIGVkaXQnLCBmdW5jdGlvbiAoKSB7CisgICAg ICAgICAgaXQoJ3Nob3VsZCBlbmFibGUgdGhlIGRlbGV0ZSByb3cgYnV0dG9u JywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgc3FsRWRpdG9yT2JqLmVk aXRvci5oYW5kbGVyLmNhbl9lZGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgIFNl dFN0YWdlZFJvd3MuY2FsbChzcWxFZGl0b3JPYmosIHt9LCB7fSk7CisgICAg ICAgICAgICBleHBlY3QoJCgnI2J0bi1kZWxldGUtcm93JykucHJvcCgnZGlz YWJsZWQnKSkudG9CZUZhbHN5KCk7CisgICAgICAgICAgfSk7CisgICAgICAg IH0pOworICAgICAgfSk7CisKKyAgICAgIGRlc2NyaWJlKCd3aGVuIHRhYmxl IGhhcyBwcmltYXJ5IGtleXMnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGJl Zm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgICAgICAgIHNxbEVkaXRvck9i ai5rZXlzID0geydhIHBrIGNvbHVtbic6ICd2YXJjaGFyJ307CisgICAgICAg ICAgc3FsRWRpdG9yT2JqLmVkaXRvci5oYW5kbGVyLmRhdGFfc3RvcmUuc3Rh Z2VkX3Jvd3MgPSB7JzQ1Nic6IHswOiAndGhyZWUnfX07CisgICAgICAgIH0p OworCisgICAgICAgIGRlc2NyaWJlKCdzZWxlY3RlZCByb3dzIGhhdmUgcHJp bWFyeSBrZXknLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgaXQoJ3Nob3Vs ZCBzZXQgdGhlIHN0YWdlZCByb3dzIGNvcnJlY3RseScsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICAgIFNldFN0YWdlZFJvd3MuY2FsbChzcWxFZGl0b3JP YmosIHt9LCB7fSk7CisgICAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9yT2Jq LmVkaXRvci5oYW5kbGVyLmRhdGFfc3RvcmUuc3RhZ2VkX3Jvd3MpLnRvRXF1 YWwoCisgICAgICAgICAgICAgIHsnNDU2JzogezA6ICd0aHJlZSd9LCAnNzg5 JzogezA6ICdmaXZlJ319KTsKKyAgICAgICAgICB9KTsKKworICAgICAgICAg IGl0KCdzaG91bGQgbm90IGNsZWFyIHNlbGVjdGVkIHJvd3MgaW4gQ2VsbCBT ZWxlY3Rpb24gTW9kZWwnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBT ZXRTdGFnZWRSb3dzLmNhbGwoc3FsRWRpdG9yT2JqLCB7fSwge30pOworICAg ICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck9iai5zZWxlY3Rpb24uc2V0U2Vs ZWN0ZWRSb3dzKS5ub3QudG9IYXZlQmVlbkNhbGxlZFdpdGgoKTsKKyAgICAg ICAgICB9KTsKKworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgn c2VsZWN0ZWQgcm93cyBtaXNzaW5nIHByaW1hcnkga2V5JywgZnVuY3Rpb24g KCkgeworICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAg ICAgICAgICAgZ3JpZFNweS5nZXREYXRhLmFuZC5yZXR1cm5WYWx1ZShbCisg ICAgICAgICAgICAgIHswOiAnb25lJywgMTogJ3R3bycsIF9fdGVtcF9QSzog JzEyMyd9LAorICAgICAgICAgICAgICB7MTogJ2ZvdXInLCBfX3RlbXBfUEs6 ICc0NTYnfSwKKyAgICAgICAgICAgICAgezE6ICdzaXgnLCBfX3RlbXBfUEs6 ICc3ODknfSwKKyAgICAgICAgICAgICAgezA6ICdzZXZlbicsIDE6ICdlaWdo dCcsIF9fdGVtcF9QSzogJzQzMid9CisgICAgICAgICAgICBdKTsKKyAgICAg ICAgICB9KTsKKworICAgICAgICAgIGl0KCdzaG91bGQgY2xlYXIgdGhlIHN0 YWdlZCByb3dzJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgU2V0U3Rh Z2VkUm93cy5jYWxsKHNxbEVkaXRvck9iaiwge30sIHt9KTsKKyAgICAgICAg ICAgIGV4cGVjdChzcWxFZGl0b3JPYmouZWRpdG9yLmhhbmRsZXIuZGF0YV9z dG9yZS5zdGFnZWRfcm93cykudG9FcXVhbCh7fSk7CisgICAgICAgICAgfSk7 CisKKyAgICAgICAgICBpdCgnc2hvdWxkIGNsZWFyIHNlbGVjdGVkIHJvd3Mg aW4gQ2VsbCBTZWxlY3Rpb24gTW9kZWwnLCBmdW5jdGlvbiAoKSB7CisgICAg ICAgICAgICBTZXRTdGFnZWRSb3dzLmNhbGwoc3FsRWRpdG9yT2JqLCB7fSwg e30pOworICAgICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck9iai5zZWxlY3Rp b24uc2V0U2VsZWN0ZWRSb3dzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbXSk7 CisgICAgICAgICAgfSk7CisKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVz Y3JpYmUoJ3doZW4gdGhlIHNlbGVjdGVkIHJvdyBpcyBhIG5ldyByb3cnLCBm dW5jdGlvbiAoKSB7CisgICAgICAgICAgdmFyIHBhcmVudERpdjsKKyAgICAg ICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZh ciBjaGlsZERpdiA9ICQoJzxkaXY+PC9kaXY+Jyk7CisgICAgICAgICAgICBw YXJlbnREaXYgPSAkKCc8ZGl2IGNsYXNzPSJuZXdfcm93Ij48L2Rpdj4nKTsK KyAgICAgICAgICAgIHBhcmVudERpdi5hcHBlbmQoY2hpbGREaXYpOworICAg ICAgICAgICAgJCgnYm9keScpLmFwcGVuZChwYXJlbnREaXYpOworICAgICAg ICAgICAgZ3JpZFNweS5nZXRDZWxsTm9kZS5hbmQucmV0dXJuVmFsdWUoY2hp bGREaXYpOworICAgICAgICAgICAgU2V0U3RhZ2VkUm93cy5jYWxsKHNxbEVk aXRvck9iaiwge30sIHt9KTsKKyAgICAgICAgICB9KTsKKworICAgICAgICAg IGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBwYXJlbnRE aXYucmVtb3ZlKCk7CisgICAgICAgICAgfSk7CisKKyAgICAgICAgICBpdCgn c2hvdWxkIG5vdCBjbGVhciB0aGUgc3RhZ2VkIHJvd3MnLCBmdW5jdGlvbiAo KSB7CisgICAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9yT2JqLmVkaXRvci5o YW5kbGVyLmRhdGFfc3RvcmUuc3RhZ2VkX3Jvd3MpLnRvRXF1YWwoeworICAg ICAgICAgICAgICAnNDU2JzogezA6ICd0aHJlZSd9LAorICAgICAgICAgICAg ICAnNzg5JzogezA6ICdmaXZlJ30KKyAgICAgICAgICAgIH0pOworICAgICAg ICAgIH0pOworCisgICAgICAgICAgaXQoJ3Nob3VsZCBub3QgY2xlYXIgc2Vs ZWN0ZWQgcm93cyBpbiBDZWxsIFNlbGVjdGlvbiBNb2RlbCcsIGZ1bmN0aW9u ICgpIHsKKyAgICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JPYmouc2VsZWN0 aW9uLnNldFNlbGVjdGVkUm93cykubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsK KyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKyAgICB9 KTsKKyAgfSk7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg== --001a113c7c1082a9d805513c6129 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a113c7c1082a9d805513c6129--