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 1hg6aI-0007Yb-PF for pgadmin-hackers@arkaria.postgresql.org; Wed, 26 Jun 2019 11:59:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hg6aH-0004zy-GG for pgadmin-hackers@arkaria.postgresql.org; Wed, 26 Jun 2019 11:59:29 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hg6aH-0004zr-7p for pgadmin-hackers@lists.postgresql.org; Wed, 26 Jun 2019 11:59:29 +0000 Received: from mail-lj1-x231.google.com ([2a00:1450:4864:20::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hg6aE-0007C3-Kn for pgadmin-hackers@postgresql.org; Wed, 26 Jun 2019 11:59:28 +0000 Received: by mail-lj1-x231.google.com with SMTP id v18so1893534ljh.6 for ; Wed, 26 Jun 2019 04:59:26 -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=lKv4yYyyAcAcxWB+PKVxsvBiyDWWS0IMaYOQDITb2IY=; b=xQ/oi6FEW+ohgsoQFzCrNAhcGfpClsZGurOLTLDm3Szt6R9LUKEBFCoSsX8DKrEuj7 5QXhzaR34JhYnInVzUDxLcduCYg5Wv4Lcjc4H3G4BXiwyiRYPpiKSVY+vgMb05gOpN5P iEnvxGd0Xofber6egt5z4OpPvkN1W9eBUGou/TRhC++UMKf2c0I8PLeoCzu98ljH1w6h TYXSQNUUEDt4XKMmAU1O6Ch114PQXhpDCI5pSlqc2dTvD/B67C4qK2a0KU4Z7kr0Cxpv giMSy989vr5cCPZF6LHUxEKir4AdfEpsBkZEY3bpCCuwFI2lF9x72EJorknPwLGk1Kzu 764Q== 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=lKv4yYyyAcAcxWB+PKVxsvBiyDWWS0IMaYOQDITb2IY=; b=CvEziMot8uZgIUcMpOA9EYlM0lGkyu5XbfyvRbHVGoEMcRYV89eWF20oUgGUoIvfAK 85m6c30+3mte1Sw2OuR9U16+85rghY3J0Qqw6LNS5etb6TCDLM93UF0DLHVoGSG59d+b ZT5K43o8Ji2h7NFCGNKfMiJUFCDg3AIp8Lnm9unI2iTRoQvlbqraENZ8+3FD4EmNxQMw FxcFuR7dO4XW3c3bArorUic1o1onZAbSL55waHcnyBGqmGXqciSMsIY1wiFdka9NSqyB AxmtntSBzlaxjGJ+elRQfWtdbcYHKrtzR+VnyXRv/R4tkxoaabJdl/QMFHBi6YlS3Kjv Nqbg== X-Gm-Message-State: APjAAAUxkyPDJEgKwf9Y9Dk1rAStuceqBEUGQZuKZVuUs93OH8QAMBFH ktPUOk72Me1XPsKK1tfhDdMOecmylhndJQYWhgziK6V0 X-Google-Smtp-Source: APXvYqxhwTMGDxp7df5vagOZPbTWbanB9b0/JSzeoPeHVybtMCLF+Jt9HeRG1RQjVNO6kj8VrD+OsHUkHuCxOTkH8H4= X-Received: by 2002:a2e:5c09:: with SMTP id q9mr2750668ljb.120.1561550364646; Wed, 26 Jun 2019 04:59:24 -0700 (PDT) MIME-Version: 1.0 From: Aditya Toshniwal Date: Wed, 26 Jun 2019 17:28:48 +0530 Message-ID: Subject: [pgAdmin][RM4335] Add EXPLAIN option SETTINGS and SUMMARY To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000c8e8c3058c38c67b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000c8e8c3058c38c67b Content-Type: multipart/alternative; boundary="000000000000c8e8c0058c38c679" --000000000000c8e8c0058c38c679 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached is the patch to add support for SETTINGS(v12+) and SUMMARY(v10+) explain options. These options will be visible only if version is supported. I have also created and fixed RM4395. The explain options changed on one query tool should not change explain options on other query tools or preferences. The initial values will be taken from preferences are usual. Kindly review. -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --000000000000c8e8c0058c38c679 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the patch to add support for SETTIN= GS(v12+) and SUMMARY(v10+) explain options. These options will be visible o= nly if version is supported.

I have also created and fixed RM4395. T= he explain options changed on one query tool should not change explain opti= ons on other query tools or preferences. The initial values will be taken f= rom preferences are usual.

Kindly review.

--
<= div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature= ">
Thanks and Regards,
Aditya Toshniwal
Software Engine= er |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a TREE= "
--000000000000c8e8c0058c38c679-- --000000000000c8e8c3058c38c67b Content-Type: application/octet-stream; name="RM4335_4395.patch" Content-Disposition: attachment; filename="RM4335_4395.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxd6q9qy0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1dHMuanMg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCmluZGV4IGM1NjVi ODYyLi4xMDFhZmY1YiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJk X3Nob3J0Y3V0cy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRj dXRzLmpzCkBAIC0yODIsOCArMjgyLDkgQEAgZnVuY3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNRdWVy eVRvb2woCiAgICAgICAgIGN1cnJMaSA9IGN1cnJMaS5uZXh0KCk7CiAgICAgICB9CiAKLSAgICAg IC8qZG8gbm90IGZvY3VzIG9uIGRpdmlkZXIgYW5kIGRpc2FibGVkICovCisgICAgICAvKmRvIG5v dCBmb2N1cyBvbiBkaXZpZGVyLCBkaXNhYmxlZCBhbmQgZC1ub25lICovCiAgICAgICB3aGlsZShj dXJyTGkuaGFzQ2xhc3MoJ2Ryb3Bkb3duLWRpdmlkZXInKQorICAgICAgICB8fCBjdXJyTGkuaGFz Q2xhc3MoJ2Qtbm9uZScpCiAgICAgICAgIHx8IGN1cnJMaS5maW5kKCcuZHJvcGRvd24taXRlbScp LmZpcnN0KCkuaGFzQ2xhc3MoJ2Rpc2FibGVkJykpIHsKICAgICAgICAgaWYoa2V5Q29kZSA9PT0g VVBfS0VZKSB7CiAgICAgICAgICAgY3VyckxpID0gY3VyckxpLnByZXYoKTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zLmpzIGIv d2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnMuanMKaW5k ZXggNzczOWU5YjUuLjJjMWJlMzI0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv c3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucy5qcwpAQCAtMjYsNiArMjYsMTQgQEAgbGV0 IHF1ZXJ5VG9vbEFjdGlvbnMgPSB7CiAgICAgcmV0dXJuICEkKCcuZXhwbGFpbi10aW1pbmcnKS5o YXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKICAgfSwKIAorICBfc3VtbWFyeTogZnVuY3Rp b24gKCkgeworICAgIHJldHVybiAhJCgnLmV4cGxhaW4tc3VtbWFyeScpLmhhc0NsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOworICB9LAorCisgIF9zZXR0aW5nczogZnVuY3Rpb24gKCkgeworICAg IHJldHVybiAhJCgnLmV4cGxhaW4tc2V0dGluZ3MnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRk ZW4nKTsKKyAgfSwKKwogICBfY2xlYXJNZXNzYWdlVGFiOiBmdW5jdGlvbiAoKSB7CiAgICAgJCgn LnNxbC1lZGl0b3ItbWVzc2FnZScpLmh0bWwoJycpOwogICB9LApAQCAtNDEsMzYgKzQ5LDMxIEBA IGxldCBxdWVyeVRvb2xBY3Rpb25zID0gewogICB9LAogCiAgIGV4cGxhaW5BbmFseXplOiBmdW5j dGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewotICAgIGxldCBjb3N0RW5hYmxlZCA9IHRoaXMu X2Nvc3RzRW5hYmxlZCgpOwotICAgIGxldCB2ZXJib3NlID0gdGhpcy5fdmVyYm9zZSgpOwotICAg IGxldCBidWZmZXJzID0gdGhpcy5fYnVmZmVycygpOwotICAgIGxldCB0aW1pbmcgPSB0aGlzLl90 aW1pbmcoKTsKICAgICBjb25zdCBleHBsYWluT2JqZWN0ID0gewogICAgICAgZm9ybWF0OiAnanNv bicsCiAgICAgICBhbmFseXplOiB0cnVlLAotICAgICAgdmVyYm9zZTogdmVyYm9zZSwKLSAgICAg IGNvc3RzOiBjb3N0RW5hYmxlZCwKLSAgICAgIGJ1ZmZlcnM6IGJ1ZmZlcnMsCi0gICAgICB0aW1p bmc6IHRpbWluZywKLSAgICAgIHN1bW1hcnk6IGZhbHNlLAorICAgICAgdmVyYm9zZTogdGhpcy5f dmVyYm9zZSgpLAorICAgICAgY29zdHM6IHRoaXMuX2Nvc3RzRW5hYmxlZCgpLAorICAgICAgYnVm ZmVyczogdGhpcy5fYnVmZmVycygpLAorICAgICAgdGltaW5nOiB0aGlzLl90aW1pbmcoKSwKKyAg ICAgIHN1bW1hcnk6IHRoaXMuX3N1bW1hcnkoKSwKKyAgICAgIHNldHRpbmdzOiB0aGlzLl9zZXR0 aW5ncygpLAogICAgIH07CiAgICAgdGhpcy5fY2xlYXJNZXNzYWdlVGFiKCk7CiAgICAgc3FsRWRp dG9yQ29udHJvbGxlci5leGVjdXRlKGV4cGxhaW5PYmplY3QpOwogICB9LAogCiAgIGV4cGxhaW46 IGZ1bmN0aW9uIChzcWxFZGl0b3JDb250cm9sbGVyKSB7Ci0gICAgbGV0IGNvc3RFbmFibGVkID0g dGhpcy5fY29zdHNFbmFibGVkKCk7Ci0gICAgbGV0IHZlcmJvc2UgPSB0aGlzLl92ZXJib3NlKCk7 Ci0KICAgICAvLyBsZXQgZXhwbGFpblF1ZXJ5ID0gYEVYUExBSU4gKEZPUk1BVCBKU09OLCBBTkFM WVpFIE9GRiwgVkVSQk9TRSAke3ZlcmJvc2V9LCBDT1NUUyAke2Nvc3RFbmFibGVkfSwgQlVGRkVS UyBPRkYsIFRJTUlORyBPRkYpIGA7CiAgICAgY29uc3QgZXhwbGFpbk9iamVjdCA9IHsKICAgICAg IGZvcm1hdDogJ2pzb24nLAogICAgICAgYW5hbHl6ZTogZmFsc2UsCi0gICAgICB2ZXJib3NlOiB2 ZXJib3NlLAotICAgICAgY29zdHM6IGNvc3RFbmFibGVkLAorICAgICAgdmVyYm9zZTogdGhpcy5f dmVyYm9zZSgpLAorICAgICAgY29zdHM6IHRoaXMuX2Nvc3RzRW5hYmxlZCgpLAogICAgICAgYnVm ZmVyczogZmFsc2UsCiAgICAgICB0aW1pbmc6IGZhbHNlLAogICAgICAgc3VtbWFyeTogZmFsc2Us CisgICAgICBzZXR0aW5nczogZmFsc2UsCiAgICAgfTsKICAgICB0aGlzLl9jbGVhck1lc3NhZ2VU YWIoKTsKICAgICBzcWxFZGl0b3JDb250cm9sbGVyLmV4ZWN1dGUoZXhwbGFpbk9iamVjdCk7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfcHJl ZmVyZW5jZXMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xf cHJlZmVyZW5jZXMuanMKaW5kZXggYzM5MDZhYWEuLjdmZDE5YjQwIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMuanMKKysr IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX3ByZWZlcmVuY2Vz LmpzCkBAIC0xMzQsNiArMTM0LDIwIEBAIGZ1bmN0aW9uIHVwZGF0ZVVJUHJlZmVyZW5jZXMoc3Fs RWRpdG9yKSB7CiAgICAgJGVsLmZpbmQoJy5leHBsYWluLXRpbWluZycpLmFkZENsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOwogICB9CiAKKyAgaWYgKHByZWZlcmVuY2VzLmV4cGxhaW5fc3VtbWFy eSkgeworICAgICRlbC5maW5kKCcuZXhwbGFpbi1zdW1tYXJ5JykucmVtb3ZlQ2xhc3MoJ3Zpc2li aWxpdHktaGlkZGVuJyk7CisgIH0KKyAgZWxzZSB7CisgICAgJGVsLmZpbmQoJy5leHBsYWluLXN1 bW1hcnknKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorCisgIGlmIChwcmVm ZXJlbmNlcy5leHBsYWluX3NldHRpbmdzKSB7CisgICAgJGVsLmZpbmQoJy5leHBsYWluLXNldHRp bmdzJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAgZWxzZSB7Cisg ICAgJGVsLmZpbmQoJy5leHBsYWluLXNldHRpbmdzJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlk ZGVuJyk7CisgIH0KKwogICAvKiBDb25uZWN0aW9uIHN0YXR1cyBjaGVjayAqLwogICAvKiByZW1v dmUgdGhlIHN0YXR1cyBjaGVja2VyIGlmIHByZXNlbnQgKi8KICAgaWYoc3FsRWRpdG9yLmNvbm5J bnRlcnZhbElkICE9IG51bGwpIHsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFn cmlkL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvX19pbml0X18ucHkK aW5kZXggZmJjODQyZmMuLjYyZGI3MTlkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9k YXRhZ3JpZC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2lu aXRfXy5weQpAQCAtMjM0LDYgKzIzNCwxMSBAQCBkZWYgcGFuZWwodHJhbnNfaWQsIGlzX3F1ZXJ5 X3Rvb2wsIGVkaXRvcl90aXRsZSk6CiAgICAgZWxzZToKICAgICAgICAgc2VydmVyX3R5cGUgPSBO b25lCiAKKyAgICBpZiByZXF1ZXN0LmFyZ3MgYW5kIHJlcXVlc3QuYXJnc1snc2VydmVyX3Zlcidd ICE9ICcnOgorICAgICAgICBzZXJ2ZXJfdmVyID0gcmVxdWVzdC5hcmdzWydzZXJ2ZXJfdmVyJ10K KyAgICBlbHNlOgorICAgICAgICBzZXJ2ZXJfdmVyID0gMAorCiAgICAgIyBJZiB0aXRsZSBoYXMg c2xhc2goZXMpIGluIGl0IHRoZW4gcmVwbGFjZSBpdAogICAgIGlmIHJlcXVlc3QuYXJncyBhbmQg cmVxdWVzdC5hcmdzWydmc2xhc2hlcyddICE9ICcnOgogICAgICAgICB0cnk6CkBAIC0zMTEsNiAr MzE2LDcgQEAgZGVmIHBhbmVsKHRyYW5zX2lkLCBpc19xdWVyeV90b29sLCBlZGl0b3JfdGl0bGUp OgogICAgICAgICBpc19kZXNrdG9wX21vZGU9YXBwLlBHQURNSU5fUlVOVElNRSwKICAgICAgICAg aXNfbGludXg9aXNfbGludXhfcGxhdGZvcm0sCiAgICAgICAgIHNlcnZlcl90eXBlPXNlcnZlcl90 eXBlLAorICAgICAgICBzZXJ2ZXJfdmVyPXNlcnZlcl92ZXIsCiAgICAgICAgIGNsaWVudF9wbGF0 Zm9ybT11c2VyX2FnZW50LnBsYXRmb3JtLAogICAgICAgICBiZ2NvbG9yPWJnY29sb3IsCiAgICAg ICAgIGZnY29sb3I9Zmdjb2xvciwKQEAgLTQwOCw3ICs0MTQsOCBAQCBkZWYgaW5pdGlhbGl6ZV9x dWVyeV90b29sKHNnaWQsIHNpZCwgZGlkPU5vbmUpOgogCiAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKICAgICAgICAgZGF0YT17Ci0gICAgICAgICAgICAnZ3JpZFRyYW5zSWQnOiB0cmFu c19pZAorICAgICAgICAgICAgJ2dyaWRUcmFuc0lkJzogdHJhbnNfaWQsCisgICAgICAgICAgICAn c2VydmVyVmVyc2lvbic6IG1hbmFnZXIudmVyc2lvbiwKICAgICAgICAgfQogICAgICkKIApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkLmpz IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkLmpzCmluZGV4 IGNjMDk1MTk0Li5hNDA1YjdkZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdy aWQvc3RhdGljL2pzL2RhdGFncmlkLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlk L3N0YXRpYy9qcy9kYXRhZ3JpZC5qcwpAQCAtMjc1LDYgKzI3NSw3IEBAIGRlZmluZSgncGdhZG1p bi5kYXRhZ3JpZCcsIFsKICAgICAgICAgICBiYXNlVXJsID0gdXJsX2ZvcignZGF0YWdyaWQucGFu ZWwnLCB1cmxfcGFyYW1zKSArCiAgICAgICAgICAgICAnPycgKyAncXVlcnlfdXJsPScgKyBlbmNv ZGVVUkkodHJhbnNfb2JqLnNVUkwpICsKICAgICAgICAgICAgICcmc2VydmVyX3R5cGU9JyArIGVu Y29kZVVSSUNvbXBvbmVudCh0cmFuc19vYmouc2VydmVyX3R5cGUpICsKKyAgICAgICAgICAgICcm c2VydmVyX3Zlcj0nICsgdHJhbnNfb2JqLnNlcnZlclZlcnNpb24rCiAgICAgICAgICAgICAnJmZz bGFzaGVzPScgKyB0aXRpbGVGb3JVUkxPYmouc2xhc2hMb2NhdGlvbnM7CiAKICAgICAgICAgaWYg KHNlbGYucHJlZmVyZW5jZXMubmV3X2Jyb3dzZXJfdGFiKSB7CkBAIC0yODMsMTIgKzI4NCw2IEBA IGRlZmluZSgncGdhZG1pbi5kYXRhZ3JpZCcsIFsKICAgICAgICAgICAvLyBhZGQgYSBsb2FkIGxp c3RlbmVyIHRvIHRoZSB3aW5kb3cgc28gdGhhdCB0aGUgdGl0bGUgZ2V0cyBjaGFuZ2VkIG9uIHBh Z2UgbG9hZAogICAgICAgICAgIG5ld1dpbi5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rp b24oKSB7CiAgICAgICAgICAgICBuZXdXaW4uZG9jdW1lbnQudGl0bGUgPSBwYW5lbF90aXRsZTsK LQotICAgICAgICAgICAgLyogU2V0IHRoZSBpbml0aWFsIHZlcnNpb24gb2YgcHJlZiBjYWNoZSB0 aGUgbmV3IHdpbmRvdyBpcyBoYXZpbmcKLSAgICAgICAgICAgICAqIFRoaXMgd2lsbCBiZSB1c2Vk IGJ5IHRoZSBwb2xsZXIgdG8gY29tcGFyZSB3aXRoIHdpbmRvdyBvcGVuZXJzCi0gICAgICAgICAg ICAgKiBwcmVmIGNhY2hlIHZlcnNpb24KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgLy9u ZXdXaW4ucGdBZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbihwZ0Jyb3dzZXIucHJlZmVy ZW5jZV92ZXJzaW9uKCkpOwogICAgICAgICAgIH0pOwogCiAgICAgICAgIH0gZWxzZSB7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5k ZXguaHRtbCBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9p bmRleC5odG1sCmluZGV4IGYxMzhiOWE0Li42NWI2YzRlYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKKysrIGIvd2Vi L3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKQEAg LTI4NSw2ICsyODUsMTggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sg XygnVGltaW5nJykgfX0gPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAg ICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS1taW4t dmVyPSIxMDAwMDAiPgorICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRyb3Bkb3du LWl0ZW0iIGlkPSJidG4tZXhwbGFpbi1zdW1tYXJ5IiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImV4cGxhaW4tc3VtbWFyeSBmYSBm YS1jaGVjayB2aXNpYmlsaXR5LWhpZGRlbiIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgXygnU3VtbWFyeScpIH19IDwvc3Bhbj4K KyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICAgICAgPC9saT4K KyAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtbWluLXZlcj0iMTIwMDAwIj4KKyAgICAgICAg ICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWV4cGxhaW4t c2V0dGluZ3MiIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8aSBjbGFzcz0iZXhwbGFpbi1zZXR0aW5ncyBmYSBmYS1jaGVjayB2aXNpYmlsaXR5LWhp ZGRlbiIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8c3Bhbj4ge3sgXygnU2V0dGluZ3MnKSB9fSA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAg ICAgICA8L2E+CisgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgPC91 bD4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3Vw IG1yLTEiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgpAQCAtNDEyLDcgKzQyNCw4IEBACiAg ICAgICAgIHNjcmlwdF90eXBlX3VybCwKICAgICAgICAgInt7IHNlcnZlcl90eXBlIH19IiwKICAg ICAgICAge3sgdXJsX3BhcmFtc3xzYWZlfX0sCi0gICAgICAgICd7eyBsYXlvdXR8c2FmZSB9fScK KyAgICAgICAgJ3t7IGxheW91dHxzYWZlIH19JywKKyAgICAgICAge3sgc2VydmVyX3ZlciB9fQog ICAgICk7CiB9KTsKIHslIGVuZGJsb2NrICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19p bml0X18ucHkKaW5kZXggYWM5MjNhNTUuLjFkMjc5NmVjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3IvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3Fs ZWRpdG9yL19faW5pdF9fLnB5CkBAIC05NSw3ICs5NSw2IEBAIGNsYXNzIFNxbEVkaXRvck1vZHVs ZShQZ0FkbWluTW9kdWxlKToKICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICdzcWxlZGl0 b3Iudmlld19kYXRhX3N0YXJ0JywKICAgICAgICAgICAgICdzcWxlZGl0b3IucXVlcnlfdG9vbF9z dGFydCcsCi0gICAgICAgICAgICAnc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMnLAog ICAgICAgICAgICAgJ3NxbGVkaXRvci5wb2xsJywKICAgICAgICAgICAgICdzcWxlZGl0b3IuZmV0 Y2gnLAogICAgICAgICAgICAgJ3NxbGVkaXRvci5mZXRjaF9hbGwnLApAQCAtMzMwLDM4ICszMjks NiBAQCBkZWYgZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRlcnMocmVxdWVzdF9kYXRh LCByZXF1ZXN0X2FyZ3VtZW50cywKICAgICAgICAgcmV0dXJuIHJlcXVlc3RfYXJndW1lbnRzIG9y IHJlcXVlc3RfZm9ybV9kYXRhCiAKIAotQGJsdWVwcmludC5yb3V0ZSgKLSAgICAnL3F1ZXJ5X3Rv b2wvcHJlZmVyZW5jZXMvPGludDp0cmFuc19pZD4nLAotICAgIG1ldGhvZHM9WyJQVVQiXSwgZW5k cG9pbnQ9J3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMnCi0pCi1AbG9naW5fcmVxdWlyZWQKLWRlZiBw cmVmZXJlbmNlcyh0cmFuc19pZCk6Ci0gICAgIiIiCi0gICAgICAgIFRoaXMgbWV0aG9kIGlzIHVz ZWQgdG8gZ2V0L3B1dCBleHBsYWluIG9wdGlvbnMgZnJvbS90byBwcmVmZXJlbmNlcwotCi0gICAg ICAgIEFyZ3M6Ci0gICAgICAgICAgICB0cmFuc19pZDogdW5pcXVlIHRyYW5zYWN0aW9uIGlkCi0g ICAgIiIiCi0KLSAgICBkYXRhID0gTm9uZQotICAgIGlmIHJlcXVlc3QuZGF0YToKLSAgICAgICAg ZGF0YSA9IGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnKQotICAgIGVs c2U6Ci0gICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3Mgb3IgcmVxdWVzdC5mb3JtCi0gICAgZm9y IGssIHYgaW4gZGF0YS5pdGVtcygpOgotICAgICAgICB2ID0gYm9vbCh2KQotICAgICAgICBpZiBr ID09ICdleHBsYWluX3ZlcmJvc2UnOgotICAgICAgICAgICAgYmx1ZXByaW50LmV4cGxhaW5fdmVy Ym9zZS5zZXQodikKLSAgICAgICAgZWxpZiBrID09ICdleHBsYWluX2Nvc3RzJzoKLSAgICAgICAg ICAgIGJsdWVwcmludC5leHBsYWluX2Nvc3RzLnNldCh2KQotICAgICAgICBlbGlmIGsgPT0gJ2V4 cGxhaW5fYnVmZmVycyc6Ci0gICAgICAgICAgICBibHVlcHJpbnQuZXhwbGFpbl9idWZmZXJzLnNl dCh2KQotICAgICAgICBlbGlmIGsgPT0gJ2V4cGxhaW5fdGltaW5nJzoKLSAgICAgICAgICAgIGJs dWVwcmludC5leHBsYWluX3RpbWluZy5zZXQodikKLQotICAgIHJldHVybiBzdWNjZXNzX3JldHVy bigpCi0KLQogQGJsdWVwcmludC5yb3V0ZSgnL3BvbGwvPGludDp0cmFuc19pZD4nLCBtZXRob2Rz PVsiR0VUIl0sIGVuZHBvaW50PSdwb2xsJykKIEBsb2dpbl9yZXF1aXJlZAogZGVmIHBvbGwodHJh bnNfaWQpOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9q cy9zcWxlZGl0b3IuanMgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3Nx bGVkaXRvci5qcwppbmRleCBhODU2MDU3NC4uNGMyN2FlNTkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCkBAIC04MSw2ICs4MSw3 IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgdGhpcy5oYW5kbGVyLnByZWZl cmVuY2VzID0gdGhpcy5wcmVmZXJlbmNlczsKICAgICAgIHRoaXMuY29ubkludGVydmFsSWQgPSBu dWxsOwogICAgICAgdGhpcy5sYXlvdXQgPSBvcHRzLmxheW91dDsKKyAgICAgIHRoaXMuc2V0X3Nl cnZlcl92ZXJzaW9uKG9wdHMuc2VydmVyX3Zlcik7CiAgICAgfSwKIAogICAgIC8vIEJpbmQgYWxs IHRoZSBldmVudHMKQEAgLTEyMSw2ICsxMjIsOCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcs IFsKICAgICAgICdjbGljayAjYnRuLWV4cGxhaW4tY29zdHMnOiAnb25fZXhwbGFpbl9jb3N0cycs CiAgICAgICAnY2xpY2sgI2J0bi1leHBsYWluLWJ1ZmZlcnMnOiAnb25fZXhwbGFpbl9idWZmZXJz JywKICAgICAgICdjbGljayAjYnRuLWV4cGxhaW4tdGltaW5nJzogJ29uX2V4cGxhaW5fdGltaW5n JywKKyAgICAgICdjbGljayAjYnRuLWV4cGxhaW4tc3VtbWFyeSc6ICdvbl9leHBsYWluX3N1bW1h cnknLAorICAgICAgJ2NsaWNrICNidG4tZXhwbGFpbi1zZXR0aW5ncyc6ICdvbl9leHBsYWluX3Nl dHRpbmdzJywKICAgICAgICdjaGFuZ2UgLmxpbWl0JzogJ29uX2xpbWl0X2NoYW5nZScsCiAgICAg ICAna2V5ZG93bic6ICdrZXlBY3Rpb24nLAogICAgICAgLy8gQ29tbWVudCBvcHRpb25zCkBAIC0x NjYsNiArMTY5LDIyIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgZG9ja2Vy LmFkZFBhbmVsKCdub3RpZmljYXRpb25zJywgd2NEb2NrZXIuRE9DSy5TVEFDS0VELCBkYXRhX291 dHB1dF9wYW5lbCk7CiAgICAgfSwKIAorICAgIHNldF9zZXJ2ZXJfdmVyc2lvbjogZnVuY3Rpb24o c2VydmVyX3ZlcikgeworICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgc2VsZi5zZXJ2ZXJf dmVyID0gc2VydmVyX3ZlcjsKKworICAgICAgdGhpcy4kZWwuZmluZCgnKltkYXRhLW1pbi12ZXJd JykubWFwKGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgbWluVmVyID0gMCwKKyAgICAgICAgICBl bGUgPSAkKHRoaXMpOworICAgICAgICBtaW5WZXIgPSBwYXJzZUludChlbGUuYXR0cignZGF0YS1t aW4tdmVyJykpOworICAgICAgICBpZihtaW5WZXIgPiBzZWxmLnNlcnZlcl92ZXIpIHsKKyAgICAg ICAgICBlbGUuYWRkQ2xhc3MoJ2Qtbm9uZScpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg IGVsZS5yZW1vdmVDbGFzcygnZC1ub25lJyk7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgIH0s CisKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVuZGVyIHRoZSB0ZW1wbGF0ZS4K ICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgewogICAgICAgdmFyIHNlbGYgPSB0aGlzOwpAQCAtMTgz Myw2ICsxODUyLDMxIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgKTsKICAg ICB9LAogCisgICAgb25fZXhwbGFpbl9zdW1tYXJ5OiBmdW5jdGlvbihldikgeworICAgICAgdmFy IHNlbGYgPSB0aGlzOworCisgICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wb2dhdGlvbihldik7CisK KyAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2VyKAorICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6 YnV0dG9uOmV4cGxhaW4tc3VtbWFyeScsCisgICAgICAgIHNlbGYsCisgICAgICAgIHNlbGYuaGFu ZGxlcgorICAgICAgKTsKKyAgICB9LAorCisgICAgb25fZXhwbGFpbl9zZXR0aW5nczogZnVuY3Rp b24oZXYpIHsKKyAgICAgIHZhciBzZWxmID0gdGhpczsKKworICAgICAgdGhpcy5fc3RvcEV2ZW50 UHJvcG9nYXRpb24oZXYpOworCisgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKKyAgICAgICAg J3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLXNldHRpbmdzJywKKyAgICAgICAgc2Vs ZiwKKyAgICAgICAgc2VsZi5oYW5kbGVyCisgICAgICApOworICAgIH0sCisKKwogICAgIGRvX25v dF9jbG9zZV9tZW51OiBmdW5jdGlvbihldikgewogICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7 CiAgICAgfSwKQEAgLTIwOTUsNyArMjEzOSw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywg WwogICAgICAgICogaGVhZGVyIGFuZCBsb2FkaW5nIGljb24gYW5kIHN0YXJ0IGV4ZWN1dGlvbiBv ZiB0aGUgc3FsIHF1ZXJ5LgogICAgICAgICovCiAgICAgICBzdGFydDogZnVuY3Rpb24odHJhbnNJ ZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlLCBzY3JpcHRfdHlwZV91cmwsCi0gICAgICAg IHNlcnZlcl90eXBlLCB1cmxfcGFyYW1zLCBsYXlvdXQKKyAgICAgICAgc2VydmVyX3R5cGUsIHVy bF9wYXJhbXMsIGxheW91dCwgc2VydmVyX3ZlcgogICAgICAgKSB7CiAgICAgICAgIHZhciBzZWxm ID0gdGhpczsKIApAQCAtMjExOCw2ICsyMTYyLDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAgICAgICAgICAgZWw6IHNlbGYuY29udGFpbmVyLAogICAgICAgICAgIGhhbmRsZXI6IHNl bGYsCiAgICAgICAgICAgbGF5b3V0OiBsYXlvdXQsCisgICAgICAgICAgc2VydmVyX3Zlcjogc2Vy dmVyX3ZlciwKICAgICAgICAgfSk7CiAgICAgICAgIHNlbGYudHJhbnNJZCA9IHNlbGYuZ3JpZFZp ZXcudHJhbnNJZCA9IHRyYW5zSWQ7CiAKQEAgLTIyMTEsNiArMjI1Niw4IEBAIGRlZmluZSgndG9v bHMucXVlcnl0b29sJywgWwogICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0 b246ZXhwbGFpbi1jb3N0cycsIHNlbGYuX2V4cGxhaW5fY29zdHMsIHNlbGYpOwogICAgICAgICBz ZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhwbGFpbi1idWZmZXJzJywgc2VsZi5f ZXhwbGFpbl9idWZmZXJzLCBzZWxmKTsKICAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0 b3I6YnV0dG9uOmV4cGxhaW4tdGltaW5nJywgc2VsZi5fZXhwbGFpbl90aW1pbmcsIHNlbGYpOwor ICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhwbGFpbi1zdW1tYXJ5 Jywgc2VsZi5fZXhwbGFpbl9zdW1tYXJ5LCBzZWxmKTsKKyAgICAgICAgc2VsZi5vbigncGdhZG1p bi1zcWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tc2V0dGluZ3MnLCBzZWxmLl9leHBsYWluX3NldHRp bmdzLCBzZWxmKTsKICAgICAgICAgLy8gSW5kZW50YXRpb24gcmVsYXRlZAogICAgICAgICBzZWxm Lm9uKCdwZ2FkbWluLXNxbGVkaXRvcjppbmRlbnRfc2VsZWN0ZWRfY29kZScsIHNlbGYuX2luZGVu dF9zZWxlY3RlZF9jb2RlLCBzZWxmKTsKICAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0 b3I6dW5pbmRlbnRfc2VsZWN0ZWRfY29kZScsIHNlbGYuX3VuaW5kZW50X3NlbGVjdGVkX2NvZGUs IHNlbGYpOwpAQCAtMzg2NiwxMDggKzM5MTMsMzcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAKICAgICAgIH0sCiAKLSAgICAgIGV4cGxhaW5QcmVmZXJlbmNlVXBkYXRlOiAgZnVuY3Rp b24oc3ViSXRlbSwgZGF0YSwgY2FsbGVyKSB7Ci0gICAgICAgIGxldCBzZWxmID0gdGhpczsKLSAg ICAgICAgJC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9mb3IoJ3NxbGVkaXRvci5xdWVyeV90 b29sX3ByZWZlcmVuY2VzJywgewotICAgICAgICAgICAgJ3RyYW5zX2lkJzogc2VsZi50cmFuc0lk LAotICAgICAgICAgIH0pLAotICAgICAgICAgIG1ldGhvZDogJ1BVVCcsCi0gICAgICAgICAgY29u dGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09OLnN0cmlu Z2lmeShkYXRhKSwKLSAgICAgICAgfSkKLSAgICAgICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsK LSAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcyA9PSB1bmRlZmluZWQgfHwgIXJlcy5zdWNjZXNz KSB7Ci0gICAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9u cyBlcnJvcicpLAotICAgICAgICAgICAgICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxl IHNldHRpbmcgJShzdWJJdGVtKXMgb3B0aW9uIGluIGV4cGxhaW4uJywKLSAgICAgICAgICAgICAg ICAgIHtzdWJJdGVtIDogc3ViSXRlbX0pCi0gICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICB9 Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHNlbGYuY2FsbF9jYWNoZV9wcmVmZXJl bmNlcygpOwotICAgICAgICAgIH0pCi0gICAgICAgICAgLmZhaWwoZnVuY3Rpb24oZSkgewotICAg ICAgICAgICAgbGV0IG1zZyA9IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVy cm9yKAotICAgICAgICAgICAgICBwZ0FkbWluLCBzZWxmLCBlLCBjYWxsZXIsIFtdLCB0cnVlCi0g ICAgICAgICAgICApOwotICAgICAgICAgICAgYWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgnRXhwbGFp biBvcHRpb25zIGVycm9yJyksIG1zZyk7Ci0gICAgICAgICAgfSk7CisgICAgICBfdG9nZ2xlX2V4 cGxhaW5fb3B0aW9uOiBmdW5jdGlvbih0eXBlKSB7CisgICAgICAgIGxldCBzZWxlY3RvciA9IGAu ZXhwbGFpbi0ke3R5cGV9YDsKKyAgICAgICAgJChzZWxlY3RvcikudG9nZ2xlQ2xhc3MoJ3Zpc2li aWxpdHktaGlkZGVuJyk7CiAgICAgICB9LAogCiAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwg dG9nZ2xlICJ2ZXJib3NlIiBvcHRpb24gaW4gZXhwbGFpbgogICAgICAgX2V4cGxhaW5fdmVyYm9z ZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgbGV0IGV4 cGxhaW5fdmVyYm9zZSA9IGZhbHNlOwotICAgICAgICBpZiAoJCgnLmV4cGxhaW4tdmVyYm9zZScp Lmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0cnVlKSB7Ci0gICAgICAgICAgJCgn LmV4cGxhaW4tdmVyYm9zZScpLnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAg ICAgICAgIGV4cGxhaW5fdmVyYm9zZSA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAgJCgnLmV4cGxhaW4tdmVyYm9zZScpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwot ICAgICAgICAgIGV4cGxhaW5fdmVyYm9zZSA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAg c2VsZi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKLSAgICAgICAgICAndmVyYm9zZScsIHsKLSAg ICAgICAgICAgICdleHBsYWluX3ZlcmJvc2UnOiBleHBsYWluX3ZlcmJvc2UsCi0gICAgICAgICAg fSwgJ19leHBsYWluX3ZlcmJvc2UnCi0gICAgICAgICk7CisgICAgICAgIHRoaXMuX3RvZ2dsZV9l eHBsYWluX29wdGlvbigndmVyYm9zZScpOwogICAgICAgfSwKIAogICAgICAgLy8gVGhpcyBmdW5j dGlvbiB3aWxsIHRvZ2dsZSAiY29zdHMiIG9wdGlvbiBpbiBleHBsYWluCiAgICAgICBfZXhwbGFp bl9jb3N0czogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAg bGV0IGV4cGxhaW5fY29zdHMgPSBmYWxzZTsKLSAgICAgICAgaWYgKCQoJy5leHBsYWluLWNvc3Rz JykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykgPT09IHRydWUpIHsKLSAgICAgICAgICAk KCcuZXhwbGFpbi1jb3N0cycpLnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAg ICAgICAgIGV4cGxhaW5fY29zdHMgPSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg ICQoJy5leHBsYWluLWNvc3RzJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAg ICAgICAgZXhwbGFpbl9jb3N0cyA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgc2VsZi5l eHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKLSAgICAgICAgICAnY29zdHMnLCB7Ci0gICAgICAgICAg ICAnZXhwbGFpbl9jb3N0cyc6IGV4cGxhaW5fY29zdHMsCi0gICAgICAgICAgfSwgJ19leHBsYWlu X2Nvc3RzJwotICAgICAgICApOworICAgICAgICB0aGlzLl90b2dnbGVfZXhwbGFpbl9vcHRpb24o J2Nvc3RzJyk7CiAgICAgICB9LAogCiAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xl ICJidWZmZXJzIiBvcHRpb24gaW4gZXhwbGFpbgogICAgICAgX2V4cGxhaW5fYnVmZmVyczogZnVu Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgbGV0IGV4cGxhaW5f YnVmZmVycyA9IGZhbHNlOwotICAgICAgICBpZiAoJCgnLmV4cGxhaW4tYnVmZmVycycpLmhhc0Ns YXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0cnVlKSB7Ci0gICAgICAgICAgJCgnLmV4cGxh aW4tYnVmZmVycycpLnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAg IGV4cGxhaW5fYnVmZmVycyA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgJCgn LmV4cGxhaW4tYnVmZmVycycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAg ICAgIGV4cGxhaW5fYnVmZmVycyA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgc2VsZi5l eHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKLSAgICAgICAgICAnYnVmZmVycycsIHsKLSAgICAgICAg ICAgICdleHBsYWluX2J1ZmZlcnMnOiBleHBsYWluX2J1ZmZlcnMsCi0gICAgICAgICAgfSwgJ19l eHBsYWluX2J1ZmZlcnMnCi0gICAgICAgICk7CisgICAgICAgIHRoaXMuX3RvZ2dsZV9leHBsYWlu X29wdGlvbignYnVmZmVycycpOwogICAgICAgfSwKIAogICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3 aWxsIHRvZ2dsZSAidGltaW5nIiBvcHRpb24gaW4gZXhwbGFpbgogICAgICAgX2V4cGxhaW5fdGlt aW5nOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgICBsZXQg ZXhwbGFpbl90aW1pbmcgPSBmYWxzZTsKLSAgICAgICAgaWYgKCQoJy5leHBsYWluLXRpbWluZycp Lmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0cnVlKSB7Ci0gICAgICAgICAgJCgn LmV4cGxhaW4tdGltaW5nJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAg ICAgICAgZXhwbGFpbl90aW1pbmcgPSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg ICQoJy5leHBsYWluLXRpbWluZycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAg ICAgICAgIGV4cGxhaW5fdGltaW5nID0gZmFsc2U7Ci0gICAgICAgIH0KKyAgICAgICAgdGhpcy5f dG9nZ2xlX2V4cGxhaW5fb3B0aW9uKCd0aW1pbmcnKTsKKyAgICAgIH0sCiAKLSAgICAgICAgc2Vs Zi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKLSAgICAgICAgICAndGltaW5nJywgewotICAgICAg ICAgICAgJ2V4cGxhaW5fdGltaW5nJzogZXhwbGFpbl90aW1pbmcsCi0gICAgICAgICAgfSwgJ19l eHBsYWluX3RpbWluZycKLSAgICAgICAgKTsKKyAgICAgIF9leHBsYWluX3N1bW1hcnk6IGZ1bmN0 aW9uKCkgeworICAgICAgICB0aGlzLl90b2dnbGVfZXhwbGFpbl9vcHRpb24oJ3N1bW1hcnknKTsK KyAgICAgIH0sCisKKyAgICAgIF9leHBsYWluX3NldHRpbmdzOiBmdW5jdGlvbigpIHsKKyAgICAg ICAgdGhpcy5fdG9nZ2xlX2V4cGxhaW5fb3B0aW9uKCdzZXR0aW5ncycpOwogICAgICAgfSwKIAog ICAgICAgLyoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0 ZXMvc3FsZWRpdG9yL3NxbC8xMl9wbHVzL2V4cGxhaW5fcGxhbi5zcWwgYi93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9zcWwvMTJfcGx1cy9leHBsYWluX3Bs YW4uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4wYmFmY2FiNQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3Fs ZWRpdG9yL3NxbC8xMl9wbHVzL2V4cGxhaW5fcGxhbi5zcWwKQEAgLTAsMCArMSwxNyBAQAorRVhQ TEFJTiAoeyUgaWYgZm9ybWF0IC0lfQorICBGT1JNQVQge3sgZm9ybWF0LnVwcGVyKCkgfX0sCit7 JS0gZW5kaWYgJX17JSBpZiBhbmFseXplIGlzIGRlZmluZWQgLSV9CisgIEFOQUxZWkUge3sgYW5h bHl6ZSB9fSwKK3slLSBlbmRpZiAlfXslIGlmIHZlcmJvc2UgaXMgZGVmaW5lZCAtJX0KKyAgVkVS Qk9TRSB7eyB2ZXJib3NlIH19LAoreyUtIGVuZGlmICV9eyUgaWYgY29zdHMgaXMgZGVmaW5lZCAt JX0KKyAgQ09TVFMge3sgY29zdHMgfX0sCit7JS0gZW5kaWYgJX17JSBpZiB0aW1pbmcgaXMgZGVm aW5lZCAtJX0KKyAgVElNSU5HIHt7IHRpbWluZyB9fSwKK3slLSBlbmRpZiAlfXslIGlmIHN1bW1h cnkgaXMgZGVmaW5lZCAtJX0KKyAgU1VNTUFSWSB7eyBzdW1tYXJ5IH19LAoreyUtIGVuZGlmICV9 eyUgaWYgc2V0dGluZ3MgaXMgZGVmaW5lZCAtJX0KKyAgU0VUVElOR1Mge3sgc2V0dGluZ3MgfX0s Cit7JS0gZW5kaWYgJX17JSBpZiBidWZmZXJzIGlzIGRlZmluZWQgLSV9CisgIEJVRkZFUlMge3sg YnVmZmVycyB9fQoreyUtIGVuZGlmICV9KSB7eyBzcWwgfX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5IGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMucHkK aW5kZXggY2EwOWVhZWMuLjY0Yzc1NzU0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQorKysgYi93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQpAQCAtNjIs NiArNjIsMTggQEAgZGVmIFJlZ2lzdGVyUXVlcnlUb29sUHJlZmVyZW5jZXMoc2VsZik6CiAgICAg ICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0V4cGxhaW4nKQogICAgICkKIAorICAgIHNlbGYu ZXhwbGFpbl9zdW1tYXJ5ID0gc2VsZi5wcmVmZXJlbmNlLnJlZ2lzdGVyKAorICAgICAgICAnRXhw bGFpbicsICdleHBsYWluX3N1bW1hcnknLAorICAgICAgICBnZXR0ZXh0KCJTaG93IHN1bW1hcnk/ IiksICdib29sZWFuJywgRmFsc2UsCisgICAgICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0V4 cGxhaW4nKQorICAgICkKKworICAgIHNlbGYuZXhwbGFpbl9zZXR0aW5ncyA9IHNlbGYucHJlZmVy ZW5jZS5yZWdpc3RlcigKKyAgICAgICAgJ0V4cGxhaW4nLCAnZXhwbGFpbl9zZXR0aW5ncycsCisg ICAgICAgIGdldHRleHQoIlNob3cgc2V0dGluZ3M/IiksICdib29sZWFuJywgRmFsc2UsCisgICAg ICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0V4cGxhaW4nKQorICAgICkKKwogICAgIHNlbGYu YXV0b19jb21taXQgPSBzZWxmLnByZWZlcmVuY2UucmVnaXN0ZXIoCiAgICAgICAgICdPcHRpb25z JywgJ2F1dG9fY29tbWl0JywKICAgICAgICAgZ2V0dGV4dCgiQXV0byBjb21taXQ/IiksICdib29s ZWFuJywgVHJ1ZSwKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRp dG9yL3F1ZXJ5X3Rvb2xfYWN0aW9uc19zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlw dC9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zX3NwZWMuanMKaW5kZXggYjJiNGU4NzEuLjAw NWUxNWUzIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9x dWVyeV90b29sX2FjdGlvbnNfc3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnNfc3BlYy5qcwpAQCAtNTUsNiArNTUsOCBAQCBk ZXNjcmliZSgncXVlcnlUb29sQWN0aW9ucycsICgpID0+IHsKICAgICAgICAgc3B5T24ocXVlcnlU b29sQWN0aW9ucywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwogICAg ICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2J1ZmZlcnMnKS5hbmQucmV0dXJuVmFsdWUo ZmFsc2UpOwogICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3RpbWluZycpLmFuZC5y ZXR1cm5WYWx1ZShmYWxzZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc3Vt bWFyeScpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFj dGlvbnMsICdfc2V0dGluZ3MnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwogICAgICAgfSk7CiAK ICAgICAgIGl0KCdjYWxscyB0aGUgZXhlY3V0ZSBmdW5jdGlvbicsICgpID0+IHsKQEAgLTY5LDE5 ICs3MSwyMiBAQCBkZXNjcmliZSgncXVlcnlUb29sQWN0aW9ucycsICgpID0+IHsKICAgICAgICAg ICBidWZmZXJzOiBmYWxzZSwKICAgICAgICAgICB0aW1pbmc6IGZhbHNlLAogICAgICAgICAgIHN1 bW1hcnk6IGZhbHNlLAorICAgICAgICAgIHNldHRpbmdzOiBmYWxzZSwKICAgICAgICAgfTsKIAog ICAgICAgICBleHBlY3Qoc3FsRWRpdG9yQ29udHJvbGxlci5leGVjdXRlKS50b0hhdmVCZWVuQ2Fs bGVkV2l0aChleHBsYWluT2JqZWN0KTsKICAgICAgIH0pOwogICAgIH0pOwogCi0gICAgZGVzY3Jp YmUoJ3doZW4gdmVyYm9zZSBhbmQgY29zdHMgYW5kIGJ1ZmZlcnMgYW5kIHRpbWluZyBhcmUgYWxs IHNlbGVjdGVkJywgKCkgPT4geworICAgIGRlc2NyaWJlKCd3aGVuIGFsbCBvcHRpb25zIGFyZSBz ZWxlY3RlZCcsICgpID0+IHsKICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewogICAgICAgICBzZXRV cFNwaWVzKCcnLCAnJyk7CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfdmVyYm9z ZScpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKICAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9u cywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7CiAgICAgICAgIHNweU9u KHF1ZXJ5VG9vbEFjdGlvbnMsICdfYnVmZmVycycpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKICAg ICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ190aW1pbmcnKS5hbmQucmV0dXJuVmFsdWUo dHJ1ZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc3VtbWFyeScpLmFuZC5y ZXR1cm5WYWx1ZSh0cnVlKTsKKyAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19zZXR0 aW5ncycpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKICAgICAgIH0pOwogICAgICAgaXQoJ2NhbGxz IHRoZSBleGVjdXRlIGZ1bmN0aW9uJywgKCkgPT4gewogICAgICAgICBxdWVyeVRvb2xBY3Rpb25z LmV4cGxhaW5BbmFseXplKHNxbEVkaXRvckNvbnRyb2xsZXIpOwpAQCAtOTIsNyArOTcsOCBAQCBk ZXNjcmliZSgncXVlcnlUb29sQWN0aW9ucycsICgpID0+IHsKICAgICAgICAgICBjb3N0czogdHJ1 ZSwKICAgICAgICAgICBidWZmZXJzOiB0cnVlLAogICAgICAgICAgIHRpbWluZzogdHJ1ZSwKLSAg ICAgICAgICBzdW1tYXJ5OiBmYWxzZSwKKyAgICAgICAgICBzdW1tYXJ5OiB0cnVlLAorICAgICAg ICAgIHNldHRpbmdzOiB0cnVlLAogICAgICAgICB9OwogICAgICAgICBleHBlY3Qoc3FsRWRpdG9y Q29udHJvbGxlci5leGVjdXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsK ICAgICAgIH0pOwpAQCAtMTA1LDYgKzExMSw4IEBAIGRlc2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25z JywgKCkgPT4gewogICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2Nvc3RzRW5hYmxl ZCcpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlv bnMsICdfYnVmZmVycycpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKICAgICAgICAgc3B5T24ocXVl cnlUb29sQWN0aW9ucywgJ190aW1pbmcnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOworICAgICAg ICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3N1bW1hcnknKS5hbmQucmV0dXJuVmFsdWUoZmFs c2UpOworICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3NldHRpbmdzJykuYW5kLnJl dHVyblZhbHVlKGZhbHNlKTsKICAgICAgIH0pOwogICAgICAgaXQoJ2NhbGxzIHRoZSBleGVjdXRl IGZ1bmN0aW9uJywgKCkgPT4gewogICAgICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4cGxhaW5BbmFs eXplKHNxbEVkaXRvckNvbnRyb2xsZXIpOwpAQCAtMTE3LDYgKzEyNSw3IEBAIGRlc2NyaWJlKCdx dWVyeVRvb2xBY3Rpb25zJywgKCkgPT4gewogICAgICAgICAgIGJ1ZmZlcnM6IHRydWUsCiAgICAg ICAgICAgdGltaW5nOiBmYWxzZSwKICAgICAgICAgICBzdW1tYXJ5OiBmYWxzZSwKKyAgICAgICAg ICBzZXR0aW5nczogZmFsc2UsCiAgICAgICAgIH07CiAKICAgICAgICAgZXhwZWN0KHNxbEVkaXRv ckNvbnRyb2xsZXIuZXhlY3V0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwbGFpbk9iamVjdCk7 CkBAIC0xMzAsNiArMTM5LDggQEAgZGVzY3JpYmUoJ3F1ZXJ5VG9vbEFjdGlvbnMnLCAoKSA9PiB7 CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfY29zdHNFbmFibGVkJykuYW5kLnJl dHVyblZhbHVlKHRydWUpOwogICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2J1ZmZl cnMnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwogICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rp b25zLCAnX3RpbWluZycpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKKyAgICAgICAgc3B5T24ocXVl cnlUb29sQWN0aW9ucywgJ19zdW1tYXJ5JykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKKyAgICAg ICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19zZXR0aW5ncycpLmFuZC5yZXR1cm5WYWx1ZShm YWxzZSk7CiAgICAgICB9KTsKICAgICAgIGl0KCdjYWxscyB0aGUgZXhlY3V0ZSBmdW5jdGlvbics ICgpID0+IHsKICAgICAgICAgcXVlcnlUb29sQWN0aW9ucy5leHBsYWluQW5hbHl6ZShzcWxFZGl0 b3JDb250cm9sbGVyKTsKQEAgLTE0Miw2ICsxNTMsMzUgQEAgZGVzY3JpYmUoJ3F1ZXJ5VG9vbEFj dGlvbnMnLCAoKSA9PiB7CiAgICAgICAgICAgYnVmZmVyczogZmFsc2UsCiAgICAgICAgICAgdGlt aW5nOiB0cnVlLAogICAgICAgICAgIHN1bW1hcnk6IGZhbHNlLAorICAgICAgICAgIHNldHRpbmdz OiBmYWxzZSwKKyAgICAgICAgfTsKKworICAgICAgICBleHBlY3Qoc3FsRWRpdG9yQ29udHJvbGxl ci5leGVjdXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsKKyAgICAgIH0p OworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ3doZW4gYWxsIGFyZSBub3Qgc2VsZWN0ZWQgZXhj ZXB0IHN1bW1hcnkgYW5kIHNldHRpbmdzJywgKCkgPT4geworICAgICAgYmVmb3JlRWFjaCgoKSA9 PiB7CisgICAgICAgIHNldFVwU3BpZXMoJycsICcnKTsKKyAgICAgICAgc3B5T24ocXVlcnlUb29s QWN0aW9ucywgJ192ZXJib3NlJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKKyAgICAgICAgc3B5 T24ocXVlcnlUb29sQWN0aW9ucywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0dXJuVmFsdWUoZmFs c2UpOworICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2J1ZmZlcnMnKS5hbmQucmV0 dXJuVmFsdWUoZmFsc2UpOworICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3RpbWlu ZycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlv bnMsICdfc3VtbWFyeScpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKKyAgICAgICAgc3B5T24ocXVl cnlUb29sQWN0aW9ucywgJ19zZXR0aW5ncycpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKKyAgICAg IH0pOworICAgICAgaXQoJ2NhbGxzIHRoZSBleGVjdXRlIGZ1bmN0aW9uJywgKCkgPT4geworICAg ICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4cGxhaW5BbmFseXplKHNxbEVkaXRvckNvbnRyb2xsZXIp OworCisgICAgICAgIGNvbnN0IGV4cGxhaW5PYmplY3QgPSB7CisgICAgICAgICAgZm9ybWF0OiAn anNvbicsCisgICAgICAgICAgYW5hbHl6ZTogdHJ1ZSwKKyAgICAgICAgICB2ZXJib3NlOiBmYWxz ZSwKKyAgICAgICAgICBjb3N0czogZmFsc2UsCisgICAgICAgICAgYnVmZmVyczogZmFsc2UsCisg ICAgICAgICAgdGltaW5nOiBmYWxzZSwKKyAgICAgICAgICBzdW1tYXJ5OiB0cnVlLAorICAgICAg ICAgIHNldHRpbmdzOiB0cnVlLAogICAgICAgICB9OwogCiAgICAgICAgIGV4cGVjdChzcWxFZGl0 b3JDb250cm9sbGVyLmV4ZWN1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGV4cGxhaW5PYmplY3Qp OwpAQCAtMTU1LDYgKzE5NSwxMCBAQCBkZXNjcmliZSgncXVlcnlUb29sQWN0aW9ucycsICgpID0+ IHsKICAgICAgICAgc2V0VXBTcGllcygnJywgJycpOwogICAgICAgICBzcHlPbihxdWVyeVRvb2xB Y3Rpb25zLCAnX3ZlcmJvc2UnKS5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7CiAgICAgICAgIHNweU9u KHF1ZXJ5VG9vbEFjdGlvbnMsICdfY29zdHNFbmFibGVkJykuYW5kLnJldHVyblZhbHVlKHRydWUp OworICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3N1bW1hcnknKS5hbmQucmV0dXJu VmFsdWUoZmFsc2UpOworICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3NldHRpbmdz JykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKKyAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9u cywgJ19zdW1tYXJ5JykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKKyAgICAgICAgc3B5T24ocXVl cnlUb29sQWN0aW9ucywgJ19zZXR0aW5ncycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CiAgICAg ICB9KTsKIAogICAgICAgaXQoJ2NhbGxzIHRoZSBleGVjdXRlIGZ1bmN0aW9uJywgKCkgPT4gewpA QCAtMTY3LDYgKzIxMSw3IEBAIGRlc2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25zJywgKCkgPT4gewog ICAgICAgICAgIGJ1ZmZlcnM6IGZhbHNlLAogICAgICAgICAgIHRpbWluZzogZmFsc2UsCiAgICAg ICAgICAgc3VtbWFyeTogZmFsc2UsCisgICAgICAgICAgc2V0dGluZ3M6IGZhbHNlLAogICAgICAg ICB9OwogICAgICAgICBleHBlY3Qoc3FsRWRpdG9yQ29udHJvbGxlci5leGVjdXRlKS50b0hhdmVC ZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsKICAgICAgIH0pOwpAQCAtMTg5LDYgKzIzNCw3 IEBAIGRlc2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25zJywgKCkgPT4gewogICAgICAgICAgIGJ1ZmZl cnM6IGZhbHNlLAogICAgICAgICAgIHRpbWluZzogZmFsc2UsCiAgICAgICAgICAgc3VtbWFyeTog ZmFsc2UsCisgICAgICAgICAgc2V0dGluZ3M6IGZhbHNlLAogICAgICAgICB9OwogCiAgICAgICAg IGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLmV4ZWN1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRo KGV4cGxhaW5PYmplY3QpOwpAQCAtMjEyLDYgKzI1OCw3IEBAIGRlc2NyaWJlKCdxdWVyeVRvb2xB Y3Rpb25zJywgKCkgPT4gewogICAgICAgICAgIGJ1ZmZlcnM6IGZhbHNlLAogICAgICAgICAgIHRp bWluZzogZmFsc2UsCiAgICAgICAgICAgc3VtbWFyeTogZmFsc2UsCisgICAgICAgICAgc2V0dGlu Z3M6IGZhbHNlLAogICAgICAgICB9OwogICAgICAgICBleHBlY3Qoc3FsRWRpdG9yQ29udHJvbGxl ci5leGVjdXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsKICAgICAgIH0p Owo= --000000000000c8e8c3058c38c67b--