<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>34674</bug_id>
          
          <creation_ts>2010-02-05 23:02:47 -0800</creation_ts>
          <short_desc>check-webkit-style: Divide ProcessorOptions class into two classes</short_desc>
          <delta_ts>2010-02-17 23:31:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34932</dependson>
          <blocked>34675</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>188417</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-05 23:02:47 -0800</bug_when>
    <thetext>Divide the ProcessorOptions class into a CheckWebKitStyleOptions class and a CheckerConfiguration class, per the FIXME&apos;s in checker.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190131</commentid>
    <comment_count>1</comment_count>
      <attachid>48660</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-12 13:38:58 -0800</bug_when>
    <thetext>Created attachment 48660
Proposed patch

Sorry for the length!  This patch has no new functionality.  The test coverage is pretty much the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190385</commentid>
    <comment_count>2</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-14 22:00:51 -0800</bug_when>
    <thetext>&gt; Sorry for the length!  This patch has no new functionality.  The test coverage
&gt; is pretty much the same.

Looks OK, but I cannot be sure. Could you split this patch? Code cleanup done in this patch seems to be great (thanks!) but is somehow big. If possible, I&apos;d like to review the refactoring work separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190395</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-15 00:49:01 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Sorry for the length!  This patch has no new functionality.  The test coverage
&gt; &gt; is pretty much the same.
&gt; 
&gt; Looks OK, but I cannot be sure. Could you split this patch? Code cleanup done
&gt; in this patch seems to be great (thanks!) but is somehow big. If possible, I&apos;d
&gt; like to review the refactoring work separately.

Sure, thanks.  I&apos;ll do the clean-up here first:

https://bugs.webkit.org/show_bug.cgi?id=34932</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190610</commentid>
    <comment_count>4</comment_count>
      <attachid>48660</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-15 23:39:47 -0800</bug_when>
    <thetext>Comment on attachment 48660
Proposed patch

&gt; Sure, thanks.  I&apos;ll do the clean-up here first

Thanks, It will help me a lot! Clearing r? flag to wait the cleanup effort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191027</commentid>
    <comment_count>5</comment_count>
      <attachid>48901</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-17 07:01:27 -0800</bug_when>
    <thetext>Created attachment 48901
Proposed patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191380</commentid>
    <comment_count>6</comment_count>
      <attachid>48901</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-17 20:58:35 -0800</bug_when>
    <thetext>Comment on attachment 48901
Proposed patch 2

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191420</commentid>
    <comment_count>7</comment_count>
      <attachid>48901</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-17 23:09:14 -0800</bug_when>
    <thetext>Comment on attachment 48901
Proposed patch 2

Rejecting patch 48901 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Shinichiro Hamaji&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
bKitTools/Scripts/webkitpy/style/checker_unittest.py
Hunk #10 FAILED at 514.
Hunk #11 succeeded at 670 (offset 1 line).
1 out of 11 hunks FAILED -- saving rejects to file WebKitTools/Scripts/webkitpy/style/checker_unittest.py.rej
patching file WebKitTools/Scripts/webkitpy/style/error_handlers.py
patching file WebKitTools/Scripts/webkitpy/style/error_handlers_unittest.py
patching file WebKitTools/Scripts/webkitpy/style/filter.py
patching file WebKitTools/Scripts/webkitpy/style/filter_unittest.py

Full output: http://webkit-commit-queue.appspot.com/results/282171</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191424</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-17 23:31:14 -0800</bug_when>
    <thetext>Manually committed after rebasing:

http://trac.webkit.org/changeset/54934

