Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kKapL-0000Xc-AG for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Sep 2020 05:26:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kKapI-0007k2-5A for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Sep 2020 05:26:52 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kKapH-0007jf-MX for pgadmin-hackers@lists.postgresql.org; Tue, 22 Sep 2020 05:26:51 +0000 Received: from mail-yb1-xb31.google.com ([2607:f8b0:4864:20::b31]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kKap9-0005f8-6c for pgadmin-hackers@postgresql.org; Tue, 22 Sep 2020 05:26:50 +0000 Received: by mail-yb1-xb31.google.com with SMTP id k2so11983422ybp.7 for ; Mon, 21 Sep 2020 22:26:42 -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=AinMhsv1XSuWVCxU+KWL4GBmdC6YispKxV3jowI5eoI=; b=sM8Qn45HbBvotCapTN1XyyyW3dkmpLwyqDWcqrwMtJURHf59Sj8cIdb0430D4AB8V1 tDAqTCTRF6tLKglLtL+lWCBiOAKvRqqgEJGhyPKhRc+yy1VvGIKj9YJEOMNpxnm3aoDs pZGfkk6id/o7TTwi1/HUosf3VTyrY/GZXBH91BxbeQ5t3a0tTMz5eyLhRunccVWFOWZh PCOAImp7NcN+kN+JnxhpKNvxwk8IYkzsJqtyvzco4cYONuQcHgxrn6GY6qJPN8r/tKRZ RzOLP64lA8acCA1SJjSruJGoJjaHm8xq6ha/5+WVegLquv1LTvLssYOgqzS1KyGGVUlV PHaA== 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=AinMhsv1XSuWVCxU+KWL4GBmdC6YispKxV3jowI5eoI=; b=YmKTL6v9g4VGyQa/tPpF6azF9vnaAFd+aiRugI73phrxQpCwhNkT5YeGcyFcAGwpmR Xilwhj1qX16IK8Scb0So2I6fDZQZlpCWZKPmSibPueoPXl+L0obxrylCY4SVZNvzPmJu 0UjPyv7ZI0+zU2h1xu2NhB+KeGTZunTIz0EsLx6spoQ+NNqeyo1gX7CDod0m5cKgJ+E/ 4tF6+IkQvkVMF1itC0gKSX7HLreLrkx86n9ZBHe0vPjxmiaUDXScQTEGVAh/mxrPcMn5 rjKXBIoUGaUL0fnzq9o+ELWmepN3x641Y1iTmUq6FY2VqEqO0MP4LAqUlokvEQFuSgkB vbCA== X-Gm-Message-State: AOAM530nSfZniSPOFKgljfAWLmZEfF8TXpqNR+9YTL5rgIqcaWg9GX8+ kVVESMqQts3/DeVvlURATgRALMUrsjO/PTbOAFLm54Wna1Er7kC5uc/uKO7s6QacYAkxt/A1h+Q pcUsaXEU5wbaUJkwG5+nX+FvE+JHZrVaih928gO0/zy8d1maNki08tSeuEtDG1HDB5bmQDXOQ13 lLa7ZWbJOxrXJql560eD7GCuCOx41MTvvZ2cudiRHZtR6D35bM5oKE+R/Fw0Ggf6pqjw== X-Google-Smtp-Source: ABdhPJyGe+qNQrzpA+NyVQ0BnxW4n7DvWroBuhT+IN147VnKxa/deljMGyJUnGTJ/vChCsvj4SAnI11sXtlRXpRLsWQ= X-Received: by 2002:a25:8e05:: with SMTP id p5mr4657221ybl.370.1600752400788; Mon, 21 Sep 2020 22:26:40 -0700 (PDT) MIME-Version: 1.0 From: Nikhil Mohite Date: Tue, 22 Sep 2020 10:56:30 +0530 Message-ID: Subject: [pgAdmin][RM5330]: [Code Coverage] Improve API test cases for Functions To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000392d2905afe03684" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000392d2905afe03684 Content-Type: multipart/alternative; boundary="000000000000392d2805afe03682" --000000000000392d2805afe03682 Content-Type: text/plain; charset="UTF-8" Hi Team, I have added few more test cases for the "Functions" module as per RM-5330 PFA patch. -- *Thanks & Regards,* *Nikhil Mohite* *Software Engineer.* *EDB Postgres* *Mob.No: +91-7798364578.* --000000000000392d2805afe03682 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Team,

I have added few more test cas= es for the "Functions" module as per RM-5330
PFA patch.

--
Thanks & Regards,
Nikhil Mohite
Software Engineer.
Mob.No= : +91-7798364578.
--000000000000392d2805afe03682-- --000000000000392d2905afe03684 Content-Type: application/octet-stream; name="RM_5330_v1.patch" Content-Disposition: attachment; filename="RM_5330_v1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfdil3kk0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2FkZC5weQppbmRleCAyZWI2MTM5Li43MzAx Y2M4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fYWRkLnB5CkBAIC05LDIzICs5 LDg1IEBACiAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAotCitmcm9tIHVuaXR0ZXN0Lm1vY2sg aW1wb3J0IHBhdGNoCiAKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwog ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCitmcm9tIC4uIGltcG9ydCBGdW5jdGlv blZpZXcKIAogCiBjbGFzcyBGdW5jdGlvbkFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5v ZGUuICIiIgogICAgIHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3IgZnVuY3Rpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiBOb2RlIFVSTCcs IGRpY3QoCi0gICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nKSkKKyAgICAg ICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywKKyAgICAgICAgICAg IGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAg ICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9j a2luZ19yZXF1aXJlZD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAg ICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNf Y29kZSI6IDIwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICks CisgICAgICAgICgnQ3JlYXRlIEZ1bmN0aW9uIEdldCBTcWwgRmFpbCcsIGRpY3QoCisgICAgICAg ICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAgICAgICAgaXNfcG9zaXRp dmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAg ICAgICAgIGlzX21vY2tfZnVuY3Rpb249VHJ1ZSwKKyAgICAgICAgICAgIG1vY2tfZGF0YT17Cisg ICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAnX2dldF9zcWwnLAorICAgICAgICAgICAg ICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnJykiCisgICAgICAgICAgICB9LAorICAgICAg ICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAw CisgICAgICAgICAgICB9CisgICAgICAgICkpLAorICAgICAgICAoJ0NyZWF0ZSBGdW5jdGlvbiBH ZXQgU3FsIEV4ZWN1dGlvbiBGYWlsJywgZGljdCgKKyAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIv ZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAg ICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgbW9ja19kYXRhPXsK KyAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5w c3ljb3BnMi4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29ubmVjdGlvbi5D b25uZWN0aW9uLmV4ZWN1dGVfc2NhbGFyIiwKKyAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVl IjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiRXJyb3Igd2hpbGUgY3JlYXRlIG5ldyBmdW5jdGlvbiBnZXQgc3FsLicp IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAg ICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAgICAgfQorICAgICAgICApKSwKKyAg ICAgICAgKCdDcmVhdGUgRnVuY3Rpb24gRmFpbCcsIGRpY3QoCisgICAgICAgICAgICB1cmw9Jy9i cm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxz ZSwKKyAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgIG1vY2tf ZGF0YT17CisgICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5k cml2ZXIucHN5Y29wZzIuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5l Y3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAgICAgICAgICJyZXR1cm5f dmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciAiCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJFcnJvciB3aGlsZSBjcmVhdGUgbmV3IGZ1bmN0aW9uLicpIgor ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAg ICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAgICAgfQorICAgICAgICApKSwKICAgICBd CiAKKyAgICBkZWYgY3JlYXRlX2Z1bmN0aW9uKHNlbGYsIGRhdGEpOgorICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1h X2lkKSArICcvJywKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHJldHVybiBy ZXNwb25zZQorCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0 aW9uIHdpbGwgYWRkIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKICAgICAgICAgc3Vw ZXIoRnVuY3Rpb25BZGRUZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgpCkBAIC04MiwxNCArMTQ0LDIz IEBAIGNsYXNzIEZ1bmN0aW9uQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogCiAgICAg ICAgICAgICBkYXRhWydwcm9zdXBwb3J0ZnVjJ10gPSBzdXBwb3J0X2Z1bmN0aW9uX25hbWUKIAot ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwotICAgICAgICAgICAgJy8nICsg c3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKLSAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKLSAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwotICAgICAgICApCisg ICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi5jcmVhdGVfZnVuY3Rpb24oZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlm IGhhc2F0dHIoc2VsZiwgJ2lzX21vY2tfZnVuY3Rpb24nKToKKyAgICAgICAgICAgICAgICBkZWYg X2dldF9zcWwoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFs c2UsICcnCisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaC5vYmplY3QoRnVuY3Rpb25WaWV3LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubW9ja19kYXRhWyJmdW5jdGlv bl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3PV9nZXRfc3Fs KToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9mdW5jdGlvbihk YXRhKQorCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2Vs Zi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAg ICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuY3JlYXRlX2Z1bmN0aW9uKGRhdGEpCiAK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXSkKICAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQogICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZGVsZXRlLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZGVsZXRlLnB5CmluZGV4IDQyNDRhYWEuLjhmYTUxNjEg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2RlbGV0ZS5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9kZWxldGUucHkKQEAgLTcsNyAr Nyw5IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCitpbXBvcnQganNvbgogaW1wb3J0IHV1aWQK K2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKIAogZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAog ICAgIGRhdGFiYXNlX3V0aWxzCkBAIC0yMCwxMCArMjIsODAgQEAgY2xhc3MgRnVuY3Rpb25EZWxl dGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBk ZWxldGUgdGhlIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKICAgICBzY2VuYXJpb3Mg PSBbCiAgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZ1bmN0aW9uIG5vZGUuCi0g ICAgICAgICgnRmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLAotICAgICAgICAgZGljdCh1cmw9Jy9i cm93c2VyL2Z1bmN0aW9uL29iai8nKSkKKyAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiBOb2RlIFVS TCcsIGRpY3QoCisgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAg ICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgbW9ja2luZ19yZXF1 aXJlZD1GYWxzZSwKKyAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgIGV4cGVj dGVkX2RhdGE9eworICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgICAg ICAgfQorICAgICAgICApKSwKKyAgICAgICAgKCdEZWxldGUgRnVuY3Rpb24gd2l0aG91dCBmdW5j dGlvbiBpZC4nLCBkaWN0KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmov JywKKyAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgIG1vY2tp bmdfcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICB3aXRob3V0X2Z1bmN0aW9uc19pZD1UcnVl LAorICAgICAgICAgICAgdGVzdF9kYXRhPXt9LAorICAgICAgICAgICAgbW9ja19kYXRhPXt9LAor ICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICAgICAgICB9CisgICAgICAgICkpLAorICAgICAgICAoJ0RlbGV0ZSBGdW5j dGlvbiBGYWlsJywgZGljdCgKKyAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2Jq LycsCisgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgbW9j a2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgd2l0aG91dF9mdW5jdGlvbnNfaWQ9RmFs c2UsCisgICAgICAgICAgICB0ZXN0X2RhdGE9e30sCisgICAgICAgICAgICBtb2NrX2RhdGE9ewor ICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBz eWNvcGcyLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25uZWN0aW9uLkNv bm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5IiwKKyAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVl IjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiRXJyb3Igd2hpbGUgZGVsZXRlIGZ1bmN0aW9uLicpIgorICAgICAgICAg ICAgfSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICJzdGF0 dXNfY29kZSI6IDUwMAorICAgICAgICAgICAgfQorICAgICAgICApKSwKKyAgICAgICAgKCdEZWxl dGUgRnVuY3Rpb24gd2l0aCBubyBvYmplY3QgZm91bmQnLCBkaWN0KAorICAgICAgICAgICAgdXJs PScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9 VHJ1ZSwKKyAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgIG1v Y2tfZW1wdHlfcmVzdWx0PVRydWUsCisgICAgICAgICAgICB0ZXN0X2RhdGE9e30sCisgICAgICAg ICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRt aW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5IiwKKyAgICAgICAgICAg ICAgICAicmV0dXJuX3ZhbHVlIjogIihUcnVlLCB7J3Jvd3MnOiBbXX0pIgorICAgICAgICAgICAg fSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICJzdGF0dXNf Y29kZSI6IDIwMAorICAgICAgICAgICAgfQorICAgICAgICApKSwKICAgICBdCiAKKyAgICBkZWYg ZGVsZXRlX2Z1bmN0aW9uKHNlbGYsIGZ1bmNfaWQpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYs ICd3aXRob3V0X2Z1bmN0aW9uc19pZCcpOgorCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCksCisgICAgICAg ICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRhKSwKKyAgICAgICAgICAgICAg ICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgIHN0cihz ZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArIHN0cihmdW5jX2lkKSwKKyAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwv anNvbicKKyAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKICAgICBkZWYg cnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgZnVu Y3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCiAgICAgICAgIHN1cGVyKEZ1bmN0aW9uRGVs ZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKQEAgLTM0LDE0ICsxMDYsMjUgQEAgY2xhc3MgRnVu Y3Rpb25EZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUpCiAKICAg ICAgICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwot ICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxm LnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCksCi0gICAgICAgICAgICBjb250ZW50X3R5 cGU9J2h0bWwvanNvbicKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoK KyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3dpdGhvdXRfZnVuY3Rpb25zX2lkJyk6Cisg ICAgICAgICAgICAgICAgZnVuY19pZCA9ICcnCisgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2Rh dGEgPSB7CisgICAgICAgICAgICAgICAgICAgICJpZHMiOiBbZnVuY3Rpb25faW5mb1swXV0KKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdtb2NrX2VtcHR5 X3Jlc3VsdCcpIGFuZCBzZWxmLm1vY2tfZW1wdHlfcmVzdWx0OgorICAgICAgICAgICAgICAgIHdp dGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFs dWUiXSkpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX2Z1bmN0 aW9uKGZ1bmNfaWQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi5kZWxldGVfZnVuY3Rpb24oZnVuY19pZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAg ICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92 YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmRlbGV0ZV9mdW5jdGlv bihmdW5jX2lkKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNf Y29kZSddKQogICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCiAgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2dl dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2dldC5weQppbmRleCAxN2Jh MTE1Li4xMjRjMjcyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlv bl9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0LnB5CkBA IC04LDYgKzgsNyBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogaW1wb3J0IHV1aWQKK2Zyb20gdW5p dHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKIAogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFi YXNlX3V0aWxzCkBAIC0yMSwxMCArMjIsNjIgQEAgY2xhc3MgRnVuY3Rpb25HZXRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCiAgICAg c2NlbmFyaW9zID0gWwogICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmdW5jdGlv biBub2RlLgotICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywKLSAgICAgICAgIGRp Y3QodXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJykpCisgICAgICAgICgKKyAgICAgICAgICAg ICdGZXRjaCBGdW5jdGlvbiBOb2RlIFVSTCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAgICAgICAgaXNf cG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9RmFs c2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAgICAgIGV4cGVj dGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICApCisgICAgICAgICksCisgICAgICAgICgKKyAgICAg ICAgICAgICdGZXRjaCBGdW5jdGlvbiBwcm9wZXJ0aWVzIGZhaWwuJywKKyAgICAgICAgICAgIGRp Y3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAgICAg ICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tp bmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAg ICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3Bn Mi4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5lY3Rpb24uQ29u bmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVl IjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIGdldCBwcm9wZXJ0aWVzLicpIgorICAgICAg ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICkKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9u IHByb3BlcnRpZXMgbm8gZnVuY3Rpb24gZm91bmQuJywKKyAgICAgICAgICAgIGRpY3QoCisgICAg ICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAgICAgICAgICAgICAg ICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWly ZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAg ICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi4iCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5lY3Rpb24uQ29ubmVjdGlvbi5l eGVjdXRlX2RpY3QiLAorICAgICAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxz ZSwgeydyb3dzJzogW119KSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGV4 cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICApCisgICAgICAgICkKICAgICBdCiAKKyAgICBk ZWYgZ2V0X3Byb3BlcnRpZXMoc2VsZiwgdHJpZ2dlcl9mdW5jX2lkKToKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIodHJpZ2dlcl9mdW5jX2lkKSwKKyAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisK ICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBk ZWxldGUgZnVuY3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCiAgICAgICAgIHN1cGVyKEZ1 bmN0aW9uR2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKQEAgLTM1LDEzICs4OCwxNSBAQCBjbGFz cyBGdW5jdGlvbkdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKIAog ICAgICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBdCi0gICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCi0gICAgICAgICAgICBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHRyaWdnZXJfZnVuY19pZCksCi0gICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90 ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9wcm9wZXJ0aWVzKHRyaWdnZXJf ZnVuY19pZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2Nr X2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3Zh bHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLmdldF9wcm9wZXJ0aWVzKHRyaWdnZXJfZnVuY19pZCkKKworICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXSkKICAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQogICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfbGFuZ3VhZ2VzLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0X2xhbmd1YWdlcy5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDNiNjYzCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0X2xhbmd1YWdlcy5weQpAQCAtMCww ICsxLDgwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0 IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMg YXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRp bHMKK2Zyb20gLi4gaW1wb3J0IEZ1bmN0aW9uVmlldworCisKK2NsYXNzIEZ1bmN0aW9uR2V0TGFu Z3VhZ2VzVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIGdl dCBsYW5ndWFnZXMuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKAorICAgICAgICAg ICAgJ0ZldGNoIEZ1bmN0aW9uIGxhbmd1YWdlcycsCisgICAgICAgICAgICBkaWN0KAorICAgICAg ICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vZ2V0X2xhbmd1YWdlcy8nLAorICAgICAg ICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NraW5n X3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAg ICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAg ICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIGxhbmd1YWdlcyBmYWlsJywKKyAg ICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9n ZXRfbGFuZ3VhZ2VzLycsCisgICAgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwK KyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAg bW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAncGdhZG1p bi51dGlscy5kcml2ZXIucHN5Y29wZzIuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0JywKKyAgICAgICAgICAg ICAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVy IEVycm9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGlsZSBnZXQg bGFuZ3VhZ2VzIGZvciBmdW5jdGlvbnMuJykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2Rl IjogNTAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAg IF0KKworICAgIGRlZiBnZXRfbGFuZ3VhZ2VzKHNlbGYpOgorICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0 cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAg ICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgZnVuY3Rpb24gbm9kZXMgdW5kZXIgc2NoZW1hLiAi IiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25HZXRMYW5ndWFnZXNUZXN0Q2FzZSwgc2VsZikucnVu VGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAg ICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu Z2V0X2xhbmd1YWdlcygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNl bGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfbGFuZ3VhZ2VzKCkKKworICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXSkKKyAgICAgICAgIyBEaXNjb25u ZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0X21zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVz dHMvdGVzdF9mdW5jdGlvbl9nZXRfbXNxbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41YTJkZWMyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rl c3RfZnVuY3Rpb25fZ2V0X21zcWwucHkKQEAgLTAsMCArMSwyMjQgQEAKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2Nr IGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMK K2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwor ZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworZnJvbSB1cmxsaWIucGFyc2UgaW1w b3J0IHVybGVuY29kZQorZnJvbSAuLiBpbXBvcnQgRnVuY3Rpb25WaWV3CisKKworY2xhc3MgRnVu Y3Rpb25HZXRtc3FsVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNs YXNzIGdldCBTUUwuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKAorICAgICAgICAg ICAgJ0ZldGNoIEZ1bmN0aW9uIG1zcWwnLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAg ICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL21zcWwvJywKKyAgICAgICAgICAgICAgICBpc19w b3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxz ZSwKKyAgICAgICAgICAgICAgICBpc19tb2NrX2xvY2FsX2Z1bmN0aW9uPUZhbHNlLAorICAgICAg ICAgICAgICAgIHRlc3RfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlRlc3Qg RnVuY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAiZnVuY293bmVyIjogInBvc3RncmVzIiwK KyAgICAgICAgICAgICAgICAgICAgInByb25hbWVzcGFjZSI6IDIyMDAsCisgICAgICAgICAgICAg ICAgICAgICJwcm9yZXR0eXBlbmFtZSI6ICJjaGFyYWN0ZXIgdmFyeWluZyIsCisgICAgICAgICAg ICAgICAgICAgICJsYW5uYW1lIjogInNxbCIsCisgICAgICAgICAgICAgICAgICAgICJhcmd1bWVu dHMiOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgInByb3NyYyI6ICJzZWxlY3QgJzEnIiwKKyAg ICAgICAgICAgICAgICAgICAgInByb2JpbiI6ICIkbGliZGlyLyIsCisgICAgICAgICAgICAgICAg ICAgICJ2YXJpYWJsZXMiOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgInNlY2xhYmVscyI6IFtd LAorICAgICAgICAgICAgICAgICAgICAiYWNsIjogW10KKyAgICAgICAgICAgICAgICB9LAorICAg ICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAg J0ZldGNoIEZ1bmN0aW9uIG1zcWwgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbXNxbC8nLAorICAgICAgICAgICAgICAgIGlz X3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1U cnVlLAorICAgICAgICAgICAgICAgIGlzX21vY2tfbG9jYWxfZnVuY3Rpb249VHJ1ZSwKKyAgICAg ICAgICAgICAgICB0ZXN0X2RhdGE9eworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJUZXN0 IEZ1bmN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgImZ1bmNvd25lciI6ICJwb3N0Z3JlcyIs CisgICAgICAgICAgICAgICAgICAgICJwcm9uYW1lc3BhY2UiOiAyMjAwLAorICAgICAgICAgICAg ICAgICAgICAicHJvcmV0dHlwZW5hbWUiOiAiY2hhcmFjdGVyIHZhcnlpbmciLAorICAgICAgICAg ICAgICAgICAgICAibGFubmFtZSI6ICJzcWwiLAorICAgICAgICAgICAgICAgICAgICAiYXJndW1l bnRzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJwcm9zcmMiOiAic2VsZWN0ICcxJyIsCisg ICAgICAgICAgICAgICAgICAgICJwcm9iaW4iOiAiJGxpYmRpci8iLAorICAgICAgICAgICAgICAg ICAgICAidmFyaWFibGVzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJzZWNsYWJlbHMiOiBb XSwKKyAgICAgICAgICAgICAgICAgICAgImFjbCI6IFtdCisgICAgICAgICAgICAgICAgfSwKKyAg ICAgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25f bmFtZSI6ICdfZ2V0X3NxbCcsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAi KEZhbHNlLCAnJykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3Rl ZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAg ICAgICAgJ0ZldGNoIEZ1bmN0aW9uIG1zcWwgd2l0aCBmdW5jdGlvbiBpZCcsCisgICAgICAgICAg ICBkaWN0KAorICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbXNxbC8nLAor ICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBt b2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgd2l0aF9mdW5jdGlvbl9pZD1U cnVlLAorICAgICAgICAgICAgICAgIGlzX21vY2tfbG9jYWxfZnVuY3Rpb249VHJ1ZSwKKyAgICAg ICAgICAgICAgICB0ZXN0X2RhdGE9eworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJUZXN0 IEZ1bmN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgImZ1bmNvd25lciI6ICJwb3N0Z3JlcyIs CisgICAgICAgICAgICAgICAgICAgICJwcm9uYW1lc3BhY2UiOiAyMjAwLAorICAgICAgICAgICAg ICAgICAgICAicHJvcmV0dHlwZW5hbWUiOiAiY2hhcmFjdGVyIHZhcnlpbmciLAorICAgICAgICAg ICAgICAgICAgICAibGFubmFtZSI6ICJzcWwiLAorICAgICAgICAgICAgICAgICAgICAiYXJndW1l bnRzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJwcm9zcmMiOiAic2VsZWN0ICcxJyIsCisg ICAgICAgICAgICAgICAgICAgICJwcm9iaW4iOiAiJGxpYmRpci8iLAorICAgICAgICAgICAgICAg ICAgICAidmFyaWFibGVzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJzZWNsYWJlbHMiOiBb XSwKKyAgICAgICAgICAgICAgICAgICAgImFjbCI6IFtdCisgICAgICAgICAgICAgICAgfSwKKyAg ICAgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25f bmFtZSI6ICdfZ2V0X3NxbCcsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAi KEZhbHNlLCAnJykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3Rl ZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAg ICAgICAgJ0ZldGNoIEZ1bmN0aW9uIG1zcWwgZmV0Y2ggcHJvcGVydGllcyBmYWlsJywKKyAgICAg ICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9tc3Fs LycsCisgICAgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAg ICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgd2l0aF9mdW5jdGlv bl9pZD1UcnVlLAorICAgICAgICAgICAgICAgIGlzX21vY2tfbG9jYWxfZnVuY3Rpb249RmFsc2Us CisgICAgICAgICAgICAgICAgdGVzdF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUi OiAiVGVzdCBGdW5jdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICJmdW5jb3duZXIiOiAicG9z dGdyZXMiLAorICAgICAgICAgICAgICAgICAgICAicHJvbmFtZXNwYWNlIjogMjIwMCwKKyAgICAg ICAgICAgICAgICAgICAgInByb3JldHR5cGVuYW1lIjogImNoYXJhY3RlciB2YXJ5aW5nIiwKKyAg ICAgICAgICAgICAgICAgICAgImxhbm5hbWUiOiAic3FsIiwKKyAgICAgICAgICAgICAgICAgICAg ImFyZ3VtZW50cyI6IFtdLAorICAgICAgICAgICAgICAgICAgICAicHJvc3JjIjogInNlbGVjdCAn MSciLAorICAgICAgICAgICAgICAgICAgICAicHJvYmluIjogIiRsaWJkaXIvIiwKKyAgICAgICAg ICAgICAgICAgICAgInZhcmlhYmxlcyI6IFtdLAorICAgICAgICAgICAgICAgICAgICAic2VjbGFi ZWxzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJhY2wiOiBbXQorICAgICAgICAgICAgICAg IH0sCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgImZ1 bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0 ZV9kaWN0IiwKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdN b2NrZWQgSW50ZXJuYWwgU2VydmVyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJFcnJvciB3aGlsZSBnZXQgbXNxIGZldGNoIHByb3BlcnRpZXMuJykiCisgICAgICAgICAg ICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAg ICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg KQorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gbXNx bCBmZXRjaCBwcm9wZXJ0aWVzIG5vdCBmb3VuZCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAg ICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbXNxbC8nLAorICAgICAgICAgICAgICAg IGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJl ZD1UcnVlLAorICAgICAgICAgICAgICAgIHdpdGhfZnVuY3Rpb25faWQ9VHJ1ZSwKKyAgICAgICAg ICAgICAgICBpc19tb2NrX2xvY2FsX2Z1bmN0aW9uPUZhbHNlLAorICAgICAgICAgICAgICAgIHRl c3RfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlRlc3QgRnVuY3Rpb24iLAor ICAgICAgICAgICAgICAgICAgICAiZnVuY293bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgICAg ICAgICAgICAgInByb25hbWVzcGFjZSI6IDIyMDAsCisgICAgICAgICAgICAgICAgICAgICJwcm9y ZXR0eXBlbmFtZSI6ICJjaGFyYWN0ZXIgdmFyeWluZyIsCisgICAgICAgICAgICAgICAgICAgICJs YW5uYW1lIjogInNxbCIsCisgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudHMiOiBbXSwKKyAg ICAgICAgICAgICAgICAgICAgInByb3NyYyI6ICJzZWxlY3QgJzEnIiwKKyAgICAgICAgICAgICAg ICAgICAgInByb2JpbiI6ICIkbGliZGlyLyIsCisgICAgICAgICAgICAgICAgICAgICJ2YXJpYWJs ZXMiOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdLAorICAgICAgICAg ICAgICAgICAgICAiYWNsIjogW10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg IG1vY2tfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRt aW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICAg ICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKFRydWUsIHsncm93cyc6IFtdfSkiCisgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAg ICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgKSwKKyAgICAgICAgKSwKKyAgICBdCisKKyAgICBkZWYgZ2V0X3NxbChzZWxmKToKKyAgICAg ICAgaWYgaGFzYXR0cihzZWxmLCAid2l0aF9mdW5jdGlvbl9pZCIpIGFuZCBzZWxmLndpdGhfZnVu Y3Rpb25faWQ6CisgICAgICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9mdW5jdGlvbl9kZWxldGVf JXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICAgICAgZnVuY3Rpb25faW5mbyA9 IGZ1bmNzX3V0aWxzLmNyZWF0ZV9mdW5jdGlvbigKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUpCisKKyAgICAgICAg ICAgIGZ1bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBdCisgICAgICAgICAgICBzZWxmLnRlc3RfZGF0 YVsnb2lkJ10gPSBmdW5jX2lkCisgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSddID0g ZnVuY19uYW1lCisgICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcv JyArIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCkgKyAnPycgKyAoCisgICAgICAgICAgICAgICAg dXJsZW5jb2RlKHNlbGYudGVzdF9kYXRhKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHVy bCA9IHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkKSArICcvPycgKyAodXJsZW5j b2RlKHNlbGYudGVzdF9kYXRhKSkKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo CisgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicK KyAgICAgICAgKQorICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1 bmRlciBzY2hlbWEuICIiIgorICAgICAgICBzdXBlcihGdW5jdGlvbkdldG1zcWxUZXN0Q2FzZSwg c2VsZikucnVuVGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikK KyAgICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAgIHNlbGYu dGVzdF9kYXRhWyJmdW5jb3duZXIiXSA9IGRiX3VzZXIKKworICAgICAgICBpZiBzZWxmLmlzX3Bv c2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NxbCgpCisgICAg ICAgIGVsc2U6CisgICAgICAgICAgICBkZWYgX2dldF9zcWwoc2VsZiwgKiprd2FyZ3MpOgorICAg ICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgJycKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfbW9j a19sb2NhbF9mdW5jdGlvbjoKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChGdW5j dGlvblZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tb2NrX2Rh dGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu ZXc9X2dldF9zcWwpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3Nx bCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5t b2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NxbCgpCisKKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10pCisgICAgICAgICMgRGlzY29ubmVj dCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2dldF9ub2Rlcy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0 cy90ZXN0X2Z1bmN0aW9uX2dldF9ub2Rlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4yYTQ2NDY4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rl c3RfZnVuY3Rpb25fZ2V0X25vZGVzLnB5CkBAIC0wLDAgKzEsMTIxIEBACisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRj aAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBmdW5jc191dGlscworCisKK2NsYXNzIEZ1bmN0aW9uR2V0Tm9kZXNUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3MgZ2V0IGZ1bmN0aW9uIHR5 cGVzICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNo IEZ1bmN0aW9uIE5vZGVzJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJs PScvYnJvd3Nlci9mdW5jdGlvbi9ub2Rlcy8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZl X3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAg ICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAg J0ZldGNoIEZ1bmN0aW9uIE5vZGVzIEZhaWwuJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAg ICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9ub2Rlcy8nLAorICAgICAgICAgICAgICAg IGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJl ZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17CisgICAgICAgICAgICAgICAgICAg ICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLiIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4 ZWN1dGVfMmRhcnJheSIsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZh bHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciAiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRXJyb3Igd2hpbGUgZ2V0IGZ1bmN0aW9uIG5vZGVzLicpIgorICAgICAgICAg ICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAg ICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICksCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBO b2RlcyB3aXRoIGZ1bmN0aW9uIGlkLicsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAg ICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbm9kZXMvJywKKyAgICAgICAgICAgICAgICBpc19w b3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxz ZSwKKyAgICAgICAgICAgICAgICB3aXRoX2Z1bmN0aW9uX2lkPVRydWUsCisgICAgICAgICAgICAg ICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAg ICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICApLAorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVu Y3Rpb24gTm9kZXMgd2l0aCBmdW5jdGlvbiBpZCBmYWlsLicsCisgICAgICAgICAgICBkaWN0KAor ICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbm9kZXMvJywKKyAgICAgICAg ICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdf cmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICB3aXRoX2Z1bmN0aW9uX2lkPVRydWUsCisg ICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9u X25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFy cmF5IiwKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6ICIoVHJ1ZSwgeydyb3dz JzpbXX0pIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDQxMAorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICBdCisKKyAgICBkZWYgZ2V0X25v ZGVzKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICd3aXRoX2Z1bmN0aW9uX2lkJykg YW5kIHNlbGYud2l0aF9mdW5jdGlvbl9pZDoKKyAgICAgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0 X2Z1bmN0aW9uX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgICAg ICBmdW5jdGlvbl9pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX2Z1bmN0aW9uKAorICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNf bmFtZSkKKworICAgICAgICAgICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKyAgICAgICAg ICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgICAg ICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCksCisgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICAgICApCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAg ICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsK KyAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAgICAg ICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICAgICAgKQorICAgICAg ICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1bmRlciBzY2hlbWEuICIiIgor ICAgICAgICBzdXBlcihGdW5jdGlvbkdldE5vZGVzVGVzdENhc2UsIHNlbGYpLnJ1blRlc3QoKQor ICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYgc2Vs Zi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9ub2Rl cygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRh WyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1l dmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi5nZXRfbm9kZXMoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz cG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3Rl ZF9kYXRhWydzdGF0dXNfY29kZSddKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNl CisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF9mdW5jdGlvbl9nZXRfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25f Z2V0X3NxbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjVhMWUyCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0X3Nx bC5weQpAQCAtMCwwICsxLDg1IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQg anNvbgoraW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgZnVuY3NfdXRpbHMKK2Zyb20gLi4gaW1wb3J0IEZ1bmN0aW9uVmlldworCisKK2NsYXNzIEZ1 bmN0aW9uU3FsVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNz IGZvciBmdW5jdGlvbiBTUUwgIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoCisgICAg ICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gU1FMJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAg ICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9zcWwvJywKKyAgICAgICAgICAgICAgICBp c19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1G YWxzZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgICAgZXhw ZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAgICgKKyAg ICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBTUUwgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAor ICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vc3FsLycsCisgICAgICAgICAg ICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3Jl cXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAgICAgICAg ICAgICAgImZ1bmN0aW9uX25hbWUiOiAncGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuJwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uLkNvbm5lY3Rp b24uZXhlY3V0ZV8yZGFycmF5JywKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6 ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yICIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ3aGlsZSBTUUwgZm9yIGZ1bmN0aW9ucy4nKSIKKyAgICAg ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAg ICAgICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICApLAorICAgICAgICApCisgICAgXQorCisgICAgZGVmIHNxbChzZWxmLCBmdW5jX2lkKToK KyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsg c3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihmdW5jX2lkKSwKKyAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHJldHVybiByZXNwb25z ZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgZ2V0IGZ1bmN0aW9uIG5vZGVzIHVuZGVyIHNjaGVtYS4gIiIiCisgICAgICAgIHN1cGVyKEZ1 bmN0aW9uU3FsVGVzdENhc2UsIHNlbGYpLnJ1blRlc3QoKQorICAgICAgICBzZWxmID0gZnVuY3Nf dXRpbHMuc2V0X3VwKHNlbGYpCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2Z1bmN0aW9uX2Rl bGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIGZ1bmN0aW9uX2luZm8g PSBmdW5jc191dGlscy5jcmVhdGVfZnVuY3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUpCisKKyAgICAgICAgZnVu Y19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rl c3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuc3FsKGZ1bmNfaWQpCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1l Il0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19k YXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5z cWwoZnVuY19pZCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19j b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVz X2NvZGUnXSkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0 X3R5cGVzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0X3R5cGVzLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMzg0MDYKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfdHlwZXMucHkKQEAg LTAsMCArMSw4MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2lt cG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0 aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNz X3V0aWxzCitmcm9tIC4uIGltcG9ydCBGdW5jdGlvblZpZXcKKworCitjbGFzcyBGdW5jdGlvbkdl dFR5cGVzVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIGdl dCB0eXBlcyAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgKKyAgICAgICAgICAgICdG ZXRjaCBGdW5jdGlvbiB0eXBlcycsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAg IHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vZ2V0X3R5cGVzLycsCisgICAgICAgICAgICAgICAgaXNf cG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9RmFs c2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAgICAgIGV4cGVj dGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgICAgICAoCisgICAg ICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gdHlwZXMgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAor ICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vZ2V0X3R5cGVzLycsCisgICAg ICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2Nr aW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAnZ2V0X3R5cGVzJywKKyAgICAgICAgICAgICAg ICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsIFtdKSIKKyAgICAgICAgICAgICAgICB9LAor ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3Rh dHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAg ICApCisgICAgXQorCisgICAgZGVmIGdldF90eXBlcyhzZWxmKToKKyAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lk KSArICcvJywKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICAp CisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IGZ1bmN0aW9uIG5vZGVzIHVuZGVyIHNjaGVt YS4gIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9uR2V0VHlwZXNUZXN0Q2FzZSwgc2VsZikucnVu VGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAg ICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu Z2V0X3R5cGVzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRlZiBfZ2V0X3R5cGVzKHNl bGYsIGNvbm4sIGNvbmRpdGlvbiwgYWRkX3NlcmlhbHM9RmFsc2UsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlbWFfb2lkPScnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2Us IFtdCisKKyAgICAgICAgICAgIHdpdGggcGF0Y2gub2JqZWN0KEZ1bmN0aW9uVmlldywgc2VsZi5t b2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5ldz1fZ2V0X3R5cGVzKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3R5 cGVzKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAor ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUn XSkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91 dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0X3Zhcmlh YmxlX29wdGlvbnMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfdmFy aWFibGVfb3B0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTIz MjAyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25f Z2V0X3ZhcmlhYmxlX29wdGlvbnMucHkKQEAgLTAsMCArMSw4MCBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sg aW1wb3J0IHBhdGNoCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscwor ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCitmcm9tIC4uIGltcG9ydCBGdW5jdGlv blZpZXcKKworCitjbGFzcyBGdW5jdGlvbkdldExhbmd1YWdlc1Rlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyBnZXQgdmFyaWFibGUgb3B0aW9ucy4gIiIiCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24g dmFyaWFibGUgb3B0aW9ucycsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHVy bD0nL2Jyb3dzZXIvZnVuY3Rpb24vdm9wdHMvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2 ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxzZSwKKyAg ICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAg ICdGZXRjaCBGdW5jdGlvbiB2YXJpYWJsZSBvcHRpb25zIGZhaWwnLAorICAgICAgICAgICAgZGlj dCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL3ZvcHRzLycsCisgICAg ICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2Nr aW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAncGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29w ZzIuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uLkNv bm5lY3Rpb24uZXhlY3V0ZV9kaWN0JywKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1 ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yICIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGlsZSBnZXQgbGFuZ3VhZ2VzIGZvciBmdW5jdGlv bnMuJykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAgIF0KKworICAgIGRlZiBnZXRfbGFu Z3VhZ2VzKHNlbGYpOgorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAg ICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNl CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2ls bCBnZXQgZnVuY3Rpb24gbm9kZXMgdW5kZXIgc2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVu Y3Rpb25HZXRMYW5ndWFnZXNUZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgpCisgICAgICAgIHNlbGYg PSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZl X3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X2xhbmd1YWdlcygpCisgICAg ICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlv bl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYu bW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi5nZXRfbGFuZ3VhZ2VzKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNl LnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0 YVsnc3RhdHVzX2NvZGUnXSkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVu Y3Rpb25fcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fcHV0LnB5Cmlu ZGV4IDFkYjQ2YTMuLjA3NjY1NmEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X2Z1bmN0aW9uX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9w dXQucHkKQEAgLTksMTIgKzksMTQgQEAKIAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCitmcm9t IHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCiAKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBk YXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCitmcm9tIC4u IGltcG9ydCBGdW5jdGlvblZpZXcKIAogCiBjbGFzcyBGdW5jdGlvblB1dFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKQEAgLTIyLDE4ICsyNCwxMzMgQEAgY2xhc3MgRnVuY3Rpb25QdXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYidd CiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBm dW5jdGlvbiBub2RlLgotICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywKLSAgICAg ICAgIGRpY3QodXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJykpCisgICAgICAgICgnRmV0Y2gg RnVuY3Rpb24gTm9kZSBVUkwnLCBkaWN0KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5j dGlvbi9vYmovJywKKyAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAg ICAgIG1vY2tpbmdfcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICBpc19tb2NrX2Z1bmN0aW9u PUZhbHNlLAorICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAgZXhwZWN0ZWRf ZGF0YT17CisgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICB9 CisgICAgICAgICkpLAorICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIHVwZGF0ZSBmYWlsJywgZGlj dCgKKyAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAg ICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1U cnVlLAorICAgICAgICAgICAgaXNfbW9ja19mdW5jdGlvbj1GYWxzZSwKKyAgICAgICAgICAgIG1v Y2tfZGF0YT17CisgICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGls cy5kcml2ZXIucHN5Y29wZzIuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNv bm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX3NjYWxhciIsCisgICAgICAgICAgICAgICAgInJl dHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIGNyZWF0ZSBuZXcgZnVuY3Rpb24g Z2V0IHNxbC4nKSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsK KyAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgIH0KKyAgICAg ICAgKSksCisgICAgICAgICgnRmV0Y2ggRnVuY3Rpb24gdXBkYXRlIGdldCBzcWwgZmFpbCcsIGRp Y3QoCisgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAgICAg ICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9 VHJ1ZSwKKyAgICAgICAgICAgIGlzX21vY2tfZnVuY3Rpb249VHJ1ZSwKKyAgICAgICAgICAgIG1v Y2tfZGF0YT17CisgICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAnX2dldF9zcWwnLAor ICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiBbRmFsc2UsICcnXQorICAgICAgICAgICAg fSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICJzdGF0dXNf Y29kZSI6IDUwMAorICAgICAgICAgICAgfQorICAgICAgICApKSwKKyAgICAgICAgKCdGZXRjaCBG dW5jdGlvbiB1cGRhdGUgZ2V0IHNxbCB3aXRoIG5vIHJlc3VsdC4nLCBkaWN0KAorICAgICAgICAg ICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAgICAgICAgICAgIGlzX3Bvc2l0aXZl X3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAg ICAgICBpc19tb2NrX2Z1bmN0aW9uPVRydWUsCisgICAgICAgICAgICBtb2NrX2RhdGE9eworICAg ICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ19nZXRfc3FsJywKKyAgICAgICAgICAgICAg ICAicmV0dXJuX3ZhbHVlIjogW1RydWUsICcnXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg IGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAg ICAgICAgICAgfQorICAgICAgICApKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1 bmN0aW9uIHVwZGF0ZSB3aXRoIGFyZ3VtZW50cycsCisgICAgICAgICAgICBkaWN0KAorICAgICAg ICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAgICAgICAg aXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9 RmFsc2UsCisgICAgICAgICAgICAgICAgd2l0aF9mdW5jdGlvbl9pZD1UcnVlLAorICAgICAgICAg ICAgICAgIGlzX21vY2tfbG9jYWxfZnVuY3Rpb249RmFsc2UsCisgICAgICAgICAgICAgICAgaXNf YWRkX2FyZ3VtZW50PVRydWUsCisgICAgICAgICAgICAgICAgdGVzdF9kYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgImFyZ3VtZW50cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJjaGFu Z2VkIjogW3sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnZGVmdmFsIjogIjIiLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmdpZCI6IDAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImFyZ21vZGUiOiAiSU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJhcmduYW1lIjogInRlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd0eXBl IjogImludGVnZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgfV0KKyAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9 LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAg ICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gdXBkYXRlIHdp dGggYXJndW1lbnRzIGZhaWwnLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1 cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZl X3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAg ICAgICAgICAgICAgIHdpdGhfZnVuY3Rpb25faWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBpc19t b2NrX2xvY2FsX2Z1bmN0aW9uPUZhbHNlLAorICAgICAgICAgICAgICAgIGlzX2FkZF9hcmd1bWVu dD1UcnVlLAorICAgICAgICAgICAgICAgIHRlc3RfZGF0YT17CisgICAgICAgICAgICAgICAgICAg ICJhcmd1bWVudHMiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAiY2hhbmdlZCI6IFt7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ2RlZnZhbCI6ICIyIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYXJnaWQiOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJhcmdtb2RlIjogIklOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnbmFtZSI6 ICJwYXJhbSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3R5cGUiOiAiaW50ZWdl ciIsCisgICAgICAgICAgICAgICAgICAgICAgICB9XQorICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAg ICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29k ZSI6IDUwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCiAg ICAgXQogCisgICAgZGVmIHVwZGF0ZV9mdW5jdGlvbihzZWxmLCBmdW5jX2lkLCBkYXRhKToKKyAg ICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgc2VsZi51 cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2Vs Zi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKGZ1bmNfaWQpLAor ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQorICAgICAgICByZXR1cm4gcHV0X3Jlc3BvbnNlCisKICAgICBkZWYgcnVu VGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZnVuY3Rp b24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCiAgICAgICAgIHN1cGVyKEZ1bmN0aW9uUHV0VGVz dENhc2UsIHNlbGYpLnNldFVwKCkKICAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChz ZWxmKQotCiAgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiaXNfYWRkX2Fy Z3VtZW50IikgYW5kIHNlbGYuaXNfYWRkX2FyZ3VtZW50OgorICAgICAgICAgICAgYXJncyA9ICJJ TiB0ZXN0IGludGVnZXIgREVGQVVMVCAxIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXJn cyA9ICcnCiAgICAgICAgIGZ1bmN0aW9uX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVfZnVuY3Rp b24oCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9u YW1lLCBmdW5jX25hbWUpCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBz ZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsIGFyZ3M9YXJncykKIAogICAgICAgICBmdW5jX2lk ID0gZnVuY3Rpb25faW5mb1swXQogCkBAIC00Miw2ICsxNTksOSBAQCBjbGFzcyBGdW5jdGlvblB1 dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICJpZCI6IGZ1bmNfaWQK ICAgICAgICAgfQogCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImlzX2FkZF9hcmd1bWVudCIp IGFuZCBzZWxmLmlzX2FkZF9hcmd1bWVudDoKKyAgICAgICAgICAgIGRhdGFbJ2FyZ3VtZW50cydd ID0gc2VsZi50ZXN0X2RhdGFbJ2FyZ3VtZW50cyddCisKICAgICAgICAgaWYgc2VsZi5zZXJ2ZXJf dmVyc2lvbiA+PSAxMjAwMDA6CiAgICAgICAgICAgICBzdXBwb3J0X2Z1bmN0aW9uX25hbWUgPSAn c3VwcG9ydGZ1bmNfJXMnICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogICAgICAgICAgICAgZnVu Y3NfdXRpbHMuY3JlYXRlX3N1cHBvcnRfaW50ZXJuYWxfZnVuY3Rpb24oCkBAIC01MywxNCArMTcz LDI5IEBAIGNsYXNzIEZ1bmN0aW9uUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogCiAg ICAgICAgICAgICBkYXRhWydwcm9zdXBwb3J0ZnVjJ10gPSBzdXBwb3J0X2Z1bmN0aW9uX25hbWUK IAotICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKLSAgICAgICAgICAgICcvJyArIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAg ICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoZnVuY19p ZCksCi0gICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICBmb2xs b3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHV0X3Jlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi51cGRhdGVfZnVuY3Rpb24oZnVuY19pZCwgZGF0YSkK KyAgICAgICAgZWxzZToKKworICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnaXNfbW9ja19m dW5jdGlvbicpIGFuZCBzZWxmLmlzX21vY2tfZnVuY3Rpb246CisgICAgICAgICAgICAgICAgbG9j YWxfcmVmID0gc2VsZgorCisgICAgICAgICAgICAgICAgZGVmIF9nZXRfc3FsKHNlbGYsICoqa3dh cmdzKToKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gbG9jYWxfcmVmLm1vY2tfZGF0YVsi cmV0dXJuX3ZhbHVlIl1bMF0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbG9jYWxfcmVm Lm1vY2tfZGF0YVsncmV0dXJuX3ZhbHVlJ11bMV0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IHN0YXR1cywgcmVzdWx0CisKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChGdW5j dGlvblZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tb2NrX2Rh dGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu ZXc9X2dldF9zcWwpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudXBkYXRl X2Z1bmN0aW9uKGZ1bmNfaWQsIGRhdGEpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1 cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudXBkYXRl X2Z1bmN0aW9uKGZ1bmNfaWQsIGRhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNw b25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVk X2RhdGFbJ3N0YXR1c19jb2RlJ10pCiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UK ICAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rl c3RfZ2V0X2RlcGVuZGVuY2llcy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9kZXBl bmRlbmNpZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM5ZTQ1ZAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9kZXBlbmRlbmNp ZXMucHkKQEAgLTAsMCArMSw4NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0 IGpzb24KK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIGZ1bmNzX3V0aWxzCitmcm9tIC4uIGltcG9ydCBGdW5jdGlvblZpZXcKKworCitjbGFzcyBG dW5jdGlvbkdldERlcGVuZGVuY2llc1Rlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAi IiIgVGhpcyBjbGFzcyBnZXQgZGVwZW5kZW5jaWVzIGZvciBmdW5jdGlvbnMuICIiIgorICAgIHNj ZW5hcmlvcyA9IFsKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIGRlcGVu ZGVuY2llcy4nLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93 c2VyL2Z1bmN0aW9uL2RlcGVuZGVuY3kvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90 ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxzZSwKKyAgICAg ICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17 CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgICdG ZXRjaCBGdW5jdGlvbiBkZXBlbmRlbmNpZXMgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAorICAg ICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vZGVwZW5kZW5jeS8nLAorICAgICAg ICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2lu Z19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcy LicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfZGljdCcsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUi OiAiKEZhbHNlLCB7J3Jvd3MnOiBbXX0pIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg ICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6 IDIwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICBd CisKKyAgICBkZWYgZ2V0X2RlcGVuZGVuY3koc2VsZik6CisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0 ZXN0X2Z1bmN0aW9uX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAg IGZ1bmN0aW9uX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVfZnVuY3Rpb24oCisgICAgICAgICAg ICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUp CisKKyAgICAgICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKworICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcv JyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFf aWQpICsgJy8nICsgc3RyKGZ1bmNfaWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgZnVuY3Rpb24g bm9kZXMgdW5kZXIgc2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25HZXREZXBlbmRl bmNpZXNUZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGls cy5zZXRfdXAoc2VsZikKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAg ICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X2RlcGVuZGVuY3koKQorICAgICAgICBlbHNlOgor ICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAor ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsi cmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X2Rl cGVuZGVuY3koKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNf Y29kZSddKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfZGVwZW5kZW50 cy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9kZXBlbmRlbnRzLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2MmVjZGEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfZGVwZW5kZW50cy5weQpAQCAtMCwwICsxLDg1IEBA CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2Zy b20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAg IGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKK2Zyb20g Li4gaW1wb3J0IEZ1bmN0aW9uVmlldworCisKK2NsYXNzIEZ1bmN0aW9uR2V0RGVwZW5kZW50c1Rl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyBnZXQgZGVwZW5k ZW50cyBmb3IgZnVuY3Rpb25zLiAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgKKyAg ICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBkZXBlbmRlbnRzLicsCisgICAgICAgICAgICBkaWN0 KAorICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vZGVwZW5kZW50LycsCisg ICAgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1v Y2tpbmdfcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAg ICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVz X2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICAp LAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gZGVwZW5kZW50cyBmYWls JywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5j dGlvbi9kZXBlbmRlbnQvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNl LAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAg ICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdwZ2Fk bWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2Nvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QnLAorICAgICAgICAg ICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgeydyb3dzJzogW119KSIKKyAgICAg ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAg ICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICApLAorICAgICAgICApCisgICAgXQorCisgICAgZGVmIGdldF9kZXBlbmRlbnRzKHNlbGYp OgorICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9mdW5jdGlvbl9kZWxldGVfJXMiICUgc3RyKHV1 aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBmdW5jdGlvbl9pbmZvID0gZnVuY3NfdXRpbHMuY3Jl YXRlX2Z1bmN0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lKQorCisgICAgICAgIGZ1bmNfaWQgPSBmdW5jdGlvbl9p bmZvWzBdCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAg ICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihmdW5jX2lkKSwKKyAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHJldHVy biByZXNwb25zZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1 bmN0aW9uIHdpbGwgZ2V0IGZ1bmN0aW9uIG5vZGVzIHVuZGVyIHNjaGVtYS4gIiIiCisgICAgICAg IHN1cGVyKEZ1bmN0aW9uR2V0RGVwZW5kZW50c1Rlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKKyAg ICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCisgICAgICAgIGlmIHNlbGYu aXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfZGVwZW5k ZW50cygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19k YXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1 ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAg IHJlc3BvbnNlID0gc2VsZi5nZXRfZGVwZW5kZW50cygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10pCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy90ZXN0X2dldF9mdW5jdGlvbl9zdGF0aXN0aWNzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3Rz L3Rlc3RfZ2V0X2Z1bmN0aW9uX3N0YXRpc3RpY3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZmY3NDEwNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0 cy90ZXN0X2dldF9mdW5jdGlvbl9zdGF0aXN0aWNzLnB5CkBAIC0wLDAgKzEsMTIwIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2Zyb20gdW5p dHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFi YXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKK2Zyb20gLi4gaW1w b3J0IEZ1bmN0aW9uVmlldworCisKK2NsYXNzIEZ1bmN0aW9uR2V0RnVuY3Rpb25TdGF0aXN0aWNz VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIGdldCBmdW5j dGlvbnMgc3RhdGlzdGljcy4gIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoCisgICAg ICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gZ2V0IHN0YXRpc3RpY3MnLAorICAgICAgICAgICAgZGlj dCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL3N0YXRzLycsCisgICAg ICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tp bmdfcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAg ICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2Nv ZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApLAor ICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gZ2V0IHN0YXRpc3RpY3MgZmFp bCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVu Y3Rpb24vc3RhdHMvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAor ICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBt b2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdwZ2FkbWlu LnV0aWxzLmRyaXZlci5wc3ljb3BnMi4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2Nvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QnLAorICAgICAgICAgICAg ICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIg RXJyb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoaWxlIGdldCBm dW5jdGlvbiBzdGF0aXN0aWNzLicpIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg ICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDUw MAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAg ICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBnZXQgc3RhdGlzdGljcyB3aXRob3V0IGZ1 bmN0aW9uIGlkJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJv d3Nlci9mdW5jdGlvbi9zdGF0cy8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9 VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAg ICAgICAgd2l0aG91dF9mdW5jdGlvbl9pZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0 YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAg ICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwK KyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIGdldCBz dGF0aXN0aWNzIHdpdGhvdXQgZnVuY3Rpb24gaWQgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAor ICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vc3RhdHMvJywKKyAgICAgICAg ICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdf cmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICB3aXRob3V0X2Z1bmN0aW9uX2lkPVRydWUs CisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgImZ1bmN0 aW9uX25hbWUiOiAncGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuJworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9z Y2FsYXInLAorICAgICAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01v Y2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIndoaWxlIGdldCBmdW5jdGlvbiBzdGF0aXN0aWNzLicpIgorICAgICAgICAgICAg ICAgIH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAg ICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICks CisgICAgICAgICksCisgICAgXQorCisgICAgZGVmIGdldF9mdW5jdGlvbl9zdGF0aXN0aWNzKHNl bGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJ3aXRob3V0X2Z1bmN0aW9uX2lkIikgYW5k IHNlbGYud2l0aG91dF9mdW5jdGlvbl9pZDoKKyAgICAgICAgICAgIGZ1bmNfaWQgPSAnJworICAg ICAgICBlbHNlOgorICAgICAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZnVuY3Rpb25fZGVsZXRl XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgICAgIGZ1bmN0aW9uX2luZm8g PSBmdW5jc191dGlscy5jcmVhdGVfZnVuY3Rpb24oCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lKQorCisgICAgICAg ICAgICBmdW5jX2lkID0gZnVuY3Rpb25faW5mb1swXQorCisgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3Ry KHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAn LycgKyBzdHIoZnVuY19pZCksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicK KyAgICAgICAgKQorICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1 bmRlciBzY2hlbWEuICIiIgorICAgICAgICBzdXBlcihGdW5jdGlvbkdldEZ1bmN0aW9uU3RhdGlz dGljc1Rlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxz LnNldF91cChzZWxmKQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfZnVuY3Rpb25fc3RhdGlzdGljcygpCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9u YW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9j a19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi5nZXRfZnVuY3Rpb25fc3RhdGlzdGljcygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy ZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVj dGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10pCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90 ZXN0X2dldF9saXN0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZ2V0X2xpc3QucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZlYWQwYQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9saXN0LnB5CkBAIC0wLDAgKzEsODAgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJv bSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworZnJvbSAu LiBpbXBvcnQgRnVuY3Rpb25WaWV3CisKKworY2xhc3MgRnVuY3Rpb25HZXRMaXN0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIGdldCBsaXN0IG9mIGZ1bmN0 aW9ucy4gIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoCisgICAgICAgICAgICAnRmV0 Y2ggRnVuY3Rpb24gbGlzdC4nLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1 cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZl X3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAg ICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAg J0ZldGNoIEZ1bmN0aW9uIGRlcGVuZGVudHMgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAorICAg ICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAgICAg ICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVp cmVkPVRydWUsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAg ICAgImZ1bmN0aW9uX25hbWUiOiAncGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuJworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uLkNvbm5lY3Rpb24u ZXhlY3V0ZV9kaWN0JywKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFs c2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJFcnJvciB3aGlsZSBnZXQgZnVuY3Rpb24gbGlzdC4nKSIKKyAgICAgICAgICAg ICAgICB9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAg ICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAp LAorICAgICAgICApCisgICAgXQorCisgICAgZGVmIGdldF9saXN0KHNlbGYpOgorICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lk KSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5z Y2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisg ICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgZnVuY3Rpb24gbm9kZXMgdW5k ZXIgc2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25HZXRMaXN0VGVzdENhc2UsIHNl bGYpLnJ1blRlc3QoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisK KyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLmdldF9saXN0KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2go c2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAg ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9saXN0KCkKKworICAgICAgICBzZWxmLmFz c2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXSkKKyAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3Rlc3RzL3Rlc3RfZ2V0X3NlbGVjdF9zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF9nZXRfc2VsZWN0X3NxbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4z ZWVmMDRhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZ2V0X3Nl bGVjdF9zcWwucHkKQEAgLTAsMCArMSwxMjIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAy MCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK K2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRj aAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBmdW5jc191dGlscworZnJvbSAuLiBpbXBvcnQgRnVuY3Rpb25WaWV3CisKKwor Y2xhc3MgRnVuY3Rpb25HZXRTZWxlY3RTcWxUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Cisg ICAgIiIiIFRoaXMgY2xhc3MgZ2V0IHNlbGVjdCBTUUwgZm9yIGZ1bmN0aW9ucy4gIiIiCisgICAg c2NlbmFyaW9zID0gWworICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gc2Vs ZWN0IHNxbC4nLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93 c2VyL2Z1bmN0aW9uL3NlbGVjdF9zcWwvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90 ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxzZSwKKyAgICAg ICAgICAgICAgICBpc19hZGRfYXJndW1lbnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja19k YXRhPXt9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAp LAorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gc2Vs ZWN0IHNxbCBmYWlsJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScv YnJvd3Nlci9mdW5jdGlvbi9zZWxlY3Rfc3FsLycsCisgICAgICAgICAgICAgICAgaXNfcG9zaXRp dmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisg ICAgICAgICAgICAgICAgaXNfYWRkX2FyZ3VtZW50PUZhbHNlLAorICAgICAgICAgICAgICAgIG1v Y2tfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4u dXRpbHMuZHJpdmVyLnBzeWNvcGcyLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheScsCisgICAgICAgICAg ICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZl ciBFcnJvciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2hpbGUgZ2V0 IHNlbGVjdCBzcWwuJykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBl Y3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAg ICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIHNlbGVjdCBzcWwgbm90IGZvdW5kJywKKyAgICAgICAg ICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9zZWxlY3Rf c3FsLycsCisgICAgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAg ICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgaXNfYWRkX2Fy Z3VtZW50PUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17CisgICAgICAgICAgICAg ICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLicK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVjdGlvbi5Db25uZWN0 aW9uLmV4ZWN1dGVfMmRhcnJheScsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUi OiAiKFRydWUsIHsncm93cyc6IFtdfSkiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg ICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjog NDEwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAg ICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIHNlbGVjdCBzcWwgd2l0aCBhcmd1bWVu dHMnLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1 bmN0aW9uL3NlbGVjdF9zcWwvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PVRy dWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxzZSwKKyAgICAgICAgICAg ICAgICBpc19hZGRfYXJndW1lbnQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30s CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJz dGF0dXNfY29kZSI6IDIwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAg ICAgICksCisgICAgXQorCisgICAgZGVmIGdldF9zZWxlY3Rfc3FsKHNlbGYpOgorICAgICAgICBm dW5jX25hbWUgPSAidGVzdF9mdW5jdGlvbl9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQorICAgICAgICBpZiBzZWxmLmlzX2FkZF9hcmd1bWVudDoKKyAgICAgICAgICAgIGFyZ3Mg PSAiSU4gdGVzdCBpbnRlZ2VyIERFRkFVTFQgMSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg IGFyZ3MgPSBOb25lCisgICAgICAgIGZ1bmN0aW9uX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVf ZnVuY3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNj aGVtYV9uYW1lLCBmdW5jX25hbWUsIGFyZ3M9YXJncykKKworICAgICAgICBmdW5jX2lkID0gZnVu Y3Rpb25faW5mb1swXQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKKyAg ICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCks CisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorICAgICAg ICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1bmRlciBzY2hlbWEuICIiIgor ICAgICAgICBzdXBlcihGdW5jdGlvbkdldFNlbGVjdFNxbFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0 KCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCisgICAgICAgIGlm IHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRf c2VsZWN0X3NxbCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYu bW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVy bl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc2VsZWN0X3NxbCgpCisKKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10pCisgICAgICAgICMgRGlzY29ubmVj dCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZXN0cy90ZXN0X2dldF9zdXBwb3J0ZWRfZnVuY3Rpb25zLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3Rlc3RzL3Rlc3RfZ2V0X3N1cHBvcnRlZF9mdW5jdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTczYmY4ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZXN0cy90ZXN0X2dldF9zdXBwb3J0ZWRfZnVuY3Rpb25zLnB5CkBAIC0wLDAgKzEsODAgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJv bSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworZnJvbSAu LiBpbXBvcnQgRnVuY3Rpb25WaWV3CisKKworY2xhc3MgRnVuY3Rpb25HZXRTdXBwb3J0ZWRGdW5j dGlvbnNUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3MgZ2V0 IHN1cHBvcnRlZCBmdW5jdGlvbnMuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKAor ICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIHN1cHBvcnRlZCBmdW5jdGlvbnMnLAorICAgICAg ICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL2dldF9z dXBwb3J0X2Z1bmN0aW9ucy8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1 ZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAg ICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAg ICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1 bmN0aW9uIHN1cHBvcnQgZnVuY3Rpb25zIGZhaWwnLAorICAgICAgICAgICAgZGljdCgKKyAgICAg ICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL2dldF9zdXBwb3J0X2Z1bmN0aW9ucy8n LAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAg ICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17Cisg ICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4udXRpbHMuZHJpdmVy LnBzeWNvcGcyLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVj dGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheScsCisgICAgICAgICAgICAgICAgICAgICJy ZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvciAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2hpbGUgZ2V0IHN1cHBvcnRlZCBm dW5jdGlvbicpIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRf ZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICBdCisKKyAgICBkZWYgZ2V0 X3N1cHBvcnRlZF9mdW5jdGlvbnMoc2VsZik6CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYu ZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCisg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorICAgICAgICBy ZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1bmRlciBzY2hlbWEuICIiIgorICAg ICAgICBzdXBlcihGdW5jdGlvbkdldFN1cHBvcnRlZEZ1bmN0aW9uc1Rlc3RDYXNlLCBzZWxmKS5y dW5UZXN0KCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCisgICAg ICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi5nZXRfc3VwcG9ydGVkX2Z1bmN0aW9ucygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3 aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUi XSkpOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc3VwcG9ydGVkX2Z1bmN0 aW9ucygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2Rl J10pCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZXN0cy91dGlscy5weQppbmRleCAwOWFlN2VlLi5hNzM1NzJkIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVzdHMvdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3V0aWxzLnB5 CkBAIC0xNDIsNyArMTQyLDcgQEAgZGVmIGNyZWF0ZV9wcm9jZWR1cmUoc2VydmVyLCBkYl9uYW1l LCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lLCBzX3R5cGUsCiAgICAgICAgIHRyYWNlYmFjay5wcmlu dF9leGMoZmlsZT1zeXMuc3RkZXJyKQogCiAKLWRlZiBjcmVhdGVfZnVuY3Rpb24oc2VydmVyLCBk Yl9uYW1lLCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lKToKK2RlZiBjcmVhdGVfZnVuY3Rpb24oc2Vy dmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lLCBhcmdzPU5vbmUpOgogICAgICIi IlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBwcm9jZWR1cmUgdG8gc2NoZW1hIiIiCiAgICAgdHJ5Ogog ICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKQEAg LTE1MiwxMSArMTUyLDE1IEBAIGRlZiBjcmVhdGVfZnVuY3Rpb24oc2VydmVyLCBkYl9uYW1lLCBz Y2hlbWFfbmFtZSwgZnVuY19uYW1lKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10pCiAgICAgICAgIHBnX2N1cnNvciA9 IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIGFyZ3Mg PSAiezB9Ii5mb3JtYXQoYXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFyZ3MgPSAn JwogICAgICAgICBxdWVyeSA9ICJDUkVBVEUgRlVOQ1RJT04gIiArIHNjaGVtYV9uYW1lICsgIi4i ICsgZnVuY19uYW1lICsgXAotICAgICAgICAgICAgICAgICIoKSIgXAorICAgICAgICAgICAgICAg ICIoezB9KSIgXAogICAgICAgICAgICAgICAgICIgUkVUVVJOUyBpbnRlZ2VyIExBTkdVQUdFICdz cWwnIFNUQUJMRSIgXAogICAgICAgICAgICAgICAgICIgU0VDVVJJVFkgREVGSU5FUiBBUyAkJCIg XAotICAgICAgICAgICAgICAgICIgU0VMRUNUIDE7ICQkOyIKKyAgICAgICAgICAgICAgICAiIFNF TEVDVCAxOyAkJDsiLmZvcm1hdChhcmdzKQogICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVy eSkKICAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQogICAgICAgICAjIEdldCAnb2lkJyBmcm9t IG5ld2x5IGNyZWF0ZWQgZnVuY3Rpb24K --000000000000392d2905afe03684--