<?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>64439</bug_id>
          
          <creation_ts>2011-07-13 02:13:25 -0700</creation_ts>
          <short_desc>WIN: NRWT has incorrect fallback for win port</short_desc>
          <delta_ts>2011-08-09 15:19:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>64486</dependson>
          <blocked>38756</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>dpranke</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436311</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 02:13:25 -0700</bug_when>
    <thetext>new-run-webkit-tests has incorrect fallback for win port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436339</commentid>
    <comment_count>1</comment_count>
      <attachid>100650</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 03:32:49 -0700</bug_when>
    <thetext>Created attachment 100650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436340</commentid>
    <comment_count>2</comment_count>
      <attachid>100650</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 03:33:04 -0700</bug_when>
    <thetext>Comment on attachment 100650
Patch

This is really a wip patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436341</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-13 03:35:03 -0700</bug_when>
    <thetext>Attachment 100650 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/Scripts/webkitpy...&quot; exit_code: 1

Tools/Scripts/webkitpy/layout_tests/port/base.py:560:  at least two spaces before inline comment  [pep8/E261] [5]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436539</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 11:21:32 -0700</bug_when>
    <thetext>*** Bug 64469 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436549</commentid>
    <comment_count>5</comment_count>
      <attachid>100650</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-07-13 11:29:27 -0700</bug_when>
    <thetext>Comment on attachment 100650
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=100650&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/port/win.py:58
&gt; +        if not hasattr(sys, &apos;getwindowsversion&apos;):

Cygwin&apos;s Python doesn&apos;t have sys.getwindowsversion(), so this won&apos;t work as-is for Apple&apos;s Windows port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436639</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 14:00:05 -0700</bug_when>
    <thetext>I guess we&apos;ll have to make our own wrapper around GetVersionEx then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436640</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-13 14:00:49 -0700</bug_when>
    <thetext>We should be able to build such with ctypes:
http://docs.python.org/library/ctypes.html

But I think that may be beyond my ability without having a windows machine easily accessible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436642</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-07-13 14:10:16 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I guess we&apos;ll have to make our own wrapper around GetVersionEx then?

Or we could run `cmd /c ver`, like ORWT does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448843</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-09 15:16:26 -0700</bug_when>
    <thetext>I think this just ended up a duplicate of bug 64486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448844</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-09 15:19:17 -0700</bug_when>
    <thetext>Much of the factory stuff and SUPPORTED_OS_VERSIONS code has been replaced by the new TestConfiguration stuff.  I think we can close this as fixed or duplicate.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100650</attachid>
            <date>2011-07-13 03:32:49 -0700</date>
            <delta_ts>2011-07-13 11:29:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64439-20110713033248.patch</filename>
            <type>text/plain</type>
            <size>50714</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NjAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYzQ2ZmYxMDRlNmIyYzUwMDc4ZDcwZTk5NDQxZTU0Y2Ni