(Commit-queue errors resulted from:
 https://bugs.webkit.org/show_bug.cgi?id=34971 )</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48660</attachid>
            <date>2010-02-12 13:38:58 -0800</date>
            <delta_ts>2010-02-17 07:01:27 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-34674-1.diff</filename>
            <type>text/plain</type>
            <size>73843</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMTNhZjdmLi5jZjRmMWRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMTAtMDIt
MTEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGl2aWRlZCBjaGVjay13ZWJraXQt
c3R5bGUncyBQcm9jZXNzb3JPcHRpb25zIGNsYXNzIGludG8gdHdvIGNsYXNzZXMuCisgICAgICAg
IFRoaXMgcmV2aXNpb24gY29udGFpbnMgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0Njc0CisKKyAgICAgICAg
UmVmYWN0b3JlZCBjaGVjay13ZWJraXQtc3R5bGUgYnkgZGl2aWRpbmcgdGhlIFByb2Nlc3Nvck9w
dGlvbnMKKyAgICAgICAgY2xhc3MgaW50byB0aGUgZm9sbG93aW5nIHR3byBjbGFzc2VzOiBDb21t
YW5kT3B0aW9uVmFsdWVzICh0aGUKKyAgICAgICAgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIGNvbW1h
bmQtbGluZSBvcHRpb25zKSBhbmQKKyAgICAgICAgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbiAo
d2hpY2ggY29uZmlndXJlcyB0aGUgbWFpbiBTdHlsZUNoZWNrZXIpLgorICAgICAgICBBbHNvIGlu
Y2x1ZGVkIGEgYnVuY2ggb2YgcmVsYXRlZCBjbGVhbi11cCByZWZhY3RvcmluZy4KKworICAgICAg
ICAqIFNjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlOgorICAgICAgICAgIC0gVXBkYXRlZCBtYWlu
KCkgdG8gY29udmVydCB0aGUgcGFyc2VkIGNvbW1hbmQgb3B0aW9uIHZhbHVlcworICAgICAgICAg
ICAgdG8gYSBTdHlsZUNoZWNrQ29uZmlndXJhdGlvbiBpbnN0YW5jZSBwcmlvciB0byBjb25zdHJ1
Y3RpbmcKKyAgICAgICAgICAgIGEgU3R5bGVDaGVja2VyLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAgICAgICAgIC0gUmVtb3ZlZCB0aGUgV0VCS0lU
IHByZWZpeCBmcm9tIHRoZSBkZWZhdWx0IGdsb2JhbCB2YXJpYWJsZXMuCisgICAgICAgICAgLSBQ
cmVmaXhlZCBzZXZlcmFsIG9mIHRoZSBnbG9iYWwgdmFyaWFibGVzIHdpdGggYW4gdW5kZXJzY29y
ZS4KKyAgICAgICAgICAtIFJlbmFtZWQgX0RFRkFVTFRfRklMVEVSX1JVTEVTIHRvIF9CQVNFX0ZJ
TFRFUl9SVUxFUy4KKyAgICAgICAgICAtIEFkZHJlc3NlZCBhIEZJWE1FIGJ5IGNoYW5naW5nIHRo
ZSBmb3JtYXQgb2YgZWxlbWVudHMgb2YgdGhlCisgICAgICAgICAgICBfUEFUSF9SVUxFU19TUEVD
SUZJRVIgZ2xvYmFsIHZhcmlhYmxlIGZyb20gbGlzdC10dXBsZSBwYWlycworICAgICAgICAgICAg
dG8gbGlzdC1saXN0IHBhaXJzLgorICAgICAgICAgIC0gUmVuYW1lZCBzdHlsZV9jYXRlZ29yaWVz
KCkgdG8gX2FsbF9jYXRlZ29yaWVzKCkuCisgICAgICAgICAgLSBSZW5hbWVkIHdlYmtpdF9hcmd1
bWVudF9kZWZhdWx0cygpIHRvIF9jaGVja193ZWJraXRfc3R5bGVfZGVmYXVsdHMoKS4KKyAgICAg
ICAgICAtIEFkZGVkIGNoZWNrX3dlYmtpdF9zdHlsZV9jb25maWd1cmF0aW9uKCkuCisgICAgICAg
ICAgLSBJbiB0aGUgUHJvY2Vzc29yT3B0aW9ucyBjbGFzcy0tCisgICAgICAgICAgICAtIFJlbmFt
ZWQgdGhlIGNsYXNzIHRvIENvbW1hbmRPcHRpb25WYWx1ZXMuCisgICAgICAgICAgICAtIFJlcGxh
Y2VkIHRoZSBmaWx0ZXJfY29uZmlndXJhdGlvbiBhdHRyaWJ1dGUgd2l0aCBmaWx0ZXJfcnVsZXMu
CisgICAgICAgICAgICAtIFJlbW92ZWQgdGhlIG1heF9yZXBvcnRzX3Blcl9lcnJvciBhdHRyaWJ1
dGUuCisgICAgICAgICAgICAtIE1vdmVkIHRoZSBpc19yZXBvcnRhYmxlKCkgbWV0aG9kIHRvIHRo
ZSBuZXcKKyAgICAgICAgICAgICAgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbiBjbGFzcy4KKyAg
ICAgICAgICAtIFJlbmFtZWQgdGhlIEFyZ3VtZW50RGVmYXVsdHMgY2xhc3MgdG8gRGVmYXVsdENv
bW1hbmRPcHRpb25WYWx1ZXMsCisgICAgICAgICAgICBhbmQgcmVtb3ZlZCBpdHMgYmFzZV9maWx0
ZXJfcnVsZXMgYXR0cmlidXRlLgorICAgICAgICAgIC0gSW4gdGhlIEFyZ3VtZW50UGFyc2VyIGNs
YXNzLS0KKyAgICAgICAgICAgIC0gUmVuYW1lZCB0aGUgZG9jX3ByaW50IGF0dHJpYnV0ZSB0byBz
dGRlcnJfd3JpdGUuCisgICAgICAgICAgICAtIEFkZGVkIHRoZSBiYXNlX2ZpbHRlcl9ydWxlcyBh
dHRyaWJ1dGUuCisgICAgICAgICAgICAtIE90aGVyIG1pbm9yIHVwZGF0ZXMuCisgICAgICAgICAg
LSBDcmVhdGVkIGEgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbiBjbGFzcy4KKyAgICAgICAgICAg
IC0gQWRkZWQgdGhlIGRhdGEgYXR0cmlidXRlcyBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnksCisg
ICAgICAgICAgICAgIHN0ZGVycl93cml0ZSwgYW5kIHZlcmJvc2l0eS4KKyAgICAgICAgICAgIC0g
QWRkZWQgdGhlIG1ldGhvZHMgaXNfcmVwb3J0YWJsZSgpIGZyb20gdGhlIFByb2Nlc3Nvck9wdGlv
bnMKKyAgICAgICAgICAgICAgY2xhc3MgYW5kIHdyaXRlX3N0eWxlX2Vycm9yKCkgZnJvbSB0aGUg
RGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyCisgICAgICAgICAgICAgIGNsYXNzLgorICAgICAgICAg
IC0gSW4gdGhlIFN0eWxlQ2hlY2tlciBjbGFzcy0tCisgICAgICAgICAgICAtIFJlcGxhY2VkIHRo
ZSBQcm9jZXNzb3JPcHRpb25zIG9wdGlvbnMgYXR0cmlidXRlIHdpdGggdGhlCisgICAgICAgICAg
ICAgIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gX2NvbmZpZ3VyYXRpb24gYXR0cmlidXRlLgor
ICAgICAgICAgICAgLSBSZW1vdmVkIHRoZSBfc3RkZXJyX3dyaXRlIGF0dHJpYnV0ZS4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKyAgICAg
ICAgICAtIFVwZGF0ZWQgYWxsIG9mIHRoZSB1bml0IHRlc3QgY2xhc3Nlcy4KKyAgICAgICAgICAt
IEFkZGVkIGEgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvblRlc3QgY2xhc3MuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzLnB5OgorICAgICAgICAgIC0g
SW4gdGhlIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlciBjbGFzcy0tCisgICAgICAgICAgICAtIFJl
cGxhY2VkIHRoZSBQcm9jZXNzb3JPcHRpb25zIF9vcHRpb25zIGF0dHJpYnV0ZSB3aXRoIHRoZQor
ICAgICAgICAgICAgICBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uIF9jb25maWd1cmF0aW9uIGF0
dHJpYnV0ZS4KKyAgICAgICAgICAgIC0gUmVtb3ZlZCB0aGUgX3N0ZGVycl93cml0ZSBhdHRyaWJ1
dGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAgIC0gVXBkYXRlZCB0aGUgdW5pdCB0ZXN0IGNsYXNzZXMuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlci5weToKKyAgICAgICAgICAt
IEluIHRoZSBGaWx0ZXJDb25maWd1cmF0aW9uIGNsYXNzLS0KKyAgICAgICAgICAgIC0gQWRkcmVz
c2VkIHRoZSBGSVhNRSB0byBjaGFuZ2UgdGhlIHVzZXJfcnVsZXMgYXR0cmlidXRlCisgICAgICAg
ICAgICAgIHRvIF91c2VyX3J1bGVzIChzaW5jZSBpdCBpcyBhY2Nlc3NlZCBvbmx5IGludGVybmFs
bHkpLgorICAgICAgICAgICAgLSBBbHRlcmVkIEZpbHRlckNvbmZpZ3VyYXRpb24uX3BhdGhfcnVs
ZXNfZnJvbV9wYXRoKCkKKyAgICAgICAgICAgICAgdG8gY29udmVydCB0aGUgcGF0aF9ydWxlcyBs
aXN0IHRvIGEgdHVwbGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRl
cl91bml0dGVzdC5weToKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgdG8gcmVm
bGVjdCB0aGUgY2hhbmdlIGZyb20gdHVwbGVzIHRvCisgICAgICAgICAgICBsaXN0cyBpbiB0aGUg
X1BBVEhfUlVMRVNfU1BFQ0lGSUVSIGdsb2JhbCB2YXJpYWJsZS4KKwogMjAxMC0wMi0xMSAgTmlr
b2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13
ZWJraXQtc3R5bGUgYi9XZWJLaXRUb29scy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZQppbmRl
eCA1MDEyNjRiLi5iOTE0NWYxIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL2NoZWNr
LXdlYmtpdC1zdHlsZQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHls
ZQpAQCAtNTgsMTIgKzU4LDExIEBAIGRlZiBtYWluKCk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29kZWNzLmdldHdyaXRlcigndXRmOCcpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXBsYWNlJykKIAotICAgIGRlZmF1
bHRzID0gY2hlY2tlci53ZWJraXRfYXJndW1lbnRfZGVmYXVsdHMoKQotCi0gICAgcGFyc2VyID0g
Y2hlY2tlci5Bcmd1bWVudFBhcnNlcihkZWZhdWx0cykKKyAgICBwYXJzZXIgPSBjaGVja2VyLkFy
Z3VtZW50UGFyc2VyKCkKICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFyc2VyLnBhcnNlKHN5cy5h
cmd2WzE6XSkKIAotICAgIHN0eWxlX2NoZWNrZXIgPSBjaGVja2VyLlN0eWxlQ2hlY2tlcihvcHRp
b25zKQorICAgIGNvbmZpZ3VyYXRpb24gPSBjaGVja2VyLmNoZWNrX3dlYmtpdF9zdHlsZV9jb25m
aWd1cmF0aW9uKG9wdGlvbnMpCisgICAgc3R5bGVfY2hlY2tlciA9IGNoZWNrZXIuU3R5bGVDaGVj
a2VyKGNvbmZpZ3VyYXRpb24pCiAKICAgICBpZiBmaWxlczoKICAgICAgICAgZm9yIGZpbGVuYW1l
IGluIGZpbGVzOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CmluZGV4IDlkZTM2MmYuLmRlZjhkM2QgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTQ1LDkgKzQ1LDkgQEAgZnJvbSBwcm9jZXNzb3Jz
LmNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4dCBpbXBvcnQgVGV4
dFByb2Nlc3NvcgogCiAKLSMgVGhlc2UgZGVmYXVsdHMgYXJlIHVzZWQgYnkgY2hlY2std2Via2l0
LXN0eWxlLgotV0VCS0lUX0RFRkFVTFRfVkVSQk9TSVRZID0gMQotV0VCS0lUX0RFRkFVTFRfT1VU
UFVUX0ZPUk1BVCA9ICdlbWFjcycKKyMgVGhlc2UgYXJlIGRlZmF1bHQgb3B0aW9uIHZhbHVlcyBm
b3IgdGhlIGNvbW1hbmQtbGluZSBvcHRpb24gcGFyc2VyLgorX0RFRkFVTFRfVkVSQk9TSVRZID0g
MQorX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCA9ICdlbWFjcycKIAogCiAjIEZJWE1FOiBGb3Igc3R5
bGUgY2F0ZWdvcmllcyB3ZSB3aWxsIG5ldmVyIHdhbnQgdG8gaGF2ZSwgcmVtb3ZlIHRoZW0uCkBA
IC01NSwxNCArNTUsMTQgQEAgV0VCS0lUX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCA9ICdlbWFjcycK
ICMgICAgICAgIG1vZGlmeSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIGVuYWJsZSB0aGVtLgogIwog
IyBUaHJvdWdob3V0IHRoaXMgbW9kdWxlLCB3ZSB1c2UgImZpbHRlciBydWxlIiByYXRoZXIgdGhh
biAiZmlsdGVyIgotIyBmb3IgYW4gaW5kaXZpZHVhbCBib29sZWFuIGZpbHRlciBmbGFnIGxpa2Ug
Iitmb28iLiBUaGlzIGFsbG93cyB1cyB0bworIyBmb3IgYW4gaW5kaXZpZHVhbCBib29sZWFuIGZp
bHRlciBmbGFnIGxpa2UgIitmb28iLiAgVGhpcyBhbGxvd3MgdXMgdG8KICMgcmVzZXJ2ZSAiZmls
dGVyIiBmb3Igd2hhdCBvbmUgZ2V0cyBieSBjb2xsZWN0aXZlbHkgYXBwbHlpbmcgYWxsIG9mCiAj
IHRoZSBmaWx0ZXIgcnVsZXMuCiAjCi0jIFRoZSBfV0VCS0lUX0ZJTFRFUl9SVUxFUyBhcmUgcHJl
cGVuZGVkIHRvIGFueSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIKLSMgcnVsZXMuIFNpbmNlIGJ5IGRl
ZmF1bHQgYWxsIGVycm9ycyBhcmUgb24sIG9ubHkgaW5jbHVkZSBydWxlcyB0aGF0Ci0jIGJlZ2lu
IHdpdGggYSAtIHNpZ24uCi1XRUJLSVRfREVGQVVMVF9GSUxURVJfUlVMRVMgPSBbCisjIFRoZSBi
YXNlIGZpbHRlciBydWxlcyBhcmUgcHJlcGVuZGVkIHRvIGFueSB1c2VyLXNwZWNpZmllZCBmaWx0
ZXIKKyMgcnVsZXMuICBTaW5jZSBieSBkZWZhdWx0IGFsbCBlcnJvcnMgYXJlIG9uLCBvbmx5IGlu
Y2x1ZGUgcnVsZXMgdGhhdAorIyBiZWdpbiB3aXRoIGEgIi0iIHNpZ24uCitfQkFTRV9GSUxURVJf
UlVMRVMgPSBbCiAgICAgJy1idWlsZC9lbmRpZl9jb21tZW50JywKICAgICAnLWJ1aWxkL2luY2x1
ZGVfd2hhdF95b3VfdXNlJywgICMgPHN0cmluZz4gZm9yIHN0ZDo6c3RyaW5nCiAgICAgJy1idWls
ZC9zdG9yYWdlX2NsYXNzJywgICMgY29uc3Qgc3RhdGljCkBAIC04NiwxMyArODYsNiBAQCBXRUJL
SVRfREVGQVVMVF9GSUxURVJfUlVMRVMgPSBbCiAgICAgXQogCiAKLSMgRklYTUU6IENoYW5nZSB0
aGUgc2Vjb25kIHZhbHVlIG9mIGVhY2ggdHVwbGUgZnJvbSBhIHR1cGxlIHRvIGEgbGlzdCwKLSMg
ICAgICAgIGFuZCBhbHRlciB0aGUgZmlsdGVyIGNvZGUgc28gaXQgYWNjZXB0cyBsaXN0cyBpbnN0
ZWFkLiAgKFRoZQotIyAgICAgICAgZmlsdGVyIGNvZGUgd2lsbCBuZWVkIHRvIGNvbnZlcnQgaW5j
b21pbmcgdmFsdWVzIGZyb20gYSBsaXN0Ci0jICAgICAgICB0byBhIHR1cGxlIHByaW9yIHRvIGNh
Y2hpbmcpLiAgVGhpcyB3aWxsIG1ha2UgdGhpcwotIyAgICAgICAgY29uZmlndXJhdGlvbiBzZXR0
aW5nIGEgYml0IHNpbXBsZXIgc2luY2UgdHVwbGVzIGhhdmUgYW4KLSMgICAgICAgIHVudXN1YWwg
c3ludGF4IGNhc2UuCi0jCiAjIFRoZSBwYXRoLXNwZWNpZmljIGZpbHRlciBydWxlcy4KICMKICMg
VGhpcyBsaXN0IGlzIG9yZGVyIHNlbnNpdGl2ZS4gIE9ubHkgdGhlIGZpcnN0IHBhdGggc3Vic3Ry
aW5nIG1hdGNoCkBAIC0xMDQsOCArOTcsOCBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAg
ICAgIyBkaXNjaXBsaW5lIGFzIFdlYkNvcmUuCiAgICAgKFsiV2ViS2l0VG9vbHMvV2ViS2l0QVBJ
VGVzdC8iLAogICAgICAgIldlYktpdC9xdC9RR1ZMYXVuY2hlci8iXSwKLSAgICAgKCItYnVpbGQv
aW5jbHVkZSIsCi0gICAgICAiLXJlYWRhYmlsaXR5L3N0cmVhbXMiKSksCisgICAgIFsiLWJ1aWxk
L2luY2x1ZGUiLAorICAgICAgIi1yZWFkYWJpbGl0eS9zdHJlYW1zIl0pLAogICAgIChbIyBUaGUg
R1RLKyBBUElzIHVzZSBHVEsrIG5hbWluZyBzdHlsZSwgd2hpY2ggaW5jbHVkZXMKICAgICAgICMg
bG93ZXItY2FzZWQsIHVuZGVyc2NvcmUtc2VwYXJhdGVkIHZhbHVlcy4KICAgICAgICJXZWJLaXQv
Z3RrL3dlYmtpdC8iLApAQCAtMTE0LDEzICsxMDcsMTMgQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVS
ID0gWwogICAgICAgIyBRdFRlc3QgbW9kdWxlLgogICAgICAgIldlYktpdC9xdC90ZXN0cy8iLAog
ICAgICAgIkphdmFTY3JpcHRDb3JlL3F0L3Rlc3RzIl0sCi0gICAgICgiLXJlYWRhYmlsaXR5L25h
bWluZyIsKSksCisgICAgIFsiLXJlYWRhYmlsaXR5L25hbWluZyJdKSwKICAgICAjIFRoZXNlIGFy
ZSB0ZXN0IGZpbGUgcGF0dGVybnMuCiAgICAgKFsiX3Rlc3QuY3BwIiwKICAgICAgICJfdW5pdHRl
c3QuY3BwIiwKICAgICAgICJfcmVndGVzdC5jcHAiXSwKLSAgICAgKCItcmVhZGFiaWxpdHkvc3Ry
ZWFtcyIsICAjIE1hbnkgdW5pdCB0ZXN0cyB1c2UgY291dC4KLSAgICAgICItcnVudGltZS9ydHRp
IikpLAorICAgICBbIi1yZWFkYWJpbGl0eS9zdHJlYW1zIiwgICMgTWFueSB1bml0IHRlc3RzIHVz
ZSBjb3V0LgorICAgICAgIi1ydW50aW1lL3J0dGkiXSksCiBdCiAKIApAQCAtMTI5LDcgKzEyMiw3
IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICMgZnV0dXJlIG1lcmdlcy4KICMKICMgSW5j
bHVkZSBhIHdhcm5pbmcgZm9yIHNraXBwZWQgZmlsZXMgdGhhdCBhcmUgbGVzcyBvYnZpb3VzLgot
U0tJUFBFRF9GSUxFU19XSVRIX1dBUk5JTkcgPSBbCitfU0tJUFBFRF9GSUxFU19XSVRIX1dBUk5J
TkcgPSBbCiAgICAgIyBUaGUgUXQgQVBJIGFuZCB0ZXN0cyBkbyBub3QgZm9sbG93IFdlYktpdCBz
dHlsZS4KICAgICAjIFRoZXkgZm9sbG93IFF0IHN0eWxlLiA6KQogICAgICJndGsyZHJhd2luZy5j
IiwgIyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9ndGsyZHJhd2luZy5jCkBAIC0xNDMsMzYgKzEzNiw0
OSBAQCBTS0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklORyA9IFsKIAogIyBEb24ndCBpbmNsdWRlIGEg
d2FybmluZyBmb3Igc2tpcHBlZCBmaWxlcyB0aGF0IGFyZSBtb3JlIGNvbW1vbgogIyBhbmQgbW9y
ZSBvYnZpb3VzLgotU0tJUFBFRF9GSUxFU19XSVRIT1VUX1dBUk5JTkcgPSBbCitfU0tJUFBFRF9G
SUxFU19XSVRIT1VUX1dBUk5JTkcgPSBbCiAgICAgIkxheW91dFRlc3RzLyIKICAgICBdCiAKIAog
IyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZXJyb3JzIHRvIHJlcG9ydCBwZXIgZmlsZSwgcGVyIGNh
dGVnb3J5LgogIyBJZiBhIGNhdGVnb3J5IGlzIG5vdCBhIGtleSwgdGhlbiBpdCBoYXMgbm8gbWF4
aW11bS4KLU1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSA9IHsKK19NQVhfUkVQT1JUU19QRVJfQ0FU
RUdPUlkgPSB7CiAgICAgIndoaXRlc3BhY2UvY2FycmlhZ2VfcmV0dXJuIjogMQogfQogCiAKLWRl
ZiBzdHlsZV9jYXRlZ29yaWVzKCk6CitkZWYgX2FsbF9jYXRlZ29yaWVzKCk6CiAgICAgIiIiUmV0
dXJuIHRoZSBzZXQgb2YgYWxsIGNhdGVnb3JpZXMgdXNlZCBieSBjaGVjay13ZWJraXQtc3R5bGUu
IiIiCiAgICAgIyBUYWtlIHRoZSB1bmlvbiBhY3Jvc3MgYWxsIHByb2Nlc3NvcnMuCiAgICAgcmV0
dXJuIENvbW1vbkNhdGVnb3JpZXMudW5pb24oQ3BwUHJvY2Vzc29yLmNhdGVnb3JpZXMpCiAKIAot
ZGVmIHdlYmtpdF9hcmd1bWVudF9kZWZhdWx0cygpOgotICAgICIiIlJldHVybiB0aGUgRGVmYXVs
dEFyZ3VtZW50cyBpbnN0YW5jZSBmb3IgdXNlIGJ5IGNoZWNrLXdlYmtpdC1zdHlsZS4iIiIKLSAg
ICByZXR1cm4gQXJndW1lbnREZWZhdWx0cyhXRUJLSVRfREVGQVVMVF9PVVRQVVRfRk9STUFULAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9ERUZBVUxUX1ZFUkJPU0lUWSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfREVGQVVMVF9GSUxURVJfUlVMRVMpCitk
ZWYgX2NoZWNrX3dlYmtpdF9zdHlsZV9kZWZhdWx0cygpOgorICAgICIiIlJldHVybiB0aGUgZGVm
YXVsdCBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3IgY2hlY2std2Via2l0LXN0eWxlLiIiIgorICAg
IHJldHVybiBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyhvdXRwdXRfZm9ybWF0PV9ERUZBVUxU
X09VVFBVVF9GT1JNQVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl
cmJvc2l0eT1fREVGQVVMVF9WRVJCT1NJVFkpCisKKworZGVmIGNoZWNrX3dlYmtpdF9zdHlsZV9j
b25maWd1cmF0aW9uKG9wdGlvbnMpOgorICAgICIiIlJldHVybiBhIFN0eWxlQ2hlY2tlckNvbmZp
Z3VyYXRpb24gaW5zdGFuY2UgZm9yIGNoZWNrLXdlYmtpdC1zdHlsZS4iIiIKKyAgICBmaWx0ZXJf
Y29uZmlndXJhdGlvbiA9IEZpbHRlckNvbmZpZ3VyYXRpb24oCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmFzZV9ydWxlcz1fQkFTRV9GSUxURVJfUlVMRVMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGF0aF9zcGVjaWZpYz1fUEFUSF9SVUxFU19TUEVDSUZJRVIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9ydWxlcz1vcHRpb25zLmZpbHRlcl9y
dWxlcykKIAorICAgIHJldHVybiBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uKGZpbHRlcl9jb25m
aWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9uLAorICAgICAgICAgICAgICAgbWF4X3JlcG9y
dHNfcGVyX2NhdGVnb3J5PV9NQVhfUkVQT1JUU19QRVJfQ0FURUdPUlksCisgICAgICAgICAgICAg
ICBvdXRwdXRfZm9ybWF0PW9wdGlvbnMub3V0cHV0X2Zvcm1hdCwKKyAgICAgICAgICAgICAgIHN0
ZGVycl93cml0ZT1zeXMuc3RkZXJyLndyaXRlLAorICAgICAgICAgICAgICAgdmVyYm9zaXR5PW9w
dGlvbnMudmVyYm9zaXR5KQogCi1kZWYgX2NyZWF0ZV91c2FnZShkZWZhdWx0cyk6CisKK2RlZiBf
Y3JlYXRlX3VzYWdlKGRlZmF1bHRfb3B0aW9ucyk6CiAgICAgIiIiUmV0dXJuIHRoZSB1c2FnZSBz
dHJpbmcgdG8gZGlzcGxheSBmb3IgY29tbWFuZCBoZWxwLgogCiAgICAgQXJnczoKLSAgICAgIGRl
ZmF1bHRzOiBBbiBBcmd1bWVudERlZmF1bHRzIGluc3RhbmNlLgorICAgICAgZGVmYXVsdF9vcHRp
b25zOiBBIERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVzIGluc3RhbmNlLgogCiAgICAgIiIiCiAg
ICAgdXNhZ2UgPSAiIiIKQEAgLTIzNCw0MiArMjQwLDMyIEBAIFN5bnRheDogJShwcm9ncmFtX25h
bWUpcyBbLS12ZXJib3NlPSNdIFstLWdpdC1jb21taXQ9PFNpbmdsZUNvbW1pdD5dIFstLW91dHB1
dD12CiAgICAgICB0aGUgZW1wdHkgZmlsdGVyIGFzIGZvbGxvd3M6CiAgICAgICAgICAtLWZpbHRl
cj0KICIiIiAlIHsncHJvZ3JhbV9uYW1lJzogb3MucGF0aC5iYXNlbmFtZShzeXMuYXJndlswXSks
Ci0gICAgICAgJ2RlZmF1bHRfdmVyYm9zaXR5JzogZGVmYXVsdHMudmVyYm9zaXR5LAotICAgICAg
ICdkZWZhdWx0X291dHB1dF9mb3JtYXQnOiBkZWZhdWx0cy5vdXRwdXRfZm9ybWF0fQorICAgICAg
ICdkZWZhdWx0X3ZlcmJvc2l0eSc6IGRlZmF1bHRfb3B0aW9ucy52ZXJib3NpdHksCisgICAgICAg
J2RlZmF1bHRfb3V0cHV0X2Zvcm1hdCc6IGRlZmF1bHRfb3B0aW9ucy5vdXRwdXRfZm9ybWF0fQog
CiAgICAgcmV0dXJuIHVzYWdlCiAKIAogIyBGSVhNRTogRWxpbWluYXRlIHN1cHBvcnQgZm9yICJl
eHRyYV9mbGFnX3ZhbHVlcyIuCiAjCi0jIEZJWE1FOiBSZW1vdmUgZXZlcnl0aGluZyBmcm9tIFBy
b2Nlc3Nvck9wdGlvbnMgZXhjZXB0IGZvciB0aGUKLSMgICAgICAgIGluZm9ybWF0aW9uIHRoYXQg
Y2FuIGJlIHBhc3NlZCB2aWEgdGhlIGNvbW1hbmQgbGluZSwgYW5kCi0jICAgICAgICByZW5hbWUg
dG8gc29tZXRoaW5nIGxpa2UgQ2hlY2tXZWJLaXRTdHlsZU9wdGlvbnMuICBUaGlzCi0jICAgICAg
ICBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCByZW1vdmluZyB0aGUKLSMgICAgICAg
IG1heF9yZXBvcnRzX3Blcl9lcnJvciBhdHRyaWJ1dGUgYW5kIHRoZSBpc19yZXBvcnRhYmxlKCkK
LSMgICAgICAgIG1ldGhvZC4gIFNlZSBhbHNvIHRoZSBGSVhNRSBiZWxvdyB0byBjcmVhdGUgYSBu
ZXcgY2xhc3MKLSMgICAgICAgIGNhbGxlZCBzb21ldGhpbmcgbGlrZSBDaGVja2VyQ29uZmlndXJh
dGlvbi4KLSMKICMgVGhpcyBjbGFzcyBzaG91bGQgbm90IGhhdmUga25vd2xlZGdlIG9mIHRoZSBm
bGFnIGtleSBuYW1lcy4KLWNsYXNzIFByb2Nlc3Nvck9wdGlvbnMob2JqZWN0KToKK2NsYXNzIENv
bW1hbmRPcHRpb25WYWx1ZXMob2JqZWN0KToKIAotICAgICIiIkEgY29udGFpbmVyIHRvIHN0b3Jl
IG9wdGlvbnMgcGFzc2VkIHZpYSB0aGUgY29tbWFuZCBsaW5lLgorICAgICIiIlN0b3JlcyB0aGUg
b3B0aW9uIHZhbHVlcyBwYXNzZWQgYnkgdGhlIHVzZXIgdmlhIHRoZSBjb21tYW5kIGxpbmUuCiAK
ICAgICBBdHRyaWJ1dGVzOgogICAgICAgZXh0cmFfZmxhZ192YWx1ZXM6IEEgc3RyaW5nLXN0cmlu
ZyBkaWN0aW9uYXJ5IG9mIGFsbCBmbGFnIGtleS12YWx1ZQogICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhaXJzIHRoYXQgYXJlIG5vdCBvdGhlcndpc2UgcmVwcmVzZW50ZWQgYnkgdGhpcwogICAg
ICAgICAgICAgICAgICAgICAgICAgIGNsYXNzLiAgVGhlIGRlZmF1bHQgaXMgdGhlIGVtcHR5IGRp
Y3Rpb25hcnkuCiAKLSAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uOiBBIEZpbHRlckNvbmZpZ3Vy
YXRpb24gaW5zdGFuY2UuICBUaGUgZGVmYXVsdAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlzIHRoZSAiZW1wdHkiIGZpbHRlciBjb25maWd1cmF0aW9uLCB3aGljaAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1lYW5zIHRoYXQgYWxsIGVycm9ycyBzaG91bGQgYmUgY2hlY2tlZC4K
KyAgICAgIGZpbHRlcl9ydWxlczogVGhlIGxpc3Qgb2YgZmlsdGVyIHJ1bGVzIHByb3ZpZGVkIGJ5
IHRoZSB1c2VyLgorICAgICAgICAgICAgICAgICAgICBUaGVzZSBydWxlcyBhcmUgYXBwZW5kZWQg
dG8gdGhlIGJhc2UgcnVsZXMgYW5kCisgICAgICAgICAgICAgICAgICAgIHBhdGgtc3BlY2lmaWMg
cnVsZXMgYW5kIHNvIHRha2UgcHJlY2VkZW5jZSBvdmVyCisgICAgICAgICAgICAgICAgICAgIHRo
ZSBiYXNlIGZpbHRlciBydWxlcywgZXRjLgogCiAgICAgICBnaXRfY29tbWl0OiBBIHN0cmluZyBy
ZXByZXNlbnRpbmcgdGhlIGdpdCBjb21taXQgdG8gY2hlY2suCiAgICAgICAgICAgICAgICAgICBU
aGUgZGVmYXVsdCBpcyBOb25lLgogCi0gICAgICBtYXhfcmVwb3J0c19wZXJfZXJyb3I6IFRoZSBt
YXhpbXVtIG51bWJlciBvZiBlcnJvcnMgdG8gcmVwb3J0Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBlciBmaWxlLCBwZXIgY2F0ZWdvcnkuCi0KICAgICAgIG91dHB1dF9mb3JtYXQ6IEEg
c3RyaW5nIHRoYXQgaXMgdGhlIG91dHB1dCBmb3JtYXQuICBUaGUgc3VwcG9ydGVkCiAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgZm9ybWF0cyBhcmUgImVtYWNzIiB3aGljaCBlbWFjcyBjYW4g
cGFyc2UKICAgICAgICAgICAgICAgICAgICAgIGFuZCAidnM3IiB3aGljaCBNaWNyb3NvZnQgVmlz
dWFsIFN0dWRpbyA3IGNhbiBwYXJzZS4KQEAgLTI4MSwxNyArMjc3LDE0IEBAIGNsYXNzIFByb2Nl
c3Nvck9wdGlvbnMob2JqZWN0KToKICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwKICAg
ICAgICAgICAgICAgICAgZXh0cmFfZmxhZ192YWx1ZXM9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
ZmlsdGVyX2NvbmZpZ3VyYXRpb24gPSBOb25lLAorICAgICAgICAgICAgICAgICBmaWx0ZXJfcnVs
ZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgZ2l0X2NvbW1pdD1Ob25lLAotICAgICAgICAgICAg
ICAgICBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9Tm9uZSwKICAgICAgICAgICAgICAgICAgb3V0
cHV0X2Zvcm1hdD0iZW1hY3MiLAogICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9MSk6CiAgICAg
ICAgIGlmIGV4dHJhX2ZsYWdfdmFsdWVzIGlzIE5vbmU6CiAgICAgICAgICAgICBleHRyYV9mbGFn
X3ZhbHVlcyA9IHt9Ci0gICAgICAgIGlmIGZpbHRlcl9jb25maWd1cmF0aW9uIGlzIE5vbmU6Ci0g
ICAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZpbHRlckNvbmZpZ3VyYXRpb24oKQot
ICAgICAgICBpZiBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnkgaXMgTm9uZToKLSAgICAgICAgICAg
IG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeSA9IHt9CisgICAgICAgIGlmIGZpbHRlcl9ydWxlcyBp
cyBOb25lOgorICAgICAgICAgICAgZmlsdGVyX3J1bGVzID0gW10KIAogICAgICAgICBpZiBvdXRw
dXRfZm9ybWF0IG5vdCBpbiAoImVtYWNzIiwgInZzNyIpOgogICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignSW52YWxpZCAib3V0cHV0X2Zvcm1hdCIgcGFyYW1ldGVyOiAnCkBAIC0zMDQsMjMg
KzI5NywyMCBAQCBjbGFzcyBQcm9jZXNzb3JPcHRpb25zKG9iamVjdCk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdWYWx1ZSBnaXZlbjogIiVzIi4nICUgdmVyYm9zaXR5KQogCiAgICAg
ICAgIHNlbGYuZXh0cmFfZmxhZ192YWx1ZXMgPSBleHRyYV9mbGFnX3ZhbHVlcwotICAgICAgICBz
ZWxmLmZpbHRlcl9jb25maWd1cmF0aW9uID0gZmlsdGVyX2NvbmZpZ3VyYXRpb24KKyAgICAgICAg
c2VsZi5maWx0ZXJfcnVsZXMgPSBmaWx0ZXJfcnVsZXMKICAgICAgICAgc2VsZi5naXRfY29tbWl0
ID0gZ2l0X2NvbW1pdAotICAgICAgICBzZWxmLm1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeSA9IG1h
eF9yZXBvcnRzX3Blcl9jYXRlZ29yeQogICAgICAgICBzZWxmLm91dHB1dF9mb3JtYXQgPSBvdXRw
dXRfZm9ybWF0CiAgICAgICAgIHNlbGYudmVyYm9zaXR5ID0gdmVyYm9zaXR5CiAKICAgICAjIFVz
ZWZ1bCBmb3IgdW5pdCB0ZXN0aW5nLgogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgotICAg
ICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGlzIFByb2Nlc3Nvck9wdGlvbnMgaW5zdGFuY2UgaXMg
ZXF1YWwgdG8gYW5vdGhlci4iIiIKKyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhpcyBpbnN0
YW5jZSBpcyBlcXVhbCB0byBhbm90aGVyLiIiIgogICAgICAgICBpZiBzZWxmLmV4dHJhX2ZsYWdf
dmFsdWVzICE9IG90aGVyLmV4dHJhX2ZsYWdfdmFsdWVzOgogICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0gICAgICAgIGlmIHNlbGYuZmlsdGVyX2NvbmZpZ3VyYXRpb24gIT0gb3RoZXIuZmlsdGVy
X2NvbmZpZ3VyYXRpb246CisgICAgICAgIGlmIHNlbGYuZmlsdGVyX3J1bGVzICE9IG90aGVyLmZp
bHRlcl9ydWxlczoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBpZiBzZWxmLmdp
dF9jb21taXQgIT0gb3RoZXIuZ2l0X2NvbW1pdDoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQot
ICAgICAgICBpZiBzZWxmLm1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeSAhPSBvdGhlci5tYXhfcmVw
b3J0c19wZXJfY2F0ZWdvcnk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYg
c2VsZi5vdXRwdXRfZm9ybWF0ICE9IG90aGVyLm91dHB1dF9mb3JtYXQ6CiAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKICAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgIT0gb3RoZXIudmVyYm9zaXR5
OgpAQCAtMzMzLDQ3ICszMjMsMjEgQEAgY2xhc3MgUHJvY2Vzc29yT3B0aW9ucyhvYmplY3QpOgog
ICAgICAgICAjIFB5dGhvbiBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IGRlZHVjZSB0aGlzIGZyb20g
X19lcV9fKCkuCiAgICAgICAgIHJldHVybiBub3Qgc2VsZi5fX2VxX18ob3RoZXIpCiAKLSAgICBk
ZWYgaXNfcmVwb3J0YWJsZShzZWxmLCBjYXRlZ29yeSwgY29uZmlkZW5jZV9pbl9lcnJvciwgcGF0
aCk6Ci0gICAgICAgICIiIlJldHVybiB3aGV0aGVyIGFuIGVycm9yIGlzIHJlcG9ydGFibGUuCi0K
LSAgICAgICAgQW4gZXJyb3IgaXMgcmVwb3J0YWJsZSBpZiB0aGUgY29uZmlkZW5jZSBpbiB0aGUg
ZXJyb3IKLSAgICAgICAgaXMgYXQgbGVhc3QgdGhlIGN1cnJlbnQgdmVyYm9zaXR5IGxldmVsLCBh
bmQgaWYgdGhlIGN1cnJlbnQKLSAgICAgICAgZmlsdGVyIHNheXMgdGhhdCB0aGUgY2F0ZWdvcnkg
c2hvdWxkIGJlIGNoZWNrZWQgZm9yIHRoZQotICAgICAgICBnaXZlbiBwYXRoLgotCi0gICAgICAg
IEFyZ3M6Ci0gICAgICAgICAgY2F0ZWdvcnk6IEEgc3RyaW5nIHRoYXQgaXMgYSBzdHlsZSBjYXRl
Z29yeS4KLSAgICAgICAgICBjb25maWRlbmNlX2luX2Vycm9yOiBBbiBpbnRlZ2VyIGJldHdlZW4g
MSBhbmQgNSwgaW5jbHVzaXZlLCB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwcmVzZW50cyB0aGUgYXBwbGljYXRpb24ncyBjb25maWRlbmNlIGluCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhlIGVycm9yLiBBIGhpZ2hlciBudW1iZXIgc2lnbmlmaWVzIGdy
ZWF0ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWRlbmNlLgotICAgICAg
ICAgIHBhdGg6IFRoZSBwYXRoIG9mIHRoZSBmaWxlIGJlaW5nIGNoZWNrZWQKLQotICAgICAgICAi
IiIKLSAgICAgICAgaWYgY29uZmlkZW5jZV9pbl9lcnJvciA8IHNlbGYudmVyYm9zaXR5OgotICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuZmlsdGVyX2NvbmZp
Z3VyYXRpb24uc2hvdWxkX2NoZWNrKGNhdGVnb3J5LCBwYXRoKQotCiAKICMgVGhpcyBjbGFzcyBz
aG91bGQgbm90IGhhdmUga25vd2xlZGdlIG9mIHRoZSBmbGFnIGtleSBuYW1lcy4KLWNsYXNzIEFy
Z3VtZW50RGVmYXVsdHMob2JqZWN0KToKK2NsYXNzIERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVz
KG9iamVjdCk6CiAKLSAgICAiIiJBIGNvbnRhaW5lciB0byBzdG9yZSBkZWZhdWx0IGFyZ3VtZW50
IHZhbHVlcy4KKyAgICAiIiJTdG9yZXMgdGhlIGRlZmF1bHQgY2hlY2std2Via2l0LXN0eWxlIGNv
bW1hbmQtbGluZSBvcHRpb25zLgogCiAgICAgQXR0cmlidXRlczoKICAgICAgIG91dHB1dF9mb3Jt
YXQ6IEEgc3RyaW5nIHRoYXQgaXMgdGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdC4KICAgICAgIHZl
cmJvc2l0eTogQW4gaW50ZWdlciB0aGF0IGlzIHRoZSBkZWZhdWx0IHZlcmJvc2l0eSBsZXZlbC4K
LSAgICAgIGJhc2VfZmlsdGVyX3J1bGVzOiBBIGxpc3Qgb2Ygc3RyaW5ncyB0aGF0IGFyZSBib29s
ZWFuIGZpbHRlciBydWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByZXBlbmQgdG8g
YW55IHVzZXItc3BlY2lmaWVkIHJ1bGVzLgogCiAgICAgIiIiCiAKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgZGVmYXVsdF9vdXRwdXRfZm9ybWF0LCBkZWZhdWx0X3ZlcmJvc2l0eSwKLSAgICAgICAg
ICAgICAgICAgZGVmYXVsdF9iYXNlX2ZpbHRlcl9ydWxlcyk6Ci0gICAgICAgIHNlbGYub3V0cHV0
X2Zvcm1hdCA9IGRlZmF1bHRfb3V0cHV0X2Zvcm1hdAotICAgICAgICBzZWxmLnZlcmJvc2l0eSA9
IGRlZmF1bHRfdmVyYm9zaXR5Ci0gICAgICAgIHNlbGYuYmFzZV9maWx0ZXJfcnVsZXMgPSBkZWZh
dWx0X2Jhc2VfZmlsdGVyX3J1bGVzCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG91dHB1dF9mb3Jt
YXQsIHZlcmJvc2l0eSk6CisgICAgICAgIHNlbGYub3V0cHV0X2Zvcm1hdCA9IG91dHB1dF9mb3Jt
YXQKKyAgICAgICAgc2VsZi52ZXJib3NpdHkgPSB2ZXJib3NpdHkKIAogCiBjbGFzcyBBcmd1bWVu
dFByaW50ZXIob2JqZWN0KToKQEAgLTM4NCwxMiArMzQ4LDEyIEBAIGNsYXNzIEFyZ3VtZW50UHJp
bnRlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gJy0tJShrZXkpcz0lKHZhbClzJyAlIHsna2V5
JzogZmxhZ19rZXksICd2YWwnOiBmbGFnX3ZhbHVlIH0KIAogICAgIGRlZiB0b19mbGFnX3N0cmlu
ZyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgIiIiUmV0dXJuIGEgZmxhZyBzdHJpbmcgeWllbGRp
bmcgdGhlIGdpdmVuIFByb2Nlc3Nvck9wdGlvbnMgaW5zdGFuY2UuCisgICAgICAgICIiIlJldHVy
biBhIGZsYWcgc3RyaW5nIG9mIHRoZSBnaXZlbiBDb21tYW5kT3B0aW9uVmFsdWVzIGluc3RhbmNl
LgogCiAgICAgICAgIFRoaXMgbWV0aG9kIG9yZGVycyB0aGUgZmxhZyB2YWx1ZXMgYWxwaGFiZXRp
Y2FsbHkgYnkgdGhlIGZsYWcga2V5LgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgb3B0aW9u
czogQSBQcm9jZXNzb3JPcHRpb25zIGluc3RhbmNlLgorICAgICAgICAgIG9wdGlvbnM6IEEgQ29t
bWFuZE9wdGlvblZhbHVlcyBpbnN0YW5jZS4KIAogICAgICAgICAiIiIKICAgICAgICAgZmxhZ3Mg
PSBvcHRpb25zLmV4dHJhX2ZsYWdfdmFsdWVzLmNvcHkoKQpAQCAtMzk3LDkgKzM2MSw5IEBAIGNs
YXNzIEFyZ3VtZW50UHJpbnRlcihvYmplY3QpOgogICAgICAgICBmbGFnc1snb3V0cHV0J10gPSBv
cHRpb25zLm91dHB1dF9mb3JtYXQKICAgICAgICAgZmxhZ3NbJ3ZlcmJvc2UnXSA9IG9wdGlvbnMu
dmVyYm9zaXR5CiAgICAgICAgICMgT25seSBpbmNsdWRlIHRoZSBmaWx0ZXIgZmxhZyBpZiB1c2Vy
LXByb3ZpZGVkIHJ1bGVzIGFyZSBwcmVzZW50LgotICAgICAgICB1c2VyX3J1bGVzID0gb3B0aW9u
cy5maWx0ZXJfY29uZmlndXJhdGlvbi51c2VyX3J1bGVzCi0gICAgICAgIGlmIHVzZXJfcnVsZXM6
Ci0gICAgICAgICAgICBmbGFnc1snZmlsdGVyJ10gPSAiLCIuam9pbih1c2VyX3J1bGVzKQorICAg
ICAgICBmaWx0ZXJfcnVsZXMgPSBvcHRpb25zLmZpbHRlcl9ydWxlcworICAgICAgICBpZiBmaWx0
ZXJfcnVsZXM6CisgICAgICAgICAgICBmbGFnc1snZmlsdGVyJ10gPSAiLCIuam9pbihmaWx0ZXJf
cnVsZXMpCiAgICAgICAgIGlmIG9wdGlvbnMuZ2l0X2NvbW1pdDoKICAgICAgICAgICAgIGZsYWdz
WydnaXQtY29tbWl0J10gPSBvcHRpb25zLmdpdF9jb21taXQKIApAQCAtNDExLDMxICszNzUsNTAg
QEAgY2xhc3MgQXJndW1lbnRQcmludGVyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBmbGFnX3N0
cmluZy5zdHJpcCgpCiAKIAorIyBGSVhNRTogUmVwbGFjZSB0aGUgdXNlIG9mIGdldG9wdC5nZXRv
cHQoKSB3aXRoIG9wdHBhcnNlLk9wdGlvblBhcnNlci4KIGNsYXNzIEFyZ3VtZW50UGFyc2VyKG9i
amVjdCk6CiAKICAgICAiIiJTdXBwb3J0cyB0aGUgcGFyc2luZyBvZiBjaGVjay13ZWJraXQtc3R5
bGUgY29tbWFuZCBhcmd1bWVudHMuCiAKICAgICBBdHRyaWJ1dGVzOgotICAgICAgZGVmYXVsdHM6
IEFuIEFyZ3VtZW50RGVmYXVsdHMgaW5zdGFuY2UuCi0gICAgICBjcmVhdGVfdXNhZ2U6IEEgZnVu
Y3Rpb24gdGhhdCBhY2NlcHRzIGFuIEFyZ3VtZW50RGVmYXVsdHMgaW5zdGFuY2UKLSAgICAgICAg
ICAgICAgICAgICAgYW5kIHJldHVybnMgYSBzdHJpbmcgb2YgdXNhZ2UgaW5zdHJ1Y3Rpb25zLgot
ICAgICAgICAgICAgICAgICAgICBUaGlzIGRlZmF1bHRzIHRvIHRoZSBmdW5jdGlvbiB1c2VkIHRv
IGdlbmVyYXRlIHRoZQotICAgICAgICAgICAgICAgICAgICB1c2FnZSBzdHJpbmcgZm9yIGNoZWNr
LXdlYmtpdC1zdHlsZS4KLSAgICAgIGRvY19wcmludDogQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMg
YSBzdHJpbmcgcGFyYW1ldGVyIGFuZCB0aGF0IGlzCi0gICAgICAgICAgICAgICAgIGNhbGxlZCB0
byBkaXNwbGF5IGhlbHAgbWVzc2FnZXMuIFRoaXMgZGVmYXVsdHMgdG8KLSAgICAgICAgICAgICAg
ICAgc3lzLnN0ZGVyci53cml0ZSgpLgorICAgICAgYmFzZV9maWx0ZXJfcnVsZXM6IFRoZSBsaXN0
IG9mIGZpbHRlciBydWxlcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpc3Qgb2YgcnVsZXMgdXNlZCB0byBjaGVjayBzdHlsZS4gIFRoaXMgbGlzdCBo
YXMKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbGVhc3QgcHJlY2VkZW5jZSB3aGVuIGNo
ZWNraW5nIHN0eWxlIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNlZGVzIGFueSB1
c2VyLXByb3ZpZGVkIHJ1bGVzLiAgVGhlIGNsYXNzIHVzZXMKKyAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzIHBhcmFtZXRlciBvbmx5IGZvciBkaXNwbGF5IHB1cnBvc2VzIHRvIHRoZQorICAg
ICAgICAgICAgICAgICAgICAgICAgIHVzZXIuICBEZWZhdWx0cyB0byB0aGUgYmFzZSBmaWx0ZXIg
cnVsZXMgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2std2Via2l0LXN0eWxlLgor
ICAgICAgY3JlYXRlX3VzYWdlOiBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIERlZmF1bHRDb21t
YW5kT3B0aW9uVmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIGFuZCByZXR1cm5z
IGEgc3RyaW5nIG9mIHVzYWdlIGluc3RydWN0aW9ucy4KKyAgICAgICAgICAgICAgICAgICAgRGVm
YXVsdHMgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSB1c2FnZQorICAgICAgICAg
ICAgICAgICAgICBzdHJpbmcgZm9yIGNoZWNrLXdlYmtpdC1zdHlsZS4KKyAgICAgIGRlZmF1bHRf
b3B0aW9uczogQSBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyBpbnN0YW5jZS4gIERlZmF1bHRz
CisgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBkZWZhdWx0IGNvbW1hbmQgb3B0aW9uIHZh
bHVlcyB1c2VkIGJ5CisgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrLXdlYmtpdC1zdHlsZS4K
KyAgICAgIHN0ZGVycl93cml0ZTogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgc3RyaW5nIGFzIGEg
cGFyYW1ldGVyIGFuZAorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXMgYXMgc3RkZXJyLndyaXRl
LiAgRGVmYXVsdHMgdG8gc3lzLnN0ZGVyci53cml0ZS4KKyAgICAgICAgICAgICAgICAgICAgVGhp
cyBwYXJhbWV0ZXIgc2hvdWxkIGJlIHNwZWNpZmllZCBvbmx5IGZvciB1bml0IHRlc3RzLgogCiAg
ICAgIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgYXJndW1lbnRfZGVmYXVsdHMsIGNyZWF0
ZV91c2FnZT1Ob25lLCBkb2NfcHJpbnQ9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisg
ICAgICAgICAgICAgICAgIGJhc2VfZmlsdGVyX3J1bGVzPU5vbmUsCisgICAgICAgICAgICAgICAg
IGNyZWF0ZV91c2FnZT1Ob25lLAorICAgICAgICAgICAgICAgICBkZWZhdWx0X29wdGlvbnM9Tm9u
ZSwKKyAgICAgICAgICAgICAgICAgc3RkZXJyX3dyaXRlPU5vbmUpOgorICAgICAgICBpZiBiYXNl
X2ZpbHRlcl9ydWxlcyBpcyBOb25lOgorICAgICAgICAgICAgYmFzZV9maWx0ZXJfcnVsZXMgPSBf
QkFTRV9GSUxURVJfUlVMRVMKICAgICAgICAgaWYgY3JlYXRlX3VzYWdlIGlzIE5vbmU6CiAgICAg
ICAgICAgICBjcmVhdGVfdXNhZ2UgPSBfY3JlYXRlX3VzYWdlCi0gICAgICAgIGlmIGRvY19wcmlu
dCBpcyBOb25lOgotICAgICAgICAgICAgZG9jX3ByaW50ID0gc3lzLnN0ZGVyci53cml0ZQorICAg
ICAgICBpZiBkZWZhdWx0X29wdGlvbnMgaXMgTm9uZToKKyAgICAgICAgICAgIGRlZmF1bHRfb3B0
aW9ucyA9IF9jaGVja193ZWJraXRfc3R5bGVfZGVmYXVsdHMoKQorICAgICAgICBpZiBzdGRlcnJf
d3JpdGUgaXMgTm9uZToKKyAgICAgICAgICAgIHN0ZGVycl93cml0ZSA9IHN5cy5zdGRlcnIud3Jp
dGUKIAotICAgICAgICBzZWxmLmRlZmF1bHRzID0gYXJndW1lbnRfZGVmYXVsdHMKKyAgICAgICAg
c2VsZi5fYmFzZV9maWx0ZXJfcnVsZXMgPSBiYXNlX2ZpbHRlcl9ydWxlcwogICAgICAgICBzZWxm
LmNyZWF0ZV91c2FnZSA9IGNyZWF0ZV91c2FnZQotICAgICAgICBzZWxmLmRvY19wcmludCA9IGRv
Y19wcmludAorICAgICAgICBzZWxmLmRlZmF1bHRfb3B0aW9ucyA9IGRlZmF1bHRfb3B0aW9ucwor
ICAgICAgICBzZWxmLnN0ZGVycl93cml0ZSA9IHN0ZGVycl93cml0ZQogCiAgICAgZGVmIF9leGl0
X3dpdGhfdXNhZ2Uoc2VsZiwgZXJyb3JfbWVzc2FnZT0nJyk6CiAgICAgICAgICIiIkV4aXQgYW5k
IHByaW50IGEgdXNhZ2Ugc3RyaW5nIHdpdGggYW4gb3B0aW9uYWwgZXJyb3IgbWVzc2FnZS4KQEAg
LTQ0NCw4ICs0MjcsOCBAQCBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3QpOgogICAgICAgICAg
IGVycm9yX21lc3NhZ2U6IEEgc3RyaW5nIHRoYXQgaXMgYW4gZXJyb3IgbWVzc2FnZSB0byBwcmlu
dC4KIAogICAgICAgICAiIiIKLSAgICAgICAgdXNhZ2UgPSBzZWxmLmNyZWF0ZV91c2FnZShzZWxm
LmRlZmF1bHRzKQotICAgICAgICBzZWxmLmRvY19wcmludCh1c2FnZSkKKyAgICAgICAgdXNhZ2Ug
PSBzZWxmLmNyZWF0ZV91c2FnZShzZWxmLmRlZmF1bHRfb3B0aW9ucykKKyAgICAgICAgc2VsZi5z
dGRlcnJfd3JpdGUodXNhZ2UpCiAgICAgICAgIGlmIGVycm9yX21lc3NhZ2U6CiAgICAgICAgICAg
ICBzeXMuZXhpdCgnXG5GQVRBTCBFUlJPUjogJyArIGVycm9yX21lc3NhZ2UpCiAgICAgICAgIGVs
c2U6CkBAIC00NTMsMTYgKzQzNiwxNiBAQCBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3QpOgog
CiAgICAgZGVmIF9leGl0X3dpdGhfY2F0ZWdvcmllcyhzZWxmKToKICAgICAgICAgIiIiRXhpdCBh
bmQgcHJpbnQgdGhlIHN0eWxlIGNhdGVnb3JpZXMgYW5kIGRlZmF1bHQgZmlsdGVyIHJ1bGVzLiIi
IgotICAgICAgICBzZWxmLmRvY19wcmludCgnXG5BbGwgY2F0ZWdvcmllczpcbicpCi0gICAgICAg
IGNhdGVnb3JpZXMgPSBzdHlsZV9jYXRlZ29yaWVzKCkKKyAgICAgICAgc2VsZi5zdGRlcnJfd3Jp
dGUoJ1xuQWxsIGNhdGVnb3JpZXM6XG4nKQorICAgICAgICBjYXRlZ29yaWVzID0gX2FsbF9jYXRl
Z29yaWVzKCkKICAgICAgICAgZm9yIGNhdGVnb3J5IGluIHNvcnRlZChjYXRlZ29yaWVzKToKLSAg
ICAgICAgICAgIHNlbGYuZG9jX3ByaW50KCcgICAgJyArIGNhdGVnb3J5ICsgJ1xuJykKKyAgICAg
ICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlKCcgICAgJyArIGNhdGVnb3J5ICsgJ1xuJykKIAotICAg
ICAgICBzZWxmLmRvY19wcmludCgnXG5EZWZhdWx0IGZpbHRlciBydWxlcyoqOlxuJykKLSAgICAg
ICAgZm9yIGZpbHRlcl9ydWxlIGluIHNvcnRlZChzZWxmLmRlZmF1bHRzLmJhc2VfZmlsdGVyX3J1
bGVzKToKLSAgICAgICAgICAgIHNlbGYuZG9jX3ByaW50KCcgICAgJyArIGZpbHRlcl9ydWxlICsg
J1xuJykKLSAgICAgICAgc2VsZi5kb2NfcHJpbnQoJ1xuKipUaGUgY29tbWFuZCBhbHdheXMgZXZh
bHVhdGVzIHRoZSBhYm92ZSBydWxlcywgJwotICAgICAgICAgICAgICAgICAgICAgICAnYW5kIGJl
Zm9yZSBhbnkgLS1maWx0ZXIgZmxhZy5cblxuJykKKyAgICAgICAgc2VsZi5zdGRlcnJfd3JpdGUo
J1xuRGVmYXVsdCBmaWx0ZXIgcnVsZXMqKjpcbicpCisgICAgICAgIGZvciBmaWx0ZXJfcnVsZSBp
biBzb3J0ZWQoc2VsZi5fYmFzZV9maWx0ZXJfcnVsZXMpOgorICAgICAgICAgICAgc2VsZi5zdGRl
cnJfd3JpdGUoJyAgICAnICsgZmlsdGVyX3J1bGUgKyAnXG4nKQorICAgICAgICBzZWxmLnN0ZGVy
cl93cml0ZSgnXG4qKlRoZSBjb21tYW5kIGFsd2F5cyBldmFsdWF0ZXMgdGhlIGFib3ZlIHJ1bGVz
LCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhbmQgYmVmb3JlIGFueSAtLWZpbHRlciBm
bGFnLlxuXG4nKQogCiAgICAgICAgIHN5cy5leGl0KDApCiAKQEAgLTQ4OCw3ICs0NzEsNyBAQCBj
bGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3QpOgogICAgICAgICBBcmdzOgogICAgICAgICAgIGFy
Z3M6IEEgbGlzdCBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGFzIHJldHVybmVkIGJ5IHN5cy5h
cmd2WzE6XS4KICAgICAgICAgICBleHRyYV9mbGFnczogQSBsaXN0IG9mIGZsYWdzIHdob3NlIHZh
bHVlcyB3ZSB3YW50IHRvIGV4dHJhY3QsIGJ1dAotICAgICAgICAgICAgICAgICAgICAgICBhcmUg
bm90IHN1cHBvcnRlZCBieSB0aGUgUHJvY2Vzc29yT3B0aW9ucyBjbGFzcy4KKyAgICAgICAgICAg
ICAgICAgICAgICAgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIENvbW1hbmRPcHRpb25WYWx1ZXMg
Y2xhc3MuCiAgICAgICAgICAgICAgICAgICAgICAgIEFuIGV4YW1wbGUgZmxhZyAibmV3X2ZsYWc9
Ii4gVGhpcyBkZWZhdWx0cyB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHkgbGlz
dC4KIApAQCAtNDk2LDE3ICs0NzksMTYgQEAgY2xhc3MgQXJndW1lbnRQYXJzZXIob2JqZWN0KToK
ICAgICAgICAgICBBIHR1cGxlIG9mIChmaWxlbmFtZXMsIG9wdGlvbnMpCiAKICAgICAgICAgICBm
aWxlbmFtZXM6IFRoZSBsaXN0IG9mIGZpbGVuYW1lcyB0byBjaGVjay4KLSAgICAgICAgICBvcHRp
b25zOiBBIFByb2Nlc3Nvck9wdGlvbnMgaW5zdGFuY2UuCisgICAgICAgICAgb3B0aW9uczogQSBD
b21tYW5kT3B0aW9uVmFsdWVzIGluc3RhbmNlLgogCiAgICAgICAgICIiIgogICAgICAgICBpZiBl
eHRyYV9mbGFncyBpcyBOb25lOgogICAgICAgICAgICAgZXh0cmFfZmxhZ3MgPSBbXQogCi0gICAg
ICAgIG91dHB1dF9mb3JtYXQgPSBzZWxmLmRlZmF1bHRzLm91dHB1dF9mb3JtYXQKLSAgICAgICAg
dmVyYm9zaXR5ID0gc2VsZi5kZWZhdWx0cy52ZXJib3NpdHkKLSAgICAgICAgYmFzZV9ydWxlcyA9
IHNlbGYuZGVmYXVsdHMuYmFzZV9maWx0ZXJfcnVsZXMKKyAgICAgICAgb3V0cHV0X2Zvcm1hdCA9
IHNlbGYuZGVmYXVsdF9vcHRpb25zLm91dHB1dF9mb3JtYXQKKyAgICAgICAgdmVyYm9zaXR5ID0g
c2VsZi5kZWZhdWx0X29wdGlvbnMudmVyYm9zaXR5CiAKLSAgICAgICAgIyBUaGUgZmxhZ3MgYWxy
ZWFkeSBzdXBwb3J0ZWQgYnkgdGhlIFByb2Nlc3Nvck9wdGlvbnMgY2xhc3MuCisgICAgICAgICMg
VGhlIGZsYWdzIGFscmVhZHkgc3VwcG9ydGVkIGJ5IHRoZSBDb21tYW5kT3B0aW9uVmFsdWVzIGNs
YXNzLgogICAgICAgICBmbGFncyA9IFsnaGVscCcsICdvdXRwdXQ9JywgJ3ZlcmJvc2U9JywgJ2Zp
bHRlcj0nLCAnZ2l0LWNvbW1pdD0nXQogCiAgICAgICAgIGZvciBleHRyYV9mbGFnIGluIGV4dHJh
X2ZsYWdzOgpAQCAtNTI3LDcgKzUwOSw3IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyKG9iamVjdCk6
CiAKICAgICAgICAgZXh0cmFfZmxhZ192YWx1ZXMgPSB7fQogICAgICAgICBnaXRfY29tbWl0ID0g
Tm9uZQotICAgICAgICB1c2VyX3J1bGVzID0gW10KKyAgICAgICAgZmlsdGVyX3J1bGVzID0gW10K
IAogICAgICAgICBmb3IgKG9wdCwgdmFsKSBpbiBvcHRzOgogICAgICAgICAgICAgaWYgb3B0ID09
ICctLWhlbHAnOgpAQCAtNTQxLDggKzUyMyw3IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyKG9iamVj
dCk6CiAgICAgICAgICAgICBlbGlmIG9wdCA9PSAnLS1maWx0ZXInOgogICAgICAgICAgICAgICAg
IGlmIG5vdCB2YWw6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4aXRfd2l0aF9jYXRlZ29y
aWVzKCkKLSAgICAgICAgICAgICAgICAjIFByZXBlbmQgdGhlIGRlZmF1bHRzLgotICAgICAgICAg
ICAgICAgIHVzZXJfcnVsZXMgPSBzZWxmLl9wYXJzZV9maWx0ZXJfZmxhZyh2YWwpCisgICAgICAg
ICAgICAgICAgZmlsdGVyX3J1bGVzID0gc2VsZi5fcGFyc2VfZmlsdGVyX2ZsYWcodmFsKQogICAg
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBleHRyYV9mbGFnX3ZhbHVlc1tvcHRdID0g
dmFsCiAKQEAgLTU1NiwyNCArNTM3LDE5IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyKG9iamVjdCk6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbGxvd2VkIG91dHB1dCBmb3JtYXRzIGFy
ZSBlbWFjcyBhbmQgdnM3LicgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRf
Zm9ybWF0KQogCi0gICAgICAgIGFsbF9jYXRlZ29yaWVzID0gc3R5bGVfY2F0ZWdvcmllcygpCi0g
ICAgICAgIHZhbGlkYXRlX2ZpbHRlcl9ydWxlcyh1c2VyX3J1bGVzLCBhbGxfY2F0ZWdvcmllcykK
KyAgICAgICAgYWxsX2NhdGVnb3JpZXMgPSBfYWxsX2NhdGVnb3JpZXMoKQorICAgICAgICB2YWxp
ZGF0ZV9maWx0ZXJfcnVsZXMoZmlsdGVyX3J1bGVzLCBhbGxfY2F0ZWdvcmllcykKIAogICAgICAg
ICB2ZXJib3NpdHkgPSBpbnQodmVyYm9zaXR5KQogICAgICAgICBpZiAodmVyYm9zaXR5IDwgMSkg
b3IgKHZlcmJvc2l0eSA+IDUpOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxp
ZCAtLXZlcmJvc2UgdmFsdWUgJXM6IHZhbHVlIG11c3QgJwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnYmUgYmV0d2VlbiAxLTUuJyAlIHZlcmJvc2l0eSkKIAotICAgICAgICBmaWx0ZXJf
Y29uZmlndXJhdGlvbiA9IEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzZV9ydWxlcz1iYXNlX3J1bGVz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX3NwZWNpZmljPV9QQVRI
X1JVTEVTX1NQRUNJRklFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
cl9ydWxlcz11c2VyX3J1bGVzKQotCi0gICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25z
KGV4dHJhX2ZsYWdfdmFsdWVzPWV4dHJhX2ZsYWdfdmFsdWVzLAotICAgICAgICAgICAgICAgICAg
ICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgIGdpdF9jb21taXQ9Z2l0X2NvbW1pdCwKLSAgICAgICAgICAgICAgICAgICAg
ICBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9TUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZLAotICAg
ICAgICAgICAgICAgICAgICAgIG91dHB1dF9mb3JtYXQ9b3V0cHV0X2Zvcm1hdCwKLSAgICAgICAg
ICAgICAgICAgICAgICB2ZXJib3NpdHk9dmVyYm9zaXR5KQorICAgICAgICBvcHRpb25zID0gQ29t
bWFuZE9wdGlvblZhbHVlcyhleHRyYV9mbGFnX3ZhbHVlcz1leHRyYV9mbGFnX3ZhbHVlcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcl9ydWxlcz1maWx0ZXJfcnVsZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXRfY29tbWl0PWdpdF9jb21taXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0PW91dHB1dF9m
b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9dmVyYm9z
aXR5KQogCiAgICAgICAgIHJldHVybiAoZmlsZW5hbWVzLCBvcHRpb25zKQogCkBAIC02MTUsMTQg
KzU5MSwxNCBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVyKG9iamVjdCk6CiAKICAgICBkZWYg
c2hvdWxkX3NraXBfd2l0aF93YXJuaW5nKHNlbGYsIGZpbGVfcGF0aCk6CiAgICAgICAgICIiIlJl
dHVybiB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIHNob3VsZCBiZSBza2lwcGVkIHdpdGggYSB3YXJu
aW5nLiIiIgotICAgICAgICBmb3Igc2tpcHBlZF9maWxlIGluIFNLSVBQRURfRklMRVNfV0lUSF9X
QVJOSU5HOgorICAgICAgICBmb3Igc2tpcHBlZF9maWxlIGluIF9TS0lQUEVEX0ZJTEVTX1dJVEhf
V0FSTklORzoKICAgICAgICAgICAgIGlmIGZpbGVfcGF0aC5maW5kKHNraXBwZWRfZmlsZSkgPj0g
MDoKICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gRmFsc2UKIAog
ICAgIGRlZiBzaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcoc2VsZiwgZmlsZV9wYXRoKToKICAg
ICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIGZpbGUgc2hvdWxkIGJlIHNraXBwZWQg
d2l0aG91dCBhIHdhcm5pbmcuIiIiCi0gICAgICAgIGZvciBza2lwcGVkX2ZpbGUgaW4gU0tJUFBF
RF9GSUxFU19XSVRIT1VUX1dBUk5JTkc6CisgICAgICAgIGZvciBza2lwcGVkX2ZpbGUgaW4gX1NL
SVBQRURfRklMRVNfV0lUSE9VVF9XQVJOSU5HOgogICAgICAgICAgICAgaWYgZmlsZV9wYXRoLmZp
bmQoc2tpcHBlZF9maWxlKSA+PSAwOgogICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAg
ICAgIHJldHVybiBGYWxzZQpAQCAtNjc2LDE2ICs2NTIsOTUgQEAgY2xhc3MgUHJvY2Vzc29yRGlz
cGF0Y2hlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gcHJvY2Vzc29yCiAKIAotIyBGSVhNRTog
V2hlbiBjcmVhdGluZyB0aGUgbmV3IENoZWNrV2ViS2l0U3R5bGVPcHRpb25zIGNsYXNzIGFzCi0j
ICAgICAgICBkZXNjcmliZWQgaW4gYSBGSVhNRSBhYm92ZSwgYWRkIGEgbmV3IGNsYXNzIGhlcmUg
Y2FsbGVkCi0jICAgICAgICBzb21ldGhpbmcgbGlrZSBDaGVja2VyQ29uZmlndXJhdGlvbi4gIFRo
ZSBjbGFzcyBzaG91bGQgY29udGFpbgotIyAgICAgICAgYXR0cmlidXRlcyBmb3Igb3B0aW9ucyBu
ZWVkZWQgdG8gcHJvY2VzcyBhIGZpbGUuICBUaGlzIGluY2x1ZGVzCi0jICAgICAgICBhIHN1YnNl
dCBvZiB0aGUgQ2hlY2tXZWJLaXRTdHlsZU9wdGlvbnMgYXR0cmlidXRlcywgYQotIyAgICAgICAg
RmlsdGVyQ29uZmlndXJhdGlvbiBhdHRyaWJ1dGUsIGFuIHN0ZGVycl93cml0ZSBhdHRyaWJ1dGUs
IGEKLSMgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeSBhdHRyaWJ1dGUsIGV0Yy4gIEl0
IGNhbiBhbHNvIGluY2x1ZGUKLSMgICAgICAgIHRoZSBpc19yZXBvcnRhYmxlKCkgbWV0aG9kLiAg
VGhlIFN0eWxlQ2hlY2tlciBzaG91bGQgYWNjZXB0Ci0jICAgICAgICBhbiBpbnN0YW5jZSBvZiB0
aGlzIGNsYXNzIHJhdGhlciB0aGFuIGEgUHJvY2Vzc29yT3B0aW9ucwotIyAgICAgICAgaW5zdGFu
Y2UuCitjbGFzcyBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uKG9iamVjdCk6CisKKyAgICAiIiJT
dG9yZXMgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRoZSBTdHlsZUNoZWNrZXIgY2xhc3MuCisK
KyAgICBBdHRyaWJ1dGVzOgorICAgICAgbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5OiBUaGUgbWF4
aW11bSBudW1iZXIgb2YgZXJyb3JzIHRvIHJlcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwZXIgY2F0ZWdvcnksIHBlciBmaWxlLgorCisgICAgICBzdGRlcnJfd3JpdGU6IEEg
ZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmluZyBhcyBhIHBhcmFtZXRlciBhbmQKKyAgICAgICAg
ICAgICAgICAgICAgc2VydmVzIGFzIHN0ZGVyci53cml0ZS4KKworICAgICAgdmVyYm9zaXR5OiBB
biBpbnRlZ2VyIGJldHdlZW4gMS01IGluY2x1c2l2ZSB0aGF0IHJlc3RyaWN0cyBvdXRwdXQKKyAg
ICAgICAgICAgICAgICAgdG8gZXJyb3JzIHdpdGggYSBjb25maWRlbmNlIHNjb3JlIGF0IG9yIGFi
b3ZlIHRoaXMgdmFsdWUuCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLAorICAg
ICAgICAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgbWF4
X3JlcG9ydHNfcGVyX2NhdGVnb3J5LAorICAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0LAor
ICAgICAgICAgICAgICAgICBzdGRlcnJfd3JpdGUsCisgICAgICAgICAgICAgICAgIHZlcmJvc2l0
eSk6CisgICAgICAgICIiIkNyZWF0ZSBhIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gaW5zdGFu
Y2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbjogQSBG
aWx0ZXJDb25maWd1cmF0aW9uIGluc3RhbmNlLiAgVGhlIGRlZmF1bHQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaXMgdGhlICJlbXB0eSIgZmlsdGVyIGNvbmZpZ3VyYXRpb24sIHdo
aWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW5zIHRoYXQgYWxsIGVycm9y
cyBzaG91bGQgYmUgY2hlY2tlZC4KKworICAgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29y
eTogVGhlIG1heGltdW0gbnVtYmVyIG9mIGVycm9ycyB0byByZXBvcnQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBlciBjYXRlZ29yeSwgcGVyIGZpbGUuCisKKyAgICAgICAg
ICBvdXRwdXRfZm9ybWF0OiBBIHN0cmluZyB0aGF0IGlzIHRoZSBvdXRwdXQgZm9ybWF0LiAgVGhl
IHN1cHBvcnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCBmb3JtYXRzIGFyZSAi
ZW1hY3MiIHdoaWNoIGVtYWNzIGNhbiBwYXJzZQorICAgICAgICAgICAgICAgICAgICAgICAgIGFu
ZCAidnM3IiB3aGljaCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA3IGNhbiBwYXJzZS4KKworICAg
ICAgICAgIHN0ZGVycl93cml0ZTogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgc3RyaW5nIGFzIGEg
cGFyYW1ldGVyIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVzIGFzIHN0ZGVyci53
cml0ZS4KKworICAgICAgICAgIHZlcmJvc2l0eTogQW4gaW50ZWdlciBiZXR3ZWVuIDEtNSBpbmNs
dXNpdmUgdGhhdCByZXN0cmljdHMgb3V0cHV0CisgICAgICAgICAgICAgICAgICAgICB0byBlcnJv
cnMgd2l0aCBhIGNvbmZpZGVuY2Ugc2NvcmUgYXQgb3IgYWJvdmUgdGhpcyB2YWx1ZS4KKyAgICAg
ICAgICAgICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDEsIHdoaWNoIHJlcG9ydHMgYWxsIGVycm9y
cy4KKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fZmlsdGVyX2NvbmZpZ3VyYXRpb24gPSBm
aWx0ZXJfY29uZmlndXJhdGlvbgorICAgICAgICBzZWxmLl9vdXRwdXRfZm9ybWF0ID0gb3V0cHV0
X2Zvcm1hdAorCisgICAgICAgIHNlbGYubWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5ID0gbWF4X3Jl
cG9ydHNfcGVyX2NhdGVnb3J5CisgICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlID0gc3RkZXJyX3dy
aXRlCisgICAgICAgIHNlbGYudmVyYm9zaXR5ID0gdmVyYm9zaXR5CisKKyAgICBkZWYgaXNfcmVw
b3J0YWJsZShzZWxmLCBjYXRlZ29yeSwgY29uZmlkZW5jZV9pbl9lcnJvciwgZmlsZV9wYXRoKToK
KyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgYW4gZXJyb3IgaXMgcmVwb3J0YWJsZS4KKworICAg
ICAgICBBbiBlcnJvciBpcyByZXBvcnRhYmxlIGlmIGJvdGggdGhlIGNvbmZpZGVuY2UgaW4gdGhl
IGVycm9yIGlzCisgICAgICAgIGF0IGxlYXN0IHRoZSBjdXJyZW50IHZlcmJvc2l0eSBsZXZlbCBh
bmQgdGhlIGN1cnJlbnQgZmlsdGVyCisgICAgICAgIHNheXMgdGhlIGNhdGVnb3J5IHNob3VsZCBi
ZSBjaGVja2VkIGZvciB0aGUgZ2l2ZW4gcGF0aC4KKworICAgICAgICBBcmdzOgorICAgICAgICAg
IGNhdGVnb3J5OiBBIHN0cmluZyB0aGF0IGlzIGEgc3R5bGUgY2F0ZWdvcnkuCisgICAgICAgICAg
Y29uZmlkZW5jZV9pbl9lcnJvcjogQW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDUsIGluY2x1c2l2
ZSwgdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudHMgdGhlIGFw
cGxpY2F0aW9uJ3MgY29uZmlkZW5jZSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoZSBlcnJvci4gIEEgaGlnaGVyIG51bWJlciBzaWduaWZpZXMgZ3JlYXRlcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UuCisgICAgICAgICAgZmlsZV9wYXRoOiBU
aGUgcGF0aCBvZiB0aGUgZmlsZSBiZWluZyBjaGVja2VkCisKKyAgICAgICAgIiIiCisgICAgICAg
IGlmIGNvbmZpZGVuY2VfaW5fZXJyb3IgPCBzZWxmLnZlcmJvc2l0eToKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBzZWxmLl9maWx0ZXJfY29uZmlndXJhdGlvbi5z
aG91bGRfY2hlY2soY2F0ZWdvcnksIGZpbGVfcGF0aCkKKworICAgIGRlZiB3cml0ZV9zdHlsZV9l
cnJvcihzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX251bWJlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSk6CisgICAgICAgICIiIldyaXRlIGEgc3R5bGUg
ZXJyb3IgdG8gdGhlIGNvbmZpZ3VyZWQgc3RkZXJyLiIiIgorICAgICAgICBpZiBzZWxmLl9vdXRw
dXRfZm9ybWF0ID09ICd2czcnOgorICAgICAgICAgICAgZm9ybWF0X3N0cmluZyA9ICIlcyglcyk6
ICAlcyAgWyVzXSBbJWRdXG4iCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmb3JtYXRfc3Ry
aW5nID0gIiVzOiVzOiAgJXMgIFslc10gWyVkXVxuIgorCisgICAgICAgIHNlbGYuc3RkZXJyX3dy
aXRlKGZvcm1hdF9zdHJpbmcgJSAoZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2F0ZWdvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uZmlkZW5jZSkpCiAKIAogY2xhc3MgU3R5bGVDaGVja2VyKG9iamVjdCk6
CkBAIC02OTYsMjggKzc1MSwyMiBAQCBjbGFzcyBTdHlsZUNoZWNrZXIob2JqZWN0KToKICAgICAg
ICAgIGVycm9yX2NvdW50OiBBbiBpbnRlZ2VyIHRoYXQgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBy
ZXBvcnRlZAogICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyBmb3IgdGhlIGxpZmV0aW1lIG9m
IHRoaXMgU3R5bGVDaGVja2VyCiAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuCi0gICAg
ICAgICBvcHRpb25zOiBBIFByb2Nlc3Nvck9wdGlvbnMgaW5zdGFuY2UgdGhhdCBjb250cm9scyB0
aGUgYmVoYXZpb3IKLSAgICAgICAgICAgICAgICAgIG9mIHN0eWxlIGNoZWNraW5nLgogCiAgICAg
IiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgc3RkZXJyX3dyaXRlPU5vbmUp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWd1cmF0aW9uKToKICAgICAgICAgIiIiQ3Jl
YXRlIGEgU3R5bGVDaGVja2VyIGluc3RhbmNlLgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAg
b3B0aW9uczogU2VlIG9wdGlvbnMgYXR0cmlidXRlLgotICAgICAgICAgIHN0ZGVycl93cml0ZTog
QSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgc3RyaW5nIGFzIGEgcGFyYW1ldGVyCi0gICAgICAgICAg
ICAgICAgICAgICAgICBhbmQgdGhhdCBpcyBjYWxsZWQgd2hlbiBhIHN0eWxlIGVycm9yIG9jY3Vy
cy4KLSAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIHN5cy5zdGRlcnIud3JpdGUu
IFRoaXMgc2hvdWxkIGJlCi0gICAgICAgICAgICAgICAgICAgICAgICB1c2VkIG9ubHkgZm9yIHVu
aXQgdGVzdHMuCisgICAgICAgICAgY29uZmlndXJhdGlvbjogQSBTdHlsZUNoZWNrZXJDb25maWd1
cmF0aW9uIGluc3RhbmNlIHRoYXQgY29udHJvbHMKKyAgICAgICAgICAgICAgICAgICAgICAgICB0
aGUgYmVoYXZpb3Igb2Ygc3R5bGUgY2hlY2tpbmcuCiAKICAgICAgICAgIiIiCi0gICAgICAgIGlm
IHN0ZGVycl93cml0ZSBpcyBOb25lOgotICAgICAgICAgICAgc3RkZXJyX3dyaXRlID0gc3lzLnN0
ZGVyci53cml0ZQotCi0gICAgICAgIHNlbGYuX3N0ZGVycl93cml0ZSA9IHN0ZGVycl93cml0ZQor
ICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbgogICAgICAgICBzZWxm
LmVycm9yX2NvdW50ID0gMAotICAgICAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zCisKKyAgICBk
ZWYgX3N0ZGVycl93cml0ZShzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgc2VsZi5fY29uZmlndXJh
dGlvbi5zdGRlcnJfd3JpdGUobWVzc2FnZSkKIAogICAgIGRlZiBfaW5jcmVtZW50X2Vycm9yX2Nv
dW50KHNlbGYpOgogICAgICAgICAiIiJJbmNyZW1lbnQgdGhlIHRvdGFsIGNvdW50IG9mIHJlcG9y
dGVkIGVycm9ycy4iIiIKQEAgLTc4Myw5ICs4MzIsOCBAQCBjbGFzcyBTdHlsZUNoZWNrZXIob2Jq
ZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIGlmIGhhbmRsZV9zdHlsZV9lcnJvciBpcyBOb25l
OgogICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yID0gRGVmYXVsdFN0eWxlRXJyb3JIYW5k
bGVyKGZpbGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Lm9wdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5j
cmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3N0ZGVycl93cml0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9jb25maWd1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2luY3JlbWVudF9lcnJvcl9jb3VudCkKICAgICAgICAgaWYgcHJvY2Vzc19maWxl
IGlzIE5vbmU6CiAgICAgICAgICAgICBwcm9jZXNzX2ZpbGUgPSBzZWxmLl9wcm9jZXNzX2ZpbGUK
IApAQCAtNzk4LDcgKzg0Niw3IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdHlsZSBndWlkZS5cbiIgJSBmaWxlX3BhdGgpCiAg
ICAgICAgICAgICByZXR1cm4KIAotICAgICAgICB2ZXJib3NpdHkgPSBzZWxmLm9wdGlvbnMudmVy
Ym9zaXR5CisgICAgICAgIHZlcmJvc2l0eSA9IHNlbGYuX2NvbmZpZ3VyYXRpb24udmVyYm9zaXR5
CiAgICAgICAgIHByb2Nlc3NvciA9IGRpc3BhdGNoZXIuZGlzcGF0Y2hfcHJvY2Vzc29yKGZpbGVf
cGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlX3N0eWxlX2Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJib3NpdHkpCkBAIC04MTgsOSArODY2LDggQEAgY2xhc3MgU3R5bGVD
aGVja2VyKG9iamVjdCk6CiAgICAgICAgIGZvciBmaWxlX3BhdGgsIGRpZmYgaW4gcGF0Y2hfZmls
ZXMuaXRlcml0ZW1zKCk6CiAgICAgICAgICAgICBzdHlsZV9lcnJvcl9oYW5kbGVyID0gUGF0Y2hT
dHlsZUVycm9ySGFuZGxlcihkaWZmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaWxlX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYub3B0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
aW5jcmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9zdGRlcnJfd3JpdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2NvbmZpZ3VyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2luY3JlbWVudF9lcnJvcl9jb3VudCkKIAogICAgICAgICAgICAgc2Vs
Zi5jaGVja19maWxlKGZpbGVfcGF0aCwgc3R5bGVfZXJyb3JfaGFuZGxlcikKIApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5
CmluZGV4IGUxYzliYWYuLjk1YWM2Y2MgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKQEAgLTM3LDExICszNywxNSBA
QAogaW1wb3J0IHVuaXR0ZXN0CiAKIGltcG9ydCBjaGVja2VyIGFzIHN0eWxlCitmcm9tIGNoZWNr
ZXIgaW1wb3J0IF9CQVNFX0ZJTFRFUl9SVUxFUworZnJvbSBjaGVja2VyIGltcG9ydCBfTUFYX1JF
UE9SVFNfUEVSX0NBVEVHT1JZCiBmcm9tIGNoZWNrZXIgaW1wb3J0IF9QQVRIX1JVTEVTX1NQRUNJ
RklFUiBhcyBQQVRIX1JVTEVTX1NQRUNJRklFUgotZnJvbSBjaGVja2VyIGltcG9ydCBzdHlsZV9j
YXRlZ29yaWVzCitmcm9tIGNoZWNrZXIgaW1wb3J0IF9hbGxfY2F0ZWdvcmllcyBhcyBzdHlsZV9j
YXRlZ29yaWVzCitmcm9tIGNoZWNrZXIgaW1wb3J0IENvbW1hbmRPcHRpb25WYWx1ZXMgYXMgUHJv
Y2Vzc29yT3B0aW9ucworZnJvbSBjaGVja2VyIGltcG9ydCBEZWZhdWx0Q29tbWFuZE9wdGlvblZh
bHVlcwogZnJvbSBjaGVja2VyIGltcG9ydCBQcm9jZXNzb3JEaXNwYXRjaGVyCi1mcm9tIGNoZWNr
ZXIgaW1wb3J0IFByb2Nlc3Nvck9wdGlvbnMKIGZyb20gY2hlY2tlciBpbXBvcnQgU3R5bGVDaGVj
a2VyCitmcm9tIGNoZWNrZXIgaW1wb3J0IFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24KIGZyb20g
ZmlsdGVyIGltcG9ydCB2YWxpZGF0ZV9maWx0ZXJfcnVsZXMKIGZyb20gZmlsdGVyIGltcG9ydCBG
aWx0ZXJDb25maWd1cmF0aW9uCiBmcm9tIHByb2Nlc3NvcnMuY3BwIGltcG9ydCBDcHBQcm9jZXNz
b3IKQEAgLTU3LDkgKzYxLDggQEAgY2xhc3MgUHJvY2Vzc29yT3B0aW9uc1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICAjIENoZWNrIGRlZmF1bHQgcGFyYW1ldGVycy4KICAgICAgICAg
b3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnMoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhv
cHRpb25zLmV4dHJhX2ZsYWdfdmFsdWVzLCB7fSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
b3B0aW9ucy5maWx0ZXJfY29uZmlndXJhdGlvbiwgRmlsdGVyQ29uZmlndXJhdGlvbigpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmZpbHRlcl9ydWxlcywgW10pCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZ2l0X2NvbW1pdCwgTm9uZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMob3B0aW9ucy5tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnksIHt9KQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLm91dHB1dF9mb3JtYXQsICJlbWFjcyIpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMudmVyYm9zaXR5LCAxKQogCkBAIC03Mywx
NyArNzYsMTQgQEAgY2xhc3MgUHJvY2Vzc29yT3B0aW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBQcm9jZXNzb3JPcHRpb25zKHZlcmJvc2l0eT01KSAjIHdvcmtzCiAKICAgICAg
ICAgIyBDaGVjayBhdHRyaWJ1dGVzLgotICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZp
bHRlckNvbmZpZ3VyYXRpb24oYmFzZV9ydWxlcz1bIisiXSkKICAgICAgICAgb3B0aW9ucyA9IFBy
b2Nlc3Nvck9wdGlvbnMoZXh0cmFfZmxhZ192YWx1ZXM9eyJleHRyYV92YWx1ZSIgOiAyfSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX2NvbmZpZ3VyYXRpb249Zmls
dGVyX2NvbmZpZ3VyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bHRlcl9ydWxlcz1bIisiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l0
X2NvbW1pdD0iY29tbWl0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4
X3JlcG9ydHNfcGVyX2NhdGVnb3J5PXsiY2F0ZWdvcnkiOiAzfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD0idnM3IiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmVyYm9zaXR5PTMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KG9wdGlvbnMuZXh0cmFfZmxhZ192YWx1ZXMsIHsiZXh0cmFfdmFsdWUiIDogMn0pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZmlsdGVyX2NvbmZpZ3VyYXRpb24sIGZpbHRlcl9j
b25maWd1cmF0aW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmZpbHRlcl9y
dWxlcywgWyIrIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZ2l0X2NvbW1p
dCwgImNvbW1pdCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMubWF4X3JlcG9y
dHNfcGVyX2NhdGVnb3J5LCB7ImNhdGVnb3J5IjogM30pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgInZzNyIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKG9wdGlvbnMudmVyYm9zaXR5LCAzKQogCkBAIC05MywyMCArOTMsMTUgQEAgY2xhc3MgUHJv
Y2Vzc29yT3B0aW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoUHJvY2Vzc29yT3B0aW9ucygpID09IFByb2Nlc3Nvck9wdGlvbnMoKSkKIAogICAgICAg
ICAjIFZlcmlmeSB0aGF0IGEgZGlmZmVyZW5jZSBpbiBhbnkgYXJndW1lbnQgY2F1c2VzIGVxdWFs
aXR5IHRvIGZhaWwuCi0gICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uID0gRmlsdGVyQ29uZmln
dXJhdGlvbihiYXNlX3J1bGVzPVsiKyJdKQogICAgICAgICBvcHRpb25zID0gUHJvY2Vzc29yT3B0
aW9ucyhleHRyYV9mbGFnX3ZhbHVlcz17ImV4dHJhX3ZhbHVlIiA6IDF9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbj1maWx0ZXJfY29uZmln
dXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX3J1bGVz
PVsiKyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXRfY29tbWl0PSJj
b21taXQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfcmVwb3J0c19w
ZXJfY2F0ZWdvcnk9eyJjYXRlZ29yeSI6IDN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXRfZm9ybWF0PSJ2czciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJib3NpdHk9MSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcHRpb25zID09
IFByb2Nlc3Nvck9wdGlvbnMoZXh0cmFfZmxhZ192YWx1ZXM9eyJleHRyYV92YWx1ZSIgOiAyfSkp
Ci0gICAgICAgIG5ld19jb25maWcgPSBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2VfcnVsZXM9WyIt
Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucyA9PQotICAgICAgICAgICAgICAg
ICAgICAgICAgIFByb2Nlc3Nvck9wdGlvbnMoZmlsdGVyX2NvbmZpZ3VyYXRpb249bmV3X2NvbmZp
ZykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucyA9PSBQcm9jZXNzb3JPcHRpb25z
KGV4dHJhX2ZsYWdfdmFsdWVzPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7ImV4dHJhX3ZhbHVlIiA6IDJ9KSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShvcHRpb25zID09IFByb2Nlc3Nvck9wdGlvbnMoZmlsdGVyX3J1bGVzPVsiLSJdKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcHRpb25zID09IFByb2Nlc3Nvck9wdGlvbnMoZ2l0
X2NvbW1pdD0iY29tbWl0MiIpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wdGlvbnMgPT0g
UHJvY2Vzc29yT3B0aW9ucyhtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiY2F0ZWdvcnkiOiAyfSkp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucyA9PSBQcm9jZXNzb3JPcHRpb25zKG91
dHB1dF9mb3JtYXQ9ImVtYWNzIikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucyA9
PSBQcm9jZXNzb3JPcHRpb25zKHZlcmJvc2l0eT0yKSkKIApAQCAtMTE4LDM4ICsxMTMsMjQgQEAg
Y2xhc3MgUHJvY2Vzc29yT3B0aW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAj
IGNvZGUgZGVmaW5lcyBfX25lX18uCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUHJvY2Vzc29y
T3B0aW9ucygpICE9IFByb2Nlc3Nvck9wdGlvbnMoKSkKIAotICAgIGRlZiB0ZXN0X2lzX3JlcG9y
dGFibGUoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgaXNfcmVwb3J0YWJsZSgpLiIiIgotICAgICAg
ICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzZV9ydWxlcz1b
Ii14eXoiXSkKLSAgICAgICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnMoZmlsdGVyX2NvbmZp
Z3VyYXRpb249ZmlsdGVyX2NvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZlcmJvc2l0eT0zKQotCi0gICAgICAgICMgVGVzdCB2ZXJib3NpdHkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG9wdGlvbnMuaXNfcmVwb3J0YWJsZSgiYWJjIiwgMywgImZvby5o
IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucy5pc19yZXBvcnRhYmxlKCJhYmMi
LCAyLCAiZm9vLmgiKSkKLQotICAgICAgICAjIFRlc3QgZmlsdGVyCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShvcHRpb25zLmlzX3JlcG9ydGFibGUoInh5IiwgMywgImZvby5oIikpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucy5pc19yZXBvcnRhYmxlKCJ4eXoiLCAzLCAiZm9vLmgi
KSkKLQogCiBjbGFzcyBHbG9iYWxWYXJpYWJsZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAog
ICAgICIiIlRlc3RzIHZhbGlkaXR5IG9mIHRoZSBnbG9iYWwgdmFyaWFibGVzLiIiIgogCiAgICAg
ZGVmIF9hbGxfY2F0ZWdvcmllcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHN0eWxlLnN0eWxlX2Nh
dGVnb3JpZXMoKQorICAgICAgICByZXR1cm4gc3R5bGUuX2FsbF9jYXRlZ29yaWVzKCkKIAogICAg
IGRlZiBkZWZhdWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHN0eWxlLndlYmtpdF9hcmd1bWVu
dF9kZWZhdWx0cygpCisgICAgICAgIHJldHVybiBzdHlsZS5fY2hlY2tfd2Via2l0X3N0eWxlX2Rl
ZmF1bHRzKCkKIAotICAgIGRlZiB0ZXN0X2ZpbHRlcl9ydWxlcyhzZWxmKToKKyAgICBkZWYgdGVz
dF93ZWJraXRfYmFzZV9maWx0ZXJfcnVsZXMoc2VsZik6CisgICAgICAgIGJhc2VfZmlsdGVyX3J1
bGVzID0gX0JBU0VfRklMVEVSX1JVTEVTCiAgICAgICAgIGRlZmF1bHRzID0gc2VsZi5kZWZhdWx0
cygpCiAgICAgICAgIGFscmVhZHlfc2VlbiA9IFtdCi0gICAgICAgIHZhbGlkYXRlX2ZpbHRlcl9y
dWxlcyhkZWZhdWx0cy5iYXNlX2ZpbHRlcl9ydWxlcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2FsbF9jYXRlZ29yaWVzKCkpCisgICAgICAgIHZhbGlkYXRlX2ZpbHRlcl9y
dWxlcyhiYXNlX2ZpbHRlcl9ydWxlcywgc2VsZi5fYWxsX2NhdGVnb3JpZXMoKSkKICAgICAgICAg
IyBBbHNvIGRvIHNvbWUgYWRkaXRpb25hbCBjaGVja3MuCi0gICAgICAgIGZvciBydWxlIGluIGRl
ZmF1bHRzLmJhc2VfZmlsdGVyX3J1bGVzOgorICAgICAgICBmb3IgcnVsZSBpbiBiYXNlX2ZpbHRl
cl9ydWxlczoKICAgICAgICAgICAgICMgQ2hlY2sgbm8gbGVhZGluZyBvciB0cmFpbGluZyB3aGl0
ZSBzcGFjZS4KICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJ1bGUsIHJ1bGUuc3RyaXAo
KSkKICAgICAgICAgICAgICMgQWxsIGNhdGVnb3JpZXMgYXJlIG9uIGJ5IGRlZmF1bHQsIHNvIGRl
ZmF1bHRzIHNob3VsZApAQCAtMTYxLDExICsxNDIsMTEgQEAgY2xhc3MgR2xvYmFsVmFyaWFibGVz
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9kZWZhdWx0cyhzZWxmKToK
ICAgICAgICAgIiIiQ2hlY2sgdGhhdCBkZWZhdWx0IGFyZ3VtZW50cyBhcmUgdmFsaWQuIiIiCi0g
ICAgICAgIGRlZmF1bHRzID0gc2VsZi5kZWZhdWx0cygpCisgICAgICAgIGRlZmF1bHRfb3B0aW9u
cyA9IHNlbGYuZGVmYXVsdHMoKQogCiAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBub3QgbmVl
ZCB0byBjYWxsIHBhcnNlKCkgdG8gZGV0ZXJtaW5lCiAgICAgICAgICMgICAgICAgIHdoZXRoZXIg
dGhlIGRlZmF1bHQgYXJndW1lbnRzIGFyZSB2YWxpZC4KLSAgICAgICAgcGFyc2VyID0gc3R5bGUu
QXJndW1lbnRQYXJzZXIoZGVmYXVsdHMpCisgICAgICAgIHBhcnNlciA9IHN0eWxlLkFyZ3VtZW50
UGFyc2VyKGRlZmF1bHRfb3B0aW9ucz1kZWZhdWx0X29wdGlvbnMpCiAgICAgICAgICMgTm8gbmVl
ZCB0byB0ZXN0IHRoZSByZXR1cm4gdmFsdWUgaGVyZSBzaW5jZSB3ZSB0ZXN0IHBhcnNlKCkKICAg
ICAgICAgIyBvbiB2YWxpZCBhcmd1bWVudHMgZWxzZXdoZXJlLgogICAgICAgICBwYXJzZXIucGFy
c2UoW10pICMgYXJndW1lbnRzIHZhbGlkOiBubyBlcnJvciBvciBTeXN0ZW1FeGl0CkBAIC0xNzMs
OCArMTU0LDYgQEAgY2xhc3MgR2xvYmFsVmFyaWFibGVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgZGVmIHRlc3RfcGF0aF9ydWxlc19zcGVjaWZpZXIoc2VsZik6CiAgICAgICAgIGFsbF9j
YXRlZ29yaWVzID0gc3R5bGVfY2F0ZWdvcmllcygpCiAgICAgICAgIGZvciAoc3ViX3BhdGhzLCBw
YXRoX3J1bGVzKSBpbiBQQVRIX1JVTEVTX1NQRUNJRklFUjoKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShpc2luc3RhbmNlKHBhdGhfcnVsZXMsIHR1cGxlKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQ2hlY2tpbmc6ICIgKyBzdHIocGF0aF9ydWxlcykpCiAgICAgICAgICAgICB2
YWxpZGF0ZV9maWx0ZXJfcnVsZXMocGF0aF9ydWxlcywgc2VsZi5fYWxsX2NhdGVnb3JpZXMoKSkK
IAogICAgICAgICAjIFRyeSB1c2luZyB0aGUgcGF0aCBzcGVjaWZpZXIgKGFzIGFuICJlbmQtdG8t
ZW5kIiBjaGVjaykuCkBAIC0xODksOSArMTY4LDkgQEAgY2xhc3MgR2xvYmFsVmFyaWFibGVzVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZWJL
aXQvcXQvdGVzdHMvcXdlYmVsZW1lbnQvdHN0X3F3ZWJlbGVtZW50LmNwcCIpKQogCiAgICAgZGVm
IHRlc3RfbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5KHNlbGYpOgotICAgICAgICAiIiJDaGVjayB0
aGF0IE1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSBpcyB2YWxpZC4iIiIKKyAgICAgICAgIiIiQ2hl
Y2sgdGhhdCBfTUFYX1JFUE9SVFNfUEVSX0NBVEVHT1JZIGlzIHZhbGlkLiIiIgogICAgICAgICBh
bGxfY2F0ZWdvcmllcyA9IHNlbGYuX2FsbF9jYXRlZ29yaWVzKCkKLSAgICAgICAgZm9yIGNhdGVn
b3J5IGluIHN0eWxlLk1BWF9SRVBPUlRTX1BFUl9DQVRFR09SWS5pdGVya2V5cygpOgorICAgICAg
ICBmb3IgY2F0ZWdvcnkgaW4gc3R5bGUuX01BWF9SRVBPUlRTX1BFUl9DQVRFR09SWS5pdGVya2V5
cygpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNhdGVnb3J5IGluIGFsbF9jYXRlZ29y
aWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdLZXkgIiVzIiBpcyBub3QgYSBjYXRl
Z29yeScgJSBjYXRlZ29yeSkKIApAQCAtMjA1LDE1ICsxODQsMTQgQEAgY2xhc3MgQXJndW1lbnRQ
cmludGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIF9jcmVhdGVfb3B0aW9ucyhz
ZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD0nZW1hY3MnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgdmVyYm9zaXR5PTMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICB1c2VyX3J1bGVzPVtdLAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX3J1bGVzPVtd
LAogICAgICAgICAgICAgICAgICAgICAgICAgZ2l0X2NvbW1pdD1Ob25lLAogICAgICAgICAgICAg
ICAgICAgICAgICAgZXh0cmFfZmxhZ192YWx1ZXM9e30pOgotICAgICAgICBmaWx0ZXJfY29uZmln
dXJhdGlvbiA9IEZpbHRlckNvbmZpZ3VyYXRpb24odXNlcl9ydWxlcz11c2VyX3J1bGVzKQotICAg
ICAgICByZXR1cm4gc3R5bGUuUHJvY2Vzc29yT3B0aW9ucyhleHRyYV9mbGFnX3ZhbHVlcz1leHRy
YV9mbGFnX3ZhbHVlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmls
dGVyX2NvbmZpZ3VyYXRpb249ZmlsdGVyX2NvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdpdF9jb21taXQ9Z2l0X2NvbW1pdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD1vdXRwdXRfZm9ybWF0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9dmVyYm9zaXR5
KQorICAgICAgICByZXR1cm4gUHJvY2Vzc29yT3B0aW9ucyhleHRyYV9mbGFnX3ZhbHVlcz1leHRy
YV9mbGFnX3ZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX3J1
bGVzPWZpbHRlcl9ydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l0X2Nv
bW1pdD1naXRfY29tbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRf
Zm9ybWF0PW91dHB1dF9mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl
cmJvc2l0eT12ZXJib3NpdHkpCiAKICAgICBkZWYgdGVzdF90b19mbGFnX3N0cmluZyhzZWxmKToK
ICAgICAgICAgb3B0aW9ucyA9IHNlbGYuX2NyZWF0ZV9vcHRpb25zKCd2czcnLCA1LCBbJytmb28n
LCAnLWJhciddLCAnZ2l0JywKQEAgLTIzNywyOSArMjE1LDI4IEBAIGNsYXNzIEFyZ3VtZW50UGFy
c2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICIiIlJldHVybiBhIGRlZmF1bHQg
cGFyc2UoKSBmdW5jdGlvbiBmb3IgdGVzdGluZy4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX2Ny
ZWF0ZV9wYXJzZXIoKS5wYXJzZQogCi0gICAgZGVmIF9jcmVhdGVfZGVmYXVsdHMoc2VsZiwgZGVm
YXVsdF9vdXRwdXRfZm9ybWF0PSd2czcnLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHRfdmVyYm9zaXR5PTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9maWx0ZXJf
cnVsZXM9WyctJywgJyt3aGl0ZXNwYWNlJ10pOgotICAgICAgICAiIiJSZXR1cm4gYSBkZWZhdWx0
IEFyZ3VtZW50RGVmYXVsdHMgaW5zdGFuY2UgZm9yIHRlc3RpbmcuIiIiCi0gICAgICAgIHJldHVy
biBzdHlsZS5Bcmd1bWVudERlZmF1bHRzKGRlZmF1bHRfb3V0cHV0X2Zvcm1hdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF92ZXJib3NpdHksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZmlsdGVyX3J1bGVzKQorICAg
IGRlZiBfY3JlYXRlX2RlZmF1bHRzKHNlbGYsIG91dHB1dF9mb3JtYXQ9J3ZzNycsIHZlcmJvc2l0
eT0zKToKKyAgICAgICAgIiIiUmV0dXJuIGEgRGVmYXVsdENvbW1hbmRPcHRpb25WYWx1ZXMgaW5z
dGFuY2UgZm9yIHRlc3RpbmcuIiIiCisgICAgICAgIHJldHVybiBEZWZhdWx0Q29tbWFuZE9wdGlv
blZhbHVlcyhvdXRwdXRfZm9ybWF0LCB2ZXJib3NpdHkpCiAKLSAgICBkZWYgX2NyZWF0ZV9wYXJz
ZXIoc2VsZiwgZGVmYXVsdHM9Tm9uZSk6CisgICAgZGVmIF9jcmVhdGVfcGFyc2VyKHNlbGYsIGRl
ZmF1bHRfb3B0aW9ucz1Ob25lKToKICAgICAgICAgIiIiUmV0dXJuIGFuIEFyZ3VtZW50UGFyc2Vy
IGluc3RhbmNlIGZvciB0ZXN0aW5nLiIiIgotICAgICAgICBkZWYgY3JlYXRlX3VzYWdlKF9kZWZh
dWx0cyk6CisgICAgICAgIGRlZiBjcmVhdGVfdXNhZ2UoX2RlZmF1bHRfb3B0aW9ucyk6CiAgICAg
ICAgICAgICAiIiJSZXR1cm4gYSB1c2FnZSBzdHJpbmcgZm9yIHRlc3RpbmcuIiIiCiAgICAgICAg
ICAgICByZXR1cm4gInVzYWdlIgogCi0gICAgICAgIGRlZiBkb2NfcHJpbnQobWVzc2FnZSk6Cisg
ICAgICAgIGRlZiBzdGRlcnJfd3JpdGUobWVzc2FnZSk6CiAgICAgICAgICAgICAjIFdlIGRvIG5v
dCB3YW50IHRoZSB1c2FnZSBzdHJpbmcgb3Igc3R5bGUgY2F0ZWdvcmllcwogICAgICAgICAgICAg
IyB0byBwcmludCBkdXJpbmcgdW5pdCB0ZXN0cywgc28gcHJpbnQgbm90aGluZy4KICAgICAgICAg
ICAgIHJldHVybgogCi0gICAgICAgIGlmIGRlZmF1bHRzIGlzIE5vbmU6Ci0gICAgICAgICAgICBk
ZWZhdWx0cyA9IHNlbGYuX2NyZWF0ZV9kZWZhdWx0cygpCisgICAgICAgIGlmIGRlZmF1bHRfb3B0
aW9ucyBpcyBOb25lOgorICAgICAgICAgICAgZGVmYXVsdF9vcHRpb25zID0gc2VsZi5fY3JlYXRl
X2RlZmF1bHRzKCkKIAotICAgICAgICByZXR1cm4gc3R5bGUuQXJndW1lbnRQYXJzZXIoZGVmYXVs
dHMsIGNyZWF0ZV91c2FnZSwgZG9jX3ByaW50KQorICAgICAgICByZXR1cm4gc3R5bGUuQXJndW1l
bnRQYXJzZXIoYmFzZV9maWx0ZXJfcnVsZXM9WyItIiwgIit3aGl0ZXNwYWNlIl0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVfdXNhZ2U9Y3JlYXRlX3VzYWdlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9vcHRpb25zPWRlZmF1
bHRfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycl93
cml0ZT1zdGRlcnJfd3JpdGUpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9kb2N1bWVudGF0aW9uKHNl
bGYpOgogICAgICAgICBwYXJzZSA9IHNlbGYuX3BhcnNlKCkKQEAgLTMxMCw5ICsyODcsNyBAQCBj
bGFzcyBBcmd1bWVudFBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgJ3ZzNycpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMudmVyYm9zaXR5LCAzKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhvcHRpb25zLmZpbHRlcl9jb25maWd1cmF0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2VfcnVsZXM9WyItIiwgIit3aGl0ZXNwYWNl
Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX3NwZWNpZmljPVBBVEhfUlVM
RVNfU1BFQ0lGSUVSKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5maWx0ZXJf
cnVsZXMsIFtdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmdpdF9jb21taXQs
IE5vbmUpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9leHBsaWNpdF9hcmd1bWVudHMoc2VsZik6CkBA
IC0zMjgsMTggKzMwMywxMyBAQCBjbGFzcyBBcmd1bWVudFBhcnNlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogCiAgICAgICAgICMgUGFzcyB1c2VyX3J1bGVzLgogICAgICAgICAoZmlsZXMsIG9w
dGlvbnMpID0gcGFyc2UoWyctLWZpbHRlcj0rYnVpbGQsLXdoaXRlc3BhY2UnXSkKLSAgICAgICAg
Y29uZmlnID0gb3B0aW9ucy5maWx0ZXJfY29uZmlndXJhdGlvbgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhvcHRpb25zLmZpbHRlcl9jb25maWd1cmF0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2VfcnVsZXM9WyItIiwgIit3aGl0ZXNwYWNl
Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX3NwZWNpZmljPVBBVEhfUlVM
RVNfU1BFQ0lGSUVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9ydWxlcz1b
IitidWlsZCIsICItd2hpdGVzcGFjZSJdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0
aW9ucy5maWx0ZXJfcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFsiK2J1aWxkIiwg
Ii13aGl0ZXNwYWNlIl0pCiAKICAgICAgICAgIyBQYXNzIHNwdXJpb3VzIHdoaXRlIHNwYWNlIGlu
IHVzZXIgcnVsZXMuCiAgICAgICAgIChmaWxlcywgb3B0aW9ucykgPSBwYXJzZShbJy0tZmlsdGVy
PStidWlsZCwgLXdoaXRlc3BhY2UnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9u
cy5maWx0ZXJfY29uZmlndXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVy
Q29uZmlndXJhdGlvbihiYXNlX3J1bGVzPVsiLSIsICIrd2hpdGVzcGFjZSJdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGF0aF9zcGVjaWZpYz1QQVRIX1JVTEVTX1NQRUNJRklFUiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfcnVsZXM9WyIrYnVpbGQiLCAiLXdo
aXRlc3BhY2UiXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZmlsdGVyX3J1
bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbIitidWlsZCIsICItd2hpdGVzcGFjZSJd
KQogCiAgICAgICAgICMgUGFzcyBleHRyYSBmbGFnIHZhbHVlcy4KICAgICAgICAgKGZpbGVzLCBv
cHRpb25zKSA9IHBhcnNlKFsnLS1leHRyYSddLCBbJ2V4dHJhJ10pCkBAIC01MTksMzAgKzQ4OSwx
MDAgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydF9wcm9jZXNzb3Jfbm9uZShwYXRoKQogCiAK
LWNsYXNzIFN0eWxlQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgU3R5bGVD
aGVja2VyQ29uZmlndXJhdGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCi0gICAgIiIiVGVz
dCB0aGUgU3R5bGVDaGVja2VyIGNsYXNzLgorICAgICIiIlRlc3RzIHRoZSBTdHlsZUNoZWNrZXJD
b25maWd1cmF0aW9uIGNsYXNzLgogCiAgICAgQXR0cmlidXRlczoKLSAgICAgIGVycm9yX21lc3Nh
Z2VzOiBBIHN0cmluZyBjb250YWluaW5nIGFsbCBvZiB0aGUgd2FybmluZyBtZXNzYWdlcwotICAg
ICAgICAgICAgICAgICAgICAgIHdyaXR0ZW4gdG8gdGhlIG1vY2tfc3RkZXJyX3dyaXRlIG1ldGhv
ZCBvZgotICAgICAgICAgICAgICAgICAgICAgIHRoaXMgY2xhc3MuCisgICAgICBfZXJyb3JfbWVz
c2FnZXM6IEEgbGlzdCBvZiB0aGUgd2FybmluZyBtZXNzYWdlcyB3cml0dGVuIHRvIHRoZQorICAg
ICAgICAgICAgICAgICAgICAgICBtb2NrX3N0ZGVycl93cml0ZSBtZXRob2Qgb2YgdGhpcyBjbGFz
cy4KIAogICAgICIiIgogCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLl9lcnJv
cl9tZXNzYWdlcyA9IFtdCisKKyAgICBkZWYgX21vY2tfc3RkZXJyX3dyaXRlKHNlbGYsIG1lc3Nh
Z2UpOgorICAgICAgICBzZWxmLl9lcnJvcl9tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSkKKworICAg
IGRlZiBfc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9uKHNlbGYsIG91dHB1dF9mb3JtYXQ9InZz
NyIpOgorICAgICAgICAiIiJSZXR1cm4gYSBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uIGluc3Rh
bmNlIGZvciB0ZXN0aW5nLiIiIgorICAgICAgICBiYXNlX3J1bGVzID0gWyItd2hpdGVzcGFjZSIs
ICIrd2hpdGVzcGFjZS90YWIiXQorICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZpbHRl
ckNvbmZpZ3VyYXRpb24oYmFzZV9ydWxlcz1iYXNlX3J1bGVzKQorCisgICAgICAgIHJldHVybiBT
dHlsZUNoZWNrZXJDb25maWd1cmF0aW9uKAorICAgICAgICAgICAgICAgICAgIGZpbHRlcl9jb25m
aWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgIG1heF9y
ZXBvcnRzX3Blcl9jYXRlZ29yeT17IndoaXRlc3BhY2UvbmV3bGluZSI6IDF9LAorICAgICAgICAg
ICAgICAgICAgIG91dHB1dF9mb3JtYXQ9b3V0cHV0X2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAg
ICBzdGRlcnJfd3JpdGU9c2VsZi5fbW9ja19zdGRlcnJfd3JpdGUsCisgICAgICAgICAgICAgICAg
ICAgdmVyYm9zaXR5PTMpCisKKyAgICBkZWYgdGVzdF9pbml0KHNlbGYpOgorICAgICAgICAiIiJU
ZXN0IHRoZSBfX2luaXRfXygpIG1ldGhvZC4iIiIKKyAgICAgICAgY29uZmlndXJhdGlvbiA9IHNl
bGYuX3N0eWxlX2NoZWNrZXJfY29uZmlndXJhdGlvbigpCisKKyAgICAgICAgIyBDaGVjayB0aGF0
IF9faW5pdF9fIHNldHMgdGhlICJwdWJsaWMiIGRhdGEgYXR0cmlidXRlcyBjb3JyZWN0bHkuCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbmZpZ3VyYXRpb24ubWF4X3JlcG9ydHNfcGVyX2Nh
dGVnb3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7IndoaXRlc3BhY2UvbmV3bGluZSI6
IDF9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb25maWd1cmF0aW9uLnN0ZGVycl93cml0
ZSwgc2VsZi5fbW9ja19zdGRlcnJfd3JpdGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNv
bmZpZ3VyYXRpb24udmVyYm9zaXR5LCAzKQorCisgICAgZGVmIHRlc3RfaXNfcmVwb3J0YWJsZShz
ZWxmKToKKyAgICAgICAgIiIiVGVzdCB0aGUgaXNfcmVwb3J0YWJsZSgpIG1ldGhvZC4iIiIKKyAg
ICAgICAgY29uZmlnID0gc2VsZi5fc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9uKCkKKworICAg
ICAgICBzZWxmLmFzc2VydFRydWUoY29uZmlnLmlzX3JlcG9ydGFibGUoIndoaXRlc3BhY2UvdGFi
IiwgMywgImZvby50eHQiKSkKKworICAgICAgICAjIFRlc3QgdGhlIGNvbmZpZGVuY2UgY2hlY2sg
Y29kZSBwYXRoIGJ5IHZhcnlpbmcgdGhlIGNvbmZpZGVuY2UuCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoY29uZmlnLmlzX3JlcG9ydGFibGUoIndoaXRlc3BhY2UvdGFiIiwgMiwgImZvby50eHQi
KSkKKworICAgICAgICAjIFRlc3QgdGhlIGNhdGVnb3J5IGNoZWNrIGNvZGUgcGF0aCBieSB2YXJ5
aW5nIHRoZSBjYXRlZ29yeS4KKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjb25maWcuaXNfcmVw
b3J0YWJsZSgid2hpdGVzcGFjZS9saW5lIiwgNCwgImZvby50eHQiKSkKKworICAgIGRlZiBfY2Fs
bF93cml0ZV9zdHlsZV9lcnJvcihzZWxmLCBvdXRwdXRfZm9ybWF0KToKKyAgICAgICAgY29uZmln
ID0gc2VsZi5fc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9uKG91dHB1dF9mb3JtYXQ9b3V0cHV0
X2Zvcm1hdCkKKyAgICAgICAgY29uZmlnLndyaXRlX3N0eWxlX2Vycm9yKGNhdGVnb3J5PSJ3aGl0
ZXNwYWNlL3RhYiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWRlbmNl
PTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9ImZvby5oIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyPTEwMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Im1lc3NhZ2UiKQorCisgICAgZGVm
IHRlc3Rfd3JpdGVfc3R5bGVfZXJyb3JfZW1hY3Moc2VsZik6CisgICAgICAgICIiIlRlc3QgdGhl
IHdyaXRlX3N0eWxlX2Vycm9yKCkgbWV0aG9kLiIiIgorICAgICAgICBzZWxmLl9jYWxsX3dyaXRl
X3N0eWxlX2Vycm9yKCJlbWFjcyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Vy
cm9yX21lc3NhZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbImZvby5oOjEwMDogIG1l
c3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iXSkKKworICAgIGRlZiB0ZXN0X3dyaXRlX3N0
eWxlX2Vycm9yX3ZzNyhzZWxmKToKKyAgICAgICAgIiIiVGVzdCB0aGUgd3JpdGVfc3R5bGVfZXJy
b3IoKSBtZXRob2QuIiIiCisgICAgICAgIHNlbGYuX2NhbGxfd3JpdGVfc3R5bGVfZXJyb3IoInZz
NyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Vycm9yX21lc3NhZ2VzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBbImZvby5oKDEwMCk6ICBtZXNzYWdlICBbd2hpdGVzcGFj
ZS90YWJdIFs1XVxuIl0pCisKKworY2xhc3MgU3R5bGVDaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CisKKyAgICAiIiJUZXN0IHRoZSBTdHlsZUNoZWNrZXIgY2xhc3MuIiIiCisKICAgICBk
ZWYgX21vY2tfc3RkZXJyX3dyaXRlKHNlbGYsIG1lc3NhZ2UpOgogICAgICAgICBwYXNzCiAKLSAg
ICBkZWYgX3N0eWxlX2NoZWNrZXIoc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHJldHVybiBTdHls
ZUNoZWNrZXIob3B0aW9ucywgc2VsZi5fbW9ja19zdGRlcnJfd3JpdGUpCisgICAgZGVmIF9zdHls
ZV9jaGVja2VyKHNlbGYsIGNvbmZpZ3VyYXRpb24pOgorICAgICAgICByZXR1cm4gU3R5bGVDaGVj
a2VyKGNvbmZpZ3VyYXRpb24pCiAKICAgICBkZWYgdGVzdF9pbml0KHNlbGYpOgogICAgICAgICAi
IiJUZXN0IF9faW5pdF9fIGNvbnN0cnVjdG9yLiIiIgotICAgICAgICBvcHRpb25zID0gUHJvY2Vz
c29yT3B0aW9ucygpCi0gICAgICAgIHN0eWxlX2NoZWNrZXIgPSBzZWxmLl9zdHlsZV9jaGVja2Vy
KG9wdGlvbnMpCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBTdHlsZUNoZWNrZXJDb25maWd1cmF0
aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPUZp
bHRlckNvbmZpZ3VyYXRpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfcmVw
b3J0c19wZXJfY2F0ZWdvcnk9e30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
X2Zvcm1hdD0idnM3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnJfd3JpdGU9
c2VsZi5fbW9ja19zdGRlcnJfd3JpdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
Ym9zaXR5PTMpCisKKyAgICAgICAgc3R5bGVfY2hlY2tlciA9IHNlbGYuX3N0eWxlX2NoZWNrZXIo
Y29uZmlndXJhdGlvbikKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdHlsZV9jaGVja2Vy
LmVycm9yX2NvdW50LCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdHlsZV9jaGVja2Vy
Lm9wdGlvbnMsIG9wdGlvbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0eWxlX2NoZWNr
ZXIuX2NvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyYXRpb24pCiAKIAogY2xhc3MgU3R5bGVDaGVja2Vy
Q2hlY2tGaWxlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC02MDksMTUgKzY0OSwxNCBAQCBj
bGFzcyBTdHlsZUNoZWNrZXJDaGVja0ZpbGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgIyBDb25maXJtIHRoYXQgdGhlIGF0dHJpYnV0ZXMgYXJlIHJlc2V0LgogICAgICAgICBzZWxm
LmFzc2VydF9hdHRyaWJ1dGVzKE5vbmUsIE5vbmUsIE5vbmUsICIiKQogCi0gICAgICAgICMgQ3Jl
YXRlIGEgdGVzdCBTdHlsZUNoZWNrZXIgaW5zdGFuY2UuCi0gICAgICAgICMKLSAgICAgICAgIyBU
aGUgdmVyYm9zaXR5IGF0dHJpYnV0ZSBpcyB0aGUgb25seSBQcm9jZXNzb3JPcHRpb25zCi0gICAg
ICAgICMgYXR0cmlidXRlIHRoYXQgbmVlZHMgdG8gYmUgY2hlY2tlZCBpbiB0aGlzIHRlc3QuCi0g
ICAgICAgICMgVGhpcyBpcyBiZWNhdXNlIGl0IGlzIHRoZSBvbmx5IG9wdGlvbiBpcyBkaXJlY3Rs
eQotICAgICAgICAjIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3Igb2YgYSBzdHlsZSBwcm9jZXNz
b3IuCi0gICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKHZlcmJvc2l0eT0zKQorICAg
ICAgICBjb25maWd1cmF0aW9uID0gU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbigKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbj1GaWx0ZXJDb25maWd1cmF0
aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X3JlcG9ydHNfcGVyX2NhdGVn
b3J5PXsid2hpdGVzcGFjZS9uZXdsaW5lIjogMX0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0X2Zvcm1hdD0idnM3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRl
cnJfd3JpdGU9c2VsZi5tb2NrX3N0ZGVycl93cml0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJib3NpdHk9MykKIAotICAgICAgICBzdHlsZV9jaGVja2VyID0gU3R5bGVDaGVja2Vy
KG9wdGlvbnMsIHNlbGYubW9ja19zdGRlcnJfd3JpdGUpCisgICAgICAgIHN0eWxlX2NoZWNrZXIg
PSBTdHlsZUNoZWNrZXIoY29uZmlndXJhdGlvbikKIAogICAgICAgICBzdHlsZV9jaGVja2VyLmNo
ZWNrX2ZpbGUoZmlsZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvciwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzLnB5CmluZGV4IDE5NDBlMDMuLmU3OTkwNTIg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFu
ZGxlcnMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9o
YW5kbGVycy5weQpAQCAtNTYsMzAgKzU2LDIxIEBAIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFu
ZGxlcihvYmplY3QpOgogCiAgICAgIiIiVGhlIGRlZmF1bHQgc3R5bGUgZXJyb3IgaGFuZGxlci4i
IiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX3BhdGgsIG9wdGlvbnMsIGluY3JlbWVu
dF9lcnJvcl9jb3VudCwKLSAgICAgICAgICAgICAgICAgc3RkZXJyX3dyaXRlPU5vbmUpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX3BhdGgsIGNvbmZpZ3VyYXRpb24sIGluY3JlbWVudF9l
cnJvcl9jb3VudCk6CiAgICAgICAgICIiIkNyZWF0ZSBhIGRlZmF1bHQgc3R5bGUgZXJyb3IgaGFu
ZGxlci4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIGZpbGVfcGF0aDogVGhlIHBhdGggdG8g
dGhlIGZpbGUgY29udGFpbmluZyB0aGUgZXJyb3IuIFRoaXMKICAgICAgICAgICAgICAgICAgICAg
IGlzIHVzZWQgZm9yIHJlcG9ydGluZyB0byB0aGUgdXNlci4KLSAgICAgICAgICBvcHRpb25zOiBB
IFByb2Nlc3Nvck9wdGlvbnMgaW5zdGFuY2UuCisgICAgICAgICAgY29uZmlndXJhdGlvbjogQSBT
dHlsZUNoZWNrZXJDb25maWd1cmF0aW9uIGluc3RhbmNlLgogICAgICAgICAgIGluY3JlbWVudF9l
cnJvcl9jb3VudDogQSBmdW5jdGlvbiB0aGF0IHRha2VzIG5vIGFyZ3VtZW50cyBhbmQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudHMgdGhlIHRvdGFsIGNvdW50IG9m
IHJlcG9ydGFibGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy4KLSAg
ICAgICAgICBzdGRlcnJfd3JpdGU6IEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmluZyBhcyBh
IHBhcmFtZXRlcgotICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRoYXQgaXMgY2FsbGVkIHdo
ZW4gYSBzdHlsZSBlcnJvciBvY2N1cnMuCi0gICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0
cyB0byBzeXMuc3RkZXJyLndyaXRlLiBUaGlzIHNob3VsZCBiZQotICAgICAgICAgICAgICAgICAg
ICAgICAgdXNlZCBvbmx5IGZvciB1bml0IHRlc3RzLgogCiAgICAgICAgICIiIgotICAgICAgICBp
ZiBzdGRlcnJfd3JpdGUgaXMgTm9uZToKLSAgICAgICAgICAgIHN0ZGVycl93cml0ZSA9IHN5cy5z
dGRlcnIud3JpdGUKLQogICAgICAgICBzZWxmLl9maWxlX3BhdGggPSBmaWxlX3BhdGgKKyAgICAg
ICAgc2VsZi5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24KICAgICAgICAgc2VsZi5faW5j
cmVtZW50X2Vycm9yX2NvdW50ID0gaW5jcmVtZW50X2Vycm9yX2NvdW50Ci0gICAgICAgIHNlbGYu
X29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX3N0ZGVycl93cml0ZSA9IHN0ZGVycl93
cml0ZQogCiAgICAgICAgICMgQSBzdHJpbmcgdG8gaW50ZWdlciBkaWN0aW9uYXJ5IGNhY2hlIG9m
IHRoZSBudW1iZXIgb2YgcmVwb3J0YWJsZQogICAgICAgICAjIGVycm9ycyBwZXIgY2F0ZWdvcnkg
cGFzc2VkIHRvIHRoaXMgaW5zdGFuY2UuCkBAIC05OSw5ICs5MCw5IEBAIGNsYXNzIERlZmF1bHRT
dHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgogCiAgICAgZGVmIF9tYXhfcmVwb3J0cyhzZWxmLCBj
YXRlZ29yeSk6CiAgICAgICAgICIiIlJldHVybiB0aGUgbWF4aW11bSBudW1iZXIgb2YgZXJyb3Jz
IHRvIHJlcG9ydC4iIiIKLSAgICAgICAgaWYgbm90IGNhdGVnb3J5IGluIHNlbGYuX29wdGlvbnMu
bWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5OgorICAgICAgICBpZiBub3QgY2F0ZWdvcnkgaW4gc2Vs
Zi5fY29uZmlndXJhdGlvbi5tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk6CiAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fb3B0aW9ucy5tYXhfcmVwb3J0c19wZXJf
Y2F0ZWdvcnlbY2F0ZWdvcnldCisgICAgICAgIHJldHVybiBzZWxmLl9jb25maWd1cmF0aW9uLm1h
eF9yZXBvcnRzX3Blcl9jYXRlZ29yeVtjYXRlZ29yeV0KIAogICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCBsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAi
IiJIYW5kbGUgdGhlIG9jY3VycmVuY2Ugb2YgYSBzdHlsZSBlcnJvci4KQEAgLTEwOSw5ICsxMDAs
OSBAQCBjbGFzcyBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIob2JqZWN0KToKICAgICAgICAgU2Vl
IHRoZSBkb2NzdHJpbmcgb2YgdGhpcyBtb2R1bGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAKICAg
ICAgICAgIiIiCi0gICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmlzX3JlcG9ydGFibGUoY2F0
ZWdvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlk
ZW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9m
aWxlX3BhdGgpOgorICAgICAgICBpZiBub3Qgc2VsZi5fY29uZmlndXJhdGlvbi5pc19yZXBvcnRh
YmxlKGNhdGVnb3J5PWNhdGVnb3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZGVuY2VfaW5fZXJyb3I9Y29uZmlkZW5jZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9c2VsZi5f
ZmlsZV9wYXRoKToKICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIGNhdGVnb3J5X3RvdGFs
ID0gc2VsZi5fYWRkX3JlcG9ydGFibGVfZXJyb3IoY2F0ZWdvcnkpCkBAIC0xMjIsMjggKzExMywy
MiBAQCBjbGFzcyBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIob2JqZWN0KToKICAgICAgICAgICAg
ICMgVGhlbiBzdXBwcmVzcyBkaXNwbGF5aW5nIHRoZSBlcnJvci4KICAgICAgICAgICAgIHJldHVy
bgogCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMub3V0cHV0X2Zvcm1hdCA9PSAndnM3JzoKLSAg
ICAgICAgICAgIGZvcm1hdF9zdHJpbmcgPSAiJXMoJXMpOiAgJXMgIFslc10gWyVkXVxuIgotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgZm9ybWF0X3N0cmluZyA9ICIlczolczogICVzICBbJXNd
IFslZF1cbiIKKyAgICAgICAgc2VsZi5fY29uZmlndXJhdGlvbi53cml0ZV9zdHlsZV9lcnJvcihj
YXRlZ29yeT1jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWRlbmNlPWNvbmZpZGVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoPXNlbGYuX2ZpbGVfcGF0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX251bWJlcj1saW5lX251
bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlPW1lc3NhZ2UpCiAKICAgICAgICAgaWYgY2F0ZWdvcnlfdG90YWwgPT0gbWF4X3JlcG9ydHM6
Ci0gICAgICAgICAgICBmb3JtYXRfc3RyaW5nICs9ICgiU3VwcHJlc3NpbmcgZnVydGhlciBbJXNd
IHJlcG9ydHMgZm9yIHRoaXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUu
XG4iICUgY2F0ZWdvcnkpCi0KLSAgICAgICAgc2VsZi5fc3RkZXJyX3dyaXRlKGZvcm1hdF9zdHJp
bmcgJSAoc2VsZi5fZmlsZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsaW5lX251bWJlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2F0ZWdvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbmZpZGVuY2UpKQorICAgICAgICAgICAgc2VsZi5fY29uZmlndXJhdGlvbi5zdGRl
cnJfd3JpdGUoIlN1cHByZXNzaW5nIGZ1cnRoZXIgWyVzXSByZXBvcnRzICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgdGhpcyBmaWxlLlxuIiAlIGNh
dGVnb3J5KQogCiAKIGNsYXNzIFBhdGNoU3R5bGVFcnJvckhhbmRsZXIob2JqZWN0KToKIAogICAg
ICIiIlRoZSBzdHlsZSBlcnJvciBmdW5jdGlvbiBmb3IgcGF0Y2ggZmlsZXMuIiIiCiAKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgZGlmZiwgZmlsZV9wYXRoLCBvcHRpb25zLCBpbmNyZW1lbnRfZXJy
b3JfY291bnQsCi0gICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGRpZmYsIGZpbGVfcGF0aCwgY29uZmlndXJhdGlvbiwgaW5jcmVtZW50X2Vycm9y
X2NvdW50KToKICAgICAgICAgIiIiQ3JlYXRlIGEgcGF0Y2ggc3R5bGUgZXJyb3IgaGFuZGxlciBm
b3IgdGhlIGdpdmVuIHBhdGguCiAKICAgICAgICAgQXJnczoKQEAgLTE1NCw5ICsxMzksOCBAQCBj
bGFzcyBQYXRjaFN0eWxlRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAg
ICBzZWxmLl9kaWZmID0gZGlmZgogICAgICAgICBzZWxmLl9kZWZhdWx0X2Vycm9yX2hhbmRsZXIg
PSBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIoZmlsZV9wYXRoLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRfZXJyb3JfY291bnQpCiAKICAg
ICAgICAgIyBUaGUgbGluZSBudW1iZXJzIG9mIHRoZSBtb2RpZmllZCBsaW5lcy4gVGhpcyBpcyBz
ZXQgbGF6aWx5LgogICAgICAgICBzZWxmLl9saW5lX251bWJlcnMgPSBzZXQoKQpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0
dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxl
cnNfdW5pdHRlc3QucHkKaW5kZXggMWQ3ZTk5OC4uMTIwMGE0MyAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3Vu
aXR0ZXN0LnB5CkBAIC0yNiwxMjQgKzI2LDEwNyBAQAogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20g
Li4gc3R5bGVfcmVmZXJlbmNlcyBpbXBvcnQgcGFyc2VfcGF0Y2gKLWZyb20gY2hlY2tlciBpbXBv
cnQgUHJvY2Vzc29yT3B0aW9ucworZnJvbSBjaGVja2VyIGltcG9ydCBTdHlsZUNoZWNrZXJDb25m
aWd1cmF0aW9uCiBmcm9tIGVycm9yX2hhbmRsZXJzIGltcG9ydCBEZWZhdWx0U3R5bGVFcnJvckhh
bmRsZXIKIGZyb20gZXJyb3JfaGFuZGxlcnMgaW1wb3J0IFBhdGNoU3R5bGVFcnJvckhhbmRsZXIK
LQorZnJvbSBmaWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRpb24KIAogY2xhc3MgU3R5bGVF
cnJvckhhbmRsZXJUZXN0QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgc2V0VXAo
c2VsZik6Ci0gICAgICAgIHNlbGYuX2Vycm9yX21lc3NhZ2VzID0gIiIKKyAgICAgICAgc2VsZi5f
ZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgICBzZWxmLl9lcnJvcl9jb3VudCA9IDAKIAogICAg
IGRlZiBfbW9ja19pbmNyZW1lbnRfZXJyb3JfY291bnQoc2VsZik6CiAgICAgICAgIHNlbGYuX2Vy
cm9yX2NvdW50ICs9IDEKIAogICAgIGRlZiBfbW9ja19zdGRlcnJfd3JpdGUoc2VsZiwgbWVzc2Fn
ZSk6Ci0gICAgICAgIHNlbGYuX2Vycm9yX21lc3NhZ2VzICs9IG1lc3NhZ2UKKyAgICAgICAgc2Vs
Zi5fZXJyb3JfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCisKKyAgICBkZWYgX3N0eWxlX2NoZWNr
ZXJfY29uZmlndXJhdGlvbihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgU3R5bGVDaGVja2Vy
Q29uZmlndXJhdGlvbiBpbnN0YW5jZSBmb3IgdGVzdGluZy4iIiIKKyAgICAgICAgYmFzZV9ydWxl
cyA9IFsiLXdoaXRlc3BhY2UiLCAiK3doaXRlc3BhY2UvdGFiIl0KKyAgICAgICAgZmlsdGVyX2Nv
bmZpZ3VyYXRpb24gPSBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2VfcnVsZXM9YmFzZV9ydWxlcykK
KworICAgICAgICByZXR1cm4gU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbigKKyAgICAgICAgICAg
ICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbj1maWx0ZXJfY29uZmlndXJhdGlvbiwKKyAgICAg
ICAgICAgICAgICAgICBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9eyJ3aGl0ZXNwYWNlL3RhYiI6
IDJ9LAorICAgICAgICAgICAgICAgICAgIG91dHB1dF9mb3JtYXQ9InZzNyIsCisgICAgICAgICAg
ICAgICAgICAgc3RkZXJyX3dyaXRlPXNlbGYuX21vY2tfc3RkZXJyX3dyaXRlLAorICAgICAgICAg
ICAgICAgICAgIHZlcmJvc2l0eT0zKQogCiAKIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxl
clRlc3QoU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFzZSk6CiAKICAgICAiIiJUZXN0cyBEZWZhdWx0
U3R5bGVFcnJvckhhbmRsZXIgY2xhc3MuIiIiCiAKLSAgICBfZmlsZV9wYXRoID0gImZvby5oIgot
CiAgICAgX2NhdGVnb3J5ID0gIndoaXRlc3BhY2UvdGFiIgorICAgICIiIlRoZSBjYXRlZ29yeSBu
YW1lIGZvciB0aGUgdGVzdHMgaW4gdGhpcyBjbGFzcy4iIiIKIAotICAgIGRlZiBfZXJyb3JfaGFu
ZGxlcihzZWxmLCBvcHRpb25zKToKLSAgICAgICAgcmV0dXJuIERlZmF1bHRTdHlsZUVycm9ySGFu
ZGxlcihzZWxmLl9maWxlX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3B0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9tb2NrX2luY3JlbWVudF9lcnJvcl9jb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9tb2NrX3N0ZGVycl93cml0ZSkKKyAgICBfZmlsZV9wYXRo
ID0gImZvby5oIgorICAgICIiIlRoZSBmaWxlIHBhdGggZm9yIHRoZSB0ZXN0cyBpbiB0aGlzIGNs
YXNzLiIiIgogCiAgICAgZGVmIF9jaGVja19pbml0aWFsaXplZChzZWxmKToKICAgICAgICAgIiIi
Q2hlY2sgdGhhdCBjb3VudCBhbmQgZXJyb3IgbWVzc2FnZXMgYXJlIGluaXRpYWxpemVkLiIiIgog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoIiIsIHNlbGYuX2Vycm9yX21lc3NhZ2VzKQotCi0gICAgZGVmIF9j
YWxsKHNlbGYsIGhhbmRsZV9lcnJvciwgb3B0aW9ucywgY29uZmlkZW5jZSk6Ci0gICAgICAgICIi
IkhhbmRsZSBhbiBlcnJvciB3aXRoIHRoZSBnaXZlbiBlcnJvciBoYW5kbGVyLiIiIgotICAgICAg
ICBsaW5lX251bWJlciA9IDEwMAotICAgICAgICBtZXNzYWdlID0gIm1lc3NhZ2UiCi0KLSAgICAg
ICAgaGFuZGxlX2Vycm9yKGxpbmVfbnVtYmVyLCBzZWxmLl9jYXRlZ29yeSwgY29uZmlkZW5jZSwg
bWVzc2FnZSkKLQotICAgIGRlZiBfY2FsbF9lcnJvcl9oYW5kbGVyKHNlbGYsIG9wdGlvbnMsIGNv
bmZpZGVuY2UpOgotICAgICAgICAiIiJIYW5kbGUgYW4gZXJyb3IgdXNpbmcgYSBuZXcgZXJyb3Ig
aGFuZGxlci4iIiIKLSAgICAgICAgaGFuZGxlX2Vycm9yID0gc2VsZi5fZXJyb3JfaGFuZGxlcihv
cHRpb25zKQotICAgICAgICBzZWxmLl9jYWxsKGhhbmRsZV9lcnJvciwgb3B0aW9ucywgY29uZmlk
ZW5jZSkKLQotICAgIGRlZiB0ZXN0X2NhbGxfbm9uX3JlcG9ydGFibGUoc2VsZik6Ci0gICAgICAg
ICIiIlRlc3QgX19jYWxsX18oKSBtZXRob2Qgd2l0aCBhIG5vbi1yZXBvcnRhYmxlIGVycm9yLiIi
IgotICAgICAgICBjb25maWRlbmNlID0gMQotICAgICAgICBvcHRpb25zID0gUHJvY2Vzc29yT3B0
aW9ucyh2ZXJib3NpdHk9MykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHNlbGYuX2Vy
cm9yX21lc3NhZ2VzKQorCisgICAgZGVmIF9lcnJvcl9oYW5kbGVyKHNlbGYsIGNvbmZpZ3VyYXRp
b24pOgorICAgICAgICByZXR1cm4gRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyKGZpbGVfcGF0aD1z
ZWxmLl9maWxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbj1jb25maWd1
cmF0aW9uLAorICAgICAgICAgICAgICAgICAgIGluY3JlbWVudF9lcnJvcl9jb3VudD1zZWxmLl9t
b2NrX2luY3JlbWVudF9lcnJvcl9jb3VudCkKKworICAgIGRlZiBfY2FsbF9lcnJvcl9oYW5kbGVy
KHNlbGYsIGhhbmRsZV9lcnJvciwgY29uZmlkZW5jZSk6CisgICAgICAgICIiIkNhbGwgdGhlIGdp
dmVuIGVycm9yIGhhbmRsZXIgd2l0aCBhIHRlc3QgZXJyb3IuIiIiCisgICAgICAgIGhhbmRsZV9l
cnJvcihsaW5lX251bWJlcj0xMDAsCisgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT1zZWxm
Ll9jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2U9Y29uZmlkZW5jZSwK
KyAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Im1lc3NhZ2UiKQorCisgICAgZGVmIHRlc3Rf
bm9uX3JlcG9ydGFibGVfZXJyb3Ioc2VsZik6CisgICAgICAgICIiIlRlc3QgX19jYWxsX18oKSB3
aXRoIGEgbm9uLXJlcG9ydGFibGUgZXJyb3IuIiIiCiAgICAgICAgIHNlbGYuX2NoZWNrX2luaXRp
YWxpemVkKCkKKyAgICAgICAgY29uZmlndXJhdGlvbiA9IHNlbGYuX3N0eWxlX2NoZWNrZXJfY29u
ZmlndXJhdGlvbigpCiAKKyAgICAgICAgY29uZmlkZW5jZSA9IDEKICAgICAgICAgIyBDb25maXJt
IHRoZSBlcnJvciBpcyBub3QgcmVwb3J0YWJsZS4KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShv
cHRpb25zLmlzX3JlcG9ydGFibGUoc2VsZi5fY2F0ZWdvcnksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVfcGF0aCkpCi0KLSAgICAg
ICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKG9wdGlvbnMsIGNvbmZpZGVuY2UpCisgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoY29uZmlndXJhdGlvbi5pc19yZXBvcnRhYmxlKHNlbGYuX2NhdGVn
b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25maWRlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9maWxlX3BhdGgpKQorICAgICAgICBlcnJvcl9oYW5kbGVyID0gc2Vs
Zi5fZXJyb3JfaGFuZGxlcihjb25maWd1cmF0aW9uKQorICAgICAgICBzZWxmLl9jYWxsX2Vycm9y
X2hhbmRsZXIoZXJyb3JfaGFuZGxlciwgY29uZmlkZW5jZSkKIAogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscygwLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
IiIsIHNlbGYuX2Vycm9yX21lc3NhZ2VzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwg
c2VsZi5fZXJyb3JfbWVzc2FnZXMpCiAKLSAgICBkZWYgdGVzdF9jYWxsX3JlcG9ydGFibGVfZW1h
Y3Moc2VsZik6Ci0gICAgICAgICIiIlRlc3QgX19jYWxsX18oKSBtZXRob2Qgd2l0aCBhIHJlcG9y
dGFibGUgZXJyb3IgYW5kIGVtYWNzIGZvcm1hdC4iIiIKLSAgICAgICAgY29uZmlkZW5jZSA9IDUK
LSAgICAgICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnModmVyYm9zaXR5PTMsIG91dHB1dF9m
b3JtYXQ9ImVtYWNzIikKLSAgICAgICAgc2VsZi5fY2hlY2tfaW5pdGlhbGl6ZWQoKQotCi0gICAg
ICAgIHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihvcHRpb25zLCBjb25maWRlbmNlKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgImZvby5oOjEwMDogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iKQotCi0g
ICAgZGVmIHRlc3RfY2FsbF9yZXBvcnRhYmxlX3ZzNyhzZWxmKToKLSAgICAgICAgIiIiVGVzdCBf
X2NhbGxfXygpIG1ldGhvZCB3aXRoIGEgcmVwb3J0YWJsZSBlcnJvciBhbmQgdnM3IGZvcm1hdC4i
IiIKLSAgICAgICAgY29uZmlkZW5jZSA9IDUKLSAgICAgICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9w
dGlvbnModmVyYm9zaXR5PTMsIG91dHB1dF9mb3JtYXQ9InZzNyIpCisgICAgIyBBbHNvIHNlcnZl
cyBhcyBhIHJlcG9ydGFibGUgZXJyb3IgdGVzdC4KKyAgICBkZWYgdGVzdF9tYXhfcmVwb3J0c19w
ZXJfY2F0ZWdvcnkoc2VsZik6CisgICAgICAgICIiIlRlc3QgZXJyb3IgcmVwb3J0IHN1cHByZXNz
aW9uIGluIF9fY2FsbF9fKCkgbWV0aG9kLiIiIgogICAgICAgICBzZWxmLl9jaGVja19pbml0aWFs
aXplZCgpCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBzZWxmLl9zdHlsZV9jaGVja2VyX2NvbmZp
Z3VyYXRpb24oKQorICAgICAgICBlcnJvcl9oYW5kbGVyID0gc2VsZi5fZXJyb3JfaGFuZGxlcihj
b25maWd1cmF0aW9uKQogCi0gICAgICAgIHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihvcHRpb25z
LCBjb25maWRlbmNlKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNlbGYuX2Vycm9y
X2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby5oKDEwMCk6ICBtZXNzYWdlICBbd2hpdGVz
cGFjZS90YWJdIFs1XVxuIikKLQotICAgIGRlZiB0ZXN0X2NhbGxfbWF4X3JlcG9ydHNfcGVyX2Nh
dGVnb3J5KHNlbGYpOgotICAgICAgICAiIiJUZXN0IGVycm9yIHJlcG9ydCBzdXBwcmVzc2lvbiBp
biBfX2NhbGxfXygpIG1ldGhvZC4iIiIKICAgICAgICAgY29uZmlkZW5jZSA9IDUKLSAgICAgICAg
b3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnModmVyYm9zaXR5PTMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeT17c2VsZi5fY2F0ZWdv
cnk6IDJ9KQotICAgICAgICBlcnJvcl9oYW5kbGVyID0gc2VsZi5fZXJyb3JfaGFuZGxlcihvcHRp
b25zKQotCi0gICAgICAgIHNlbGYuX2NoZWNrX2luaXRpYWxpemVkKCkKIAogICAgICAgICAjIEZp
cnN0IGNhbGw6IHVzdWFsIHJlcG9ydGluZy4KLSAgICAgICAgc2VsZi5fY2FsbChlcnJvcl9oYW5k
bGVyLCBvcHRpb25zLCBjb25maWRlbmNlKQorICAgICAgICBzZWxmLl9jYWxsX2Vycm9yX2hhbmRs
ZXIoZXJyb3JfaGFuZGxlciwgY29uZmlkZW5jZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
MSwgc2VsZi5fZXJyb3JfY291bnQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Vy
cm9yX21lc3NhZ2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9vLmg6MTAwOiAgbWVz
c2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IFsiZm9vLmgoMTAwKTogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iXSkKIAogICAg
ICAgICAjIFNlY29uZCBjYWxsOiBzdXBwcmVzc2lvbiBtZXNzYWdlIHJlcG9ydGVkLgotICAgICAg
ICBzZWxmLl9lcnJvcl9tZXNzYWdlcyA9ICIiCi0gICAgICAgIHNlbGYuX2NhbGwoZXJyb3JfaGFu
ZGxlciwgb3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5k
bGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDIsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9l
cnJvcl9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby5oOjEwMDogIG1l
c3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICJTdXBwcmVzc2luZyBmdXJ0aGVyIFslc10gcmVwb3J0cyBmb3IgdGhpcyBmaWxlLlxuIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAlIHNlbGYuX2NhdGVnb3J5KQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygzLCBsZW4oc2VsZi5fZXJyb3JfbWVzc2FnZXMpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlc1stMjpdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBbImZvby5oKDEwMCk6ICBtZXNzYWdlICBbd2hpdGVzcGFjZS90YWJdIFs1XVxuIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2luZyBmdXJ0aGVyIFt3aGl0ZXNw
YWNlL3RhYl0gcmVwb3J0cyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9yIHRoaXMg
ZmlsZS5cbiJdKQogCiAgICAgICAgICMgVGhpcmQgY2FsbDogbm8gcmVwb3J0LgotICAgICAgICBz
ZWxmLl9lcnJvcl9tZXNzYWdlcyA9ICIiCi0gICAgICAgIHNlbGYuX2NhbGwoZXJyb3JfaGFuZGxl
ciwgb3B0aW9ucywgY29uZmlkZW5jZSkKKyAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVy
KGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDMs
IHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9lcnJv
cl9tZXNzYWdlcywgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDMsIGxlbihzZWxmLl9l
cnJvcl9tZXNzYWdlcykpCiAKIAogY2xhc3MgUGF0Y2hTdHlsZUVycm9ySGFuZGxlclRlc3QoU3R5
bGVFcnJvckhhbmRsZXJUZXN0QmFzZSk6CkBAIC0xNjYsMjIgKzE0OSwyMiBAQCBpbmRleCBlZjY1
YmVlLi5lM2RiNzBlIDEwMDY0NAogICAgICAgICBwYXRjaF9maWxlcyA9IHBhcnNlX3BhdGNoKHNl
bGYuX3BhdGNoX3N0cmluZykKICAgICAgICAgZGlmZiA9IHBhdGNoX2ZpbGVzW3NlbGYuX2ZpbGVf
cGF0aF0KIAotICAgICAgICBvcHRpb25zID0gUHJvY2Vzc29yT3B0aW9ucyh2ZXJib3NpdHk9MykK
KyAgICAgICAgY29uZmlndXJhdGlvbiA9IHNlbGYuX3N0eWxlX2NoZWNrZXJfY29uZmlndXJhdGlv
bigpCiAKLSAgICAgICAgaGFuZGxlX2Vycm9yID0gUGF0Y2hTdHlsZUVycm9ySGFuZGxlcihkaWZm
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Zp
bGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX21vY2tfaW5jcmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX21vY2tfc3RkZXJyX3dyaXRlKQorICAgICAgICBo
YW5kbGVfZXJyb3IgPSBQYXRjaFN0eWxlRXJyb3JIYW5kbGVyKGRpZmY9ZGlmZiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9c2VsZi5fZmls
ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbmNyZW1lbnRfZXJyb3JfY291bnQ9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbW9ja19pbmNyZW1lbnRfZXJyb3Jf
Y291bnQpCiAKICAgICAgICAgY2F0ZWdvcnkgPSAid2hpdGVzcGFjZS90YWIiCiAgICAgICAgIGNv
bmZpZGVuY2UgPSA1CiAgICAgICAgIG1lc3NhZ2UgPSAibWVzc2FnZSIKIAogICAgICAgICAjIENv
bmZpcm0gZXJyb3IgaXMgcmVwb3J0YWJsZS4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wdGlv
bnMuaXNfcmVwb3J0YWJsZShjYXRlZ29yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25maWRlbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVfcGF0aCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShjb25maWd1cmF0aW9uLmlzX3JlcG9ydGFibGUoY2F0ZWdvcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9maWxl
X3BhdGgpKQogCiAgICAgICAgICMgQ29uZmlybSBlcnJvciBjb3VudCBpbml0aWFsaXplZCB0byB6
ZXJvLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBzZWxmLl9lcnJvcl9jb3VudCkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXIucHkKaW5kZXggMTljMmY0
ZC4uNjA4YTllNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9maWx0ZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0
ZXIucHkKQEAgLTEzOSwxMiArMTM5LDggQEAgY2xhc3MgRmlsdGVyQ29uZmlndXJhdGlvbihvYmpl
Y3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBhcHBlbmRlZC4gIFRoZSBmaXJzdCBz
dWJzdHJpbmcgbWF0Y2ggdGFrZXMKICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVjZWRlbmNl
LCBpLmUuIG9ubHkgdGhlIGZpcnN0IG1hdGNoIHRyaWdnZXJzCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgYW4gYXBwZW5kLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgInBhdGhf
cnVsZXMiIHZhbHVlIGlzIHRoZSB0dXBsZSBvZiBmaWx0ZXIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVGhlICJwYXRoX3J1bGVzIiB2YWx1ZSBpcyBhIGxpc3Qgb2YgZmlsdGVyCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVsZXMgdGhhdCBjYW4gYmUgYXBwZW5kZWQgdG8gdGhlIGJh
c2UgcnVsZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIGEgdHVwbGUg
cmF0aGVyIHRoYW4gYSBsaXN0IHNvIGl0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgY2FuIGJl
IHVzZWQgYXMgYSBkaWN0aW9uYXJ5IGtleS4gIFRoZSBkaWN0aW9uYXJ5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgaXMgZm9yIGNhY2hpbmcgcHVycG9zZXMgaW4gdGhlIGltcGxlbWVudGF0aW9u
IG9mCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBjbGFzcy4KIAogICAgICAgICAgIHVz
ZXJfcnVsZXM6IEEgbGlzdCBvZiBmaWx0ZXIgcnVsZXMgdGhhdCBpcyBhbHdheXMgYXBwZW5kZWQK
ICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgYmFzZSBydWxlcyBhbmQgYW55IHBhdGggcnVs
ZXMuICBJbiBvdGhlcgpAQCAtMTY1LDExICsxNjEsNyBAQCBjbGFzcyBGaWx0ZXJDb25maWd1cmF0
aW9uKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3BhdGhfc3BlY2lmaWNfbG93ZXIgPSBOb25lCiAg
ICAgICAgICIiIlRoZSBiYWNraW5nIHN0b3JlIGZvciBzZWxmLl9nZXRfcGF0aF9zcGVjaWZpY19s
b3dlcigpLiIiIgogCi0gICAgICAgICMgRklYTUU6IE1ha2UgdXNlciBydWxlcyBpbnRlcm5hbCBh
ZnRlciB0aGUgRmlsdGVyQ29uZmlndXJhdGlvbgotICAgICAgICAjICAgICAgICBhdHRyaWJ1dGUg
aXMgcmVtb3ZlZCBmcm9tIFByb2Nlc3Nvck9wdGlvbnMgKHNpbmNlIGF0Ci0gICAgICAgICMgICAg
ICAgIHRoYXQgcG9pbnQgQXJndW1lbnRQcmludGVyIHdpbGwgbm8gbG9uZ2VyIG5lZWQgdG8KLSAg
ICAgICAgIyAgICAgICAgYWNjZXNzIEZpbHRlckNvbmZpZ3VyYXRpb24udXNlcl9ydWxlcykuCi0g
ICAgICAgIHNlbGYudXNlcl9ydWxlcyA9IHVzZXJfcnVsZXMKKyAgICAgICAgc2VsZi5fdXNlcl9y
dWxlcyA9IHVzZXJfcnVsZXMKIAogICAgICAgICBzZWxmLl9wYXRoX3J1bGVzX3RvX2ZpbHRlciA9
IHt9CiAgICAgICAgICIiIkNhY2hlZCBkaWN0aW9uYXJ5IG9mIHBhdGggcnVsZXMgdG8gQ2F0ZWdv
cnlGaWx0ZXIgaW5zdGFuY2UuIiIiCkBAIC0xODgsNyArMTgwLDcgQEAgY2xhc3MgRmlsdGVyQ29u
ZmlndXJhdGlvbihvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGlm
IHNlbGYuX3BhdGhfc3BlY2lmaWMgIT0gb3RoZXIuX3BhdGhfc3BlY2lmaWM6CiAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgc2VsZi51c2VyX3J1bGVzICE9IG90aGVyLnVzZXJf
cnVsZXM6CisgICAgICAgIGlmIHNlbGYuX3VzZXJfcnVsZXMgIT0gb3RoZXIuX3VzZXJfcnVsZXM6
CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICByZXR1cm4gVHJ1ZQpAQCAtMjEw
LDIyICsyMDIsMzQgQEAgY2xhc3MgRmlsdGVyQ29uZmlndXJhdGlvbihvYmplY3QpOgogICAgICAg
ICByZXR1cm4gc2VsZi5fcGF0aF9zcGVjaWZpY19sb3dlcgogCiAgICAgZGVmIF9wYXRoX3J1bGVz
X2Zyb21fcGF0aChzZWxmLCBwYXRoKToKLSAgICAgICAgIiIiRGV0ZXJtaW5lIHRoZSBwYXRoLXNw
ZWNpZmljIHJ1bGVzIHRvIHVzZSwgYW5kIHJldHVybiBhcyBhIHR1cGxlLiIiIgorICAgICAgICAi
IiJEZXRlcm1pbmUgdGhlIHBhdGgtc3BlY2lmaWMgcnVsZXMgdG8gdXNlLCBhbmQgcmV0dXJuIGFz
IGEgdHVwbGUuCisKKyAgICAgICAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSB0dXBsZSByYXRoZXIg
dGhhbiBhIGxpc3Qgc28gdGhlIHJldHVybgorICAgICAgICAgdmFsdWUgY2FuIGJlIHBhc3NlZCB0
byBfZmlsdGVyX2Zyb21fcGF0aF9ydWxlcygpIHdpdGhvdXQgY2hhbmdlLgorCisgICAgICAgICIi
IgogICAgICAgICBwYXRoID0gcGF0aC5sb3dlcigpCiAgICAgICAgIGZvciAoc3ViX3BhdGhzLCBw
YXRoX3J1bGVzKSBpbiBzZWxmLl9nZXRfcGF0aF9zcGVjaWZpY19sb3dlcigpOgogICAgICAgICAg
ICAgZm9yIHN1Yl9wYXRoIGluIHN1Yl9wYXRoczoKICAgICAgICAgICAgICAgICBpZiBwYXRoLmZp
bmQoc3ViX3BhdGgpID4gLTE6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXRoX3J1bGVz
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0dXBsZShwYXRoX3J1bGVzKQogICAgICAgICBy
ZXR1cm4gKCkgIyBEZWZhdWx0IHRvIHRoZSBlbXB0eSB0dXBsZS4KIAogICAgIGRlZiBfZmlsdGVy
X2Zyb21fcGF0aF9ydWxlcyhzZWxmLCBwYXRoX3J1bGVzKToKLSAgICAgICAgIiIiUmV0dXJuIHRo
ZSBDYXRlZ29yeUZpbHRlciBhc3NvY2lhdGVkIHRvIGEgcGF0aCBydWxlcyB0dXBsZS4iIiIKKyAg
ICAgICAgIiIiUmV0dXJuIHRoZSBDYXRlZ29yeUZpbHRlciBhc3NvY2lhdGVkIHRvIHRoZSBnaXZl
biBwYXRoIHJ1bGVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgcGF0aF9ydWxlczogQSB0
dXBsZSBvZiBwYXRoIHJ1bGVzLiAgV2UgcmVxdWlyZSBhIHR1cGxlIHJhdGhlcgorICAgICAgICAg
ICAgICAgICAgICAgIHRoYW4gYSBsaXN0IHNvIHRoZSB2YWx1ZSBjYW4gYmUgdXNlZCBhcyBhIGRp
Y3Rpb25hcnkKKyAgICAgICAgICAgICAgICAgICAgICBrZXkgaW4gc2VsZi5fcGF0aF9ydWxlc190
b19maWx0ZXIuCisKKyAgICAgICAgIiIiCiAgICAgICAgICMgV2UgcmV1c2UgdGhlIHNhbWUgQ2F0
ZWdvcnlGaWx0ZXIgd2hlcmUgcG9zc2libGUgdG8gdGFrZQogICAgICAgICAjIGFkdmFudGFnZSBv
ZiB0aGUgY2FjaGluZyB0aGV5IGRvLgogICAgICAgICBpZiBwYXRoX3J1bGVzIG5vdCBpbiBzZWxm
Ll9wYXRoX3J1bGVzX3RvX2ZpbHRlcjoKICAgICAgICAgICAgIHJ1bGVzID0gbGlzdChzZWxmLl9i
YXNlX3J1bGVzKSAjIE1ha2UgYSBjb3B5CiAgICAgICAgICAgICBydWxlcy5leHRlbmQocGF0aF9y
dWxlcykKLSAgICAgICAgICAgIHJ1bGVzLmV4dGVuZChzZWxmLnVzZXJfcnVsZXMpCisgICAgICAg
ICAgICBydWxlcy5leHRlbmQoc2VsZi5fdXNlcl9ydWxlcykKICAgICAgICAgICAgIHNlbGYuX3Bh
dGhfcnVsZXNfdG9fZmlsdGVyW3BhdGhfcnVsZXNdID0gX0NhdGVnb3J5RmlsdGVyKHJ1bGVzKQog
CiAgICAgICAgIHJldHVybiBzZWxmLl9wYXRoX3J1bGVzX3RvX2ZpbHRlcltwYXRoX3J1bGVzXQpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5p
dHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0
dGVzdC5weQppbmRleCA4NDc2MGE1Li43YjhhNTQwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2ZpbHRlcl91bml0dGVzdC5weQpAQCAtMTU3LDE0ICsx
NTcsMTQgQEAgY2xhc3MgRmlsdGVyQ29uZmlndXJhdGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICAjIFRlc3QgdGhhdCB0aGUgYXR0cmlidXRlcyBhcmUgZ2V0dGluZyBzZXQgY29y
cmVjdGx5LgogICAgICAgICAjIFdlIHVzZSBwYXJhbWV0ZXIgdmFsdWVzIHRoYXQgYXJlIGRpZmZl
cmVudCBmcm9tIHRoZSBkZWZhdWx0cy4KICAgICAgICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAg
ICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsicGF0aCJdLCAoIithIiwpKV0KKyAgICAgICAgcGF0aF9z
cGVjaWZpYyA9IFsoWyJwYXRoIl0sIFsiK2EiXSldCiAgICAgICAgIHVzZXJfcnVsZXMgPSBbIisi
XQogCiAgICAgICAgIGNvbmZpZyA9IHNlbGYuX2NvbmZpZyhiYXNlX3J1bGVzLCBwYXRoX3NwZWNp
ZmljLCB1c2VyX3J1bGVzKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGJhc2VfcnVsZXMs
IGNvbmZpZy5fYmFzZV9ydWxlcykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGF0aF9zcGVj
aWZpYywgY29uZmlnLl9wYXRoX3NwZWNpZmljKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh1
c2VyX3J1bGVzLCBjb25maWcudXNlcl9ydWxlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
dXNlcl9ydWxlcywgY29uZmlnLl91c2VyX3J1bGVzKQogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF9h
cmd1bWVudHMoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBhdHRyaWJ1dGVzIGFyZSBn
ZXR0aW5nIHNldCBjb3JyZWN0bHkgdG8gdGhlIGRlZmF1bHRzLgpAQCAtMTcyLDcgKzE3Miw3IEBA
IGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgY29uZmlnLl9iYXNlX3J1bGVzKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhbXSwgY29uZmlnLl9wYXRoX3NwZWNpZmljKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbXSwgY29uZmlnLnVzZXJfcnVsZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKFtdLCBjb25maWcuX3VzZXJfcnVsZXMpCiAKICAgICBkZWYgdGVzdF9lcShzZWxmKToK
ICAgICAgICAgIiIiVGVzdCBfX2VxX18gbWV0aG9kLiIiIgpAQCAtMTg1LDcgKzE4NSw3IEBAIGNs
YXNzIEZpbHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAg
ICAjIFRoZXNlIHBhcmFtZXRlciB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0
cy4KICAgICAgICAgYmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhfc3BlY2lmaWMgPSBb
KFsicGF0aCJdLCAoIithIiwpKV0KKyAgICAgICAgcGF0aF9zcGVjaWZpYyA9IFsoWyJwYXRoIl0s
IFsiK2EiXSldCiAgICAgICAgIHVzZXJfcnVsZXMgPSBbIisiXQogCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoY29uZmlnLl9fZXFfXyhGaWx0ZXJDb25maWd1cmF0aW9uKApAQCAtMjE5LDggKzIx
OSw4IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICBkZWYgdGVzdF9wYXRoX3NwZWNpZmljKHNlbGYpOgogICAgICAgICAiIiJUZXN0IGVmZmVj
dCBvZiBwYXRoX3J1bGVzX3NwZWNpZmllciBvbiBzaG91bGRfY2hlY2soKS4iIiIKICAgICAgICAg
YmFzZV9ydWxlcyA9IFsiLSJdCi0gICAgICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsicGF0aDEiXSwg
KCIrYiIsKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKFsicGF0aDIiXSwgKCIrYyIsKSld
CisgICAgICAgIHBhdGhfc3BlY2lmaWMgPSBbKFsicGF0aDEiXSwgWyIrYiJdKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAoWyJwYXRoMiJdLCBbIitjIl0pXQogICAgICAgICB1c2VyX3J1bGVz
ID0gW10KIAogICAgICAgICBjb25maWcgPSBzZWxmLl9jb25maWcoYmFzZV9ydWxlcywgcGF0aF9z
cGVjaWZpYywgdXNlcl9ydWxlcykKQEAgLTIzMyw3ICsyMzMsNyBAQCBjbGFzcyBGaWx0ZXJDb25m
aWd1cmF0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcGF0aF93aXRo
X2RpZmZlcmVudF9jYXNlKHNlbGYpOgogICAgICAgICAiIiJUZXN0IGEgcGF0aCB0aGF0IGRpZmZl
cnMgb25seSBpbiBjYXNlLiIiIgogICAgICAgICBiYXNlX3J1bGVzID0gWyItIl0KLSAgICAgICAg
cGF0aF9zcGVjaWZpYyA9IFsoWyJGb28vIl0sICgiK3doaXRlc3BhY2UiLCkpXQorICAgICAgICBw
YXRoX3NwZWNpZmljID0gWyhbIkZvby8iXSwgWyIrd2hpdGVzcGFjZSJdKV0KICAgICAgICAgdXNl
cl9ydWxlcyA9IFtdCiAKICAgICAgICAgY29uZmlnID0gc2VsZi5fY29uZmlnKGJhc2VfcnVsZXMs
IHBhdGhfc3BlY2lmaWMsIHVzZXJfcnVsZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48901</attachid>
            <date>2010-02-17 07:01:27 -0800</date>
            <delta_ts>2010-02-17 23:09:14 -0800</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-34674-2.diff</filename>
            <type>text/plain</type>
            <size>56855</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0YjY1NjU5Li41NTc5M2RmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTAtMDIt
MTYgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCBjaGVjay13ZWJr
aXQtc3R5bGUncyBQcm9jZXNzb3JPcHRpb25zIGNsYXNzIGludG8gdHdvCisgICAgICAgIGNsYXNz
ZXMuIFRoaXMgcmV2aXNpb24gY29udGFpbnMgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0Njc0CisKKyAgICAg
ICAgRGl2aWRlZCB0aGUgUHJvY2Vzc29yT3B0aW9ucyBjbGFzcyBpbnRvIGEgQ29tbWFuZE9wdGlv
blZhbHVlcworICAgICAgICBjbGFzcyAodGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBjb21tYW5k
LWxpbmUgb3B0aW9ucykgYW5kCisgICAgICAgIGEgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbiBj
bGFzcyAod2hpY2ggY29uZmlndXJlcyB0aGUgbWFpbgorICAgICAgICBTdHlsZUNoZWNrZXIpLgor
CisgICAgICAgICogU2NyaXB0cy9jaGVjay13ZWJraXQtc3R5bGU6CisgICAgICAgICAgLSBVcGRh
dGVkIG1haW4oKSB0byBjb252ZXJ0IHRoZSBwYXJzZWQgY29tbWFuZCBvcHRpb24gdmFsdWVzCisg
ICAgICAgICAgICB0byBhIFN0eWxlQ2hlY2tDb25maWd1cmF0aW9uIGluc3RhbmNlIHByaW9yIHRv
IGNvbnN0cnVjdGluZworICAgICAgICAgICAgYSBTdHlsZUNoZWNrZXIuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICAgLSBBZGRlZCBjaGVj
a193ZWJraXRfc3R5bGVfY29uZmlndXJhdGlvbigpIHRvIGNvbnZlcnQgYQorICAgICAgICAgICAg
Q29tbWFuZE9wdGlvblZhbHVlcyBpbnN0YW5jZSBpbnRvIGEgU3R5bGVDaGVja2VyQ29uZmlndXJh
dGlvbgorICAgICAgICAgICAgaW5zdGFuY2UuCisgICAgICAgICAgLSBSZW5hbWVkIHRoZSBQcm9j
ZXNzb3JPcHRpb25zIGNsYXNzIHRvIENvbW1hbmRPcHRpb25WYWx1ZXMuCisgICAgICAgICAgLSBJ
biB0aGUgQ29tbWFuZE9wdGlvblZhbHVlcyBjbGFzcy0tCisgICAgICAgICAgICAtIFJlcGxhY2Vk
IHRoZSBmaWx0ZXJfY29uZmlndXJhdGlvbiBhdHRyaWJ1dGUgd2l0aCB0aGUKKyAgICAgICAgICAg
ICAgc2ltcGxlciBmaWx0ZXJfcnVsZXMgYXR0cmlidXRlLgorICAgICAgICAgICAgLSBSZW1vdmVk
IHRoZSBtYXhfcmVwb3J0c19wZXJfZXJyb3IgYXR0cmlidXRlLgorICAgICAgICAgICAgLSBNb3Zl
ZCB0aGUgaXNfcmVwb3J0YWJsZSgpIG1ldGhvZCB0byB0aGUgbmV3CisgICAgICAgICAgICAgIFN0
eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gY2xhc3MuCisgICAgICAgICAgLSBSZW1vdmVkIHRoZSBi
YXNlX2ZpbHRlcl9ydWxlcyBhdHRyaWJ1dGUgZnJvbSB0aGUKKyAgICAgICAgICAgIERlZmF1bHRD
b21tYW5kT3B0aW9uVmFsdWVzIGNsYXNzLgorICAgICAgICAgIC0gSW4gdGhlIEFyZ3VtZW50UGFy
c2VyIGNsYXNzLS0KKyAgICAgICAgICAgIC0gQWRkZWQgYmFzZV9maWx0ZXJfcnVsZXMgdG8gdGhl
IGNvbnN0cnVjdG9yLgorICAgICAgICAgICAgLSBDaGFuZ2VkIHRoZSBwYXJzZSgpIG1ldGhvZCB0
byByZXR1cm4gYSBDb21tYW5kT3B0aW9uVmFsdWVzCisgICAgICAgICAgICAgIGluc3RhbmNlIGlu
c3RlYWQgb2YgYSBQcm9jZXNzb3JPcHRpb25zIGluc3RhbmNlLgorICAgICAgICAgIC0gQ3JlYXRl
ZCBhIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gY2xhc3MuCisgICAgICAgICAgICAtIEFkZGVk
IHRoZSBkYXRhIGF0dHJpYnV0ZXMgbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5LAorICAgICAgICAg
ICAgICBzdGRlcnJfd3JpdGUsIGFuZCB2ZXJib3NpdHkuCisgICAgICAgICAgICAtIEFkZGVkIGlz
X3JlcG9ydGFibGUoKSAobW92ZWQgZnJvbSB0aGUgUHJvY2Vzc29yT3B0aW9ucworICAgICAgICAg
ICAgICBjbGFzcykgYW5kIHdyaXRlX3N0eWxlX2Vycm9yKCkgKG1vdmVkIGZyb20gdGhlCisgICAg
ICAgICAgICAgIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlciBjbGFzcykuCisgICAgICAgICAgLSBJ
biB0aGUgU3R5bGVDaGVja2VyIGNsYXNzLS0KKyAgICAgICAgICAgIC0gUmVwbGFjZWQgdGhlIFBy
b2Nlc3Nvck9wdGlvbnMgb3B0aW9ucyBhdHRyaWJ1dGUgd2l0aCB0aGUKKyAgICAgICAgICAgICAg
U3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbiBfY29uZmlndXJhdGlvbiBhdHRyaWJ1dGUuCisgICAg
ICAgICAgICAtIFJlbW92ZWQgdGhlIF9zdGRlcnJfd3JpdGUgYXR0cmlidXRlLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAg
IC0gVXBkYXRlZCB0aGUgZXhpc3RpbmcgdW5pdCB0ZXN0IGNsYXNzZXMgYXMgbmVjZXNzYXJ5Lgor
ICAgICAgICAgIC0gQWRkZWQgYSBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uVGVzdCBjbGFzcy4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnMucHk6Cisg
ICAgICAgICAgLSBVcGRhdGVkIHRoZSBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIgY2xhc3MgdG8g
YWNjZXB0IGEKKyAgICAgICAgICAgIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gaW5zdGFuY2Ug
aW5zdGVhZCBvZiBhIFByb2Nlc3Nvck9wdGlvbnMKKyAgICAgICAgICAgIGluc3RhbmNlIGFuZCBh
biBzdGRlcnJfd3JpdGUgbWV0aG9kLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weToKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVu
aXQgdGVzdCBjbGFzc2VzIGFzIG5lY2Vzc2FyeS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvc3R5bGUvZmlsdGVyLnB5OgorICAgICAgICAgIC0gQWRkcmVzc2VkIHRoZSBGSVhNRSBpbiB0
aGUgRmlsdGVyQ29uZmlndXJhdGlvbiBjbGFzcyB0byBjaGFuZ2UKKyAgICAgICAgICAgIHRoZSB1
c2VyX3J1bGVzIGF0dHJpYnV0ZSB0byBfdXNlcl9ydWxlcyAoc2luY2UgaXQgaXMgbm93CisgICAg
ICAgICAgICBhY2Nlc3NlZCBvbmx5IGludGVybmFsbHkpLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHk6CisgICAgICAgICAgLSBVcGRhdGVkIHRv
IHJlZmxlY3QgdGhlIGNoYW5nZSBmcm9tIHVzZXJfcnVsZXMgdG8gX3VzZXJfcnVsZXMuCisKIDIw
MTAtMDItMTUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgU2hpbmljaGlybyBIYW1hamkuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvY2hlY2st
d2Via2l0LXN0eWxlCmluZGV4IGYxOWZlNzMuLmI5MTQ1ZjEgMTAwNzU1Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
Y2hlY2std2Via2l0LXN0eWxlCkBAIC02MSw3ICs2MSw4IEBAIGRlZiBtYWluKCk6CiAgICAgcGFy
c2VyID0gY2hlY2tlci5Bcmd1bWVudFBhcnNlcigpCiAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBh
cnNlci5wYXJzZShzeXMuYXJndlsxOl0pCiAKLSAgICBzdHlsZV9jaGVja2VyID0gY2hlY2tlci5T
dHlsZUNoZWNrZXIob3B0aW9ucykKKyAgICBjb25maWd1cmF0aW9uID0gY2hlY2tlci5jaGVja193
ZWJraXRfc3R5bGVfY29uZmlndXJhdGlvbihvcHRpb25zKQorICAgIHN0eWxlX2NoZWNrZXIgPSBj
aGVja2VyLlN0eWxlQ2hlY2tlcihjb25maWd1cmF0aW9uKQogCiAgICAgaWYgZmlsZXM6CiAgICAg
ICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlczoKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCBkNDU1ZjIzLi44MTUwMDAwIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0xNTksMTEgKzE1OSwy
OCBAQCBkZWYgX2FsbF9jYXRlZ29yaWVzKCk6CiAKIGRlZiBfY2hlY2tfd2Via2l0X3N0eWxlX2Rl
ZmF1bHRzKCk6CiAgICAgIiIiUmV0dXJuIHRoZSBkZWZhdWx0IGNvbW1hbmQtbGluZSBvcHRpb25z
IGZvciBjaGVjay13ZWJraXQtc3R5bGUuIiIiCi0gICAgcmV0dXJuIERlZmF1bHRDb21tYW5kT3B0
aW9uVmFsdWVzKGJhc2VfZmlsdGVyX3J1bGVzPV9CQVNFX0ZJTFRFUl9SVUxFUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD1fREVGQVVMVF9PVVRQ
VVRfRk9STUFULAorICAgIHJldHVybiBEZWZhdWx0Q29tbWFuZE9wdGlvblZhbHVlcyhvdXRwdXRf
Zm9ybWF0PV9ERUZBVUxUX09VVFBVVF9GT1JNQVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZlcmJvc2l0eT1fREVGQVVMVF9WRVJCT1NJVFkpCiAKIAorZGVmIGNoZWNr
X3dlYmtpdF9zdHlsZV9jb25maWd1cmF0aW9uKG9wdGlvbnMpOgorICAgICIiIlJldHVybiBhIFN0
eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgZm9yIGNoZWNrLXdlYmtpdC1zdHlsZS4K
KworICAgIEFyZ3M6CisgICAgICBvcHRpb25zOiBBIENvbW1hbmRPcHRpb25WYWx1ZXMgaW5zdGFu
Y2UuCisKKyAgICAiIiIKKyAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZpbHRlckNvbmZpZ3Vy
YXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9ydWxlcz1fQkFTRV9G
SUxURVJfUlVMRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF9zcGVjaWZp
Yz1fUEFUSF9SVUxFU19TUEVDSUZJRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dXNlcl9ydWxlcz1vcHRpb25zLmZpbHRlcl9ydWxlcykKKworICAgIHJldHVybiBTdHlsZUNoZWNr
ZXJDb25maWd1cmF0aW9uKGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9u
LAorICAgICAgICAgICAgICAgbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5PV9NQVhfUkVQT1JUU19Q
RVJfQ0FURUdPUlksCisgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0PW9wdGlvbnMub3V0cHV0
X2Zvcm1hdCwKKyAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZT1zeXMuc3RkZXJyLndyaXRlLAor
ICAgICAgICAgICAgICAgdmVyYm9zaXR5PW9wdGlvbnMudmVyYm9zaXR5KQorCiAKIGRlZiBfY3Jl
YXRlX3VzYWdlKGRlZmF1bHRfb3B0aW9ucyk6CiAgICAgIiIiUmV0dXJuIHRoZSB1c2FnZSBzdHJp
bmcgdG8gZGlzcGxheSBmb3IgY29tbWFuZCBoZWxwLgpAQCAtMjM5LDE2ICsyNTYsOCBAQCBTeW50
YXg6ICUocHJvZ3JhbV9uYW1lKXMgWy0tdmVyYm9zZT0jXSBbLS1naXQtY29tbWl0PTxTaW5nbGVD
b21taXQ+XSBbLS1vdXRwdXQ9dgogCiAjIEZJWE1FOiBFbGltaW5hdGUgc3VwcG9ydCBmb3IgImV4
dHJhX2ZsYWdfdmFsdWVzIi4KICMKLSMgRklYTUU6IFJlbW92ZSBldmVyeXRoaW5nIGZyb20gUHJv
Y2Vzc29yT3B0aW9ucyBleGNlcHQgZm9yIHRoZQotIyAgICAgICAgaW5mb3JtYXRpb24gdGhhdCBj
YW4gYmUgcGFzc2VkIHZpYSB0aGUgY29tbWFuZCBsaW5lLCBhbmQKLSMgICAgICAgIHJlbmFtZSB0
byBzb21ldGhpbmcgbGlrZSBDaGVja1dlYktpdFN0eWxlT3B0aW9ucy4gIFRoaXMKLSMgICAgICAg
IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHJlbW92aW5nIHRoZQotIyAgICAgICAg
bWF4X3JlcG9ydHNfcGVyX2Vycm9yIGF0dHJpYnV0ZSBhbmQgdGhlIGlzX3JlcG9ydGFibGUoKQot
IyAgICAgICAgbWV0aG9kLiAgU2VlIGFsc28gdGhlIEZJWE1FIGJlbG93IHRvIGNyZWF0ZSBhIG5l
dyBjbGFzcwotIyAgICAgICAgY2FsbGVkIHNvbWV0aGluZyBsaWtlIENoZWNrZXJDb25maWd1cmF0
aW9uLgotIwogIyBUaGlzIGNsYXNzIHNob3VsZCBub3QgaGF2ZSBrbm93bGVkZ2Ugb2YgdGhlIGZs
YWcga2V5IG5hbWVzLgotY2xhc3MgUHJvY2Vzc29yT3B0aW9ucyhvYmplY3QpOgorY2xhc3MgQ29t
bWFuZE9wdGlvblZhbHVlcyhvYmplY3QpOgogCiAgICAgIiIiU3RvcmVzIHRoZSBvcHRpb24gdmFs
dWVzIHBhc3NlZCBieSB0aGUgdXNlciB2aWEgdGhlIGNvbW1hbmQgbGluZS4KIApAQCAtMjU3LDE2
ICsyNjYsMTQgQEAgY2xhc3MgUHJvY2Vzc29yT3B0aW9ucyhvYmplY3QpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhaXJzIHRoYXQgYXJlIG5vdCBvdGhlcndpc2UgcmVwcmVzZW50ZWQgYnkg
dGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzLiAgVGhlIGRlZmF1bHQgaXMgdGhl
IGVtcHR5IGRpY3Rpb25hcnkuCiAKLSAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uOiBBIEZpbHRl
ckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuICBUaGUgZGVmYXVsdAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlzIHRoZSAiZW1wdHkiIGZpbHRlciBjb25maWd1cmF0aW9uLCB3aGljaAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW5zIHRoYXQgYWxsIGVycm9ycyBzaG91bGQgYmUg
Y2hlY2tlZC4KKyAgICAgIGZpbHRlcl9ydWxlczogVGhlIGxpc3Qgb2YgZmlsdGVyIHJ1bGVzIHBy
b3ZpZGVkIGJ5IHRoZSB1c2VyLgorICAgICAgICAgICAgICAgICAgICBUaGVzZSBydWxlcyBhcmUg
YXBwZW5kZWQgdG8gdGhlIGJhc2UgcnVsZXMgYW5kCisgICAgICAgICAgICAgICAgICAgIHBhdGgt
c3BlY2lmaWMgcnVsZXMgYW5kIHNvIHRha2UgcHJlY2VkZW5jZSBvdmVyCisgICAgICAgICAgICAg
ICAgICAgIHRoZSBiYXNlIGZpbHRlciBydWxlcywgZXRjLgogCiAgICAgICBnaXRfY29tbWl0OiBB
IHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGdpdCBjb21taXQgdG8gY2hlY2suCiAgICAgICAgICAg
ICAgICAgICBUaGUgZGVmYXVsdCBpcyBOb25lLgogCi0gICAgICBtYXhfcmVwb3J0c19wZXJfZXJy
b3I6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBlcnJvcnMgdG8gcmVwb3J0Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBlciBmaWxlLCBwZXIgY2F0ZWdvcnkuCi0KICAgICAgIG91dHB1dF9m
b3JtYXQ6IEEgc3RyaW5nIHRoYXQgaXMgdGhlIG91dHB1dCBmb3JtYXQuICBUaGUgc3VwcG9ydGVk
CiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgZm9ybWF0cyBhcmUgImVtYWNzIiB3aGljaCBl
bWFjcyBjYW4gcGFyc2UKICAgICAgICAgICAgICAgICAgICAgIGFuZCAidnM3IiB3aGljaCBNaWNy
b3NvZnQgVmlzdWFsIFN0dWRpbyA3IGNhbiBwYXJzZS4KQEAgLTI3OCwxNyArMjg1LDE0IEBAIGNs
YXNzIFByb2Nlc3Nvck9wdGlvbnMob2JqZWN0KToKICAgICAiIiIKICAgICBkZWYgX19pbml0X18o
c2VsZiwKICAgICAgICAgICAgICAgICAgZXh0cmFfZmxhZ192YWx1ZXM9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgZmlsdGVyX2NvbmZpZ3VyYXRpb24gPSBOb25lLAorICAgICAgICAgICAgICAgICBm
aWx0ZXJfcnVsZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgZ2l0X2NvbW1pdD1Ob25lLAotICAg
ICAgICAgICAgICAgICBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9Tm9uZSwKICAgICAgICAgICAg
ICAgICAgb3V0cHV0X2Zvcm1hdD0iZW1hY3MiLAogICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9
MSk6CiAgICAgICAgIGlmIGV4dHJhX2ZsYWdfdmFsdWVzIGlzIE5vbmU6CiAgICAgICAgICAgICBl
eHRyYV9mbGFnX3ZhbHVlcyA9IHt9Ci0gICAgICAgIGlmIGZpbHRlcl9jb25maWd1cmF0aW9uIGlz
IE5vbmU6Ci0gICAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZpbHRlckNvbmZpZ3Vy
YXRpb24oKQotICAgICAgICBpZiBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnkgaXMgTm9uZToKLSAg
ICAgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeSA9IHt9CisgICAgICAgIGlmIGZpbHRl
cl9ydWxlcyBpcyBOb25lOgorICAgICAgICAgICAgZmlsdGVyX3J1bGVzID0gW10KIAogICAgICAg
ICBpZiBvdXRwdXRfZm9ybWF0IG5vdCBpbiAoImVtYWNzIiwgInZzNyIpOgogICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCAib3V0cHV0X2Zvcm1hdCIgcGFyYW1ldGVyOiAnCkBA
IC0zMDEsMjMgKzMwNSwyMCBAQCBjbGFzcyBQcm9jZXNzb3JPcHRpb25zKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdWYWx1ZSBnaXZlbjogIiVzIi4nICUgdmVyYm9zaXR5
KQogCiAgICAgICAgIHNlbGYuZXh0cmFfZmxhZ192YWx1ZXMgPSBleHRyYV9mbGFnX3ZhbHVlcwot
ICAgICAgICBzZWxmLmZpbHRlcl9jb25maWd1cmF0aW9uID0gZmlsdGVyX2NvbmZpZ3VyYXRpb24K
KyAgICAgICAgc2VsZi5maWx0ZXJfcnVsZXMgPSBmaWx0ZXJfcnVsZXMKICAgICAgICAgc2VsZi5n
aXRfY29tbWl0ID0gZ2l0X2NvbW1pdAotICAgICAgICBzZWxmLm1heF9yZXBvcnRzX3Blcl9jYXRl
Z29yeSA9IG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeQogICAgICAgICBzZWxmLm91dHB1dF9mb3Jt
YXQgPSBvdXRwdXRfZm9ybWF0CiAgICAgICAgIHNlbGYudmVyYm9zaXR5ID0gdmVyYm9zaXR5CiAK
ICAgICAjIFVzZWZ1bCBmb3IgdW5pdCB0ZXN0aW5nLgogICAgIGRlZiBfX2VxX18oc2VsZiwgb3Ro
ZXIpOgotICAgICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGlzIFByb2Nlc3Nvck9wdGlvbnMgaW5z
dGFuY2UgaXMgZXF1YWwgdG8gYW5vdGhlci4iIiIKKyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIg
dGhpcyBpbnN0YW5jZSBpcyBlcXVhbCB0byBhbm90aGVyLiIiIgogICAgICAgICBpZiBzZWxmLmV4
dHJhX2ZsYWdfdmFsdWVzICE9IG90aGVyLmV4dHJhX2ZsYWdfdmFsdWVzOgogICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHNlbGYuZmlsdGVyX2NvbmZpZ3VyYXRpb24gIT0gb3Ro
ZXIuZmlsdGVyX2NvbmZpZ3VyYXRpb246CisgICAgICAgIGlmIHNlbGYuZmlsdGVyX3J1bGVzICE9
IG90aGVyLmZpbHRlcl9ydWxlczoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBp
ZiBzZWxmLmdpdF9jb21taXQgIT0gb3RoZXIuZ2l0X2NvbW1pdDoKICAgICAgICAgICAgIHJldHVy
biBGYWxzZQotICAgICAgICBpZiBzZWxmLm1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeSAhPSBvdGhl
ci5tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKICAg
ICAgICAgaWYgc2VsZi5vdXRwdXRfZm9ybWF0ICE9IG90aGVyLm91dHB1dF9mb3JtYXQ6CiAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgIT0gb3RoZXIu
dmVyYm9zaXR5OgpAQCAtMzMwLDI4ICszMzEsNiBAQCBjbGFzcyBQcm9jZXNzb3JPcHRpb25zKG9i
amVjdCk6CiAgICAgICAgICMgUHl0aG9uIGRvZXMgbm90IGF1dG9tYXRpY2FsbHkgZGVkdWNlIHRo
aXMgZnJvbSBfX2VxX18oKS4KICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikK
IAotICAgIGRlZiBpc19yZXBvcnRhYmxlKHNlbGYsIGNhdGVnb3J5LCBjb25maWRlbmNlX2luX2Vy
cm9yLCBwYXRoKToKLSAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgYW4gZXJyb3IgaXMgcmVwb3J0
YWJsZS4KLQotICAgICAgICBBbiBlcnJvciBpcyByZXBvcnRhYmxlIGlmIHRoZSBjb25maWRlbmNl
IGluIHRoZSBlcnJvcgotICAgICAgICBpcyBhdCBsZWFzdCB0aGUgY3VycmVudCB2ZXJib3NpdHkg
bGV2ZWwsIGFuZCBpZiB0aGUgY3VycmVudAotICAgICAgICBmaWx0ZXIgc2F5cyB0aGF0IHRoZSBj
YXRlZ29yeSBzaG91bGQgYmUgY2hlY2tlZCBmb3IgdGhlCi0gICAgICAgIGdpdmVuIHBhdGguCi0K
LSAgICAgICAgQXJnczoKLSAgICAgICAgICBjYXRlZ29yeTogQSBzdHJpbmcgdGhhdCBpcyBhIHN0
eWxlIGNhdGVnb3J5LgotICAgICAgICAgIGNvbmZpZGVuY2VfaW5fZXJyb3I6IEFuIGludGVnZXIg
YmV0d2VlbiAxIGFuZCA1LCBpbmNsdXNpdmUsIHRoYXQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXByZXNlbnRzIHRoZSBhcHBsaWNhdGlvbidzIGNvbmZpZGVuY2UgaW4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IuIEEgaGlnaGVyIG51bWJlciBzaWdu
aWZpZXMgZ3JlYXRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2Uu
Ci0gICAgICAgICAgcGF0aDogVGhlIHBhdGggb2YgdGhlIGZpbGUgYmVpbmcgY2hlY2tlZAotCi0g
ICAgICAgICIiIgotICAgICAgICBpZiBjb25maWRlbmNlX2luX2Vycm9yIDwgc2VsZi52ZXJib3Np
dHk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gc2VsZi5maWx0
ZXJfY29uZmlndXJhdGlvbi5zaG91bGRfY2hlY2soY2F0ZWdvcnksIHBhdGgpCi0KIAogIyBUaGlz
IGNsYXNzIHNob3VsZCBub3QgaGF2ZSBrbm93bGVkZ2Ugb2YgdGhlIGZsYWcga2V5IG5hbWVzLgog
Y2xhc3MgRGVmYXVsdENvbW1hbmRPcHRpb25WYWx1ZXMob2JqZWN0KToKQEAgLTM1OSwxNSArMzM4
LDEyIEBAIGNsYXNzIERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVzKG9iamVjdCk6CiAgICAgIiIi
U3RvcmVzIHRoZSBkZWZhdWx0IGNoZWNrLXdlYmtpdC1zdHlsZSBjb21tYW5kLWxpbmUgb3B0aW9u
cy4KIAogICAgIEF0dHJpYnV0ZXM6Ci0gICAgICBiYXNlX2ZpbHRlcl9ydWxlczogQSBsaXN0IG9m
IGJvb2xlYW4gZmlsdGVyIHJ1bGUgc3RyaW5ncyB0aGF0IGJlZ2luCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgdGhlIGxpc3Qgb2YgZmlsdGVyIHJ1bGVzIHVzZWQgdG8gY2hlY2sgc3R5bGUuCiAg
ICAgICBvdXRwdXRfZm9ybWF0OiBBIHN0cmluZyB0aGF0IGlzIHRoZSBkZWZhdWx0IG91dHB1dCBm
b3JtYXQuCiAgICAgICB2ZXJib3NpdHk6IEFuIGludGVnZXIgdGhhdCBpcyB0aGUgZGVmYXVsdCB2
ZXJib3NpdHkgbGV2ZWwuCiAKICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiYXNl
X2ZpbHRlcl9ydWxlcywgb3V0cHV0X2Zvcm1hdCwgdmVyYm9zaXR5KToKLSAgICAgICAgc2VsZi5i
YXNlX2ZpbHRlcl9ydWxlcyA9IGJhc2VfZmlsdGVyX3J1bGVzCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIG91dHB1dF9mb3JtYXQsIHZlcmJvc2l0eSk6CiAgICAgICAgIHNlbGYub3V0cHV0X2Zvcm1h
dCA9IG91dHB1dF9mb3JtYXQKICAgICAgICAgc2VsZi52ZXJib3NpdHkgPSB2ZXJib3NpdHkKIApA
QCAtMzgwLDEyICszNTYsMTIgQEAgY2xhc3MgQXJndW1lbnRQcmludGVyKG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiAnLS0lKGtleSlzPSUodmFsKXMnICUgeydrZXknOiBmbGFnX2tleSwgJ3ZhbCc6
IGZsYWdfdmFsdWUgfQogCiAgICAgZGVmIHRvX2ZsYWdfc3RyaW5nKHNlbGYsIG9wdGlvbnMpOgot
ICAgICAgICAiIiJSZXR1cm4gYSBmbGFnIHN0cmluZyB5aWVsZGluZyB0aGUgZ2l2ZW4gUHJvY2Vz
c29yT3B0aW9ucyBpbnN0YW5jZS4KKyAgICAgICAgIiIiUmV0dXJuIGEgZmxhZyBzdHJpbmcgb2Yg
dGhlIGdpdmVuIENvbW1hbmRPcHRpb25WYWx1ZXMgaW5zdGFuY2UuCiAKICAgICAgICAgVGhpcyBt
ZXRob2Qgb3JkZXJzIHRoZSBmbGFnIHZhbHVlcyBhbHBoYWJldGljYWxseSBieSB0aGUgZmxhZyBr
ZXkuCiAKICAgICAgICAgQXJnczoKLSAgICAgICAgICBvcHRpb25zOiBBIFByb2Nlc3Nvck9wdGlv
bnMgaW5zdGFuY2UuCisgICAgICAgICAgb3B0aW9uczogQSBDb21tYW5kT3B0aW9uVmFsdWVzIGlu
c3RhbmNlLgogCiAgICAgICAgICIiIgogICAgICAgICBmbGFncyA9IG9wdGlvbnMuZXh0cmFfZmxh
Z192YWx1ZXMuY29weSgpCkBAIC0zOTMsOSArMzY5LDkgQEAgY2xhc3MgQXJndW1lbnRQcmludGVy
KG9iamVjdCk6CiAgICAgICAgIGZsYWdzWydvdXRwdXQnXSA9IG9wdGlvbnMub3V0cHV0X2Zvcm1h
dAogICAgICAgICBmbGFnc1sndmVyYm9zZSddID0gb3B0aW9ucy52ZXJib3NpdHkKICAgICAgICAg
IyBPbmx5IGluY2x1ZGUgdGhlIGZpbHRlciBmbGFnIGlmIHVzZXItcHJvdmlkZWQgcnVsZXMgYXJl
IHByZXNlbnQuCi0gICAgICAgIHVzZXJfcnVsZXMgPSBvcHRpb25zLmZpbHRlcl9jb25maWd1cmF0
aW9uLnVzZXJfcnVsZXMKLSAgICAgICAgaWYgdXNlcl9ydWxlczoKLSAgICAgICAgICAgIGZsYWdz
WydmaWx0ZXInXSA9ICIsIi5qb2luKHVzZXJfcnVsZXMpCisgICAgICAgIGZpbHRlcl9ydWxlcyA9
IG9wdGlvbnMuZmlsdGVyX3J1bGVzCisgICAgICAgIGlmIGZpbHRlcl9ydWxlczoKKyAgICAgICAg
ICAgIGZsYWdzWydmaWx0ZXInXSA9ICIsIi5qb2luKGZpbHRlcl9ydWxlcykKICAgICAgICAgaWYg
b3B0aW9ucy5naXRfY29tbWl0OgogICAgICAgICAgICAgZmxhZ3NbJ2dpdC1jb21taXQnXSA9IG9w
dGlvbnMuZ2l0X2NvbW1pdAogCkBAIC00MTAsNiArMzg2LDggQEAgY2xhc3MgQXJndW1lbnRQcmlu
dGVyKG9iamVjdCk6CiAjIEZJWE1FOiBSZXBsYWNlIHRoZSB1c2Ugb2YgZ2V0b3B0LmdldG9wdCgp
IHdpdGggb3B0cGFyc2UuT3B0aW9uUGFyc2VyLgogY2xhc3MgQXJndW1lbnRQYXJzZXIob2JqZWN0
KToKIAorICAgICMgRklYTUU6IE1vdmUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGF0dHJpYnV0
ZXMgdG8gdGhlIF9faW5pdF9fCisgICAgIyAgICAgICAgZG9jc3RyaW5nIGFmdGVyIG1ha2luZyB0
aGUgYXR0cmlidXRlcyBpbnRlcm5hbC4KICAgICAiIiJTdXBwb3J0cyB0aGUgcGFyc2luZyBvZiBj
aGVjay13ZWJraXQtc3R5bGUgY29tbWFuZCBhcmd1bWVudHMuCiAKICAgICBBdHRyaWJ1dGVzOgpA
QCAtNDI3LDkgKzQwNSwzMCBAQCBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3QpOgogICAgICIi
IgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIGJhc2VfZmlsdGVy
X3J1bGVzPU5vbmUsCiAgICAgICAgICAgICAgICAgIGNyZWF0ZV91c2FnZT1Ob25lLAogICAgICAg
ICAgICAgICAgICBkZWZhdWx0X29wdGlvbnM9Tm9uZSwKICAgICAgICAgICAgICAgICAgc3RkZXJy
X3dyaXRlPU5vbmUpOgorICAgICAgICAiIiJDcmVhdGUgYW4gQXJndW1lbnRQYXJzZXIgaW5zdGFu
Y2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBiYXNlX2ZpbHRlcl9ydWxlczogVGhlIGxp
c3Qgb2YgZmlsdGVyIHJ1bGVzIGF0IHRoZSBiZWdpbm5pbmcgb2YKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhlIGxpc3Qgb2YgcnVsZXMgdXNlZCB0byBjaGVjayBzdHlsZS4gIFRoaXMK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBoYXMgdGhlIGxlYXN0IHByZWNlZGVu
Y2Ugd2hlbiBjaGVja2luZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSBhbmQg
cHJlY2VkZXMgYW55IHVzZXItcHJvdmlkZWQgcnVsZXMuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRoZSBjbGFzcyB1c2VzIHRoaXMgcGFyYW1ldGVyIG9ubHkgZm9yIGRpc3BsYXkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZXMgdG8gdGhlIHVzZXIuICBEZWZhdWx0
cyB0byB0aGUgYmFzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgcnVsZXMg
Zm9yIGNoZWNrLXdlYmtpdC1zdHlsZS4KKyAgICAgICAgICBjcmVhdGVfdXNhZ2U6IFNlZSB0aGUg
ZG9jdW1lbnRhdGlvbiBvZiB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIGluIHRoZSBjbGFzcyBkb2NzdHJpbmcuCisgICAgICAgICAgZGVmYXVsdF9v
cHRpb25zOiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbiB0aGUgY2xhc3MgZG9jc3RyaW5nLgor
ICAgICAgICAgIHN0ZGVycl93cml0ZTogU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBjb3Jy
ZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW4gdGhlIGNsYXNz
IGRvY3N0cmluZy4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgYmFzZV9maWx0ZXJfcnVsZXMg
aXMgTm9uZToKKyAgICAgICAgICAgIGJhc2VfZmlsdGVyX3J1bGVzID0gX0JBU0VfRklMVEVSX1JV
TEVTCiAgICAgICAgIGlmIGNyZWF0ZV91c2FnZSBpcyBOb25lOgogICAgICAgICAgICAgY3JlYXRl
X3VzYWdlID0gX2NyZWF0ZV91c2FnZQogICAgICAgICBpZiBkZWZhdWx0X29wdGlvbnMgaXMgTm9u
ZToKQEAgLTQzNyw2ICs0MzYsNyBAQCBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3QpOgogICAg
ICAgICBpZiBzdGRlcnJfd3JpdGUgaXMgTm9uZToKICAgICAgICAgICAgIHN0ZGVycl93cml0ZSA9
IHN5cy5zdGRlcnIud3JpdGUKIAorICAgICAgICBzZWxmLl9iYXNlX2ZpbHRlcl9ydWxlcyA9IGJh
c2VfZmlsdGVyX3J1bGVzCiAgICAgICAgICMgRklYTUU6IFJlbmFtZSB0aGVzZSB0byByZWZsZWN0
IHRoYXQgdGhleSBhcmUgaW50ZXJuYWwuCiAgICAgICAgIHNlbGYuY3JlYXRlX3VzYWdlID0gY3Jl
YXRlX3VzYWdlCiAgICAgICAgIHNlbGYuZGVmYXVsdF9vcHRpb25zID0gZGVmYXVsdF9vcHRpb25z
CkBAIC00NjQsNyArNDY0LDcgQEAgY2xhc3MgQXJndW1lbnRQYXJzZXIob2JqZWN0KToKICAgICAg
ICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlKCcgICAgJyArIGNhdGVnb3J5ICsgJ1xuJykKIAogICAg
ICAgICBzZWxmLnN0ZGVycl93cml0ZSgnXG5EZWZhdWx0IGZpbHRlciBydWxlcyoqOlxuJykKLSAg
ICAgICAgZm9yIGZpbHRlcl9ydWxlIGluIHNvcnRlZChzZWxmLmRlZmF1bHRfb3B0aW9ucy5iYXNl
X2ZpbHRlcl9ydWxlcyk6CisgICAgICAgIGZvciBmaWx0ZXJfcnVsZSBpbiBzb3J0ZWQoc2VsZi5f
YmFzZV9maWx0ZXJfcnVsZXMpOgogICAgICAgICAgICAgc2VsZi5zdGRlcnJfd3JpdGUoJyAgICAn
ICsgZmlsdGVyX3J1bGUgKyAnXG4nKQogICAgICAgICBzZWxmLnN0ZGVycl93cml0ZSgnXG4qKlRo
ZSBjb21tYW5kIGFsd2F5cyBldmFsdWF0ZXMgdGhlIGFib3ZlIHJ1bGVzLCAnCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdhbmQgYmVmb3JlIGFueSAtLWZpbHRlciBmbGFnLlxuXG4nKQpAQCAt
NDkzLDcgKzQ5Myw3IEBAIGNsYXNzIEFyZ3VtZW50UGFyc2VyKG9iamVjdCk6CiAgICAgICAgIEFy
Z3M6CiAgICAgICAgICAgYXJnczogQSBsaXN0IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgYXMg
cmV0dXJuZWQgYnkgc3lzLmFyZ3ZbMTpdLgogICAgICAgICAgIGV4dHJhX2ZsYWdzOiBBIGxpc3Qg
b2YgZmxhZ3Mgd2hvc2UgdmFsdWVzIHdlIHdhbnQgdG8gZXh0cmFjdCwgYnV0Ci0gICAgICAgICAg
ICAgICAgICAgICAgIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBQcm9jZXNzb3JPcHRpb25zIGNs
YXNzLgorICAgICAgICAgICAgICAgICAgICAgICBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgQ29t
bWFuZE9wdGlvblZhbHVlcyBjbGFzcy4KICAgICAgICAgICAgICAgICAgICAgICAgQW4gZXhhbXBs
ZSBmbGFnICJuZXdfZmxhZz0iLiBUaGlzIGRlZmF1bHRzIHRvIHRoZQogICAgICAgICAgICAgICAg
ICAgICAgICBlbXB0eSBsaXN0LgogCkBAIC01MDEsNyArNTAxLDcgQEAgY2xhc3MgQXJndW1lbnRQ
YXJzZXIob2JqZWN0KToKICAgICAgICAgICBBIHR1cGxlIG9mIChmaWxlbmFtZXMsIG9wdGlvbnMp
CiAKICAgICAgICAgICBmaWxlbmFtZXM6IFRoZSBsaXN0IG9mIGZpbGVuYW1lcyB0byBjaGVjay4K
LSAgICAgICAgICBvcHRpb25zOiBBIFByb2Nlc3Nvck9wdGlvbnMgaW5zdGFuY2UuCisgICAgICAg
ICAgb3B0aW9uczogQSBDb21tYW5kT3B0aW9uVmFsdWVzIGluc3RhbmNlLgogCiAgICAgICAgICIi
IgogICAgICAgICBpZiBleHRyYV9mbGFncyBpcyBOb25lOgpAQCAtNTA5LDkgKzUwOSw4IEBAIGNs
YXNzIEFyZ3VtZW50UGFyc2VyKG9iamVjdCk6CiAKICAgICAgICAgb3V0cHV0X2Zvcm1hdCA9IHNl
bGYuZGVmYXVsdF9vcHRpb25zLm91dHB1dF9mb3JtYXQKICAgICAgICAgdmVyYm9zaXR5ID0gc2Vs
Zi5kZWZhdWx0X29wdGlvbnMudmVyYm9zaXR5Ci0gICAgICAgIGJhc2VfcnVsZXMgPSBzZWxmLmRl
ZmF1bHRfb3B0aW9ucy5iYXNlX2ZpbHRlcl9ydWxlcwogCi0gICAgICAgICMgVGhlIGZsYWdzIGFs
cmVhZHkgc3VwcG9ydGVkIGJ5IHRoZSBQcm9jZXNzb3JPcHRpb25zIGNsYXNzLgorICAgICAgICAj
IFRoZSBmbGFncyBhbHJlYWR5IHN1cHBvcnRlZCBieSB0aGUgQ29tbWFuZE9wdGlvblZhbHVlcyBj
bGFzcy4KICAgICAgICAgZmxhZ3MgPSBbJ2hlbHAnLCAnb3V0cHV0PScsICd2ZXJib3NlPScsICdm
aWx0ZXI9JywgJ2dpdC1jb21taXQ9J10KIAogICAgICAgICBmb3IgZXh0cmFfZmxhZyBpbiBleHRy
YV9mbGFnczoKQEAgLTUzMiw3ICs1MzEsNyBAQCBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3Qp
OgogCiAgICAgICAgIGV4dHJhX2ZsYWdfdmFsdWVzID0ge30KICAgICAgICAgZ2l0X2NvbW1pdCA9
IE5vbmUKLSAgICAgICAgdXNlcl9ydWxlcyA9IFtdCisgICAgICAgIGZpbHRlcl9ydWxlcyA9IFtd
CiAKICAgICAgICAgZm9yIChvcHQsIHZhbCkgaW4gb3B0czoKICAgICAgICAgICAgIGlmIG9wdCA9
PSAnLS1oZWxwJzoKQEAgLTU0Niw4ICs1NDUsNyBAQCBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmpl
Y3QpOgogICAgICAgICAgICAgZWxpZiBvcHQgPT0gJy0tZmlsdGVyJzoKICAgICAgICAgICAgICAg
ICBpZiBub3QgdmFsOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGl0X3dpdGhfY2F0ZWdv
cmllcygpCi0gICAgICAgICAgICAgICAgIyBQcmVwZW5kIHRoZSBkZWZhdWx0cy4KLSAgICAgICAg
ICAgICAgICB1c2VyX3J1bGVzID0gc2VsZi5fcGFyc2VfZmlsdGVyX2ZsYWcodmFsKQorICAgICAg
ICAgICAgICAgIGZpbHRlcl9ydWxlcyA9IHNlbGYuX3BhcnNlX2ZpbHRlcl9mbGFnKHZhbCkKICAg
ICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZXh0cmFfZmxhZ192YWx1ZXNbb3B0XSA9
IHZhbAogCkBAIC01NjIsMjMgKzU2MCwxOCBAQCBjbGFzcyBBcmd1bWVudFBhcnNlcihvYmplY3Qp
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0KQogCiAgICAgICAg
IGFsbF9jYXRlZ29yaWVzID0gX2FsbF9jYXRlZ29yaWVzKCkKLSAgICAgICAgdmFsaWRhdGVfZmls
dGVyX3J1bGVzKHVzZXJfcnVsZXMsIGFsbF9jYXRlZ29yaWVzKQorICAgICAgICB2YWxpZGF0ZV9m
aWx0ZXJfcnVsZXMoZmlsdGVyX3J1bGVzLCBhbGxfY2F0ZWdvcmllcykKIAogICAgICAgICB2ZXJi
b3NpdHkgPSBpbnQodmVyYm9zaXR5KQogICAgICAgICBpZiAodmVyYm9zaXR5IDwgMSkgb3IgKHZl
cmJvc2l0eSA+IDUpOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCAtLXZl
cmJvc2UgdmFsdWUgJXM6IHZhbHVlIG11c3QgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnYmUgYmV0d2VlbiAxLTUuJyAlIHZlcmJvc2l0eSkKIAotICAgICAgICBmaWx0ZXJfY29uZmln
dXJhdGlvbiA9IEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzZV9ydWxlcz1iYXNlX3J1bGVzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX3NwZWNpZmljPV9QQVRIX1JVTEVT
X1NQRUNJRklFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9ydWxl
cz11c2VyX3J1bGVzKQotCi0gICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKGV4dHJh
X2ZsYWdfdmFsdWVzPWV4dHJhX2ZsYWdfdmFsdWVzLAotICAgICAgICAgICAgICAgICAgICAgIGZp
bHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgIGdpdF9jb21taXQ9Z2l0X2NvbW1pdCwKLSAgICAgICAgICAgICAgICAgICAgICBtYXhf
cmVwb3J0c19wZXJfY2F0ZWdvcnk9X01BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSwKLSAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0PW91dHB1dF9mb3JtYXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgdmVyYm9zaXR5PXZlcmJvc2l0eSkKKyAgICAgICAgb3B0aW9ucyA9IENvbW1hbmRP
cHRpb25WYWx1ZXMoZXh0cmFfZmxhZ192YWx1ZXM9ZXh0cmFfZmxhZ192YWx1ZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJfcnVsZXM9ZmlsdGVyX3J1bGVzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l0X2NvbW1pdD1naXRfY29tbWl0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD1vdXRwdXRfZm9ybWF0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zaXR5PXZlcmJvc2l0eSkK
IAogICAgICAgICByZXR1cm4gKGZpbGVuYW1lcywgb3B0aW9ucykKIApAQCAtNjgxLDE2ICs2NzQs
OTUgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlcihvYmplY3QpOgogICAgICAgICByZXR1cm4g
cHJvY2Vzc29yCiAKIAotIyBGSVhNRTogV2hlbiBjcmVhdGluZyB0aGUgbmV3IENoZWNrV2ViS2l0
U3R5bGVPcHRpb25zIGNsYXNzIGFzCi0jICAgICAgICBkZXNjcmliZWQgaW4gYSBGSVhNRSBhYm92
ZSwgYWRkIGEgbmV3IGNsYXNzIGhlcmUgY2FsbGVkCi0jICAgICAgICBzb21ldGhpbmcgbGlrZSBD
aGVja2VyQ29uZmlndXJhdGlvbi4gIFRoZSBjbGFzcyBzaG91bGQgY29udGFpbgotIyAgICAgICAg
YXR0cmlidXRlcyBmb3Igb3B0aW9ucyBuZWVkZWQgdG8gcHJvY2VzcyBhIGZpbGUuICBUaGlzIGlu
Y2x1ZGVzCi0jICAgICAgICBhIHN1YnNldCBvZiB0aGUgQ2hlY2tXZWJLaXRTdHlsZU9wdGlvbnMg
YXR0cmlidXRlcywgYQotIyAgICAgICAgRmlsdGVyQ29uZmlndXJhdGlvbiBhdHRyaWJ1dGUsIGFu
IHN0ZGVycl93cml0ZSBhdHRyaWJ1dGUsIGEKLSMgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRl
Z29yeSBhdHRyaWJ1dGUsIGV0Yy4gIEl0IGNhbiBhbHNvIGluY2x1ZGUKLSMgICAgICAgIHRoZSBp
c19yZXBvcnRhYmxlKCkgbWV0aG9kLiAgVGhlIFN0eWxlQ2hlY2tlciBzaG91bGQgYWNjZXB0Ci0j
ICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHJhdGhlciB0aGFuIGEgUHJvY2Vzc29y
T3B0aW9ucwotIyAgICAgICAgaW5zdGFuY2UuCitjbGFzcyBTdHlsZUNoZWNrZXJDb25maWd1cmF0
aW9uKG9iamVjdCk6CisKKyAgICAiIiJTdG9yZXMgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRo
ZSBTdHlsZUNoZWNrZXIgY2xhc3MuCisKKyAgICBBdHRyaWJ1dGVzOgorICAgICAgbWF4X3JlcG9y
dHNfcGVyX2NhdGVnb3J5OiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZXJyb3JzIHRvIHJlcG9ydAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXIgY2F0ZWdvcnksIHBlciBmaWxlLgor
CisgICAgICBzdGRlcnJfd3JpdGU6IEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmluZyBhcyBh
IHBhcmFtZXRlciBhbmQKKyAgICAgICAgICAgICAgICAgICAgc2VydmVzIGFzIHN0ZGVyci53cml0
ZS4KKworICAgICAgdmVyYm9zaXR5OiBBbiBpbnRlZ2VyIGJldHdlZW4gMS01IGluY2x1c2l2ZSB0
aGF0IHJlc3RyaWN0cyBvdXRwdXQKKyAgICAgICAgICAgICAgICAgdG8gZXJyb3JzIHdpdGggYSBj
b25maWRlbmNlIHNjb3JlIGF0IG9yIGFib3ZlIHRoaXMgdmFsdWUuCisKKyAgICAiIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlv
biwKKyAgICAgICAgICAgICAgICAgbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5LAorICAgICAgICAg
ICAgICAgICBvdXRwdXRfZm9ybWF0LAorICAgICAgICAgICAgICAgICBzdGRlcnJfd3JpdGUsCisg
ICAgICAgICAgICAgICAgIHZlcmJvc2l0eSk6CisgICAgICAgICIiIkNyZWF0ZSBhIFN0eWxlQ2hl
Y2tlckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBm
aWx0ZXJfY29uZmlndXJhdGlvbjogQSBGaWx0ZXJDb25maWd1cmF0aW9uIGluc3RhbmNlLiAgVGhl
IGRlZmF1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdGhlICJlbXB0eSIg
ZmlsdGVyIGNvbmZpZ3VyYXRpb24sIHdoaWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lYW5zIHRoYXQgYWxsIGVycm9ycyBzaG91bGQgYmUgY2hlY2tlZC4KKworICAgICAgICAg
IG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeTogVGhlIG1heGltdW0gbnVtYmVyIG9mIGVycm9ycyB0
byByZXBvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlciBjYXRlZ29y
eSwgcGVyIGZpbGUuCisKKyAgICAgICAgICBvdXRwdXRfZm9ybWF0OiBBIHN0cmluZyB0aGF0IGlz
IHRoZSBvdXRwdXQgZm9ybWF0LiAgVGhlIHN1cHBvcnRlZAorICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCBmb3JtYXRzIGFyZSAiZW1hY3MiIHdoaWNoIGVtYWNzIGNhbiBwYXJzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgIGFuZCAidnM3IiB3aGljaCBNaWNyb3NvZnQgVmlzdWFsIFN0
dWRpbyA3IGNhbiBwYXJzZS4KKworICAgICAgICAgIHN0ZGVycl93cml0ZTogQSBmdW5jdGlvbiB0
aGF0IHRha2VzIGEgc3RyaW5nIGFzIGEgcGFyYW1ldGVyIGFuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgc2VydmVzIGFzIHN0ZGVyci53cml0ZS4KKworICAgICAgICAgIHZlcmJvc2l0eTogQW4g
aW50ZWdlciBiZXR3ZWVuIDEtNSBpbmNsdXNpdmUgdGhhdCByZXN0cmljdHMgb3V0cHV0CisgICAg
ICAgICAgICAgICAgICAgICB0byBlcnJvcnMgd2l0aCBhIGNvbmZpZGVuY2Ugc2NvcmUgYXQgb3Ig
YWJvdmUgdGhpcyB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDEs
IHdoaWNoIHJlcG9ydHMgYWxsIGVycm9ycy4KKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5f
ZmlsdGVyX2NvbmZpZ3VyYXRpb24gPSBmaWx0ZXJfY29uZmlndXJhdGlvbgorICAgICAgICBzZWxm
Ll9vdXRwdXRfZm9ybWF0ID0gb3V0cHV0X2Zvcm1hdAorCisgICAgICAgIHNlbGYubWF4X3JlcG9y
dHNfcGVyX2NhdGVnb3J5ID0gbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5CisgICAgICAgIHNlbGYu
c3RkZXJyX3dyaXRlID0gc3RkZXJyX3dyaXRlCisgICAgICAgIHNlbGYudmVyYm9zaXR5ID0gdmVy
Ym9zaXR5CisKKyAgICBkZWYgaXNfcmVwb3J0YWJsZShzZWxmLCBjYXRlZ29yeSwgY29uZmlkZW5j
ZV9pbl9lcnJvciwgZmlsZV9wYXRoKToKKyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgYW4gZXJy
b3IgaXMgcmVwb3J0YWJsZS4KKworICAgICAgICBBbiBlcnJvciBpcyByZXBvcnRhYmxlIGlmIGJv
dGggdGhlIGNvbmZpZGVuY2UgaW4gdGhlIGVycm9yIGlzCisgICAgICAgIGF0IGxlYXN0IHRoZSBj
dXJyZW50IHZlcmJvc2l0eSBsZXZlbCBhbmQgdGhlIGN1cnJlbnQgZmlsdGVyCisgICAgICAgIHNh
eXMgdGhlIGNhdGVnb3J5IHNob3VsZCBiZSBjaGVja2VkIGZvciB0aGUgZ2l2ZW4gcGF0aC4KKwor
ICAgICAgICBBcmdzOgorICAgICAgICAgIGNhdGVnb3J5OiBBIHN0cmluZyB0aGF0IGlzIGEgc3R5
bGUgY2F0ZWdvcnkuCisgICAgICAgICAgY29uZmlkZW5jZV9pbl9lcnJvcjogQW4gaW50ZWdlciBi
ZXR3ZWVuIDEgYW5kIDUsIGluY2x1c2l2ZSwgdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcHJlc2VudHMgdGhlIGFwcGxpY2F0aW9uJ3MgY29uZmlkZW5jZSBpbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBlcnJvci4gIEEgaGlnaGVyIG51bWJlciBzaWdu
aWZpZXMgZ3JlYXRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2Uu
CisgICAgICAgICAgZmlsZV9wYXRoOiBUaGUgcGF0aCBvZiB0aGUgZmlsZSBiZWluZyBjaGVja2Vk
CisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGNvbmZpZGVuY2VfaW5fZXJyb3IgPCBzZWxmLnZl
cmJvc2l0eToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBzZWxm
Ll9maWx0ZXJfY29uZmlndXJhdGlvbi5zaG91bGRfY2hlY2soY2F0ZWdvcnksIGZpbGVfcGF0aCkK
KworICAgIGRlZiB3cml0ZV9zdHlsZV9lcnJvcihzZWxmLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lX251bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSk6Cisg
ICAgICAgICIiIldyaXRlIGEgc3R5bGUgZXJyb3IgdG8gdGhlIGNvbmZpZ3VyZWQgc3RkZXJyLiIi
IgorICAgICAgICBpZiBzZWxmLl9vdXRwdXRfZm9ybWF0ID09ICd2czcnOgorICAgICAgICAgICAg
Zm9ybWF0X3N0cmluZyA9ICIlcyglcyk6ICAlcyAgWyVzXSBbJWRdXG4iCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBmb3JtYXRfc3RyaW5nID0gIiVzOiVzOiAgJXMgIFslc10gWyVkXVxuIgor
CisgICAgICAgIHNlbGYuc3RkZXJyX3dyaXRlKGZvcm1hdF9zdHJpbmcgJSAoZmlsZV9wYXRoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZSkpCiAKIAogY2xh
c3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CkBAIC03MDEsMjggKzc3MywyMiBAQCBjbGFzcyBTdHls
ZUNoZWNrZXIob2JqZWN0KToKICAgICAgICAgIGVycm9yX2NvdW50OiBBbiBpbnRlZ2VyIHRoYXQg
aXMgdGhlIHRvdGFsIG51bWJlciBvZiByZXBvcnRlZAogICAgICAgICAgICAgICAgICAgICAgIGVy
cm9ycyBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoaXMgU3R5bGVDaGVja2VyCiAgICAgICAgICAgICAg
ICAgICAgICAgaW5zdGFuY2UuCi0gICAgICAgICBvcHRpb25zOiBBIFByb2Nlc3Nvck9wdGlvbnMg
aW5zdGFuY2UgdGhhdCBjb250cm9scyB0aGUgYmVoYXZpb3IKLSAgICAgICAgICAgICAgICAgIG9m
IHN0eWxlIGNoZWNraW5nLgogCiAgICAgIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0
aW9ucywgc3RkZXJyX3dyaXRlPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWd1
cmF0aW9uKToKICAgICAgICAgIiIiQ3JlYXRlIGEgU3R5bGVDaGVja2VyIGluc3RhbmNlLgogCiAg
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgb3B0aW9uczogU2VlIG9wdGlvbnMgYXR0cmlidXRlLgot
ICAgICAgICAgIHN0ZGVycl93cml0ZTogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgc3RyaW5nIGFz
IGEgcGFyYW1ldGVyCi0gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhhdCBpcyBjYWxsZWQg
d2hlbiBhIHN0eWxlIGVycm9yIG9jY3Vycy4KLSAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1
bHRzIHRvIHN5cy5zdGRlcnIud3JpdGUuIFRoaXMgc2hvdWxkIGJlCi0gICAgICAgICAgICAgICAg
ICAgICAgICB1c2VkIG9ubHkgZm9yIHVuaXQgdGVzdHMuCisgICAgICAgICAgY29uZmlndXJhdGlv
bjogQSBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uIGluc3RhbmNlIHRoYXQgY29udHJvbHMKKyAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGUgYmVoYXZpb3Igb2Ygc3R5bGUgY2hlY2tpbmcuCiAK
ICAgICAgICAgIiIiCi0gICAgICAgIGlmIHN0ZGVycl93cml0ZSBpcyBOb25lOgotICAgICAgICAg
ICAgc3RkZXJyX3dyaXRlID0gc3lzLnN0ZGVyci53cml0ZQotCi0gICAgICAgIHNlbGYuX3N0ZGVy
cl93cml0ZSA9IHN0ZGVycl93cml0ZQorICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uID0gY29u
ZmlndXJhdGlvbgogICAgICAgICBzZWxmLmVycm9yX2NvdW50ID0gMAotICAgICAgICBzZWxmLm9w
dGlvbnMgPSBvcHRpb25zCisKKyAgICBkZWYgX3N0ZGVycl93cml0ZShzZWxmLCBtZXNzYWdlKToK
KyAgICAgICAgc2VsZi5fY29uZmlndXJhdGlvbi5zdGRlcnJfd3JpdGUobWVzc2FnZSkKIAogICAg
IGRlZiBfaW5jcmVtZW50X2Vycm9yX2NvdW50KHNlbGYpOgogICAgICAgICAiIiJJbmNyZW1lbnQg
dGhlIHRvdGFsIGNvdW50IG9mIHJlcG9ydGVkIGVycm9ycy4iIiIKQEAgLTc4NywxMSArODUzLDEx
IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogCiAgICAgICAgICIiIgogICAgICAgICBp
ZiBoYW5kbGVfc3R5bGVfZXJyb3IgaXMgTm9uZToKLSAgICAgICAgICAgIGhhbmRsZV9zdHlsZV9l
cnJvciA9IERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcihmaWxlX3BhdGg9ZmlsZV9wYXRoLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9c2VsZi5vcHRpb25zLAor
ICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yID0gRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVy
KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249c2Vs
Zi5fY29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aWxlX3BhdGg9ZmlsZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluY3JlbWVudF9lcnJvcl9jb3VudD0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZGVycl93cml0ZT1zZWxmLl9zdGRlcnJfd3JpdGUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2luY3JlbWVudF9lcnJv
cl9jb3VudCkKICAgICAgICAgaWYgcHJvY2Vzc19maWxlIGlzIE5vbmU6CiAgICAgICAgICAgICBw
cm9jZXNzX2ZpbGUgPSBzZWxmLl9wcm9jZXNzX2ZpbGUKIApAQCAtODA0LDcgKzg3MCw3IEBAIGNs
YXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdHlsZSBndWlkZS5cbiIgJSBmaWxlX3BhdGgpCiAgICAgICAgICAgICByZXR1cm4KIAotICAg
ICAgICB2ZXJib3NpdHkgPSBzZWxmLm9wdGlvbnMudmVyYm9zaXR5CisgICAgICAgIHZlcmJvc2l0
eSA9IHNlbGYuX2NvbmZpZ3VyYXRpb24udmVyYm9zaXR5CiAgICAgICAgIHByb2Nlc3NvciA9IGRp
c3BhdGNoZXIuZGlzcGF0Y2hfcHJvY2Vzc29yKGZpbGVfcGF0aCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHkp
CkBAIC04MjQsOSArODkwLDggQEAgY2xhc3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAg
IGZvciBmaWxlX3BhdGgsIGRpZmYgaW4gcGF0Y2hfZmlsZXMuaXRlcml0ZW1zKCk6CiAgICAgICAg
ICAgICBzdHlsZV9lcnJvcl9oYW5kbGVyID0gUGF0Y2hTdHlsZUVycm9ySGFuZGxlcihkaWZmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub3B0aW9ucywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdGRlcnJfd3JpdGUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvbmZpZ3VyYXRp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2luY3JlbWVu
dF9lcnJvcl9jb3VudCkKIAogICAgICAgICAgICAgc2VsZi5jaGVja19maWxlKGZpbGVfcGF0aCwg
c3R5bGVfZXJyb3JfaGFuZGxlcikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IDcyOGMxMDYuLjZiM2E4MWQg
MTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJfdW5pdHRlc3QucHkKQEAgLTQxLDEwICs0MSwxMSBAQCBmcm9tIGNoZWNrZXIgaW1wb3J0IF9C
QVNFX0ZJTFRFUl9SVUxFUwogZnJvbSBjaGVja2VyIGltcG9ydCBfTUFYX1JFUE9SVFNfUEVSX0NB
VEVHT1JZCiBmcm9tIGNoZWNrZXIgaW1wb3J0IF9QQVRIX1JVTEVTX1NQRUNJRklFUiBhcyBQQVRI
X1JVTEVTX1NQRUNJRklFUgogZnJvbSBjaGVja2VyIGltcG9ydCBfYWxsX2NhdGVnb3JpZXMKK2Zy
b20gY2hlY2tlciBpbXBvcnQgQ29tbWFuZE9wdGlvblZhbHVlcyBhcyBQcm9jZXNzb3JPcHRpb25z
CiBmcm9tIGNoZWNrZXIgaW1wb3J0IERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVzCiBmcm9tIGNo
ZWNrZXIgaW1wb3J0IFByb2Nlc3NvckRpc3BhdGNoZXIKLWZyb20gY2hlY2tlciBpbXBvcnQgUHJv
Y2Vzc29yT3B0aW9ucwogZnJvbSBjaGVja2VyIGltcG9ydCBTdHlsZUNoZWNrZXIKK2Zyb20gY2hl
Y2tlciBpbXBvcnQgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbgogZnJvbSBmaWx0ZXIgaW1wb3J0
IHZhbGlkYXRlX2ZpbHRlcl9ydWxlcwogZnJvbSBmaWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3Vy
YXRpb24KIGZyb20gcHJvY2Vzc29ycy5jcHAgaW1wb3J0IENwcFByb2Nlc3NvcgpAQCAtNjAsOSAr
NjEsOCBAQCBjbGFzcyBQcm9jZXNzb3JPcHRpb25zVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgICMgQ2hlY2sgZGVmYXVsdCBwYXJhbWV0ZXJzLgogICAgICAgICBvcHRpb25zID0gUHJv
Y2Vzc29yT3B0aW9ucygpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZXh0cmFf
ZmxhZ192YWx1ZXMsIHt9KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmZpbHRl
cl9jb25maWd1cmF0aW9uLCBGaWx0ZXJDb25maWd1cmF0aW9uKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKG9wdGlvbnMuZmlsdGVyX3J1bGVzLCBbXSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMob3B0aW9ucy5naXRfY29tbWl0LCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhvcHRpb25zLm1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeSwge30pCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgImVtYWNzIikKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMob3B0aW9ucy52ZXJib3NpdHksIDEpCiAKQEAgLTc2LDE3ICs3NiwxNCBAQCBj
bGFzcyBQcm9jZXNzb3JPcHRpb25zVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIFBy
b2Nlc3Nvck9wdGlvbnModmVyYm9zaXR5PTUpICMgd29ya3MKIAogICAgICAgICAjIENoZWNrIGF0
dHJpYnV0ZXMuCi0gICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uID0gRmlsdGVyQ29uZmlndXJh
dGlvbihiYXNlX3J1bGVzPVsiKyJdKQogICAgICAgICBvcHRpb25zID0gUHJvY2Vzc29yT3B0aW9u
cyhleHRyYV9mbGFnX3ZhbHVlcz17ImV4dHJhX3ZhbHVlIiA6IDJ9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbj1maWx0ZXJfY29uZmlndXJh
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX3J1bGVzPVsi
KyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXRfY29tbWl0PSJjb21t
aXQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfcmVwb3J0c19wZXJf
Y2F0ZWdvcnk9eyJjYXRlZ29yeSI6IDN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvdXRwdXRfZm9ybWF0PSJ2czciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJib3NpdHk9MykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5leHRy
YV9mbGFnX3ZhbHVlcywgeyJleHRyYV92YWx1ZSIgOiAyfSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMob3B0aW9ucy5maWx0ZXJfY29uZmlndXJhdGlvbiwgZmlsdGVyX2NvbmZpZ3VyYXRpb24p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZmlsdGVyX3J1bGVzLCBbIisiXSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5naXRfY29tbWl0LCAiY29tbWl0IikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5tYXhfcmVwb3J0c19wZXJfY2F0ZWdv
cnksIHsiY2F0ZWdvcnkiOiAzfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5v
dXRwdXRfZm9ybWF0LCAidnM3IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy52
ZXJib3NpdHksIDMpCiAKQEAgLTk2LDIwICs5MywxNSBAQCBjbGFzcyBQcm9jZXNzb3JPcHRpb25z
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQcm9jZXNz
b3JPcHRpb25zKCkgPT0gUHJvY2Vzc29yT3B0aW9ucygpKQogCiAgICAgICAgICMgVmVyaWZ5IHRo
YXQgYSBkaWZmZXJlbmNlIGluIGFueSBhcmd1bWVudCBjYXVzZXMgZXF1YWxpdHkgdG8gZmFpbC4K
LSAgICAgICAgZmlsdGVyX2NvbmZpZ3VyYXRpb24gPSBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2Vf
cnVsZXM9WyIrIl0pCiAgICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKGV4dHJhX2Zs
YWdfdmFsdWVzPXsiZXh0cmFfdmFsdWUiIDogMX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJfcnVsZXM9WyIrIl0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdF9jb21taXQ9ImNvbW1pdCIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeT17
ImNhdGVnb3J5IjogM30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dF9mb3JtYXQ9InZzNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJv
c2l0eT0xKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wdGlvbnMgPT0gUHJvY2Vzc29yT3B0
aW9ucyhleHRyYV9mbGFnX3ZhbHVlcz17ImV4dHJhX3ZhbHVlIiA6IDJ9KSkKLSAgICAgICAgbmV3
X2NvbmZpZyA9IEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzZV9ydWxlcz1bIi0iXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShvcHRpb25zID09Ci0gICAgICAgICAgICAgICAgICAgICAgICAgUHJv
Y2Vzc29yT3B0aW9ucyhmaWx0ZXJfY29uZmlndXJhdGlvbj1uZXdfY29uZmlnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShvcHRpb25zID09IFByb2Nlc3Nvck9wdGlvbnMoZXh0cmFfZmxhZ192
YWx1ZXM9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsiZXh0cmFfdmFsdWUiIDogMn0pKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wdGlv
bnMgPT0gUHJvY2Vzc29yT3B0aW9ucyhmaWx0ZXJfcnVsZXM9WyItIl0pKQogICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKG9wdGlvbnMgPT0gUHJvY2Vzc29yT3B0aW9ucyhnaXRfY29tbWl0PSJjb21t
aXQyIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3B0aW9ucyA9PSBQcm9jZXNzb3JPcHRp
b25zKG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeT0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJjYXRlZ29yeSI6IDJ9KSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShvcHRpb25zID09IFByb2Nlc3Nvck9wdGlvbnMob3V0cHV0X2Zvcm1hdD0i
ZW1hY3MiKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcHRpb25zID09IFByb2Nlc3Nvck9w
dGlvbnModmVyYm9zaXR5PTIpKQogCkBAIC0xMjEsMjAgKzExMyw2IEBAIGNsYXNzIFByb2Nlc3Nv
ck9wdGlvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBjb2RlIGRlZmluZXMg
X19uZV9fLgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFByb2Nlc3Nvck9wdGlvbnMoKSAhPSBQ
cm9jZXNzb3JPcHRpb25zKCkpCiAKLSAgICBkZWYgdGVzdF9pc19yZXBvcnRhYmxlKHNlbGYpOgot
ICAgICAgICAiIiJUZXN0IGlzX3JlcG9ydGFibGUoKS4iIiIKLSAgICAgICAgZmlsdGVyX2NvbmZp
Z3VyYXRpb24gPSBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2VfcnVsZXM9WyIteHl6Il0pCi0gICAg
ICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRl
cl9jb25maWd1cmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJi
b3NpdHk9MykKLQotICAgICAgICAjIFRlc3QgdmVyYm9zaXR5Ci0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShvcHRpb25zLmlzX3JlcG9ydGFibGUoImFiYyIsIDMsICJmb28uaCIpKQotICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKG9wdGlvbnMuaXNfcmVwb3J0YWJsZSgiYWJjIiwgMiwgImZvby5oIikp
Ci0KLSAgICAgICAgIyBUZXN0IGZpbHRlcgotICAgICAgICBzZWxmLmFzc2VydFRydWUob3B0aW9u
cy5pc19yZXBvcnRhYmxlKCJ4eSIsIDMsICJmb28uaCIpKQotICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKG9wdGlvbnMuaXNfcmVwb3J0YWJsZSgieHl6IiwgMywgImZvby5oIikpCi0KIAogY2xhc3Mg
R2xvYmFsVmFyaWFibGVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTIzMSwxNSArMjA5
LDE0IEBAIGNsYXNzIEFyZ3VtZW50UHJpbnRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
IGRlZiBfY3JlYXRlX29wdGlvbnMoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dF9mb3JtYXQ9J2VtYWNzJywKICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2l0eT0zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9ydWxlcz1bXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZpbHRlcl9ydWxlcz1bXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGdpdF9jb21t
aXQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhX2ZsYWdfdmFsdWVzPXt9KToK
LSAgICAgICAgZmlsdGVyX2NvbmZpZ3VyYXRpb24gPSBGaWx0ZXJDb25maWd1cmF0aW9uKHVzZXJf
cnVsZXM9dXNlcl9ydWxlcykKLSAgICAgICAgcmV0dXJuIHN0eWxlLlByb2Nlc3Nvck9wdGlvbnMo
ZXh0cmFfZmxhZ192YWx1ZXM9ZXh0cmFfZmxhZ192YWx1ZXMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXRfY29tbWl0PWdp
dF9jb21taXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9m
b3JtYXQ9b3V0cHV0X2Zvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmVyYm9zaXR5PXZlcmJvc2l0eSkKKyAgICAgICAgcmV0dXJuIFByb2Nlc3Nvck9wdGlvbnMo
ZXh0cmFfZmxhZ192YWx1ZXM9ZXh0cmFfZmxhZ192YWx1ZXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpbHRlcl9ydWxlcz1maWx0ZXJfcnVsZXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdpdF9jb21taXQ9Z2l0X2NvbW1pdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD1vdXRwdXRfZm9ybWF0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9dmVyYm9zaXR5KQogCiAgICAgZGVmIHRlc3Rf
dG9fZmxhZ19zdHJpbmcoc2VsZik6CiAgICAgICAgIG9wdGlvbnMgPSBzZWxmLl9jcmVhdGVfb3B0
aW9ucygndnM3JywgNSwgWycrZm9vJywgJy1iYXInXSwgJ2dpdCcsCkBAIC0yNjYsOCArMjQzLDcg
QEAgY2xhc3MgQXJndW1lbnRQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYg
X2NyZWF0ZV9kZWZhdWx0cyhzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIGEgRGVmYXVsdENvbW1h
bmRPcHRpb25WYWx1ZXMgaW5zdGFuY2UgZm9yIHRlc3RpbmcuIiIiCiAgICAgICAgIGJhc2VfZmls
dGVyX3J1bGVzID0gWyItIiwgIit3aGl0ZXNwYWNlIl0KLSAgICAgICAgcmV0dXJuIERlZmF1bHRD
b21tYW5kT3B0aW9uVmFsdWVzKGJhc2VfZmlsdGVyX3J1bGVzPWJhc2VfZmlsdGVyX3J1bGVzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD0i
dnM3IiwKKyAgICAgICAgcmV0dXJuIERlZmF1bHRDb21tYW5kT3B0aW9uVmFsdWVzKG91dHB1dF9m
b3JtYXQ9InZzNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJib3NpdHk9MykKIAogICAgIGRlZiBfY3JlYXRlX3BhcnNlcihzZWxmKToKQEAgLTMzNiw5ICsz
MTIsNyBAQCBjbGFzcyBBcmd1bWVudFBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgJ3ZzNycpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMudmVyYm9zaXR5LCAzKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmZpbHRlcl9jb25maWd1cmF0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2VfcnVsZXM9WyItIiwgIit3
aGl0ZXNwYWNlIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX3NwZWNpZmlj
PVBBVEhfUlVMRVNfU1BFQ0lGSUVSKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9u
cy5maWx0ZXJfcnVsZXMsIFtdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmdp
dF9jb21taXQsIE5vbmUpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9leHBsaWNpdF9hcmd1bWVudHMo
c2VsZik6CkBAIC0zNTQsMTggKzMyOCwxMyBAQCBjbGFzcyBBcmd1bWVudFBhcnNlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgICMgUGFzcyB1c2VyX3J1bGVzLgogICAgICAgICAo
ZmlsZXMsIG9wdGlvbnMpID0gcGFyc2UoWyctLWZpbHRlcj0rYnVpbGQsLXdoaXRlc3BhY2UnXSkK
LSAgICAgICAgY29uZmlnID0gb3B0aW9ucy5maWx0ZXJfY29uZmlndXJhdGlvbgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmZpbHRlcl9jb25maWd1cmF0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2VfcnVsZXM9WyItIiwgIit3
aGl0ZXNwYWNlIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX3NwZWNpZmlj
PVBBVEhfUlVMRVNfU1BFQ0lGSUVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
cl9ydWxlcz1bIitidWlsZCIsICItd2hpdGVzcGFjZSJdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMob3B0aW9ucy5maWx0ZXJfcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFsi
K2J1aWxkIiwgIi13aGl0ZXNwYWNlIl0pCiAKICAgICAgICAgIyBQYXNzIHNwdXJpb3VzIHdoaXRl
IHNwYWNlIGluIHVzZXIgcnVsZXMuCiAgICAgICAgIChmaWxlcywgb3B0aW9ucykgPSBwYXJzZShb
Jy0tZmlsdGVyPStidWlsZCwgLXdoaXRlc3BhY2UnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMob3B0aW9ucy5maWx0ZXJfY29uZmlndXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgRmlsdGVyQ29uZmlndXJhdGlvbihiYXNlX3J1bGVzPVsiLSIsICIrd2hpdGVzcGFjZSJdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF9zcGVjaWZpYz1QQVRIX1JVTEVTX1NQ
RUNJRklFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfcnVsZXM9WyIrYnVp
bGQiLCAiLXdoaXRlc3BhY2UiXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMu
ZmlsdGVyX3J1bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbIitidWlsZCIsICItd2hp
dGVzcGFjZSJdKQogCiAgICAgICAgICMgUGFzcyBleHRyYSBmbGFnIHZhbHVlcy4KICAgICAgICAg
KGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsnLS1leHRyYSddLCBbJ2V4dHJhJ10pCkBAIC01NDUs
MzAgKzUxNCw5NSBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3Nvcl9ub25lKHBh
dGgpCiAKIAotY2xhc3MgU3R5bGVDaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFz
cyBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAg
ICAiIiJUZXN0IHRoZSBTdHlsZUNoZWNrZXIgY2xhc3MuCisgICAgIiIiVGVzdHMgdGhlIFN0eWxl
Q2hlY2tlckNvbmZpZ3VyYXRpb24gY2xhc3MuIiIiCiAKLSAgICBBdHRyaWJ1dGVzOgotICAgICAg
ZXJyb3JfbWVzc2FnZXM6IEEgc3RyaW5nIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSB3YXJuaW5nIG1l
c3NhZ2VzCi0gICAgICAgICAgICAgICAgICAgICAgd3JpdHRlbiB0byB0aGUgbW9ja19zdGRlcnJf
d3JpdGUgbWV0aG9kIG9mCi0gICAgICAgICAgICAgICAgICAgICAgdGhpcyBjbGFzcy4KKyAgICBk
ZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuX2Vycm9yX21lc3NhZ2VzID0gW10KKyAgICAg
ICAgIiIiVGhlIG1lc3NhZ2VzIHdyaXR0ZW4gdG8gX21vY2tfc3RkZXJyX3dyaXRlKCkgb2YgdGhp
cyBjbGFzcy4iIiIKIAotICAgICIiIgorICAgIGRlZiBfbW9ja19zdGRlcnJfd3JpdGUoc2VsZiwg
bWVzc2FnZSk6CisgICAgICAgIHNlbGYuX2Vycm9yX21lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQor
CisgICAgZGVmIF9zdHlsZV9jaGVja2VyX2NvbmZpZ3VyYXRpb24oc2VsZiwgb3V0cHV0X2Zvcm1h
dD0idnM3Iik6CisgICAgICAgICIiIlJldHVybiBhIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24g
aW5zdGFuY2UgZm9yIHRlc3RpbmcuIiIiCisgICAgICAgIGJhc2VfcnVsZXMgPSBbIi13aGl0ZXNw
YWNlIiwgIit3aGl0ZXNwYWNlL3RhYiJdCisgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uID0g
RmlsdGVyQ29uZmlndXJhdGlvbihiYXNlX3J1bGVzPWJhc2VfcnVsZXMpCisKKyAgICAgICAgcmV0
dXJuIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24oCisgICAgICAgICAgICAgICAgICAgZmlsdGVy
X2NvbmZpZ3VyYXRpb249ZmlsdGVyX2NvbmZpZ3VyYXRpb24sCisgICAgICAgICAgICAgICAgICAg
bWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5PXsid2hpdGVzcGFjZS9uZXdsaW5lIjogMX0sCisgICAg
ICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD1vdXRwdXRfZm9ybWF0LAorICAgICAgICAgICAg
ICAgICAgIHN0ZGVycl93cml0ZT1zZWxmLl9tb2NrX3N0ZGVycl93cml0ZSwKKyAgICAgICAgICAg
ICAgICAgICB2ZXJib3NpdHk9MykKKworICAgIGRlZiB0ZXN0X2luaXQoc2VsZik6CisgICAgICAg
ICIiIlRlc3QgdGhlIF9faW5pdF9fKCkgbWV0aG9kLiIiIgorICAgICAgICBjb25maWd1cmF0aW9u
ID0gc2VsZi5fc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9uKCkKKworICAgICAgICAjIENoZWNr
IHRoYXQgX19pbml0X18gc2V0cyB0aGUgInB1YmxpYyIgZGF0YSBhdHRyaWJ1dGVzIGNvcnJlY3Rs
eS4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29uZmlndXJhdGlvbi5tYXhfcmVwb3J0c19w
ZXJfY2F0ZWdvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsid2hpdGVzcGFjZS9uZXds
aW5lIjogMX0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbmZpZ3VyYXRpb24uc3RkZXJy
X3dyaXRlLCBzZWxmLl9tb2NrX3N0ZGVycl93cml0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoY29uZmlndXJhdGlvbi52ZXJib3NpdHksIDMpCisKKyAgICBkZWYgdGVzdF9pc19yZXBvcnRh
YmxlKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHRoZSBpc19yZXBvcnRhYmxlKCkgbWV0aG9kLiIi
IgorICAgICAgICBjb25maWcgPSBzZWxmLl9zdHlsZV9jaGVja2VyX2NvbmZpZ3VyYXRpb24oKQor
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb25maWcuaXNfcmVwb3J0YWJsZSgid2hpdGVzcGFj
ZS90YWIiLCAzLCAiZm9vLnR4dCIpKQorCisgICAgICAgICMgVGVzdCB0aGUgY29uZmlkZW5jZSBj
aGVjayBjb2RlIHBhdGggYnkgdmFyeWluZyB0aGUgY29uZmlkZW5jZS4KKyAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShjb25maWcuaXNfcmVwb3J0YWJsZSgid2hpdGVzcGFjZS90YWIiLCAyLCAiZm9v
LnR4dCIpKQorCisgICAgICAgICMgVGVzdCB0aGUgY2F0ZWdvcnkgY2hlY2sgY29kZSBwYXRoIGJ5
IHZhcnlpbmcgdGhlIGNhdGVnb3J5LgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNvbmZpZy5p
c19yZXBvcnRhYmxlKCJ3aGl0ZXNwYWNlL2xpbmUiLCA0LCAiZm9vLnR4dCIpKQorCisgICAgZGVm
IF9jYWxsX3dyaXRlX3N0eWxlX2Vycm9yKHNlbGYsIG91dHB1dF9mb3JtYXQpOgorICAgICAgICBj
b25maWcgPSBzZWxmLl9zdHlsZV9jaGVja2VyX2NvbmZpZ3VyYXRpb24ob3V0cHV0X2Zvcm1hdD1v
dXRwdXRfZm9ybWF0KQorICAgICAgICBjb25maWcud3JpdGVfc3R5bGVfZXJyb3IoY2F0ZWdvcnk9
IndoaXRlc3BhY2UvdGFiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZp
ZGVuY2U9NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aD0iZm9v
LmgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXI9MTAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0ibWVzc2FnZSIpCisKKyAg
ICBkZWYgdGVzdF93cml0ZV9zdHlsZV9lcnJvcl9lbWFjcyhzZWxmKToKKyAgICAgICAgIiIiVGVz
dCB0aGUgd3JpdGVfc3R5bGVfZXJyb3IoKSBtZXRob2QuIiIiCisgICAgICAgIHNlbGYuX2NhbGxf
d3JpdGVfc3R5bGVfZXJyb3IoImVtYWNzIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2Vs
Zi5fZXJyb3JfbWVzc2FnZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZm9vLmg6MTAw
OiAgbWVzc2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbiJdKQorCisgICAgZGVmIHRlc3Rfd3Jp
dGVfc3R5bGVfZXJyb3JfdnM3KHNlbGYpOgorICAgICAgICAiIiJUZXN0IHRoZSB3cml0ZV9zdHls
ZV9lcnJvcigpIG1ldGhvZC4iIiIKKyAgICAgICAgc2VsZi5fY2FsbF93cml0ZV9zdHlsZV9lcnJv
cigidnM3IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZm9vLmgoMTAwKTogIG1lc3NhZ2UgIFt3aGl0
ZXNwYWNlL3RhYl0gWzVdXG4iXSkKKworCitjbGFzcyBTdHlsZUNoZWNrZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKworICAgICIiIlRlc3QgdGhlIFN0eWxlQ2hlY2tlciBjbGFzcy4iIiIKIAog
ICAgIGRlZiBfbW9ja19zdGRlcnJfd3JpdGUoc2VsZiwgbWVzc2FnZSk6CiAgICAgICAgIHBhc3MK
IAotICAgIGRlZiBfc3R5bGVfY2hlY2tlcihzZWxmLCBvcHRpb25zKToKLSAgICAgICAgcmV0dXJu
IFN0eWxlQ2hlY2tlcihvcHRpb25zLCBzZWxmLl9tb2NrX3N0ZGVycl93cml0ZSkKKyAgICBkZWYg
X3N0eWxlX2NoZWNrZXIoc2VsZiwgY29uZmlndXJhdGlvbik6CisgICAgICAgIHJldHVybiBTdHls
ZUNoZWNrZXIoY29uZmlndXJhdGlvbikKIAogICAgIGRlZiB0ZXN0X2luaXQoc2VsZik6CiAgICAg
ICAgICIiIlRlc3QgX19pbml0X18gY29uc3RydWN0b3IuIiIiCi0gICAgICAgIG9wdGlvbnMgPSBQ
cm9jZXNzb3JPcHRpb25zKCkKLSAgICAgICAgc3R5bGVfY2hlY2tlciA9IHNlbGYuX3N0eWxlX2No
ZWNrZXIob3B0aW9ucykKKyAgICAgICAgY29uZmlndXJhdGlvbiA9IFN0eWxlQ2hlY2tlckNvbmZp
Z3VyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX2NvbmZpZ3VyYXRp
b249RmlsdGVyQ29uZmlndXJhdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
eF9yZXBvcnRzX3Blcl9jYXRlZ29yeT17fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
dXRwdXRfZm9ybWF0PSJ2czciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycl93
cml0ZT1zZWxmLl9tb2NrX3N0ZGVycl93cml0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJib3NpdHk9MykKKworICAgICAgICBzdHlsZV9jaGVja2VyID0gc2VsZi5fc3R5bGVfY2hl
Y2tlcihjb25maWd1cmF0aW9uKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0eWxlX2No
ZWNrZXIuZXJyb3JfY291bnQsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0eWxlX2No
ZWNrZXIub3B0aW9ucywgb3B0aW9ucykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc3R5bGVf
Y2hlY2tlci5fY29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbikKIAogCiBjbGFzcyBTdHlsZUNo
ZWNrZXJDaGVja0ZpbGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTYzNSwxNSArNjY5LDE0
IEBAIGNsYXNzIFN0eWxlQ2hlY2tlckNoZWNrRmlsZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICAjIENvbmZpcm0gdGhhdCB0aGUgYXR0cmlidXRlcyBhcmUgcmVzZXQuCiAgICAgICAg
IHNlbGYuYXNzZXJ0X2F0dHJpYnV0ZXMoTm9uZSwgTm9uZSwgTm9uZSwgIiIpCiAKLSAgICAgICAg
IyBDcmVhdGUgYSB0ZXN0IFN0eWxlQ2hlY2tlciBpbnN0YW5jZS4KLSAgICAgICAgIwotICAgICAg
ICAjIFRoZSB2ZXJib3NpdHkgYXR0cmlidXRlIGlzIHRoZSBvbmx5IFByb2Nlc3Nvck9wdGlvbnMK
LSAgICAgICAgIyBhdHRyaWJ1dGUgdGhhdCBuZWVkcyB0byBiZSBjaGVja2VkIGluIHRoaXMgdGVz
dC4KLSAgICAgICAgIyBUaGlzIGlzIGJlY2F1c2UgaXQgaXMgdGhlIG9ubHkgb3B0aW9uIGlzIGRp
cmVjdGx5Ci0gICAgICAgICMgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciBvZiBhIHN0eWxlIHBy
b2Nlc3Nvci4KLSAgICAgICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnModmVyYm9zaXR5PTMp
CisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPUZpbHRlckNvbmZp
Z3VyYXRpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfcmVwb3J0c19wZXJf
Y2F0ZWdvcnk9eyJ3aGl0ZXNwYWNlL25ld2xpbmUiOiAxfSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXRfZm9ybWF0PSJ2czciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZGVycl93cml0ZT1zZWxmLm1vY2tfc3RkZXJyX3dyaXRlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZlcmJvc2l0eT0zKQogCi0gICAgICAgIHN0eWxlX2NoZWNrZXIgPSBTdHlsZUNo
ZWNrZXIob3B0aW9ucywgc2VsZi5tb2NrX3N0ZGVycl93cml0ZSkKKyAgICAgICAgc3R5bGVfY2hl
Y2tlciA9IFN0eWxlQ2hlY2tlcihjb25maWd1cmF0aW9uKQogCiAgICAgICAgIHN0eWxlX2NoZWNr
ZXIuY2hlY2tfZmlsZShmaWxlX3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVycy5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnMucHkKaW5kZXggZDg3ZGY3MS4uNmJj
M2YxNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJv
cl9oYW5kbGVycy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vy
cm9yX2hhbmRsZXJzLnB5CkBAIC01NiwzMCArNTYsMjEgQEAgY2xhc3MgRGVmYXVsdFN0eWxlRXJy
b3JIYW5kbGVyKG9iamVjdCk6CiAKICAgICAiIiJUaGUgZGVmYXVsdCBzdHlsZSBlcnJvciBoYW5k
bGVyLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVfcGF0aCwgb3B0aW9ucywgaW5j
cmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICBzdGRlcnJfd3JpdGU9Tm9uZSk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVfcGF0aCwgY29uZmlndXJhdGlvbiwgaW5jcmVt
ZW50X2Vycm9yX2NvdW50KToKICAgICAgICAgIiIiQ3JlYXRlIGEgZGVmYXVsdCBzdHlsZSBlcnJv
ciBoYW5kbGVyLgogCiAgICAgICAgIEFyZ3M6CiAgICAgICAgICAgZmlsZV9wYXRoOiBUaGUgcGF0
aCB0byB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBlcnJvci4gVGhpcwogICAgICAgICAgICAgICAg
ICAgICAgaXMgdXNlZCBmb3IgcmVwb3J0aW5nIHRvIHRoZSB1c2VyLgotICAgICAgICAgIG9wdGlv
bnM6IEEgUHJvY2Vzc29yT3B0aW9ucyBpbnN0YW5jZS4KKyAgICAgICAgICBjb25maWd1cmF0aW9u
OiBBIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCiAgICAgICAgICAgaW5jcmVt
ZW50X2Vycm9yX2NvdW50OiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgbm8gYXJndW1lbnRzIGFuZAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50cyB0aGUgdG90YWwgY291
bnQgb2YgcmVwb3J0YWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jz
LgotICAgICAgICAgIHN0ZGVycl93cml0ZTogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgc3RyaW5n
IGFzIGEgcGFyYW1ldGVyCi0gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhhdCBpcyBjYWxs
ZWQgd2hlbiBhIHN0eWxlIGVycm9yIG9jY3Vycy4KLSAgICAgICAgICAgICAgICAgICAgICAgIERl
ZmF1bHRzIHRvIHN5cy5zdGRlcnIud3JpdGUuIFRoaXMgc2hvdWxkIGJlCi0gICAgICAgICAgICAg
ICAgICAgICAgICB1c2VkIG9ubHkgZm9yIHVuaXQgdGVzdHMuCiAKICAgICAgICAgIiIiCi0gICAg
ICAgIGlmIHN0ZGVycl93cml0ZSBpcyBOb25lOgotICAgICAgICAgICAgc3RkZXJyX3dyaXRlID0g
c3lzLnN0ZGVyci53cml0ZQotCiAgICAgICAgIHNlbGYuX2ZpbGVfcGF0aCA9IGZpbGVfcGF0aAor
ICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbgogICAgICAgICBzZWxm
Ll9pbmNyZW1lbnRfZXJyb3JfY291bnQgPSBpbmNyZW1lbnRfZXJyb3JfY291bnQKLSAgICAgICAg
c2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fc3RkZXJyX3dyaXRlID0gc3Rk
ZXJyX3dyaXRlCiAKICAgICAgICAgIyBBIHN0cmluZyB0byBpbnRlZ2VyIGRpY3Rpb25hcnkgY2Fj
aGUgb2YgdGhlIG51bWJlciBvZiByZXBvcnRhYmxlCiAgICAgICAgICMgZXJyb3JzIHBlciBjYXRl
Z29yeSBwYXNzZWQgdG8gdGhpcyBpbnN0YW5jZS4KQEAgLTk5LDkgKzkwLDkgQEAgY2xhc3MgRGVm
YXVsdFN0eWxlRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAKICAgICBkZWYgX21heF9yZXBvcnRzKHNl
bGYsIGNhdGVnb3J5KToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBl
cnJvcnMgdG8gcmVwb3J0LiIiIgotICAgICAgICBpZiBub3QgY2F0ZWdvcnkgaW4gc2VsZi5fb3B0
aW9ucy5tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk6CisgICAgICAgIGlmIG5vdCBjYXRlZ29yeSBp
biBzZWxmLl9jb25maWd1cmF0aW9uLm1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeToKICAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBzZWxmLl9vcHRpb25zLm1heF9yZXBvcnRz
X3Blcl9jYXRlZ29yeVtjYXRlZ29yeV0KKyAgICAgICAgcmV0dXJuIHNlbGYuX2NvbmZpZ3VyYXRp
b24ubWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5W2NhdGVnb3J5XQogCiAgICAgZGVmIF9fY2FsbF9f
KHNlbGYsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6CiAgICAg
ICAgICIiIkhhbmRsZSB0aGUgb2NjdXJyZW5jZSBvZiBhIHN0eWxlIGVycm9yLgpAQCAtMTA5LDkg
KzEwMCw5IEBAIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgogICAgICAg
ICBTZWUgdGhlIGRvY3N0cmluZyBvZiB0aGlzIG1vZHVsZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K
IAogICAgICAgICAiIiIKLSAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuaXNfcmVwb3J0YWJs
ZShjYXRlZ29yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25maWRlbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX2ZpbGVfcGF0aCk6CisgICAgICAgIGlmIG5vdCBzZWxmLl9jb25maWd1cmF0aW9uLmlzX3Jl
cG9ydGFibGUoY2F0ZWdvcnk9Y2F0ZWdvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZV9pbl9lcnJvcj1jb25maWRlbmNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aD1z
ZWxmLl9maWxlX3BhdGgpOgogICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgY2F0ZWdvcnlf
dG90YWwgPSBzZWxmLl9hZGRfcmVwb3J0YWJsZV9lcnJvcihjYXRlZ29yeSkKQEAgLTEyMiwyOCAr
MTEzLDIyIEBAIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgogICAgICAg
ICAgICAgIyBUaGVuIHN1cHByZXNzIGRpc3BsYXlpbmcgdGhlIGVycm9yLgogICAgICAgICAgICAg
cmV0dXJuCiAKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5vdXRwdXRfZm9ybWF0ID09ICd2czcn
OgotICAgICAgICAgICAgZm9ybWF0X3N0cmluZyA9ICIlcyglcyk6ICAlcyAgWyVzXSBbJWRdXG4i
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmb3JtYXRfc3RyaW5nID0gIiVzOiVzOiAgJXMg
IFslc10gWyVkXVxuIgorICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uLndyaXRlX3N0eWxlX2Vy
cm9yKGNhdGVnb3J5PWNhdGVnb3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbmZpZGVuY2U9Y29uZmlkZW5jZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9c2VsZi5fZmlsZV9wYXRoLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyPWxp
bmVfbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2U9bWVzc2FnZSkKIAogICAgICAgICBpZiBjYXRlZ29yeV90b3RhbCA9PSBtYXhfcmVw
b3J0czoKLSAgICAgICAgICAgIGZvcm1hdF9zdHJpbmcgKz0gKCJTdXBwcmVzc2luZyBmdXJ0aGVy
IFslc10gcmVwb3J0cyBmb3IgdGhpcyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZmlsZS5cbiIgJSBjYXRlZ29yeSkKLQotICAgICAgICBzZWxmLl9zdGRlcnJfd3JpdGUoZm9ybWF0
X3N0cmluZyAlIChzZWxmLl9maWxlX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXRlZ29yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uZmlkZW5jZSkpCisgICAgICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9u
LnN0ZGVycl93cml0ZSgiU3VwcHJlc3NpbmcgZnVydGhlciBbJXNdIHJlcG9ydHMgIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciB0aGlzIGZpbGUuXG4i
ICUgY2F0ZWdvcnkpCiAKIAogY2xhc3MgUGF0Y2hTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgog
CiAgICAgIiIiVGhlIHN0eWxlIGVycm9yIGZ1bmN0aW9uIGZvciBwYXRjaCBmaWxlcy4iIiIKIAot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaWZmLCBmaWxlX3BhdGgsIG9wdGlvbnMsIGluY3JlbWVu
dF9lcnJvcl9jb3VudCwKLSAgICAgICAgICAgICAgICAgc3RkZXJyX3dyaXRlKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgZGlmZiwgZmlsZV9wYXRoLCBjb25maWd1cmF0aW9uLCBpbmNyZW1lbnRf
ZXJyb3JfY291bnQpOgogICAgICAgICAiIiJDcmVhdGUgYSBwYXRjaCBzdHlsZSBlcnJvciBoYW5k
bGVyIGZvciB0aGUgZ2l2ZW4gcGF0aC4KIAogICAgICAgICBBcmdzOgpAQCAtMTU1LDExICsxNDAs
MTAgQEAgY2xhc3MgUGF0Y2hTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgogICAgICAgICBzZWxm
Ll9kaWZmID0gZGlmZgogCiAgICAgICAgIHNlbGYuX2RlZmF1bHRfZXJyb3JfaGFuZGxlciA9IERl
ZmF1bHRTdHlsZUVycm9ySGFuZGxlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aD1maWxlX3BhdGgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRfZXJyb3JfY291bnQ9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50X2Vy
cm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9ucz1vcHRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RkZXJyX3dyaXRlPXN0ZGVycl93cml0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbmNyZW1lbnRfZXJyb3JfY291bnQpCiAKICAgICAgICAgIyBUaGUg
bGluZSBudW1iZXJzIG9mIHRoZSBtb2RpZmllZCBsaW5lcy4gVGhpcyBpcyBzZXQgbGF6aWx5Lgog
ICAgICAgICBzZWxmLl9saW5lX251bWJlcnMgPSBzZXQoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3Qu
cHkKaW5kZXggNDNhMTFmZS4uYTM5YmEyYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5CkBA
IC0yNiwxMCArMjYsMTAgQEAKIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIC4uIHN0eWxlX3JlZmVy
ZW5jZXMgaW1wb3J0IHBhcnNlX3BhdGNoCi1mcm9tIGNoZWNrZXIgaW1wb3J0IFByb2Nlc3Nvck9w
dGlvbnMKK2Zyb20gY2hlY2tlciBpbXBvcnQgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbgogZnJv
bSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGVy
cm9yX2hhbmRsZXJzIGltcG9ydCBQYXRjaFN0eWxlRXJyb3JIYW5kbGVyCi0KK2Zyb20gZmlsdGVy
IGltcG9ydCBGaWx0ZXJDb25maWd1cmF0aW9uCiAKIGNsYXNzIFN0eWxlRXJyb3JIYW5kbGVyVGVz
dEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC00Myw2ICs0MywxOCBAQCBjbGFzcyBTdHls
ZUVycm9ySGFuZGxlclRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgX21vY2tf
c3RkZXJyX3dyaXRlKHNlbGYsIG1lc3NhZ2UpOgogICAgICAgICBzZWxmLl9lcnJvcl9tZXNzYWdl
cy5hcHBlbmQobWVzc2FnZSkKIAorICAgIGRlZiBfc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9u
KHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYSBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uIGlu
c3RhbmNlIGZvciB0ZXN0aW5nLiIiIgorICAgICAgICBiYXNlX3J1bGVzID0gWyItd2hpdGVzcGFj
ZSIsICIrd2hpdGVzcGFjZS90YWIiXQorICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZp
bHRlckNvbmZpZ3VyYXRpb24oYmFzZV9ydWxlcz1iYXNlX3J1bGVzKQorCisgICAgICAgIHJldHVy
biBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uKAorICAgICAgICAgICAgICAgICAgIGZpbHRlcl9j
b25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgIG1h
eF9yZXBvcnRzX3Blcl9jYXRlZ29yeT17IndoaXRlc3BhY2UvdGFiIjogMn0sCisgICAgICAgICAg
ICAgICAgICAgb3V0cHV0X2Zvcm1hdD0idnM3IiwKKyAgICAgICAgICAgICAgICAgICBzdGRlcnJf
d3JpdGU9c2VsZi5fbW9ja19zdGRlcnJfd3JpdGUsCisgICAgICAgICAgICAgICAgICAgdmVyYm9z
aXR5PTMpCisKIAogY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyVGVzdChTdHlsZUVycm9y
SGFuZGxlclRlc3RCYXNlKToKIApAQCAtNTksMTIgKzcxLDEwIEBAIGNsYXNzIERlZmF1bHRTdHls
ZUVycm9ySGFuZGxlclRlc3QoU3R5bGVFcnJvckhhbmRsZXJUZXN0QmFzZSk6CiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKDAsIHNlbGYuX2Vycm9yX2NvdW50KQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscygwLCBsZW4oc2VsZi5fZXJyb3JfbWVzc2FnZXMpKQogCi0gICAgZGVmIF9lcnJvcl9o
YW5kbGVyKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICByZXR1cm4gRGVmYXVsdFN0eWxlRXJyb3JI
YW5kbGVyKGZpbGVfcGF0aD1zZWxmLl9maWxlX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5jcmVtZW50X2Vycm9yX2NvdW50PQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9tb2NrX2luY3JlbWVudF9lcnJvcl9j
b3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPW9w
dGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyX3dy
aXRlPXNlbGYuX21vY2tfc3RkZXJyX3dyaXRlKQorICAgIGRlZiBfZXJyb3JfaGFuZGxlcihzZWxm
LCBjb25maWd1cmF0aW9uKToKKyAgICAgICAgcmV0dXJuIERlZmF1bHRTdHlsZUVycm9ySGFuZGxl
cihjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCisgICAgICAgICAgICAgICAgICAgZmlsZV9w
YXRoPXNlbGYuX2ZpbGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRfZXJyb3Jf
Y291bnQ9c2VsZi5fbW9ja19pbmNyZW1lbnRfZXJyb3JfY291bnQpCiAKICAgICBkZWYgX2NhbGxf
ZXJyb3JfaGFuZGxlcihzZWxmLCBoYW5kbGVfZXJyb3IsIGNvbmZpZGVuY2UpOgogICAgICAgICAi
IiJDYWxsIHRoZSBnaXZlbiBlcnJvciBoYW5kbGVyIHdpdGggYSB0ZXN0IGVycm9yLiIiIgpAQCAt
NzMsNzggKzgzLDU0IEBAIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlclRlc3QoU3R5bGVF
cnJvckhhbmRsZXJUZXN0QmFzZSk6CiAgICAgICAgICAgICAgICAgICAgICBjb25maWRlbmNlPWNv
bmZpZGVuY2UsCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJtZXNzYWdlIikKIAotICAg
IGRlZiB0ZXN0X2NhbGxfbm9uX3JlcG9ydGFibGUoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgX19j
YWxsX18oKSBtZXRob2Qgd2l0aCBhIG5vbi1yZXBvcnRhYmxlIGVycm9yLiIiIgotICAgICAgICBj
b25maWRlbmNlID0gMQotICAgICAgICBvcHRpb25zID0gUHJvY2Vzc29yT3B0aW9ucyh2ZXJib3Np
dHk9MykKKyAgICBkZWYgdGVzdF9ub25fcmVwb3J0YWJsZV9lcnJvcihzZWxmKToKKyAgICAgICAg
IiIiVGVzdCBfX2NhbGxfXygpIHdpdGggYSBub24tcmVwb3J0YWJsZSBlcnJvci4iIiIKICAgICAg
ICAgc2VsZi5fY2hlY2tfaW5pdGlhbGl6ZWQoKQorICAgICAgICBjb25maWd1cmF0aW9uID0gc2Vs
Zi5fc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9uKCkKIAorICAgICAgICBjb25maWRlbmNlID0g
MQogICAgICAgICAjIENvbmZpcm0gdGhlIGVycm9yIGlzIG5vdCByZXBvcnRhYmxlLgotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKG9wdGlvbnMuaXNfcmVwb3J0YWJsZShzZWxmLl9jYXRlZ29yeSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5j
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
ZmlsZV9wYXRoKSkKLQotICAgICAgICBlcnJvcl9oYW5kbGVyID0gc2VsZi5fZXJyb3JfaGFuZGxl
cihvcHRpb25zKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNvbmZpZ3VyYXRpb24uaXNfcmVw
b3J0YWJsZShzZWxmLl9jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZV9wYXRoKSkKKyAgICAgICAg
ZXJyb3JfaGFuZGxlciA9IHNlbGYuX2Vycm9yX2hhbmRsZXIoY29uZmlndXJhdGlvbikKICAgICAg
ICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCiAK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgc2VsZi5fZXJyb3JfY291bnQpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBzZWxmLl9lcnJvcl9tZXNzYWdlcykKIAotICAgIGRlZiB0
ZXN0X2NhbGxfcmVwb3J0YWJsZV9lbWFjcyhzZWxmKToKLSAgICAgICAgIiIiVGVzdCBfX2NhbGxf
XygpIG1ldGhvZCB3aXRoIGEgcmVwb3J0YWJsZSBlcnJvciBhbmQgZW1hY3MgZm9ybWF0LiIiIgot
ICAgICAgICBjb25maWRlbmNlID0gNQotICAgICAgICBvcHRpb25zID0gUHJvY2Vzc29yT3B0aW9u
cyh2ZXJib3NpdHk9Mywgb3V0cHV0X2Zvcm1hdD0iZW1hY3MiKQotICAgICAgICBzZWxmLl9jaGVj
a19pbml0aWFsaXplZCgpCi0KLSAgICAgICAgZXJyb3JfaGFuZGxlciA9IHNlbGYuX2Vycm9yX2hh
bmRsZXIob3B0aW9ucykKLSAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKGVycm9yX2hh
bmRsZXIsIGNvbmZpZGVuY2UpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgc2VsZi5f
ZXJyb3JfY291bnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Vycm9yX21lc3Nh
Z2VzWy0xXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby5oOjEwMDogIG1lc3NhZ2Ug
IFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iKQotCi0gICAgZGVmIHRlc3RfY2FsbF9yZXBvcnRhYmxl
X3ZzNyhzZWxmKToKLSAgICAgICAgIiIiVGVzdCBfX2NhbGxfXygpIG1ldGhvZCB3aXRoIGEgcmVw
b3J0YWJsZSBlcnJvciBhbmQgdnM3IGZvcm1hdC4iIiIKLSAgICAgICAgY29uZmlkZW5jZSA9IDUK
LSAgICAgICAgb3B0aW9ucyA9IFByb2Nlc3Nvck9wdGlvbnModmVyYm9zaXR5PTMsIG91dHB1dF9m
b3JtYXQ9InZzNyIpCisgICAgIyBBbHNvIHNlcnZlcyBhcyBhIHJlcG9ydGFibGUgZXJyb3IgdGVz
dC4KKyAgICBkZWYgdGVzdF9tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnkoc2VsZik6CisgICAgICAg
ICIiIlRlc3QgZXJyb3IgcmVwb3J0IHN1cHByZXNzaW9uIGluIF9fY2FsbF9fKCkgbWV0aG9kLiIi
IgogICAgICAgICBzZWxmLl9jaGVja19pbml0aWFsaXplZCgpCisgICAgICAgIGNvbmZpZ3VyYXRp
b24gPSBzZWxmLl9zdHlsZV9jaGVja2VyX2NvbmZpZ3VyYXRpb24oKQorICAgICAgICBlcnJvcl9o
YW5kbGVyID0gc2VsZi5fZXJyb3JfaGFuZGxlcihjb25maWd1cmF0aW9uKQogCi0gICAgICAgIGVy
cm9yX2hhbmRsZXIgPSBzZWxmLl9lcnJvcl9oYW5kbGVyKG9wdGlvbnMpCi0gICAgICAgIHNlbGYu
X2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9oYW5kbGVyLCBjb25maWRlbmNlKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNlbGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlc1stMV0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICJmb28uaCgxMDApOiAgbWVzc2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbiIpCi0K
LSAgICBkZWYgdGVzdF9jYWxsX21heF9yZXBvcnRzX3Blcl9jYXRlZ29yeShzZWxmKToKLSAgICAg
ICAgIiIiVGVzdCBlcnJvciByZXBvcnQgc3VwcHJlc3Npb24gaW4gX19jYWxsX18oKSBtZXRob2Qu
IiIiCiAgICAgICAgIGNvbmZpZGVuY2UgPSA1Ci0gICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JP
cHRpb25zKHZlcmJvc2l0eT0zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
YXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9e3NlbGYuX2NhdGVnb3J5OiAyfSkKLSAgICAgICAgZXJy
b3JfaGFuZGxlciA9IHNlbGYuX2Vycm9yX2hhbmRsZXIob3B0aW9ucykKLQotICAgICAgICBzZWxm
Ll9jaGVja19pbml0aWFsaXplZCgpCiAKICAgICAgICAgIyBGaXJzdCBjYWxsOiB1c3VhbCByZXBv
cnRpbmcuCiAgICAgICAgIHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9oYW5kbGVyLCBj
b25maWRlbmNlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBzZWxmLl9lcnJvcl9jb3Vu
dCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHNlbGYuX2Vycm9yX21lc3NhZ2Vz
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXNbLTFdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9vLmg6MTAwOiAgbWVzc2FnZSAgW3doaXRlc3Bh
Y2UvdGFiXSBbNV1cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Vycm9yX21l
c3NhZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbImZvby5oKDEwMCk6ICBtZXNzYWdl
ICBbd2hpdGVzcGFjZS90YWJdIFs1XVxuIl0pCiAKICAgICAgICAgIyBTZWNvbmQgY2FsbDogc3Vw
cHJlc3Npb24gbWVzc2FnZSByZXBvcnRlZC4KICAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5k
bGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCisgICAgICAgICMgVGhlICJTdXBwcmVzc2lu
ZyBmdXJ0aGVyLi4uIiBtZXNzYWdlIGNvdW50cyBhcyBhbiBhZGRpdGlvbmFsCisgICAgICAgICMg
bWVzc2FnZSAoYnV0IG5vdCBhcyBhbiBhZGRpdGlvbiB0byB0aGUgZXJyb3IgY291bnQpLgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygyLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoMiwgbGVuKHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoMywgbGVuKHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXNbLTJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZm9vLmgoMTAwKTogIG1lc3NhZ2UgIFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4i
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9lcnJvcl9tZXNzYWdlc1stMV0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICJmb28uaDoxMDA6ICBtZXNzYWdlICBbd2hpdGVzcGFj
ZS90YWJdIFs1XVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VwcHJlc3NpbmcgZnVy
dGhlciBbJXNdIHJlcG9ydHMgZm9yIHRoaXMgZmlsZS5cbiIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgJSBzZWxmLl9jYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cHBy
ZXNzaW5nIGZ1cnRoZXIgW3doaXRlc3BhY2UvdGFiXSByZXBvcnRzICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgImZvciB0aGlzIGZpbGUuXG4iKQogCiAgICAgICAgICMgVGhpcmQgY2FsbDog
bm8gcmVwb3J0LgogICAgICAgICBzZWxmLl9jYWxsX2Vycm9yX2hhbmRsZXIoZXJyb3JfaGFuZGxl
ciwgY29uZmlkZW5jZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMywgc2VsZi5fZXJyb3Jf
Y291bnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDIsIGxlbihzZWxmLl9lcnJvcl9tZXNz
YWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDMsIGxlbihzZWxmLl9lcnJvcl9tZXNz
YWdlcykpCiAKIAogY2xhc3MgUGF0Y2hTdHlsZUVycm9ySGFuZGxlclRlc3QoU3R5bGVFcnJvckhh
bmRsZXJUZXN0QmFzZSk6CkBAIC0xNjcsMjIgKzE1MywyMiBAQCBpbmRleCBlZjY1YmVlLi5lM2Ri
NzBlIDEwMDY0NAogICAgICAgICBwYXRjaF9maWxlcyA9IHBhcnNlX3BhdGNoKHNlbGYuX3BhdGNo
X3N0cmluZykKICAgICAgICAgZGlmZiA9IHBhdGNoX2ZpbGVzW3NlbGYuX2ZpbGVfcGF0aF0KIAot
ICAgICAgICBvcHRpb25zID0gUHJvY2Vzc29yT3B0aW9ucyh2ZXJib3NpdHk9MykKKyAgICAgICAg
Y29uZmlndXJhdGlvbiA9IHNlbGYuX3N0eWxlX2NoZWNrZXJfY29uZmlndXJhdGlvbigpCiAKLSAg
ICAgICAgaGFuZGxlX2Vycm9yID0gUGF0Y2hTdHlsZUVycm9ySGFuZGxlcihkaWZmLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVfcGF0aCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX21vY2tf
aW5jcmVtZW50X2Vycm9yX2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX21vY2tfc3RkZXJyX3dyaXRlKQorICAgICAgICBoYW5kbGVfZXJy
b3IgPSBQYXRjaFN0eWxlRXJyb3JIYW5kbGVyKGRpZmY9ZGlmZiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9c2VsZi5fZmlsZV9wYXRoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRp
b249Y29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmNyZW1lbnRfZXJyb3JfY291bnQ9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbW9ja19pbmNyZW1lbnRfZXJyb3JfY291bnQpCiAK
ICAgICAgICAgY2F0ZWdvcnkgPSAid2hpdGVzcGFjZS90YWIiCiAgICAgICAgIGNvbmZpZGVuY2Ug
PSA1CiAgICAgICAgIG1lc3NhZ2UgPSAibWVzc2FnZSIKIAogICAgICAgICAjIENvbmZpcm0gZXJy
b3IgaXMgcmVwb3J0YWJsZS4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wdGlvbnMuaXNfcmVw
b3J0YWJsZShjYXRlZ29yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWRlbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2ZpbGVfcGF0aCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb25m
aWd1cmF0aW9uLmlzX3JlcG9ydGFibGUoY2F0ZWdvcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW5jZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9maWxlX3BhdGgpKQog
CiAgICAgICAgICMgQ29uZmlybSBlcnJvciBjb3VudCBpbml0aWFsaXplZCB0byB6ZXJvLgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBzZWxmLl9lcnJvcl9jb3VudCkKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyLnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXIucHkKaW5kZXggMmJkMWFkNy4uNjA4YTll
NiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXIu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXIucHkKQEAg
LTE2MSwxMSArMTYxLDcgQEAgY2xhc3MgRmlsdGVyQ29uZmlndXJhdGlvbihvYmplY3QpOgogICAg
ICAgICBzZWxmLl9wYXRoX3NwZWNpZmljX2xvd2VyID0gTm9uZQogICAgICAgICAiIiJUaGUgYmFj
a2luZyBzdG9yZSBmb3Igc2VsZi5fZ2V0X3BhdGhfc3BlY2lmaWNfbG93ZXIoKS4iIiIKIAotICAg
ICAgICAjIEZJWE1FOiBNYWtlIHVzZXIgcnVsZXMgaW50ZXJuYWwgYWZ0ZXIgdGhlIEZpbHRlckNv
bmZpZ3VyYXRpb24KLSAgICAgICAgIyAgICAgICAgYXR0cmlidXRlIGlzIHJlbW92ZWQgZnJvbSBQ
cm9jZXNzb3JPcHRpb25zIChzaW5jZSBhdAotICAgICAgICAjICAgICAgICB0aGF0IHBvaW50IEFy
Z3VtZW50UHJpbnRlciB3aWxsIG5vIGxvbmdlciBuZWVkIHRvCi0gICAgICAgICMgICAgICAgIGFj
Y2VzcyBGaWx0ZXJDb25maWd1cmF0aW9uLnVzZXJfcnVsZXMpLgotICAgICAgICBzZWxmLnVzZXJf
cnVsZXMgPSB1c2VyX3J1bGVzCisgICAgICAgIHNlbGYuX3VzZXJfcnVsZXMgPSB1c2VyX3J1bGVz
CiAKICAgICAgICAgc2VsZi5fcGF0aF9ydWxlc190b19maWx0ZXIgPSB7fQogICAgICAgICAiIiJD
YWNoZWQgZGljdGlvbmFyeSBvZiBwYXRoIHJ1bGVzIHRvIENhdGVnb3J5RmlsdGVyIGluc3RhbmNl
LiIiIgpAQCAtMTg0LDcgKzE4MCw3IEBAIGNsYXNzIEZpbHRlckNvbmZpZ3VyYXRpb24ob2JqZWN0
KToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBpZiBzZWxmLl9wYXRoX3NwZWNp
ZmljICE9IG90aGVyLl9wYXRoX3NwZWNpZmljOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0g
ICAgICAgIGlmIHNlbGYudXNlcl9ydWxlcyAhPSBvdGhlci51c2VyX3J1bGVzOgorICAgICAgICBp
ZiBzZWxmLl91c2VyX3J1bGVzICE9IG90aGVyLl91c2VyX3J1bGVzOgogICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCiAKICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTIzMyw3ICsyMjksNyBAQCBjbGFz
cyBGaWx0ZXJDb25maWd1cmF0aW9uKG9iamVjdCk6CiAgICAgICAgIGlmIHBhdGhfcnVsZXMgbm90
IGluIHNlbGYuX3BhdGhfcnVsZXNfdG9fZmlsdGVyOgogICAgICAgICAgICAgcnVsZXMgPSBsaXN0
KHNlbGYuX2Jhc2VfcnVsZXMpICMgTWFrZSBhIGNvcHkKICAgICAgICAgICAgIHJ1bGVzLmV4dGVu
ZChwYXRoX3J1bGVzKQotICAgICAgICAgICAgcnVsZXMuZXh0ZW5kKHNlbGYudXNlcl9ydWxlcykK
KyAgICAgICAgICAgIHJ1bGVzLmV4dGVuZChzZWxmLl91c2VyX3J1bGVzKQogICAgICAgICAgICAg
c2VsZi5fcGF0aF9ydWxlc190b19maWx0ZXJbcGF0aF9ydWxlc10gPSBfQ2F0ZWdvcnlGaWx0ZXIo
cnVsZXMpCiAKICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGhfcnVsZXNfdG9fZmlsdGVyW3BhdGhf
cnVsZXNdCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Zp
bHRlcl91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmls
dGVyX3VuaXR0ZXN0LnB5CmluZGV4IDc2ZjI1ZGIuLjdiOGE1NDAgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0ZXN0LnB5CkBAIC0x
NjQsNyArMTY0LDcgQEAgY2xhc3MgRmlsdGVyQ29uZmlndXJhdGlvblRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGJhc2VfcnVsZXMsIGNvbmZpZy5f
YmFzZV9ydWxlcykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGF0aF9zcGVjaWZpYywgY29u
ZmlnLl9wYXRoX3NwZWNpZmljKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh1c2VyX3J1bGVz
LCBjb25maWcudXNlcl9ydWxlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModXNlcl9ydWxl
cywgY29uZmlnLl91c2VyX3J1bGVzKQogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF9hcmd1bWVudHMo
c2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBhdHRyaWJ1dGVzIGFyZSBnZXR0aW5nIHNl
dCBjb3JyZWN0bHkgdG8gdGhlIGRlZmF1bHRzLgpAQCAtMTcyLDcgKzE3Miw3IEBAIGNsYXNzIEZp
bHRlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbXSwgY29uZmlnLl9iYXNlX3J1bGVzKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhbXSwgY29uZmlnLl9wYXRoX3NwZWNpZmljKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhbXSwgY29uZmlnLnVzZXJfcnVsZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtd
LCBjb25maWcuX3VzZXJfcnVsZXMpCiAKICAgICBkZWYgdGVzdF9lcShzZWxmKToKICAgICAgICAg
IiIiVGVzdCBfX2VxX18gbWV0aG9kLiIiIgo=
</data>
<flag name="review"
          id="31644"
          type_id="1"
          status="+"
          setter="hamaji"
    />
    <flag name="commit-queue"
          id="31645"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>