MTFlMDVjLi4yMDlkM2Y4ZjgyYjYwZjJhZjk5OWJjNGQyMjM1NjFjODM0NGY2N2VjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQg
QEAKKzIwMTEtMDctMTMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IG5ldy1ydW4td2Via2l0LXRlc3RzIGhhcyBpbmNvcnJlY3QgZmFsbGJhY2sgZm9yIHdpbiBwb3J0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZW5kZWQgdXAgdG9vIGJpZyBhbmQgSSdtIGdvaW5nIHRvIG5lZWQgdG8gYnJlYWsgaXQgdXAu
CisKKyAgICAgICAgVGhlIG1haW4gZ29hbCB3YXMgdG8gZml4IFdpbiBwb3J0IGZhbGxiYWNrIHBh
dGhzICh3aGljaCBJIHN1Y2NlZWRlZCkuCisgICAgICAgIEhvd2V2ZXIgSSBhbHNvIHdlbnQgYWhl
YWQgYW5kIGNoYW5nZWQgcG9ydC5nZXQgdG8ga25vdyBob3cgdG8KKyAgICAgICAgc2V0IHRoZSB2
ZXJzaW9uIGFuZCBvcGVyYXRpbmdfc3lzdGVtIG9uIHRoZSBwb3J0IG9iamVjdCBhZnRlciBjcmVh
dGlvbi4KKyAgICAgICAgVGhpcyBtYWtlcyBhbGwgdGhlIFdlYktpdFBvcnQgY29uc3RydWN0b3Jz
IG11Y2ggc2ltcGxlciBzaW5jZSB0aGV5IG5vCisgICAgICAgIGxvbmdlciBoYXZlIHRvIHN1cHBv
cnQgcGFyc2luZyB0aGUgcG9ydF9uYW1lIGFyZ3VtZW50LgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl93b3JrZXJfYnJva2VyLnB5
OgorICAgICAgICAgLSBKdXN0IGEgRklYTUUgYW5kIGxpbmV3cmFwcGluZy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3dvcmtlcl9i
cm9rZXJfdW5pdHRlc3QucHk6CisgICAgICAgICAtIE1vcmUgbGluZXdyYXBwaW5nLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAg
IC0gQWRkIHBvcnRfbmFtZV93aXRoX3ZlcnNpb24gYW5kIGEgRklYTUUgYWJvdXQgaG93IG5hbWUo
KSBpcyBtZWFuaW5nbGVzcy9taXN1c2VkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5OgorICAgICAgICAgLSBNb3ZlIG9zX3ZlcnNp
b24gaGVyZSBub3cgdGhhdCB0aGUgTWFjIHBvcnQgdXNlcyBzb21ldGhpbmcgbmljZXIuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHk6
CisgICAgICAgICAtIENsZWFuIHVwIHNvbWUgY29kZS9GSVhNRXMgaW5jbHVkaW5nIGFkZGluZyBh
IF9jaHJvbWl1bV9jeWd3aW5fcGF0aCBoZWxwZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHk6CisgICAgICAgICAt
IExpbmV3cmFwcGluZworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJ5cnVuLnB5OgorICAgICAgICAgLSBBZGRpbmcgYSBwb3J0X25hbWUgbWFrZXMgbG9va3Vw
IGVhc2llci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Zh
Y3RvcnkucHk6CisgICAgICAgICAtIEFkZCBhIF9Qb3J0RmFjdG9yeSBjbGFzcyBhbmQgc3BsaXQg
dGhlIGdldCgpIG1ldGhvZCBkb3duIGludG8gcGllY2VzLgorICAgICAgICAgLSBJIGFsc28gcmUt
d3JvdGUgaG93IGdldCgpIHdvcmtzIGZvciBXZWJLaXQgcG9ydHMuICBOb3cgdGhlIGZhY3Rvcnkg
aXMKKyAgICAgICAgICAgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdmVyc2lvbiBhbmQgb3BlcmF0
aW5nX3N5c3RlbSBpbmZvcm1hdGlvbiBvbgorICAgICAgICAgICB0aGUgcG9ydCBpbnN0ZWFkIG9m
IHRoZSBQb3J0IGNvbnN0cnVjdG9yIHBhcnNpbmcgdGhvc2UgdmFsdWVzIGZyb20KKyAgICAgICAg
ICAgdGhlIHBvcnRfbmFtZS4gIENocm9taXVtIHBvcnRzIGFuZCB0ZXN0IHBvcnRzIGFyZSB1bmNo
YW5nZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMu
cHk6CisgICAgICAgICAtIFJlLXdyaXRlIGZhbGxiYWNrIHRvIHdvcmsgbW9yZSBsaWtlIE9SV1Qg
ZG9lcyAoYW5kIHRoZSBXaW4gcG9ydCBkb2VzKQorICAgICAgICAgICB3aXRoIGEgc2luZ2xlIGZh
bGxiYWNrIGxpc3QgaW5zdGVhZCBvZiBkaWN0aW9uYXJ5IG9mIGxpc3RzLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAgLSBUZXN0IHdrMiBza2lwcGVkIGxpc3QgZmFsbGJhY2suICAoSXQgd29ya2VkIGJlZm9yZSBi
dXQgd2FzIHVudGVzdGVkLikKKyAgICAgICAgIC0gUmVtb3ZlIHBvb3JseSBmYWN0b3JlZCB0ZXN0
cyBmb3IgdmVyc2lvbiBsb29rdXAsIGFuZCBhZGQgYSBuZXcgdGVzdAorICAgICAgICAgICB3aGlj
aCBjYWxscyBpbnRvIF92ZXJzaW9uX3N0cmluZ19mcm9tX21hY192ZXJfdHVwbGUgZGlyZWN0bHku
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5w
eToKKyAgICAgICAgIC0gcG9ydF9uYW1lcyBtYWtlIGV2ZXJ5dGhpbmcgYmV0dGVyLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHk6CisgICAgICAgICAt
IEFkZCBTVVBQT1JURURfT1BFUkFUSU5HX1NZU1RFTVMgc28gdGhhdCBmYWN0b3J5LnB5IGNhbiBj
b3JyZWN0bHkgcGFyc2UKKyAgICAgICAgICAgcXQtd2luLCBldGMuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdF91bml0dGVzdC5weToKKyAgICAgICAgIC0g
UmVtb3ZlIGluY29ycmVjdCBGSVhNRS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICAtIEFub3RoZXIgcG9ydF9uYW1lIGFkZGl0
aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0
LnB5OgorICAgICAgICAgLSBSZW1vdmUgdXNhZ2Ugb2YgcG9ydF9uYW1lIGZyb20gV2ViS2l0IHBv
cnRzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5
OgorICAgICAgICAgLSBBZGQgc3VwcG9ydCBmb3Igd2luZG93cyB2ZXJzaW9uIGRldGVjdGlvbiBt
YXRjaGluZyBvbGQtcnVuLXdlYmtpdC10ZXN0cy4KKyAgICAgICAgIC0gQWRkIHN1cHBvcnQgZm9y
IHdpbmRvd3MgcmVzdWx0cyBmYWxsYmFjayAobW9kZWxlZCBhZnRlciBob3cgT1JXVCBkaWQgZmFs
bGJhY2spLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2lu
X3VuaXR0ZXN0LnB5OiBDb3BpZWQgZnJvbSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3F0X3VuaXR0ZXN0LnB5LgorICAgICAgICAgLSBUZXN0IG91ciBuZXcgZmFsbGJh
Y2sgY29kZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNl
bGluZS5weToKKyAgICAgICAgIC0gQWRkIGEgRklYTUUuCisKIDIwMTEtMDctMTIgIEpvc2VwaCBQ
ZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBBcHBsaWNhdGlvbkNhY2hl
IHVwZGF0ZSBzaG91bGQgbm90IGltbWVkaWF0ZWx5IGZhaWwgd2hlbiByZWFjaGluZyBwZXItb3Jp
Z2luIHF1b3RhCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9tYW5hZ2VyX3dvcmtlcl9icm9rZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3dvcmtlcl9icm9rZXIucHkK
aW5kZXggZTQzMWY1MzNiNmQ4ZTlhZWM0NDY4NzVhMzM1YzM5MGY2MTAwMjgwMy4uOTQ5MGM0MDc2
MzRhODgxODFhYmVlYmU3MjFhMjRkZWQ3Njg2NjhmOCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl93b3JrZXJfYnJva2Vy
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L21hbmFnZXJfd29ya2VyX2Jyb2tlci5weQpAQCAtMjUzLDYgKzI1Myw3IEBAIGlmIG11bHRpcHJv
Y2Vzc2luZzoKIAogICAgICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICAgICAgb3B0aW9ucyA9
IHNlbGYuX29wdGlvbnMKKyAgICAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHBhc3MgYW4g
RXhlY3V0aXZlLCBVc2VyLCBhbmQgRmlsZVN5c3RlbSBmcm9tIHRoZSB0b29sLgogICAgICAgICAg
ICAgcG9ydF9vYmogPSBsYXlvdXRfdGVzdHMucG9ydC5nZXQoc2VsZi5fcGxhdGZvcm1fbmFtZSwg
b3B0aW9ucykKIAogICAgICAgICAgICAgIyBUaGUgdW5peCBtdWx0aXByb2Nlc3NpbmcgaW1wbGVt
ZW50YXRpb24gY2xvbmVzIHRoZQpAQCAtMjYzLDggKzI2NCw3IEBAIGlmIG11bHRpcHJvY2Vzc2lu
ZzoKICAgICAgICAgICAgICMgRklYTUU6IHRoaXMgd29uJ3Qgd29yayBpZiB0aGUgY2FsbGluZyBw
cm9jZXNzIGlzIGxvZ2dpbmcKICAgICAgICAgICAgICMgc29tZXdoZXJlIG90aGVyIHRoYW4gc3lz
LnN0ZGVyciBhbmQgc3lzLnN0ZG91dCwgYnV0IEknbSBub3Qgc3VyZQogICAgICAgICAgICAgIyBp
ZiB0aGlzIHdpbGwgYmUgYW4gaXNzdWUgaW4gcHJhY3RpY2UuCi0gICAgICAgICAgICBwcmludGVy
ID0gcHJpbnRpbmcuUHJpbnRlcihwb3J0X29iaiwgb3B0aW9ucywgc3lzLnN0ZGVyciwgc3lzLnN0
ZG91dCwKLSAgICAgICAgICAgICAgICBjb25maWd1cmVfbG9nZ2luZykKKyAgICAgICAgICAgIHBy
aW50ZXIgPSBwcmludGluZy5QcmludGVyKHBvcnRfb2JqLCBvcHRpb25zLCBzeXMuc3RkZXJyLCBz
eXMuc3Rkb3V0LCBjb25maWd1cmVfbG9nZ2luZykKICAgICAgICAgICAgIHNlbGYuX2NsaWVudC5y
dW4ocG9ydF9vYmopCiAgICAgICAgICAgICBwcmludGVyLmNsZWFudXAoKQogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2Vy
X3dvcmtlcl9icm9rZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3dvcmtlcl9icm9rZXJfdW5pdHRlc3QucHkKaW5k
ZXggYjIyNGMxZDQ3Y2I0YmRlYTRiNDc2NzNlOTE3MzZjOGNlMjAxMGViOS4uN2M3OTgxZTE4NmFl
NjhhM2NkNGFhNzlhMTFiMmZhNDgyZGNlOTliZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl93b3JrZXJfYnJva2VyX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21hbmFnZXJfd29ya2VyX2Jyb2tlcl91bml0dGVzdC5weQpAQCAtMTE0LDcgKzExNCw2
IEBAIGRlZiBnZXRfb3B0aW9ucyh3b3JrZXJfbW9kZWwpOgogICAgIHJldHVybiBvcHRpb25zCiAK
IAotCiBjbGFzcyBGdW5jdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVz
dF9nZXRfX2lubGluZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ha2VfYnJva2Vy
KHNlbGYsICdpbmxpbmUnKSBpcyBub3QgTm9uZSkKQEAgLTE2Myw4ICsxNjIsNyBAQCBjbGFzcyBf
VGVzdHNNaXhpbihvYmplY3QpOgogICAgICAgICBzZWxmLl93b3JrZXJfbW9kZWwgPSBOb25lCiAK
ICAgICBkZWYgbWFrZV9icm9rZXIoc2VsZiwgc3RhcnRpbmdfcXVldWU9Tm9uZSwgc3RvcHBpbmdf
cXVldWU9Tm9uZSk6Ci0gICAgICAgIHNlbGYuX2Jyb2tlciA9IG1ha2VfYnJva2VyKHNlbGYsIHNl
bGYuX3dvcmtlcl9tb2RlbCwgc3RhcnRpbmdfcXVldWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0b3BwaW5nX3F1ZXVlKQorICAgICAgICBzZWxmLl9icm9rZXIgPSBtYWtl
X2Jyb2tlcihzZWxmLCBzZWxmLl93b3JrZXJfbW9kZWwsIHN0YXJ0aW5nX3F1ZXVlLCBzdG9wcGlu
Z19xdWV1ZSkKIAogICAgIGRlZiB0ZXN0X2NhbmNlbChzZWxmKToKICAgICAgICAgc2VsZi5tYWtl
X2Jyb2tlcigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Jhc2UucHkKaW5kZXggZTAzZDQzMzQyZGQwNDZjMDczMDgyOGRkODQ0MTJmNzJmZWYzOGI5OS4u
NGNmMjZjNWM2MTE2ZDk1ZTZmMzUyMTdmM2FmNTdhMjkxM2UzYzgwNyAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtNTQyLDEyICs1
NDIsMjUgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICAiIiJDcmVhdGVzIHRoZSBzcGVj
aWZpZWQgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4iIiIKICAgICAgICAg
c2VsZi5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeSgqY29tcHMpCiAKKyAgICAjIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIGV4cHJlc3MgZXhhY3RseSB3aGF0IGtpbmQg
b2YgbmFtZSB0aGlzIGlzLgorICAgICMgc2VsZi5fbmFtZSBjYW4gYmUgc2V0IHRvIGFuIGFyYml0
cmFyeSB2YWx1ZSwgeWV0IG1hbnkgY2FsbGVycyAod3JvbmdseSkKKyAgICAjIGFzc3VtZSBuYW1l
KCkgd2lsbCBhbHdheXMgdGhlIG5hbWUgbWF0Y2hpbmcgTGF5b3V0VGVzdHMvcGxhdGZvcm0vUE9S
VF9OQU1FIChha2EgYmFzZWxpbmVfcGF0aCgpKS4KICAgICBkZWYgbmFtZShzZWxmKToKICAgICAg
ICAgIiIiUmV0dXJucyBhIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoaXMgcGFydGlj
dWxhciB0eXBlIG9mIHBvcnQKICAgICAgICAgKGUuZy4sICJtYWMtc25vd2xlb3BhcmQiIG9yICJj
aHJvbWl1bS1ncHUtbGludXgteDg2X3g2NCIgYW5kIGNhbiBiZSBwYXNzZWQKICAgICAgICAgdG8g
ZmFjdG9yeS5nZXQoKSB0byBpbnN0YW50aWF0ZSB0aGUgcG9ydC4iIiIKICAgICAgICAgcmV0dXJu
IHNlbGYuX25hbWUKIAorICAgICMgVGhpcyBzaG91bGQgYmUgaWRlbnRpY2FsIHRvIG5hbWUoKSBm
b3IgYWxsIFdlYktpdCBwb3J0cywgYnV0IGlzIG1vcmUgY2xlYXIgd2hhdCBpdCByZXR1cm5zIGFz
IG5hbWUoKSBjYW4gYmUgc2V0IHRvIGFueXRoaW5nLgorICAgICMgRklYTUU6IEV2ZW50dWFsbHkg
d2UgbmVlZCB0byBzdGFuZGFyaXplIG5hbWluZyBhY3Jvc3MgcG9ydHMgYW5kIHJlbW92ZSBhbGwg
Y2FsbGVycyBvZiBuYW1lKCkuCisgICAgZGVmIGNhbm5vbmljYWxfbmFtZShzZWxmKToKKyAgICAg
ICAgY29tcG9uZW50cyA9IFtzZWxmLnBvcnRfbmFtZV0KKyAgICAgICAgaWYgc2VsZi5fb3BlcmF0
aW5nX3N5c3RlbToKKyAgICAgICAgICAgIGNvbXBvbmVudHMuYXBwZW5kKHNlbGYuX29wZXJhdGlu
Z19zeXN0ZW0pCisgICAgICAgIGlmIHNlbGYuX3ZlcnNpb246ICMgVGhpcyBpcyBvc192ZXJzaW9u
CisgICAgICAgICAgICBjb21wb25lbnRzLmFwcGVuZChzZWxmLl92ZXJzaW9uKQorICAgICAgICBy
ZXR1cm4gIi0iLmpvaW4oY29tcG9uZW50cykKKwogICAgIGRlZiByZWFsX25hbWUoc2VsZik6CiAg
ICAgICAgICMgRklYTUU6IFNlZW1zIHRoaXMgaXMgb25seSB1c2VkIGZvciBNb2NrRFJUIGFuZCBz
aG91bGQgYmUgcmVtb3ZlZC4KICAgICAgICAgIiIiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcG9y
dCBhcyBwYXNzZWQgdG8gdGhlIC0tcGxhdGZvcm0gY29tbWFuZCBsaW5lIGFyZ3VtZW50LiIiIgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW0ucHkKaW5kZXggMGJiMDYzODE5MTk3ZjMwNzU5MTFiZjJjY2RjZjVjZGVhNTMwYTRhYS4uOTEy
YTNmYzI5ZjkzMWVjODc5YjA3MzQ0MWMzODRiNTMyMzRjOTIyZSAxMDA3NTUKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBAIC0zMzAs
MTEgKzMzMCw2IEBAIGNsYXNzIENocm9taXVtUG9ydChQb3J0KToKICAgICAgICAgICAgICAgICBw
YXNzCiAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICBkZWYgX2Nocm9taXVtX2Jhc2VsaW5lX3Bh
dGgoc2VsZiwgcGxhdGZvcm0pOgotICAgICAgICBpZiBwbGF0Zm9ybSBpcyBOb25lOgotICAgICAg
ICAgICAgcGxhdGZvcm0gPSBzZWxmLm5hbWUoKQotICAgICAgICByZXR1cm4gc2VsZi5wYXRoX2Zy
b21fd2Via2l0X2Jhc2UoJ0xheW91dFRlc3RzJywgJ3BsYXRmb3JtJywgcGxhdGZvcm0pCi0KICAg
ICBkZWYgX2NvbnZlcnRfcGF0aChzZWxmLCBwYXRoKToKICAgICAgICAgIiIiSGFuZGxlcyBmaWxl
bmFtZSBjb252ZXJzaW9uIGZvciBzdWJwcm9jZXNzIGNvbW1hbmQgbGluZSBhcmdzLiIiIgogICAg
ICAgICAjIFNlZSBub3RlIGFib3ZlIGluIGRpZmZfaW1hZ2UoKSBmb3Igd2h5IHdlIG5lZWQgdGhp
cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fbWFjLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV9tYWMucHkKaW5kZXggYTNjYWFhMTkwN2ZlMDllNDIxZjAwMDZhZjhiMGU1NmI1
MGVmMmZlNS4uMzMxMDk3Yjk5YWViYmM2NTYwM2VmNjJmNWQ5ZDAxYmY5ZTRmMjc2MyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9t
YWMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9tYWMucHkKQEAgLTMwLDYgKzMwLDcgQEAKICIiIkNocm9taXVtIE1hYyBpbXBsZW1lbnRh
dGlvbiBvZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCiAKIGltcG9ydCBsb2dnaW5nCitpbXBvcnQg
cGxhdGZvcm0KIGltcG9ydCBvcwogaW1wb3J0IHNpZ25hbAogCkBAIC00Miw2ICs0MywyOCBAQCBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKIF9s
b2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCisjIEZJWE1FOiBUaGlzIG1ldGhv
ZCBtaXhlcyB0ZXN0aW5nIGNvZGUgYW5kIHJlbGVhc2UgY29kZS4gIENocm9taXVtTWFjCisjIHNo
b3VsZCBtb3ZlIHRvIGEgdmVyc2lvbiBkZXRlY3Rpb24gc3RyYXRlZ3kgY2xvc2VyIHRvIHRoZSBv
bmUgaW4gbWFjLnB5LgorZGVmIG9zX3ZlcnNpb24ob3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgc3Vw
cG9ydGVkX3ZlcnNpb25zPU5vbmUpOgorICAgIGlmIG5vdCBvc192ZXJzaW9uX3N0cmluZzoKKyAg
ICAgICAgaWYgaGFzYXR0cihwbGF0Zm9ybSwgJ21hY192ZXInKSBhbmQgcGxhdGZvcm0ubWFjX3Zl
cigpWzBdOgorICAgICAgICAgICAgb3NfdmVyc2lvbl9zdHJpbmcgPSBwbGF0Zm9ybS5tYWNfdmVy
KClbMF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTWFrZSB1cCBzb21ldGhpbmcgZm9y
IHRlc3RpbmcuCisgICAgICAgICAgICBvc192ZXJzaW9uX3N0cmluZyA9ICIxMC41LjYiCisgICAg
cmVsZWFzZV92ZXJzaW9uID0gaW50KG9zX3ZlcnNpb25fc3RyaW5nLnNwbGl0KCcuJylbMV0pCisg
ICAgdmVyc2lvbl9zdHJpbmdzID0geworICAgICAgICA1OiAnbGVvcGFyZCcsCisgICAgICAgIDY6
ICdzbm93bGVvcGFyZCcsCisgICAgICAgICMgQWRkIDc6ICdsaW9uJyBoZXJlPworICAgIH0KKyAg
ICBhc3NlcnQgcmVsZWFzZV92ZXJzaW9uID49IG1pbih2ZXJzaW9uX3N0cmluZ3Mua2V5cygpKQor
ICAgIHZlcnNpb25fc3RyaW5nID0gdmVyc2lvbl9zdHJpbmdzLmdldChyZWxlYXNlX3ZlcnNpb24s
ICdmdXR1cmUnKQorICAgIGlmIHN1cHBvcnRlZF92ZXJzaW9uczoKKyAgICAgICAgYXNzZXJ0IHZl
cnNpb25fc3RyaW5nIGluIHN1cHBvcnRlZF92ZXJzaW9ucworICAgIHJldHVybiB2ZXJzaW9uX3N0
cmluZworCisKIGNsYXNzIENocm9taXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgog
ICAgICIiIkNocm9taXVtIE1hYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBjbGFzcy4iIiIK
ICAgICBTVVBQT1JURURfT1NfVkVSU0lPTlMgPSAoJ2xlb3BhcmQnLCAnc25vd2xlb3BhcmQnLCAn
ZnV0dXJlJykKQEAgLTc0LDcgKzk3LDcgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVt
LkNocm9taXVtUG9ydCk6CiAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSBvciAnY2hyb21p
dW0tbWFjJwogICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgcG9y
dF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAgICAgICAgIGlmIHBvcnRfbmFtZS5lbmRzd2l0
aCgnLW1hYycpOgotICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG1hYy5vc192ZXJzaW9uKG9z
X3ZlcnNpb25fc3RyaW5nLCBzZWxmLlNVUFBPUlRFRF9PU19WRVJTSU9OUykKKyAgICAgICAgICAg
IHNlbGYuX3ZlcnNpb24gPSBvc192ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nLCBzZWxmLlNVUFBP
UlRFRF9PU19WRVJTSU9OUykKICAgICAgICAgICAgIHNlbGYuX25hbWUgPSBwb3J0X25hbWUgKyAn
LScgKyBzZWxmLl92ZXJzaW9uCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl92ZXJz
aW9uID0gcG9ydF9uYW1lW3BvcnRfbmFtZS5pbmRleCgnLW1hYy0nKSArIGxlbignLW1hYy0nKTpd
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX3dpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fd2luLnB5CmluZGV4IDA4YTdjM2FiYzRkYmUwNTU2Y2U2ZjAxODVkYThmMjAxMDAy
MDY3MGQuLjM3N2RiZWMxN2E5ZDIwZjU0MTg3YmJjMzFmNDFlNzBkZmRmYmIyMTMgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2lu
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fd2luLnB5CkBAIC0zOCwxMiArMzgsMTMgQEAgaW1wb3J0IGNocm9taXVtCiBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAorIyBGSVhNRTogVGhpcyBiZWxvbmdzIG9uIHNv
bWUgc29ydCBvZiBwbGF0Zm9ybSBvYmplY3QgdG8gYmUgc2hhcmVkIGJldHdlZW4gb3RoZXIgcG9y
dHMuCiBkZWYgb3NfdmVyc2lvbih3aW5kb3dzX3ZlcnNpb249Tm9uZSk6CiAgICAgaWYgbm90IHdp
bmRvd3NfdmVyc2lvbjoKICAgICAgICAgaWYgaGFzYXR0cihzeXMsICdnZXR3aW5kb3dzdmVyc2lv
bicpOgogICAgICAgICAgICAgd2luZG93c192ZXJzaW9uID0gdHVwbGUoc3lzLmdldHdpbmRvd3N2
ZXJzaW9uKClbOjJdKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBNYWtlIHVwIHNvbWV0
aGluZyBmb3IgdGVzdGluZy4KKyAgICAgICAgICAgICMgVGhpcyBjb2RlIGV4aXN0cyB0byBtYWtl
IGl0IHBvc3NpYmxlIHRvIGluc3RhbnRpYXRlIGEgQ2hyb21pdW1XaW5Qb3J0IG9iamVjdCBmcm9t
IG5vbi13aW5kb3dzIHBsYXRmb3JtLgogICAgICAgICAgICAgd2luZG93c192ZXJzaW9uID0gKDUs
IDEpCiAKICAgICB2ZXJzaW9uX3N0cmluZ3MgPSB7CkBAIC01NSw4ICs1Niw2IEBAIGRlZiBvc192
ZXJzaW9uKHdpbmRvd3NfdmVyc2lvbj1Ob25lKToKIAogCiBjbGFzcyBDaHJvbWl1bVdpblBvcnQo
Y2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKLSAgICAiIiJDaHJvbWl1bSBXaW4gaW1wbGVtZW50YXRp
b24gb2YgdGhlIFBvcnQgY2xhc3MuIiIiCi0KICAgICAjIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0
byB1bmlmeSB0aGlzIHdpdGggYmFzZS5UZXN0Q29uZmlndXJhdGlvbi5hbGxfc3lzdGVtcygpPwog
ICAgIFNVUFBPUlRFRF9WRVJTSU9OUyA9ICgneHAnLCAndmlzdGEnLCAnd2luNycpCiAKQEAgLTk4
LDIwICs5NywxOCBAQCBjbGFzcyBDaHJvbWl1bVdpblBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0
KToKICAgICAgICAgICAgIGFzc2VydCBzZWxmLl92ZXJzaW9uIGluIHNlbGYuU1VQUE9SVEVEX1ZF
UlNJT05TLCAiJXMgaXMgbm90IGluICVzIiAlIChzZWxmLl92ZXJzaW9uLCBzZWxmLlNVUFBPUlRF
RF9WRVJTSU9OUykKICAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICd3aW4nCiAKKyAg
ICBkZWYgX2Nocm9taXVtX2N5Z3dpbl9wYXRoKHNlbGYsICpjb21wcyk6CisgICAgICAgIHJldHVy
biBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCJ0aGlyZF9wYXJ0eSIsICJjeWd3aW4iLCAq
Y29tcHMpCisKICAgICBkZWYgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYpOgogICAgICAg
ICBlbnYgPSBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNl
bGYpCiAgICAgICAgICMgUHV0IHRoZSBjeWd3aW4gZGlyZWN0b3J5IGZpcnN0IGluIHRoZSBwYXRo
IHRvIGZpbmQgY3lnd2luMS5kbGwuCi0gICAgICAgIGVudlsiUEFUSCJdID0gIiVzOyVzIiAlICgK
LSAgICAgICAgICAgIHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoInRoaXJkX3BhcnR5Iiwg
ImN5Z3dpbiIsICJiaW4iKSwKLSAgICAgICAgICAgIGVudlsiUEFUSCJdKQorICAgICAgICBlbnZb
IlBBVEgiXSA9ICIlczslcyIgJSAoc2VsZi5fY2hyb21pdW1fY3lnd2luX3BhdGgoImJpbiIpLCBl
bnZbIlBBVEgiXSkKICAgICAgICAgIyBDb25maWd1cmUgdGhlIGN5Z3dpbiBkaXJlY3Rvcnkgc28g
dGhhdCBweXdlYnNvY2tldCBmaW5kcyBwcm9wZXIKICAgICAgICAgIyBweXRob24gZXhlY3V0YWJs
ZSB0byBydW4gY2dpIHByb2dyYW0uCi0gICAgICAgIGVudlsiQ1lHV0lOX1BBVEgiXSA9IHNlbGYu
cGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoCi0gICAgICAgICAgICAidGhpcmRfcGFydHkiLCAiY3ln
d2luIiwgImJpbiIpCisgICAgICAgIGVudlsiQ1lHV0lOX1BBVEgiXSA9IHNlbGYuX2Nocm9taXVt
X2N5Z3dpbl9wYXRoKCJiaW4iKQogICAgICAgICBpZiAoc3lzLnBsYXRmb3JtIGluICgiY3lnd2lu
IiwgIndpbjMyIikgYW5kIHNlbGYuZ2V0X29wdGlvbigncmVnaXN0ZXJfY3lnd2luJykpOgotICAg
ICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCJ0aGly
ZF9wYXJ0eSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImN5Z3dpbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInNldHVwX21vdW50LmJhdCIpCisgICAgICAgICAgICBzZXR1cF9t
b3VudCA9IHNlbGYuX2Nocm9taXVtX2N5Z3dpbl9wYXRoKCJzZXR1cF9tb3VudC5iYXQiKQogICAg
ICAgICAgICAgc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtzZXR1cF9tb3VudF0pCiAgICAg
ICAgIHJldHVybiBlbnYKIApAQCAtMTIyLDExICsxMTksOSBAQCBjbGFzcyBDaHJvbWl1bVdpblBv
cnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICBkZWYgY2hlY2tfYnVpbGQoc2VsZiwgbmVl
ZHNfaHR0cCk6CiAgICAgICAgIHJlc3VsdCA9IGNocm9taXVtLkNocm9taXVtUG9ydC5jaGVja19i
dWlsZChzZWxmLCBuZWVkc19odHRwKQogICAgICAgICBpZiBub3QgcmVzdWx0OgotICAgICAgICAg
ICAgX2xvZy5lcnJvcignRm9yIGNvbXBsZXRlIFdpbmRvd3MgYnVpbGQgcmVxdWlyZW1lbnRzLCBw
bGVhc2UgJwotICAgICAgICAgICAgICAgICAgICAgICAnc2VlOicpCisgICAgICAgICAgICBfbG9n
LmVycm9yKCdGb3IgY29tcGxldGUgV2luZG93cyBidWlsZCByZXF1aXJlbWVudHMsIHBsZWFzZSBz
ZWU6JykKICAgICAgICAgICAgIF9sb2cuZXJyb3IoJycpCi0gICAgICAgICAgICBfbG9nLmVycm9y
KCcgICAgaHR0cDovL2Rldi5jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy9ob3ctdG9zLycKLSAgICAg
ICAgICAgICAgICAgICAgICAgJ2J1aWxkLWluc3RydWN0aW9ucy13aW5kb3dzJykKKyAgICAgICAg
ICAgIF9sb2cuZXJyb3IoJyAgICBodHRwOi8vZGV2LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2hv
dy10b3MvYnVpbGQtaW5zdHJ1Y3Rpb25zLXdpbmRvd3MnKQogICAgICAgICByZXR1cm4gcmVzdWx0
CiAKICAgICBkZWYgcmVsYXRpdmVfdGVzdF9maWxlbmFtZShzZWxmLCBmaWxlbmFtZSk6CkBAIC0x
MzgsOCArMTMzLDcgQEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9y
dCk6CiAgICAgIwogICAgIGRlZiBfYnVpbGRfcGF0aChzZWxmLCAqY29tcHMpOgogICAgICAgICBp
ZiBzZWxmLmdldF9vcHRpb24oJ2J1aWxkX2RpcmVjdG9yeScpOgotICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLmdldF9vcHRpb24oJ2J1aWxkX2RpcmVjdG9yeScp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29tcHMpCisgICAg
ICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuZ2V0X29wdGlvbignYnVp
bGRfZGlyZWN0b3J5JyksICpjb21wcykKIAogICAgICAgICBwID0gc2VsZi5wYXRoX2Zyb21fY2hy
b21pdW1fYmFzZSgnd2Via2l0JywgKmNvbXBzKQogICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVt
LmV4aXN0cyhwKToKQEAgLTE1MywxMiArMTQ3LDEwIEBAIGNsYXNzIENocm9taXVtV2luUG9ydChj
aHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiBf
bGlnaHR0cGRfcGF0aChzZWxmLCAqY29tcHMpOgotICAgICAgICByZXR1cm4gc2VsZi5wYXRoX2Zy
b21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLCAnbGlnaHR0cGQnLCAnd2luJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmNvbXBzKQorICAgICAgICBy
ZXR1cm4gc2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgndGhpcmRfcGFydHknLCAnbGlnaHR0
cGQnLCAnd2luJywgKmNvbXBzKQogCiAgICAgZGVmIF9wYXRoX3RvX2FwYWNoZShzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3RoaXJkX3BhcnR5Jywg
J2N5Z3dpbicsICd1c3InLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc2JpbicsICdodHRwZCcpCisgICAgICAgIHJldHVybiBzZWxmLl9jaHJvbWl1bV9jeWd3
aW5fcGF0aCgndXNyJywgJ3NiaW4nLCAnaHR0cGQnKQogCiAgICAgZGVmIF9wYXRoX3RvX2FwYWNo
ZV9jb25maWdfZmlsZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9p
bihzZWxmLmxheW91dF90ZXN0c19kaXIoKSwgJ2h0dHAnLCAnY29uZicsICdjeWd3aW4taHR0cGQu
Y29uZicpCkBAIC0xODcsNSArMTc5LDQgQEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVt
LkNocm9taXVtUG9ydCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKHNlbGYuZ2V0
X29wdGlvbignY29uZmlndXJhdGlvbicpLCBiaW5hcnlfbmFtZSkKIAogICAgIGRlZiBfcGF0aF90
b193ZGlmZihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jh
c2UoJ3RoaXJkX3BhcnR5JywgJ2N5Z3dpbicsICdiaW4nLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnd2RpZmYuZXhlJykKKyAgICAgICAgcmV0dXJuIHNlbGYu
c2VsZi5fY2hyb21pdW1fY3lnd2luX3BhdGgoJ2JpbicsICd3ZGlmZi5leGUnKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5f
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX3dpbl91bml0dGVzdC5weQppbmRleCBmNjE4MWY1MmY1ZjlmZTU3NDFkOTJmNjE1YzAx
NTIxNzA4YmEzMjJiLi4yOTk3NjNkZjM2ZGJhNzY0MzFlYjQzYjJmYzk1ZWQ0ZDA0NWIwMzE4IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX3dpbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQpAQCAtOTYsOCArOTYsNyBAQCBjbGFz
cyBDaHJvbWl1bVdpblRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIAog
ICAgIGRlZiBhc3NlcnRfbmFtZShzZWxmLCBwb3J0X25hbWUsIHdpbmRvd3NfdmVyc2lvbiwgZXhw
ZWN0ZWQpOgotICAgICAgICBwb3J0ID0gY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydChwb3J0
X25hbWU9cG9ydF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3dzX3ZlcnNpb249d2luZG93c192ZXJzaW9uKQorICAgICAgICBwb3J0ID0gY2hy
b21pdW1fd2luLkNocm9taXVtV2luUG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLCB3aW5kb3dzX3Zl
cnNpb249d2luZG93c192ZXJzaW9uKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3Rl
ZCwgcG9ydC5uYW1lKCkpCiAKICAgICBkZWYgdGVzdF92ZXJzaW9ucyhzZWxmKToKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKaW5kZXgg
N2I2ZjVjYTZhZDUzNWJkMjNjYzc5NDUzOTU2MTk2MTE4ZTQ0Zjg5Zi4uYzNjM2JlOTQyYzIxYjcw
OGVlZmE1MmE5OWIyNTVhZjIwZjBhMmVhOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKQEAgLTU1LDcgKzU1LDcgQEAgZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgRHJpdmVyLCBEcml2ZXJPdXRwdXQsIGZh
Y3RvcnkKIAogIyBGSVhNRTogV2h5IG5vdCBpbmhlcml0IGZyb20gUG9ydD8KIGNsYXNzIERyeVJ1
blBvcnQob2JqZWN0KToKLSAgICAiIiJEcnlSdW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQg
aW50ZXJmYWNlLiIiIgorICAgIHBvcnRfbmFtZSA9ICdkcnlydW4nCiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBwZnggPSAnZHJ5cnVuLScKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQppbmRleCAx
M2I5ZTdiMjJmZWYxOWRiZDRmZjMwYzBhYWJmNWM0MDA2YmRkYTQ5Li4wYWViNzMzNGI2YjhhMTI4
NTA4NTIwMWY4ZTdkNWYzZDczOGQxNmY1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5CkBAIC0yNyw5ICsyNyw2IEBACiAjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0iIiJGYWN0b3J5IG1ldGhvZCB0byByZXRyaWV2
ZSB0aGUgYXBwcm9wcmlhdGUgcG9ydCBpbXBsZW1lbnRhdGlvbi4iIiIKLQotCiBpbXBvcnQgc3lz
CiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IGJ1aWxkZXJzCkBAIC00
NSw3NCArNDIsOTUgQEAgZGVmIGFsbF9wb3J0X25hbWVzKCk6CiAgICAgcmV0dXJuIGJ1aWxkZXJz
LlBPUlRfVE9fQlVJTERFUl9OQU1FLmtleXMoKQogCiAKLWRlZiBnZXQocG9ydF9uYW1lPU5vbmUs
IG9wdGlvbnM9Tm9uZSwgKiprd2FyZ3MpOgorZGVmIGdldChwb3J0X25hbWU9Tm9uZSwgb3B0aW9u
cz1Ob25lLCAqKnBvcnRfYXJncyk6CiAgICAgIiIiUmV0dXJucyBhbiBvYmplY3QgaW1wbGVtZW50
aW5nIHRoZSBQb3J0IGludGVyZmFjZS4gSWYKICAgICBwb3J0X25hbWUgaXMgTm9uZSwgdGhpcyBy
b3V0aW5lIGF0dGVtcHRzIHRvIGd1ZXNzIGF0IHRoZSBtb3N0CiAgICAgYXBwcm9wcmlhdGUgcG9y
dCBvbiB0aGlzIHBsYXRmb3JtLiIiIgotICAgICMgV3JhcHBlZCBmb3IgYmFja3dhcmRzLWNvbXBh
dGliaWxpdHkKLSAgICBpZiBwb3J0X25hbWU6Ci0gICAgICAgIGt3YXJnc1sncG9ydF9uYW1lJ10g
PSBwb3J0X25hbWUKICAgICBpZiBvcHRpb25zOgotICAgICAgICBrd2FyZ3NbJ29wdGlvbnMnXSA9
IG9wdGlvbnMKLSAgICByZXR1cm4gX2dldF9rd2FyZ3MoKiprd2FyZ3MpCisgICAgICAgIHBvcnRf
YXJnc1snb3B0aW9ucyddID0gb3B0aW9ucworICAgIHJldHVybiBfUG9ydEZhY3RvcnkoKS5wb3J0
X2Zyb21fY29tbWFuZGxpbmVfbmFtZV9hbmRfb3B0aW9ucyhwb3J0X25hbWUsICoqcG9ydF9hcmdz
KQogCiAKLWRlZiBfZ2V0X2t3YXJncygqKmt3YXJncyk6Ci0gICAgcG9ydF90b191c2UgPSBrd2Fy
Z3MuZ2V0KCdwb3J0X25hbWUnLCBOb25lKQotICAgIG9wdGlvbnMgPSBrd2FyZ3MuZ2V0KCdvcHRp
b25zJywgTm9uZSkKLSAgICBpZiBwb3J0X3RvX3VzZSBpcyBOb25lOgorY2xhc3MgX1BvcnRGYWN0
b3J5KG9iamVjdCk6CisgICAgZGVmIF9jb21tYW5kbGluZV9uYW1lX2Zyb21fb3B0aW9ucyhzZWxm
LCBvcHRpb25zKToKKyAgICAgICAgdXNlX2Nocm9taXVtX3BvcnQgPSBvcHRpb25zIGFuZCBoYXNh
dHRyKG9wdGlvbnMsICdjaHJvbWl1bScpIGFuZCBvcHRpb25zLmNocm9taXVtCiAgICAgICAgIGlm
IHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIG9yIHN5cy5wbGF0Zm9ybSA9PSAnY3lnd2luJzoKLSAg
ICAgICAgICAgIGlmIG9wdGlvbnMgYW5kIGhhc2F0dHIob3B0aW9ucywgJ2Nocm9taXVtJykgYW5k
IG9wdGlvbnMuY2hyb21pdW06Ci0gICAgICAgICAgICAgICAgcG9ydF90b191c2UgPSAnY2hyb21p
dW0td2luJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwb3J0X3RvX3VzZSA9
ICd3aW4nCi0gICAgICAgIGVsaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6Ci0g
ICAgICAgICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS1saW51eCcKLSAgICAgICAgZWxpZiBz
eXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgICAgICBpZiBvcHRpb25zIGFuZCBoYXNh
dHRyKG9wdGlvbnMsICdjaHJvbWl1bScpIGFuZCBvcHRpb25zLmNocm9taXVtOgotICAgICAgICAg
ICAgICAgIHBvcnRfdG9fdXNlID0gJ2Nocm9taXVtLW1hYycKKyAgICAgICAgICAgIHJldHVybiAn
Y2hyb21pdW0td2luJyBpZiB1c2VfY2hyb21pdW1fcG9ydCBlbHNlICd3aW4nCisgICAgICAgIGlm
IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpOgorICAgICAgICAgICAgIyBGSVhNRTog
VGhpcyBpcyB3cm9uZywgd2UgbmVlZCB0byBzdXBwb3J0IC0tcXQgYW5kIC0tZ3RrIG9wdGlvbnMu
CisgICAgICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
Mzk3MAorICAgICAgICAgICAgcmV0dXJuICdjaHJvbWl1bS1saW51eCcKKyAgICAgICAgaWYgc3lz
LnBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICAgICAgcmV0dXJuICdjaHJvbWl1bS1tYWMn
IGlmIHVzZV9jaHJvbWl1bV9wb3J0IGVsc2UgJ21hYycKKyAgICAgICAgcmV0dXJuIE5vbmUKKwor
ICAgIGRlZiBfY29uc3RydWN0X3BvcnRfZnJvbV9uYW1lX2NvbXBvbmVudHMoc2VsZiwgcG9ydF9j
bGFzcywgbmFtZV9jb21wb25lbnRzLCBwb3J0X2FyZ3MpOgorICAgICAgICBwb3J0ID0gcG9ydF9j
bGFzcygqKnBvcnRfYXJncykKKworICAgICAgICBmb3IgY29tcG9uZW50IGluIG5hbWVfY29tcG9u
ZW50czoKKyAgICAgICAgICAgICMgRklYTUU6IF92ZXJzaW9uIGFuZCBfb3BlcmF0aW5nX3N5c3Rl
bSBzaG91bGQgYmUgbWFkZSBwdWJsaWMgbWVtYmVycy4KKyAgICAgICAgICAgIGlmIGNvbXBvbmVu
dCBpbiBwb3J0LlNVUFBPUlRFRF9PU19WRVJTSU9OUzoKKyAgICAgICAgICAgICAgICAjIFRoZSBw
b3J0IGNvbnN0cnVjdG9yIG1heSBoYXZlIGF1dG8tZGV0ZWN0ZWQgYSBzcGVjaWZpYyB2ZXJzaW9u
LCB0aGUgY29tbWFuZGxpbmVfbmFtZSBjb21wb25lbnRzIHNob3VsZCBvdmVycmlkZSBpdC4KKyAg
ICAgICAgICAgICAgICBwb3J0Ll92ZXJzaW9uID0gY29tcG9uZW50CisgICAgICAgICAgICBlbGlm
IGNvbXBvbmVudCBpbiBwb3J0LlNVUFBPUlRFRF9PUEVSQVRJTkdfU1lTVEVNUzoKKyAgICAgICAg
ICAgICAgICBwb3J0Ll9vcGVyYXRpbmdfc3lzdGVtID0gY29tcG9uZW50CisgICAgICAgICAgICAj
IEZJWE1FOiBXaGVuIHdlIG1vdmUgQ2hyb21pdW0gcG9ydHMgdG8gdXNlIGZhY3RvcnktYmFzZWQg
Y29tcG9uZW50LXBhcnNpbmcgd2Ugd2lsbAorICAgICAgICAgICAgIyBuZWVkIHRvIGFkZCBzdXBw
b3J0IGZvciBTVVBQT1JURURfR1JBUEhJQ1MgYW5kIFNVUFBPUlRFRF9BUkNISVRFQ1RVUkVTLgog
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwb3J0X3RvX3VzZSA9ICdtYWMnCi0K
LSAgICBpZiBwb3J0X3RvX3VzZSBpcyBOb25lOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yKCd1bmtub3duIHBvcnQ7IHN5cy5wbGF0Zm9ybSA9ICIlcyInICUgc3lzLnBsYXRmb3Jt
KQotCi0gICAgaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgndGVzdCcpOgotICAgICAgICBpbXBv
cnQgdGVzdAotICAgICAgICBtYWtlciA9IHRlc3QuVGVzdFBvcnQKLSAgICBlbGlmIHBvcnRfdG9f
dXNlLnN0YXJ0c3dpdGgoJ2RyeXJ1bicpOgotICAgICAgICBpbXBvcnQgZHJ5cnVuCi0gICAgICAg
IG1ha2VyID0gZHJ5cnVuLkRyeVJ1blBvcnQKLSAgICBlbGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dp
dGgoJ21vY2stJyk6Ci0gICAgICAgIGltcG9ydCBtb2NrX2RydAotICAgICAgICBtYWtlciA9IG1v
Y2tfZHJ0Lk1vY2tEUlRQb3J0Ci0gICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdtYWMn
KToKLSAgICAgICAgaW1wb3J0IG1hYwotICAgICAgICBtYWtlciA9IG1hYy5NYWNQb3J0Ci0gICAg
ZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCd3aW4nKToKLSAgICAgICAgaW1wb3J0IHdpbgot
ICAgICAgICBtYWtlciA9IHdpbi5XaW5Qb3J0Ci0gICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3
aXRoKCdndGsnKToKLSAgICAgICAgaW1wb3J0IGd0awotICAgICAgICBtYWtlciA9IGd0ay5HdGtQ
b3J0Ci0gICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdxdCcpOgotICAgICAgICBpbXBv
cnQgcXQKLSAgICAgICAgbWFrZXIgPSBxdC5RdFBvcnQKLSAgICBlbGlmIHBvcnRfdG9fdXNlLnN0
YXJ0c3dpdGgoJ2Nocm9taXVtLWdwdScpOgotICAgICAgICBpbXBvcnQgY2hyb21pdW1fZ3B1Ci0g
ICAgICAgIG1ha2VyID0gY2hyb21pdW1fZ3B1LmdldAotICAgIGVsaWYgcG9ydF90b191c2Uuc3Rh
cnRzd2l0aCgnY2hyb21pdW0tbWFjJyk6Ci0gICAgICAgIGltcG9ydCBjaHJvbWl1bV9tYWMKLSAg
ICAgICAgbWFrZXIgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0Ci0gICAgZWxpZiBwb3J0
X3RvX3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1saW51eCcpOgotICAgICAgICBpbXBvcnQgY2hy
b21pdW1fbGludXgKLSAgICAgICAgbWFrZXIgPSBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4
UG9ydAotICAgIGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnY2hyb21pdW0td2luJyk6Ci0g
ICAgICAgIGltcG9ydCBjaHJvbWl1bV93aW4KLSAgICAgICAgbWFrZXIgPSBjaHJvbWl1bV93aW4u
Q2hyb21pdW1XaW5Qb3J0Ci0gICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdnb29nbGUt
Y2hyb21lJyk6Ci0gICAgICAgIGltcG9ydCBnb29nbGVfY2hyb21lCi0gICAgICAgIG1ha2VyID0g
Z29vZ2xlX2Nocm9tZS5HZXRHb29nbGVDaHJvbWVQb3J0Ci0gICAgZWxzZToKLSAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcigndW5zdXBwb3J0ZWQgcG9ydDogJXMnICUgcG9ydF90b191
c2UpCi0gICAgcmV0dXJuIG1ha2VyKCoqa3dhcmdzKQorICAgICAgICAgICAgICAgIHJhaXNlIE5v
dEltcGxlbWVudGVkRXJyb3IoJ1BvcnQgJXMgZG9lcyBub3QgdW5kZXJzdGFuZCBjb21wb25lbnQg
IiVzIiBpbiBuYW1lICIlcyIuJyAlIChwb3J0LnBvcnRfbmFtZSwgY29tcG9uZW50LCAnLScuam9p
bihbcG9ydC5wb3J0X25hbWVdICsgbmFtZV9jb21wb25lbnRzKSkpCisgICAgICAgICMgRklYTUU6
IG5hbWUoKSBzaG91bGQgYmUgcmVtb3ZlZCwgYnV0IGZvciBub3cgd2UgbmVlZCB0byB1cGRhdGUg
aXQgYWZ0ZXIgcG9zc2libHkgY2hhbmdpbmcgX3ZlcnNpb24uCisgICAgICAgIHBvcnQuX25hbWUg
PSBwb3J0LmNhbm5vbmljYWxfbmFtZSgpCisgICAgICAgIHJldHVybiBwb3J0CisKKyAgICBkZWYg
X3BvcnRfbWFrZXJfZm9yX2Nocm9taXVtX3BvcnQoc2VsZiwgY29tbWFuZGxpbmVfbmFtZSk6Cisg
ICAgICAgIGlmIGNvbW1hbmRsaW5lX25hbWUuc3RhcnRzd2l0aCgnY2hyb21pdW0tbWFjJyk6Cisg
ICAgICAgICAgICBpbXBvcnQgY2hyb21pdW1fbWFjCisgICAgICAgICAgICByZXR1cm4gY2hyb21p
dW1fbWFjLkNocm9taXVtTWFjUG9ydAorICAgICAgICBpZiBjb21tYW5kbGluZV9uYW1lLnN0YXJ0
c3dpdGgoJ2Nocm9taXVtLWxpbnV4Jyk6CisgICAgICAgICAgICBpbXBvcnQgY2hyb21pdW1fbGlu
dXgKKyAgICAgICAgICAgIHJldHVybiBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydAor
ICAgICAgICBpZiBjb21tYW5kbGluZV9uYW1lLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLXdpbicpOgor
ICAgICAgICAgICAgaW1wb3J0IGNocm9taXVtX3dpbgorICAgICAgICAgICAgcmV0dXJuIGNocm9t
aXVtX3dpbi5DaHJvbWl1bVdpblBvcnQKKyAgICAgICAgaWYgY29tbWFuZGxpbmVfbmFtZS5zdGFy
dHN3aXRoKCdjaHJvbWl1bS1ncHUnKToKKyAgICAgICAgICAgIGltcG9ydCBjaHJvbWl1bV9ncHUK
KyAgICAgICAgICAgIHJldHVybiBjaHJvbWl1bV9ncHUuZ2V0CisgICAgICAgIGlmIGNvbW1hbmRs
aW5lX25hbWUuc3RhcnRzd2l0aCgnZ29vZ2xlLWNocm9tZScpOgorICAgICAgICAgICAgaW1wb3J0
IGdvb2dsZV9jaHJvbWUKKyAgICAgICAgICAgIHJldHVybiBnb29nbGVfY2hyb21lLkdldEdvb2ds
ZUNocm9tZVBvcnQKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMgVGhpcyBjcmVhdGVzIGEg
UG9ydCBvYmplY3QsIGdpdmVuIGEgcG9ydC1uYW1lIHByb3ZpZGVkIGJ5IC0tcGxhdGZvcm09Cisg
ICAgIyB3aGljaCBtYXkgaW5jbHVkZSB2ZXJzaW9uLCBhcmNoaXRlY3R1cmUsIGdwdSwgYW5kIG90
aGVyIGluZm9ybWF0aW9uCisgICAgIyB0aGF0IG1heSBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIG9m
ZmljaWFsIG5hbWUgb2YgdGhlIHBvcnQgKCdtYWMnLCAnY2hyb21pdW0nLCBldGMuKQorICAgICMg
b3IgdGhlIG5hbWVzIHNlZW4gaW4gTGF5b3V0VGVzdHMvcGxhdGZvcm0vKi4KKyAgICBkZWYgcG9y
dF9mcm9tX2NvbW1hbmRsaW5lX25hbWVfYW5kX29wdGlvbnMoc2VsZiwgY29tbWFuZGxpbmVfbmFt
ZT1Ob25lLCAqKnBvcnRfYXJncyk6CisgICAgICAgIGNvbW1hbmRsaW5lX25hbWUgPSBjb21tYW5k
bGluZV9uYW1lIG9yIHNlbGYuX2NvbW1hbmRsaW5lX25hbWVfZnJvbV9vcHRpb25zKHBvcnRfYXJn
cy5nZXQoJ29wdGlvbnMnKSkKKyAgICAgICAgaWYgbm90IGNvbW1hbmRsaW5lX25hbWU6CisgICAg
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdVbmtub3duIHBvcnQ7IHN5cy5wbGF0
Zm9ybSA9ICIlcyInICUgc3lzLnBsYXRmb3JtKQorCisgICAgICAgIG5hbWVfY29tcG9uZW50cyA9
IGNvbW1hbmRsaW5lX25hbWUuc3BsaXQoJy0nKQorCisgICAgICAgICMgVGhlc2UgYXJlIGltcG9y
dGVkIGhlcmUgdG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cyBpbiBwb3J0cy9fX2luaXRfXy5weQor
ICAgICAgICAjIFRoZSBjb3JyZWN0IGxvbmctdGVybSBmaXggaXMgbGlrZWx5IHRvIHJlbW92ZSB0
aGUgaW1wb3J0IG9mIHRoaXMgZmlsZSBmcm9tIF9faW5pdF9fLnB5CisgICAgICAgIGZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IHF0LCBndGssIHdpbiwgbWFjLCB0ZXN0LCBk
cnlydW4sIG1vY2tfZHJ0CisKKyAgICAgICAgZm9yIHBvcnRfY2xhc3MgaW4gKG1hYy5NYWNQb3J0
LCB3aW4uV2luUG9ydCwgZ3RrLkd0a1BvcnQsIHF0LlF0UG9ydCk6CisgICAgICAgICAgICBpZiBu
YW1lX2NvbXBvbmVudHNbMF0gPT0gcG9ydF9jbGFzcy5wb3J0X25hbWU6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX2NvbnN0cnVjdF9wb3J0X2Zyb21fbmFtZV9jb21wb25lbnRzKHBvcnRf
Y2xhc3MsIG5hbWVfY29tcG9uZW50c1sxOl0sIHBvcnRfYXJncykKKworICAgICAgICAjIFRlc3Qg
YW5kIENocm9taXVtIHBvcnRzIHN0aWxsIGV4cGVjdCBhIHBvcnRfbmFtZSBhcmd1bWVudCB0byB0
aGVpciBjb25zdHJ1Y3RvcnMuCisgICAgICAgIGlmIGNvbW1hbmRsaW5lX25hbWU6CisgICAgICAg
ICAgICBwb3J0X2FyZ3NbJ3BvcnRfbmFtZSddID0gY29tbWFuZGxpbmVfbmFtZQorCisgICAgICAg
IGZvciBwb3J0X2NsYXNzIGluICh0ZXN0LlRlc3RQb3J0LCBkcnlydW4uRHJ5UnVuUG9ydCwgbW9j
a19kcnQuTW9ja0RSVFBvcnQpOgorICAgICAgICAgICAgaWYgbmFtZV9jb21wb25lbnRzWzBdID09
IHBvcnRfY2xhc3MucG9ydF9uYW1lOgorICAgICAgICAgICAgICAgICMgVGVzdCBwb3J0cyBoYXZl
IHNwZWNpYWwgcG9ydF9uYW1lIHBhcnNpbmcgaW4gdGhlIHZhcmlvdXMgUG9ydCBjb25zdHJ1Y3Rv
cnMuCisgICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRfY2xhc3MoKipwb3J0X2FyZ3MpCisKKyAg
ICAgICAgIyBDaHJvbWl1bSBwb3J0cyB1c2UgY3VzdG9tIHBvcnQgY29udHJ1Y3RvcnMgdG8gaGFu
ZGxlIGNyYXp5IHRoaW5ncyBsaWtlIGdwdSBhbmQgZ29vZ2xlLWJyYW5kZWQgcmVzdWx0cy4KKyAg
ICAgICAgIyBFdmVudHVhbGx5IHRoaXMgc2hvdWxkIGJlIG1vdmVkIGNsb3NlciB0byB3aGF0IFdl
YktpdCBwb3J0cyBkby4KKyAgICAgICAgbWFrZXIgPSBzZWxmLl9wb3J0X21ha2VyX2Zvcl9jaHJv
bWl1bV9wb3J0KGNvbW1hbmRsaW5lX25hbWUpCisgICAgICAgIGlmIG5vdCBtYWtlcjoKKyAgICAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBvcnQ6ICVzJyAl
IGNvbW1hbmRsaW5lX25hbWUpCisgICAgICAgIHJldHVybiBtYWtlcigqKnBvcnRfYXJncykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKaW5kZXgg
OWE1NTFjNWVkNGE3MmE2MTIxYjFlZDgzMjA0NzQxNDI0MWRjNjAzMC4uNDU2MjIwYWNiNTU1NGJk
MTM1OGI0ZmJmYmUwOTc3YWIxMjVjZWVlYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKQEAgLTM4LDY2ICszOCw0NiBAQCBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy5wb3J0LndlYmtpdCBpbXBvcnQgV2ViS2l0UG9ydAogX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKLWRlZiBvc192ZXJzaW9uKG9zX3ZlcnNpb25f
c3RyaW5nPU5vbmUsIHN1cHBvcnRlZF92ZXJzaW9ucz1Ob25lKToKLSAgICBpZiBub3Qgb3NfdmVy
c2lvbl9zdHJpbmc6Ci0gICAgICAgIGlmIGhhc2F0dHIocGxhdGZvcm0sICdtYWNfdmVyJykgYW5k
IHBsYXRmb3JtLm1hY192ZXIoKVswXToKLSAgICAgICAgICAgIG9zX3ZlcnNpb25fc3RyaW5nID0g
cGxhdGZvcm0ubWFjX3ZlcigpWzBdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIE1ha2Ug
dXAgc29tZXRoaW5nIGZvciB0ZXN0aW5nLgotICAgICAgICAgICAgb3NfdmVyc2lvbl9zdHJpbmcg
PSAiMTAuNS42IgotICAgIHJlbGVhc2VfdmVyc2lvbiA9IGludChvc192ZXJzaW9uX3N0cmluZy5z
cGxpdCgnLicpWzFdKQotICAgIHZlcnNpb25fc3RyaW5ncyA9IHsKLSAgICAgICAgNTogJ2xlb3Bh
cmQnLAotICAgICAgICA2OiAnc25vd2xlb3BhcmQnLAotICAgICAgICAjIEFkZCA3OiAnbGlvbicg
aGVyZT8KLSAgICB9Ci0gICAgYXNzZXJ0IHJlbGVhc2VfdmVyc2lvbiA+PSBtaW4odmVyc2lvbl9z
dHJpbmdzLmtleXMoKSkKLSAgICB2ZXJzaW9uX3N0cmluZyA9IHZlcnNpb25fc3RyaW5ncy5nZXQo
cmVsZWFzZV92ZXJzaW9uLCAnZnV0dXJlJykKLSAgICBpZiBzdXBwb3J0ZWRfdmVyc2lvbnM6Ci0g
ICAgICAgIGFzc2VydCB2ZXJzaW9uX3N0cmluZyBpbiBzdXBwb3J0ZWRfdmVyc2lvbnMKLSAgICBy
ZXR1cm4gdmVyc2lvbl9zdHJpbmcKLQotCiBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogICAg
IHBvcnRfbmFtZSA9ICJtYWMiCiAKLSAgICAjIEZJWE1FOiAnd2syJyBwcm9iYWJseSBzaG91bGRu
J3QgYmUgYSB2ZXJzaW9uLCBpdCBzaG91bGQgcHJvYmFibHkgYmUKLSAgICAjIGEgbW9kaWZpZXIs
IGxpa2UgJ2Nocm9taXVtLWdwdScgaXMgdG8gJ2Nocm9taXVtJy4KLSAgICBTVVBQT1JURURfVkVS
U0lPTlMgPSAoJ2xlb3BhcmQnLCAnc25vd2xlb3BhcmQnLCAnZnV0dXJlJywgJ3drMicpCi0KLSAg
ICBGQUxMQkFDS19QQVRIUyA9IHsKLSAgICAgICAgJ2xlb3BhcmQnOiBbCi0gICAgICAgICAgICAn
bWFjLWxlb3BhcmQnLAotICAgICAgICAgICAgJ21hYy1zbm93bGVvcGFyZCcsCi0gICAgICAgICAg
ICAnbWFjJywKLSAgICAgICAgXSwKLSAgICAgICAgJ3Nub3dsZW9wYXJkJzogWwotICAgICAgICAg
ICAgJ21hYy1zbm93bGVvcGFyZCcsCi0gICAgICAgICAgICAnbWFjJywKLSAgICAgICAgXSwKLSAg
ICAgICAgJ2Z1dHVyZSc6IFsKLSAgICAgICAgICAgICdtYWMnLAotICAgICAgICBdLAotICAgICAg
ICAnd2syJzogW10sICAjIHdrMiBkb2VzIG5vdCBtYWtlIHNlbnNlIGFzIGEgdmVyc2lvbiwgdGhp
cyBpcyBvbmx5IGhlcmUgdG8gbWFrZSB0aGUgcmViYXNlbGluZSB1bml0IHRlc3RzIG5vdCBjcmFz
aC4KLSAgICB9Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9zX3Zl
cnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9u
YW1lIG9yICdtYWMnCi0gICAgICAgIFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1l
PXBvcnRfbmFtZSwgKiprd2FyZ3MpCi0gICAgICAgIGlmIHBvcnRfbmFtZSA9PSAnbWFjJzoKLSAg
ICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBvc192ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nKQot
ICAgICAgICAgICAgc2VsZi5fbmFtZSA9IHBvcnRfbmFtZSArICctJyArIHNlbGYuX3ZlcnNpb24K
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2VydCBwb3J0X25hbWUuc3RhcnRzd2l0aCgn
bWFjJykKLSAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBwb3J0X25hbWVbbGVuKCdtYWMtJyk6
XQotICAgICAgICAgICAgYXNzZXJ0IHNlbGYuX3ZlcnNpb24gaW4gc2VsZi5TVVBQT1JURURfVkVS
U0lPTlMsICIlcyBpcyBub3QgaW4gJXMiICUgKHNlbGYuX3ZlcnNpb24sIHNlbGYuU1VQUE9SVEVE
X1ZFUlNJT05TKQorICAgIFNVUFBPUlRFRF9PU19WRVJTSU9OUyA9IGZyb3plbnNldChbJ2xlb3Bh
cmQnLCAnc25vd2xlb3BhcmQnXSkKKyAgICBWRVJTSU9OX0ZBTExCQUNLX09SREVSID0gKCdtYWMt
bGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJykKKworICAgIGRlZiBfdmVyc2lvbl9z
dHJpbmdfZnJvbV9tYWNfdmVyX3R1cGxlKHNlbGYsIG1hY192ZXJfdHVwbGUpOgorICAgICAgICBy
ZWxlYXNlX3N0cmluZyA9IG1hY192ZXJfdHVwbGVbMF0KKyAgICAgICAgaWYgbm90IHJlbGVhc2Vf
c3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmVsZWFzZV92ZXJzaW9u
ID0gaW50KHJlbGVhc2Vfc3RyaW5nLnNwbGl0KCcuJylbMV0pCisgICAgICAgIHZlcnNpb25fc3Ry
aW5ncyA9IHsKKyAgICAgICAgICAgIDU6ICdsZW9wYXJkJywKKyAgICAgICAgICAgIDY6ICdzbm93
bGVvcGFyZCcsCisgICAgICAgICAgICAjIEZJWE1FOiBXaGVuIEFwcGxlIGNvbW1pdHMgbWFjLWxp
b24gdGhleSdsbCB3YW50IHRvIGFkZCAnbGlvbicgaGVyZS4KKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gdmVyc2lvbl9zdHJpbmdzLmdldChyZWxlYXNlX3ZlcnNpb24pCisKKyAgICBkZWYgX2Rl
dGVjdF92ZXJzaW9uKHNlbGYpOgorICAgICAgICBpZiBub3QgaGFzYXR0cihwbGF0Zm9ybSwgJ21h
Y192ZXInKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBzZWxmLl92
ZXJzaW9uX3N0cmluZ19mcm9tX21hY192ZXJfdHVwbGUocGxhdGZvcm0ubWFjX3ZlcigpKQorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToK
KyAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKKyAgICAgICAgc2Vs
Zi5fdmVyc2lvbiA9IG9zX3ZlcnNpb25fc3RyaW5nIG9yIHNlbGYuX2RldGVjdF92ZXJzaW9uKCkK
KyAgICAgICAgc2VsZi5fbmFtZSA9IHNlbGYuY2Fubm9uaWNhbF9uYW1lKCkKICAgICAgICAgc2Vs
Zi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdtYWMnCiAKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3Bh
dGgoc2VsZik6Ci0gICAgICAgIHNlYXJjaF9wYXRocyA9IHNlbGYuRkFMTEJBQ0tfUEFUSFNbc2Vs
Zi5fdmVyc2lvbl0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZmFsbGJhY2tfaW5kZXggPSBz
ZWxmLlZFUlNJT05fRkFMTEJBQ0tfT1JERVIuaW5kZXgoc2VsZi5jYW5ub25pY2FsX25hbWUoKSkK
KyAgICAgICAgICAgIGZhbGxiYWNrX25hbWVzID0gbGlzdChzZWxmLlZFUlNJT05fRkFMTEJBQ0tf
T1JERVJbZmFsbGJhY2tfaW5kZXg6XSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAg
ICAgICAgICAjIFVua25vd24gdmVyc2lvbnMganVzdCBmYWxsIGJhY2sgdG8gdGhlIGJhc2UgcG9y
dCByZXN1bHRzLgorICAgICAgICAgICAgZmFsbGJhY2tfbmFtZXMgPSBbc2VsZi5wb3J0X25hbWVd
CiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVyJyk6Ci0gICAg
ICAgICAgICBzZWFyY2hfcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3drMl9wb3J0X25hbWUoKSkKLSAg
ICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCwgc2VhcmNoX3BhdGhz
KQorICAgICAgICAgICAgZmFsbGJhY2tfbmFtZXMuaW5zZXJ0KDAsICdtYWMtd2syJykKKyAgICAg
ICAgICAgICMgTm90ZSB3ZSBkbyBub3QgYWRkICd3azInIGhlcmUsIGV2ZW4gdGhvdWdoIGl0J3Mg
aW5jbHVkZWQgaW4gX3NraXBwZWRfc2VhcmNoX3BhdGhzKCkuCisgICAgICAgIHJldHVybiBtYXAo
c2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIGZhbGxiYWNrX25hbWVzKQogCiAgICAgZGVmIGlz
X2NyYXNoX3JlcG9ydGVyKHNlbGYsIHByb2Nlc3NfbmFtZSk6CiAgICAgICAgIHJldHVybiByZS5z
ZWFyY2gocidSZXBvcnRDcmFzaCcsIHByb2Nlc3NfbmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKaW5kZXgg
NDM0NjMwMGU4Mzg3NTY2NjY0MzI3NGEwZGQ1OTY2MzdiNWMwMTYwOC4uN2ZkZDMzNDRmYmZjZTMz
YTFmODlmMmY1YmFjNGJkY2M1YTQ1Yzk4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKQEAgLTQ0LDggKzQ0
LDggQEAgY2xhc3MgTWFjVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAg
ICAgICByZXR1cm4gTm9uZQogICAgICAgICByZXR1cm4gTWFjUG9ydAogCi0gICAgZGVmIGFzc2Vy
dF9za2lwcGVkX2ZpbGVfc2VhcmNoX3BhdGhzKHNlbGYsIHBvcnRfbmFtZSwgZXhwZWN0ZWRfcGF0
aHMpOgotICAgICAgICBwb3J0ID0gTWFjUG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLCBmaWxlc3lz
dGVtPU1vY2tGaWxlU3lzdGVtKCksIHVzZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVj
dXRpdmUoKSkKKyAgICBkZWYgYXNzZXJ0X3NraXBwZWRfZmlsZV9zZWFyY2hfcGF0aHMoc2VsZiwg
dmVyc2lvbiwgZXhwZWN0ZWRfcGF0aHMsIHVzZV93ZWJraXQyPUZhbHNlKToKKyAgICAgICAgcG9y
dCA9IE1hY1BvcnQob3NfdmVyc2lvbl9zdHJpbmc9dmVyc2lvbiwgb3B0aW9ucz1Nb2NrT3B0aW9u
cyh3ZWJraXRfdGVzdF9ydW5uZXI9dXNlX3dlYmtpdDIpLCBmaWxlc3lzdGVtPU1vY2tGaWxlU3lz
dGVtKCksIHVzZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUoKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9za2lwcGVkX2ZpbGVfc2VhcmNoX3BhdGhzKCksIGV4
cGVjdGVkX3BhdGhzKQogCiAgICAgZGVmIHRlc3Rfc2tpcHBlZF9maWxlX3NlYXJjaF9wYXRocyhz
ZWxmKToKQEAgLTUzLDggKzUzLDEzIEBAIGNsYXNzIE1hY1Rlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0
VGVzdENhc2UpOgogICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKICAgICAgICAg
ICAgIHJldHVybiBOb25lCiAKLSAgICAgICAgc2VsZi5hc3NlcnRfc2tpcHBlZF9maWxlX3NlYXJj
aF9wYXRocygnbWFjLXNub3dsZW9wYXJkJywgc2V0KFsnbWFjLXNub3dsZW9wYXJkJywgJ21hYydd
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRfc2tpcHBlZF9maWxlX3NlYXJjaF9wYXRocygnbWFjLWxl
b3BhcmQnLCBzZXQoWydtYWMtbGVvcGFyZCcsICdtYWMnXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0
X3NraXBwZWRfZmlsZV9zZWFyY2hfcGF0aHMoJ3Nub3dsZW9wYXJkJywgc2V0KFsnbWFjLXNub3ds
ZW9wYXJkJywgJ21hYyddKSkKKyAgICAgICAgc2VsZi5hc3NlcnRfc2tpcHBlZF9maWxlX3NlYXJj
aF9wYXRocygnbGVvcGFyZCcsIHNldChbJ21hYy1sZW9wYXJkJywgJ21hYyddKSkKKworICAgICAg
ICAjIE5vdGUgaG93IHRoZSBTa2lwcGVkIHNlYXJjaCBwYXRocyBpbmNsdWRlICd3azInIGV2ZW4g
dGhvdWdoIGJhc2VsaW5lX3NlYXJjaF9wYXRoIGRvZXMgbm90LgorICAgICAgICBzZWxmLmFzc2Vy
dF9za2lwcGVkX2ZpbGVfc2VhcmNoX3BhdGhzKCdzbm93bGVvcGFyZCcsIHNldChbJ21hYy1zbm93
bGVvcGFyZCcsICdtYWMnLCAnbWFjLXdrMicsICd3azInXSksIHVzZV93ZWJraXQyPVRydWUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X3NraXBwZWRfZmlsZV9zZWFyY2hfcGF0aHMoJ2xlb3BhcmQnLCBz
ZXQoWydtYWMtbGVvcGFyZCcsICdtYWMnLCAnbWFjLXdrMicsICd3azInXSksIHVzZV93ZWJraXQy
PVRydWUpCisKICAgICAgICAgIyBXZSBjYW5ub3QgdGVzdCBqdXN0ICJtYWMiIGhlcmUgYXMgdGhl
IE1hY1BvcnQgY29uc3RydWN0b3IgYXV0b21hdGljYWxseSBmaWxscyBpbiB0aGUgdmVyc2lvbiBm
cm9tIHRoZSBydW5uaW5nIE9TLgogICAgICAgICAjIHNlbGYuYXNzZXJ0X3NraXBwZWRfZmlsZV9z
ZWFyY2hfcGF0aHMoJ21hYycsIFsnbWFjJ10pCiAKQEAgLTc5LDEzICs4NCw5IEBAIHN2Zy9iYXRp
ay90ZXh0L3NtYWxsRm9udHMuc3ZnCiAgICAgICAgIHBvcnQgPSBNYWNQb3J0KGZpbGVzeXN0ZW09
TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9ja0V4ZWN1dGl2
ZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuX3Rlc3RzX2Zyb21fc2tpcHBlZF9m
aWxlX2NvbnRlbnRzKHNlbGYuZXhhbXBsZV9za2lwcGVkX2ZpbGUpLCBzZWxmLmV4YW1wbGVfc2tp
cHBlZF90ZXN0cykKIAotICAgIGRlZiBhc3NlcnRfbmFtZShzZWxmLCBwb3J0X25hbWUsIG9zX3Zl
cnNpb25fc3RyaW5nLCBleHBlY3RlZCk6Ci0gICAgICAgIHBvcnQgPSBNYWNQb3J0KHBvcnRfbmFt
ZT1wb3J0X25hbWUsIG9zX3ZlcnNpb25fc3RyaW5nPW9zX3ZlcnNpb25fc3RyaW5nLCBmaWxlc3lz
dGVtPU1vY2tGaWxlU3lzdGVtKCksIHVzZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVj
dXRpdmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgp
KQotCiAgICAgZGVmIHRlc3RfdGVzdHNfZm9yX290aGVyX3BsYXRmb3JtcyhzZWxmKToKICAgICAg
ICAgcGxhdGZvcm1zID0gWydtYWMnLCAnY2hyb21pdW0tbGludXgnLCAnbWFjLXNub3dsZW9wYXJk
J10KLSAgICAgICAgcG9ydCA9IE1hY1BvcnQocG9ydF9uYW1lPSdtYWMtc25vd2xlb3BhcmQnLCBm
aWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKCksIHVzZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1v
Y2tFeGVjdXRpdmUoKSkKKyAgICAgICAgcG9ydCA9IE1hY1BvcnQob3NfdmVyc2lvbl9zdHJpbmc9
J3Nub3dsZW9wYXJkJywgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLCB1c2VyPU1vY2tVc2Vy
KCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCiAgICAgICAgIHBsYXRmb3JtX2Rpcl9wYXRo
cyA9IG1hcChwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCwgcGxhdGZvcm1zKQogICAgICAgICAj
IFJlcGxhY2Ugb3VyIGVtcHR5IG1vY2sgZmlsZSBzeXN0ZW0gd2l0aCBvbmUgd2hpY2ggaGFzIG91
ciBleHBlY3RlZCBwbGF0Zm9ybSBkaXJlY3Rvcmllcy4KICAgICAgICAgcG9ydC5fZmlsZXN5c3Rl
bSA9IE1vY2tGaWxlU3lzdGVtKGRpcnM9cGxhdGZvcm1fZGlyX3BhdGhzKQpAQCAtOTUsNTEgKzk2
LDI3IEBAIHN2Zy9iYXRpay90ZXh0L3NtYWxsRm9udHMuc3ZnCiAgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoJ3BsYXRmb3JtL21hYycgaW4gZGlyc190b19za2lwKQogICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKCdwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQnIGluIGRpcnNfdG9fc2tpcCkKIAotICAg
IGRlZiB0ZXN0X3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIHBvcnQgPSBNYWNQb3J0KGZpbGVzeXN0
ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9ja0V4ZWN1
dGl2ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC52ZXJzaW9uKCkpCisgICAgZGVm
IF9hc3NlcnRfdmVyc2lvbl9zdHJpbmdfZm9yX3JlbGVhc2Vfc3RyaW5nKHNlbGYsIHBvcnQsIGV4
cGVjdGVkX3ZlcnNpb25fc3RyaW5nLCByZWxlYXNlX3N0cmluZyk6CisgICAgICAgIG1hY192ZXIg
PSAocmVsZWFzZV9zdHJpbmcsICgnJywgJycsICcnKSwgJ2kzODYnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhwb3J0Ll92ZXJzaW9uX3N0cmluZ19mcm9tX21hY192ZXJfdHVwbGUobWFjX3Zl
ciksIGV4cGVjdGVkX3ZlcnNpb25fc3RyaW5nKQogCi0gICAgZGVmIHRlc3RfdmVyc2lvbnMoc2Vs
Zik6CisgICAgZGVmIHRlc3RfdmVyc2lvbl9zdHJpbmdfZnJvbV9tYWNfdmVyX3R1cGxlKHNlbGYp
OgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAgICBpZiBwb3J0OgotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQubmFtZSgpIGluICgnbWFjLWxlb3BhcmQnLCAn
bWFjLXNub3dsZW9wYXJkJywgJ21hYy1mdXR1cmUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydF9u
YW1lKE5vbmUsICcxMC41LjMnLCAnbWFjLWxlb3BhcmQnKQotICAgICAgICBzZWxmLmFzc2VydF9u
YW1lKCdtYWMnLCAnMTAuNS4zJywgJ21hYy1sZW9wYXJkJykKLSAgICAgICAgc2VsZi5hc3NlcnRf
bmFtZSgnbWFjLWxlb3BhcmQnLCAnMTAuNC44JywgJ21hYy1sZW9wYXJkJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRfbmFtZSgnbWFjLWxlb3BhcmQnLCAnMTAuNS4zJywgJ21hYy1sZW9wYXJkJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLWxlb3BhcmQnLCAnMTAuNi4zJywgJ21hYy1sZW9w
YXJkJykKLQotICAgICAgICBzZWxmLmFzc2VydF9uYW1lKE5vbmUsICcxMC42LjMnLCAnbWFjLXNu
b3dsZW9wYXJkJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjJywgJzEwLjYuMycsICdt
YWMtc25vd2xlb3BhcmQnKQotICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMtc25vd2xlb3Bh
cmQnLCAnMTAuNC4zJywgJ21hYy1zbm93bGVvcGFyZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25h
bWUoJ21hYy1zbm93bGVvcGFyZCcsICcxMC41LjMnLCAnbWFjLXNub3dsZW9wYXJkJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLXNub3dsZW9wYXJkJywgJzEwLjYuMycsICdtYWMtc25v
d2xlb3BhcmQnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9uZSwgJzEwLjcnLCAnbWFj
LWZ1dHVyZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoTm9uZSwgJzEwLjcuMycsICdtYWMt
ZnV0dXJlJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuOCcsICdtYWMtZnV0
dXJlJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjJywgJzEwLjcuMycsICdtYWMtZnV0
dXJlJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFjLWZ1dHVyZScsICcxMC40LjMnLCAn
bWFjLWZ1dHVyZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X25hbWUoJ21hYy1mdXR1cmUnLCAnMTAu
NS4zJywgJ21hYy1mdXR1cmUnKQotICAgICAgICBzZWxmLmFzc2VydF9uYW1lKCdtYWMtZnV0dXJl
JywgJzEwLjYuMycsICdtYWMtZnV0dXJlJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbmFtZSgnbWFj
LWZ1dHVyZScsICcxMC43LjMnLCAnbWFjLWZ1dHVyZScpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICcxMC4zLjEnLCAn
c2hvdWxkLXJhaXNlLWFzc2VydGlvbi1zby10aGlzLXZhbHVlLWRvZXMtbm90LW1hdHRlcicpCisg
ICAgICAgIHNlbGYuX2Fzc2VydF92ZXJzaW9uX3N0cmluZ19mb3JfcmVsZWFzZV9zdHJpbmcocG9y
dCwgJ2xlb3BhcmQnLCAnMTAuNS4zJykKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3ZlcnNpb25fc3Ry
aW5nX2Zvcl9yZWxlYXNlX3N0cmluZyhwb3J0LCAnc25vd2xlb3BhcmQnLCAnMTAuNi4zJykKKyAg
ICAgICAgc2VsZi5fYXNzZXJ0X3ZlcnNpb25fc3RyaW5nX2Zvcl9yZWxlYXNlX3N0cmluZyhwb3J0
LCBOb25lLCAnMTAuNy4zJykKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3ZlcnNpb25fc3RyaW5nX2Zv
cl9yZWxlYXNlX3N0cmluZyhwb3J0LCBOb25lLCAnMTAuNC4zJykKIAogICAgIGRlZiBfYXNzZXJ0
X3NlYXJjaF9wYXRoKHNlbGYsIHNlYXJjaF9wYXRocywgdmVyc2lvbiwgdXNlX3dlYmtpdDI9RmFs
c2UpOgotICAgICAgICAjIEZJWE1FOiBQb3J0IGNvbnN0cnVjdG9ycyBzaG91bGQgbm90ICJwYXJz
ZSIgdGhlIHBvcnQgbmFtZSwgYnV0Ci0gICAgICAgICMgcmF0aGVyIGJlIHBhc3NlZCBjb21wb25l
bnRzIChkaXJlY3RseSBvciB2aWEgc2V0dGVycykuICBPbmNlCi0gICAgICAgICMgd2UgZml4IHRo
YXQsIHRoaXMgbWV0aG9kIHdpbGwgbmVlZCBhIHJlLXdyaXRlLgotICAgICAgICBwb3J0ID0gTWFj
UG9ydCgnbWFjLSVzJyAlIHZlcnNpb24sIG9wdGlvbnM9TW9ja09wdGlvbnMod2Via2l0X3Rlc3Rf
cnVubmVyPXVzZV93ZWJraXQyKSwgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLCB1c2VyPU1v
Y2tVc2VyKCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCisgICAgICAgIHBvcnQgPSBNYWNQ
b3J0KG9zX3ZlcnNpb25fc3RyaW5nPXZlcnNpb24sIG9wdGlvbnM9TW9ja09wdGlvbnMod2Via2l0
X3Rlc3RfcnVubmVyPXVzZV93ZWJraXQyKSwgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLCB1
c2VyPU1vY2tVc2VyKCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCiAgICAgICAgIGFic29s
dXRlX3NlYXJjaF9wYXRocyA9IG1hcChwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCwgc2VhcmNo
X3BhdGhzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3NlYXJjaF9w
YXRoKCksIGFic29sdXRlX3NlYXJjaF9wYXRocykKIAogICAgIGRlZiB0ZXN0X2Jhc2VsaW5lX3Nl
YXJjaF9wYXRoKHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBJcyB0aGlzIHJlYWxseSByaWdodD8g
IFNob3VsZCBtYWMtbGVvcGFyZCBmYWxsYmFjayB0byBtYWMtc25vd2xlb3BhcmQ/CiAgICAgICAg
IHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFy
ZCcsICdtYWMnXSwgJ2xlb3BhcmQnKQogICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgo
WydtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICdzbm93bGVvcGFyZCcpCiAKKyAgICAgICAgIyBO
b3RlIHRoYXQgd2syIGlzIG5ldmVyIHVzZWQgZm9yIHJlc3VsdHMsIG9ubHkgZm9yIFNraXBwZWQg
ZmlsZXMuICBUaGlzIG1hdGNoZXMgT1JXVC4KICAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9w
YXRoKFsnbWFjLXdrMicsICdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10s
ICdsZW9wYXJkJywgdXNlX3dlYmtpdDI9VHJ1ZSkKICAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJj
aF9wYXRoKFsnbWFjLXdrMicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICdzbm93bGVvcGFy
ZCcsIHVzZV93ZWJraXQyPVRydWUpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CmluZGV4IDAyNTI5MGU0M2U1ZmMzMDM1MzVm
ODY0OWYwNjY1M2QxMjRhYTZiMTYuLmIzODkwODI5NzE3Y2ViYmNmYzM2N2RhMTNjODM5ZTIwMTU0
ZDYzNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvbW9ja19kcnQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9tb2NrX2RydC5weQpAQCAtNDksNyArNDksNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCiAKIAogY2xhc3MgTW9ja0RSVFBvcnQob2JqZWN0KToKLSAgICAiIiJNb2Nr
UG9ydCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCisgICAgcG9ydF9u
YW1lID0gJ21vY2snCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAg
ICBwcmVmaXggPSAnbW9jay0nCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3F0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9xdC5weQppbmRleCBmZGFiYTFjODQ5NTQ2NjFmZTg1M2M3YjMwZjhlYTNiMTAxOWZi
YWEyLi5iMDhjZGQ0MzNkNjNjOTNhMjZiMjcyOGNmODgxN2U3NTFhZjllNTUwIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKQEAgLTI2LDggKzI2
LDYgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIlF0V2ViS2l0IGltcGxl
bWVudGF0aW9uIG9mIHRoZSBQb3J0IGludGVyZmFjZS4iIiIKLQogaW1wb3J0IGxvZ2dpbmcKIGlt
cG9ydCBzeXMKIApAQCAtNDEsNiArMzksNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCiAKIGNsYXNzIFF0UG9ydChXZWJLaXRQb3J0KToKICAgICBwb3J0X25hbWUgPSAicXQi
CisgICAgU1VQUE9SVEVEX09QRVJBVElOR19TWVNURU1TID0gZnJvemVuc2V0KFsnbGludXgnLCAn
d2luJywgJ21hYyddKQogCiAgICAgZGVmIF9wb3J0X2ZsYWdfZm9yX3NjcmlwdHMoc2VsZik6CiAg
ICAgICAgIHJldHVybiAiLS1xdCIKQEAgLTU3LDE0ICs1NiwxMiBAQCBjbGFzcyBRdFBvcnQoV2Vi
S2l0UG9ydCk6CiAgICAgIyBzeXNfcGxhdGZvcm0gZXhpc3RzIG9ubHkgZm9yIHVuaXQgdGVzdGlu
Zy4KICAgICBkZWYgX19pbml0X18oc2VsZiwgc3lzX3BsYXRmb3JtPU5vbmUsICoqa3dhcmdzKToK
ICAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKKyAgICAgICAgIyBG
SVhNRTogVGhpcyBjYW4gbW92ZSBpbnRvIGZhY3RvcnkucHkgb25jZSB3ZSBzdGFuZGFyZGl6ZSBv
cGVyYXRpbmcgc3lzdGVtIG5hbWVzIGFjcm9zcyBhbGwgcG9ydHMuCiAgICAgICAgIHNlbGYuX29w
ZXJhdGluZ19zeXN0ZW0gPSBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtX2Zvcl9wbGF0Zm9ybShzeXNf
cGxhdGZvcm0gb3Igc3lzLnBsYXRmb3JtKQogCiAgICAgICAgICMgRklYTUU6IFRoaXMgd2lsbCBh
bGxvdyBXZWJLaXRQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoIGFuZCBXZWJLaXRQb3J0Ll9za2lw
cGVkX2ZpbGVfc2VhcmNoX3BhdGhzCiAgICAgICAgICMgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nLCBi
dXQgZG9lc24ndCBpbmNsdWRlIHN1cHBvcnQgZm9yIHF0LTQuOCBvciBxdC1hcm0gKHNlZW4gaW4g
TGF5b3V0VGVzdHMvcGxhdGZvcm0pIHlldC4KLSAgICAgICAgbmFtZV9jb21wb25lbnRzID0gW3Nl
bGYucG9ydF9uYW1lXQotICAgICAgICBpZiBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtOgotICAgICAg
ICAgICAgbmFtZV9jb21wb25lbnRzLmFwcGVuZChzZWxmLl9vcGVyYXRpbmdfc3lzdGVtKQotICAg
ICAgICBzZWxmLl9uYW1lID0gIi0iLmpvaW4obmFtZV9jb21wb25lbnRzKQorICAgICAgICBzZWxm
Ll9uYW1lID0gc2VsZi5jYW5ub25pY2FsX25hbWUoKQogCiAgICAgZGVmIF9idWlsZF9kcml2ZXIo
c2VsZik6CiAgICAgICAgICMgVGhlIFF0IHBvcnQgYnVpbGRzIERSVCBhcyBwYXJ0IG9mIHRoZSBt
YWluIGJ1aWxkIHN0ZXAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvcXRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3F0X3VuaXR0ZXN0LnB5CmluZGV4IDY3NzRjNTdjOTAwMjA5MjZjOGM1NmFh
YTRkODA3N2E0NTBmNGFjMTQuLmUzNjE3YTU0NzVmMzQ0N2ZlZmMxZDU0N2ZmZWE2MDc0MGRjNTBk
ZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
cXRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9xdF91bml0dGVzdC5weQpAQCAtNDAsOSArNDAsNiBAQCBjbGFzcyBRdFBvcnRUZXN0KHBv
cnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICAgICAgcmV0dXJuIFF0UG9ydAogCiAgICAg
ZGVmIF9hc3NlcnRfc2VhcmNoX3BhdGgoc2VsZiwgc2VhcmNoX3BhdGhzLCBzeXNfcGxhdGZvcm0s
IHVzZV93ZWJraXQyPUZhbHNlKToKLSAgICAgICAgIyBGSVhNRTogUG9ydCBjb25zdHJ1Y3RvcnMg
c2hvdWxkIG5vdCAicGFyc2UiIHRoZSBwb3J0IG5hbWUsIGJ1dAotICAgICAgICAjIHJhdGhlciBi
ZSBwYXNzZWQgY29tcG9uZW50cyAoZGlyZWN0bHkgb3IgdmlhIHNldHRlcnMpLiAgT25jZQotICAg
ICAgICAjIHdlIGZpeCB0aGF0LCB0aGlzIG1ldGhvZCB3aWxsIG5lZWQgYSByZS13cml0ZS4KICAg
ICAgICAgcG9ydCA9IFF0UG9ydChzeXNfcGxhdGZvcm09c3lzX3BsYXRmb3JtLAogICAgICAgICAg
ICAgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9dXNlX3dlYmtpdDIpLAog
ICAgICAgICAgICAgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDRiMGMyYmVjZjdm
ZDg2NWMxMjUzY2RkYzczMGJjNDI3Y2RkZjY5NzIuLmViNTRlNWMzNmY0MGNiMTI1ZTM4ZWJlMTBh
OTcwMDE0Mzg2ZDE3YWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTI0NywxMyArMjQ3LDE0IEBAIFdPTlRGSVggU0tJUCA6IGZh
aWx1cmVzL2V4cGVjdGVkL2V4Y2VwdGlvbi5odG1sID0gQ1JBU0gKIAogCiBjbGFzcyBUZXN0UG9y
dChQb3J0KToKLSAgICAiIiJUZXN0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb3J0IGludGVyZmFj
ZS4iIiIKICAgICBBTExfQkFTRUxJTkVfVkFSSUFOVFMgPSAoCiAgICAgICAgICd0ZXN0LW1hYy1z
bm93bGVvcGFyZCcsICd0ZXN0LW1hYy1sZW9wYXJkJywKICAgICAgICAgJ3Rlc3Qtd2luLXdpbjcn
LCAndGVzdC13aW4tdmlzdGEnLCAndGVzdC13aW4teHAnLAogICAgICAgICAndGVzdC1saW51eC14
ODZfNjQnLAogICAgICkKIAorICAgIHBvcnRfbmFtZSA9ICd0ZXN0JworCiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCB1c2VyPU5vbmUsIGZpbGVzeXN0ZW09Tm9uZSwgKipr
d2FyZ3MpOgogICAgICAgICBpZiBub3QgcG9ydF9uYW1lIG9yIHBvcnRfbmFtZSA9PSAndGVzdCc6
CiAgICAgICAgICAgICBwb3J0X25hbWUgPSAndGVzdC1tYWMtbGVvcGFyZCcKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXggNDVm
ZmIyM2NmODU4ODhjM2UwMDZiMmRjYjExNGQzOTRhZDI1YTEzZi4uNGNlNWZjNDBlODg4NGZiZWMx
NTc0NDEzMGQyZWIwN2QyZTM1YmM0YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTQ5LDggKzQ5LDEzIEBAIF9sb2cgPSBs
b2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBXZWJLaXRQb3J0KFBvcnQpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIFBvcnQuX19pbml0X18o
c2VsZiwgKiprd2FyZ3MpCisKKyAgICBTVVBQT1JURURfT1BFUkFUSU5HX1NZU1RFTVMgPSBmcm96
ZW5zZXQoKQorICAgIFNVUFBPUlRFRF9PU19WRVJTSU9OUyA9IGZyb3plbnNldCgpCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgYXNz
ZXJ0IG5vdCBwb3J0X25hbWUgb3IgcG9ydF9uYW1lID09IHNlbGYucG9ydF9uYW1lLCAiVGhlIHBv
cnRfbmFtZSBhcmd1bWVudCBpcyBkZXByZWNhdGVkIGZvciB0aGUgV2ViS2l0IHBvcnRzLiAgUGxl
YXNlIHVzZSBwb3J0LmZhY3RvcnkuZ2V0KCkgaWYgeW91IHJlcXVpcmUgcG9ydF9uYW1lIHBhcnNp
bmcuIgorICAgICAgICBQb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoq
a3dhcmdzKQogCiAgICAgICAgICMgRklYTUU6IERpc2FibGUgcGl4ZWwgdGVzdHMgdW50aWwgdGhl
eSBhcmUgcnVuIGJ5IGRlZmF1bHQgb24gYnVpbGQud2Via2l0Lm9yZy4KICAgICAgICAgc2VsZi5z
ZXRfb3B0aW9uX2RlZmF1bHQoInBpeGVsX3Rlc3RzIiwgRmFsc2UpCkBAIC0zMTMsNiArMzE4LDcg
QEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0KToKICAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3
ZWJraXRfdGVzdF9ydW5uZXInKToKICAgICAgICAgICAgICMgQmVjYXVzZSBuZWFybHkgYWxsIG9m
IHRoZSBza2lwcGVkIHRlc3RzIGZvciBXZWJLaXQgMiBhcmUgZHVlIHRvIGNyb3NzLXBsYXRmb3Jt
CiAgICAgICAgICAgICAjIGlzc3VlcywgYWxsIHdrMiBwb3J0cyBzaGFyZSBhIHNraXBwZWQgbGlz
dCB1bmRlciBwbGF0Zm9ybS93azIuCisgICAgICAgICAgICAjIEhvd2V2ZXIgJ3drMicgaXMgbm90
IHVzZWQgdG8gc3RvcmUgYW55IHJlc3VsdHMgKHlldCkgdGh1cyBkb2VzIG5vdCBhcHBlYXIgaW4g
YW55IGJhc2VsaW5lX3NlYXJjaF9wYXRoLgogICAgICAgICAgICAgc2VhcmNoX3BhdGhzLnVwZGF0
ZShbc2VsZi5fd2syX3BvcnRfbmFtZSgpLCAid2syIl0pCiAgICAgICAgIHJldHVybiBzZWFyY2hf
cGF0aHMKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93aW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dp
bi5weQppbmRleCBlZjIwNTMxNGUxNDViMzNiMmQ0YTI3ZDdjMWNiYzBmMzViMjlkZWU1Li41M2M5
MzA3Y2M5N2QxZTMzNjgyZGQzNjY5Yjg4OGQ0YTY2ZTQwNjZiIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQpAQCAtMjksNiArMjksNyBAQAog
IiIiV2ViS2l0IFdpbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCiAK
IGltcG9ydCBsb2dnaW5nCitpbXBvcnQgc3lzCiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LnBvcnQud2Via2l0IGltcG9ydCBXZWJLaXRQb3J0CiAKQEAgLTM5LDIzICs0MCw0NiBAQCBfbG9n
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiBjbGFzcyBXaW5Qb3J0KFdlYktpdFBvcnQp
OgogICAgIHBvcnRfbmFtZSA9ICJ3aW4iCiAKLSAgICBGQUxMQkFDS19QQVRIUyA9IHsKLSAgICAg
ICAgJ3dpbjcnOiBbCi0gICAgICAgICAgICAid2luIiwKLSAgICAgICAgICAgICJtYWMtc25vd2xl
b3BhcmQiLAotICAgICAgICAgICAgIm1hYyIsCi0gICAgICAgIF0sCi0gICAgfQorICAgICMgVGhp
cyBpcyBhIGxpc3Qgb2YgYWxsIHN1cHBvcnRlZCBPUy1WRVJTSU9OIHBhaXJzIGZvciB0aGUgQXBw
bGVXaW4gcG9ydAorICAgICMgYW5kIHRoZSBvcmRlciBvZiBmYWxsYmFjayBiZXR3ZWVuIHRoZW0u
ICBNYXRjaGVzIE9SV1QuCisgICAgVkVSU0lPTl9GQUxMQkFDS19PUkRFUiA9ICgid2luLXhwIiwg
Indpbi12aXN0YSIsICJ3aW4tN3NwMCIsICJ3aW4iKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
ICoqa3dhcmdzKToKKyAgICAjIFRoaXMgaXMgZGVzaWduZWQgdG8gbWF0Y2ggb2xkLXJ1bi13ZWJr
aXQtdGVzdHMgYmVoYXZpb3IuCisgICAgZGVmIF92ZXJzaW9uX3N0cmluZ19mcm9tX3dpbmRvd3Nf
dmVyc2lvbl90dXBsZShzZWxmLCB3aW5kb3dzX3ZlcnNpb25fdHVwbGUpOgorICAgICAgICBpZiB3
aW5kb3dzX3ZlcnNpb25fdHVwbGVbOjNdID09ICg2LCAxLCA3NjAwKToKKyAgICAgICAgICAgIHJl
dHVybiAnN3NwMCcKKyAgICAgICAgaWYgd2luZG93c192ZXJzaW9uX3R1cGxlWzoyXSA9PSAoNiwg
MCk6CisgICAgICAgICAgICByZXR1cm4gJ3Zpc3RhJworICAgICAgICBpZiB3aW5kb3dzX3ZlcnNp
b25fdHVwbGVbOjJdID09ICg1LCAxKToKKyAgICAgICAgICAgIHJldHVybiAneHAnCisgICAgICAg
IHJldHVybiBOb25lCisKKyAgICBkZWYgX2RldGVjdF92ZXJzaW9uKHNlbGYpOgorICAgICAgICBp
ZiBub3QgaGFzYXR0cihzeXMsICdnZXR3aW5kb3dzdmVyc2lvbicpOgorICAgICAgICAgICAgcmV0
dXJuIE5vbmUKKyAgICAgICAgdmVyc2lvbl90dXBsZSA9IHR1cGxlKHN5cy5nZXR3aW5kb3dzdmVy
c2lvbigpWzoyXSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNpb25fc3RyaW5nX2Zyb21fd2lu
ZG93c192ZXJzaW9uX3R1cGxlKHZlcnNpb25fdHVwbGUpCisKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBXZWJLaXRQb3J0
Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQotICAgICAgICBzZWxmLl92ZXJzaW9uID0gJ3dpbjcn
CisgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBvc192ZXJzaW9uX3N0cmluZyBvciBzZWxmLl9kZXRl
Y3RfdmVyc2lvbigpCiAgICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAnd2luJwogCiAg
ICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgotICAgICAgICAjIEJhc2VkIG9uIGNv
ZGUgZnJvbSBvbGQtcnVuLXdlYmtpdC10ZXN0cyBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoKQot
ICAgICAgICAjIEZJWE1FOiBUaGlzIGRvZXMgbm90IHdvcmsgZm9yIFdlYktpdDIuCi0gICAgICAg
IHJldHVybiBtYXAoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIHNlbGYuRkFMTEJBQ0tfUEFU
SFNbc2VsZi5fdmVyc2lvbl0pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZhbGxiYWNrX2lu
ZGV4ID0gc2VsZi5WRVJTSU9OX0ZBTExCQUNLX09SREVSLmluZGV4KHNlbGYuY2Fubm9uaWNhbF9u
YW1lKCkpCisgICAgICAgICAgICBmYWxsYmFja19uYW1lcyA9IGxpc3Qoc2VsZi5WRVJTSU9OX0ZB
TExCQUNLX09SREVSW2ZhbGxiYWNrX2luZGV4Ol0pCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
OgorICAgICAgICAgICAgIyBVbmtub3duIHZlcnNpb25zIGp1c3QgZmFsbCBiYWNrIHRvIHRoZSBi
YXNlIHBvcnQgcmVzdWx0cy4KKyAgICAgICAgICAgIGZhbGxiYWNrX25hbWVzID0gW3NlbGYucG9y
dF9uYW1lXQorICAgICAgICAjIEZJWE1FOiBUaGUgQXBwbGVXaW4gcG9ydCBmYWxscyBiYWNrIHRv
IEFwcGxlTWFjIGZvciBzb21lIHJlc3VsdHMuICBFdmVudHVhbGx5IHdlJ2xsIGhhdmUgYSBzaGFy
ZWQgJ2FwcGxlJyBwb3J0LgorICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0
X3J1bm5lcicpOgorICAgICAgICAgICAgZmFsbGJhY2tfbmFtZXMuaW5zZXJ0KDAsICd3aW4td2sy
JykKKyAgICAgICAgICAgIGZhbGxiYWNrX25hbWVzLmFwcGVuZCgnbWFjLXdrMicpCisgICAgICAg
ICAgICAjIE5vdGUgd2UgZG8gbm90IGFkZCAnd2syJyBoZXJlLCBldmVuIHRob3VnaCBpdCdzIGlu
Y2x1ZGVkIGluIF9za2lwcGVkX3NlYXJjaF9wYXRocygpLgorICAgICAgICAjIEZJWE1FOiBQZXJo
YXBzIHdlIHNob3VsZCBnZXQgdGhpcyBsaXN0IGZyb20gTWFjUG9ydD8KKyAgICAgICAgZmFsbGJh
Y2tfbmFtZXMuZXh0ZW5kKFsnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddKQorICAgICAgICByZXR1
cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBmYWxsYmFja19uYW1lcykKIAogICAg
ICMgRklYTUU6IHdlYmtpdHBlcmwvaHR0cGQucG0gaW5zdGFsbHMgL3Vzci9saWIvYXBhY2hlL2xp
YnBocDQuZGxsIG9uIGN5Y3dpbiBhdXRvbWF0aWNhbGx5CiAgICAgIyBhcyBwYXJ0IG9mIHJ1bm5p
bmcgb2xkLXJ1bi13ZWJraXQtdGVzdHMuICBUaGF0J3MgYmFkIGRlc2lnbiwgYnV0IHdlIG1heSBu
ZWVkIHNvbWUgc2ltaWxhciBoYWNrLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93aW5fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNGY1MDc3
OWI0ZDFkZWIxYmIxMWE4ZDBmODI3NTc1NjA4MTdmNzk1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5fdW5pdHRlc3QucHkKQEAg
LTAsMCArMSw2MiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIwor
IyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBk
aXN0cmlidXRpb24uCisjICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHN5
cworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2lu
IGltcG9ydCBXaW5Qb3J0Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBw
b3J0X3Rlc3RjYXNlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2Nr
IGltcG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1
dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9v
bCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tVc2VyLCBNb2NrRXhlY3V0aXZlCisKKworY2xhc3Mg
V2luVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CisgICAgZGVmIHBvcnRfbWFrZXIo
c2VsZiwgcGxhdGZvcm0pOgorICAgICAgICByZXR1cm4gV2luUG9ydAorCisgICAgZGVmIF9hc3Nl
cnRfc2VhcmNoX3BhdGgoc2VsZiwgZXhwZWN0ZWRfc2VhcmNoX3BhdGhzLCB2ZXJzaW9uLCB1c2Vf
d2Via2l0Mj1GYWxzZSk6CisgICAgICAgIHBvcnQgPSBXaW5Qb3J0KG9zX3ZlcnNpb25fc3RyaW5n
PXZlcnNpb24sCisgICAgICAgICAgICBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1
bm5lcj11c2Vfd2Via2l0MiksCisgICAgICAgICAgICBmaWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVt
KCksCisgICAgICAgICAgICB1c2VyPU1vY2tVc2VyKCksCisgICAgICAgICAgICBleGVjdXRpdmU9
TW9ja0V4ZWN1dGl2ZSgpKQorICAgICAgICBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMgPSBtYXAocG9y
dC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIGV4cGVjdGVkX3NlYXJjaF9wYXRocykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9z
ZWFyY2hfcGF0aHMpCisKKyAgICBkZWYgdGVzdF9iYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToK
KyAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLXhwJywgJ3dpbi12aXN0YScs
ICd3aW4tN3NwMCcsICd3aW4nLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAneHAnKQorICAg
ICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4tdmlzdGEnLCAnd2luLTdzcDAnLCAn
d2luJywgJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwgJ3Zpc3RhJykKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLTdzcDAnLCAnd2luJywgJ21hYy1zbm93bGVvcGFyZCcs
ICdtYWMnXSwgJzdzcDAnKQorICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWyd3aW4n
LCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAnYm9ndXMnKQorCisgICAgICAgIHNlbGYuX2Fz
c2VydF9zZWFyY2hfcGF0aChbJ3dpbi13azInLCAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4t
N3NwMCcsICd3aW4nLCAnbWFjLXdrMicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICd4cCcs
IHVzZV93ZWJraXQyPVRydWUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ3dp
bi13azInLCAnd2luLXZpc3RhJywgJ3dpbi03c3AwJywgJ3dpbicsICdtYWMtd2syJywgJ21hYy1z
bm93bGVvcGFyZCcsICdtYWMnXSwgJ3Zpc3RhJywgdXNlX3dlYmtpdDI9VHJ1ZSkKKyAgICAgICAg
c2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLXdrMicsICd3aW4tN3NwMCcsICd3aW4nLCAn
bWFjLXdrMicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICc3c3AwJywgdXNlX3dlYmtpdDI9
VHJ1ZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLXdrMicsICd3aW4n
LCAnbWFjLXdrMicsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICdib2d1cycsIHVzZV93ZWJr
aXQyPVRydWUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvcmViYXNlbGluZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9y
ZWJhc2VsaW5lLnB5CmluZGV4IGU1YzU4YmY4YjhkNWJhNDY1OTczNWFlOTY4MWM5YWVmN2JiOTZj
MjYuLjFjNjA5MTNhOWY2ZDNhM2NjOGZkZDA1NWY5OTViZjU2ZTY0YTdhODUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5CkBAIC04
MCw2ICs4MCw3IEBAIGNsYXNzIEJ1aWxkZXJUb1BvcnQob2JqZWN0KToKICAgICBkZWYgcG9ydF9m
b3JfYnVpbGRlcihzZWxmLCBidWlsZGVyX25hbWUpOgogICAgICAgICBwb3J0X25hbWUgPSBzZWxm
Ll9wb3J0X25hbWVfZm9yX2J1aWxkZXJfbmFtZShidWlsZGVyX25hbWUpCiAgICAgICAgIGFzc2Vy
dChwb3J0X25hbWUpICAjIE5lZWQgdG8gdXBkYXRlIF9idWlsZGVyX25hbWVfdG9fcG9ydF9uYW1l
CisgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHBhc3MgYSBGaWxlU3lzdGVtLCBVc2VyIGFu
ZCBFeGVjdXRpdmUgdG8gdGhlIGZhY3RvcnkuCiAgICAgICAgIHBvcnQgPSBmYWN0b3J5LmdldChw
b3J0X25hbWUpCiAgICAgICAgIGFzc2VydChwb3J0KSAgIyBOZWVkIHRvIHVwZGF0ZSBfYnVpbGRl
cl9uYW1lX3RvX3BvcnRfbmFtZQogICAgICAgICByZXR1cm4gcG9ydAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>