<?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>204952</bug_id>
          
          <creation_ts>2019-12-06 11:13:08 -0800</creation_ts>
          <short_desc>Python 3: Add support in webkitpy.test</short_desc>
          <delta_ts>2019-12-06 14:46:20 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=184986</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1596291</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-12-06 11:13:08 -0800</bug_when>
    <thetext>This will allow us to run test-webkitpy with Python3.

Note that this change does not guarantee that all tests actually pass when running in Python 3, just that we can run the harness. I&apos;m going to keep the existing Python 3 harness until all the tests are passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596300</commentid>
    <comment_count>1</comment_count>
      <attachid>385029</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-12-06 11:25:31 -0800</bug_when>
    <thetext>Created attachment 385029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596338</commentid>
    <comment_count>2</comment_count>
      <attachid>385029</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2019-12-06 13:42:22 -0800</bug_when>
    <thetext>Comment on attachment 385029
Patch

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

&gt; Source/WebKit/Scripts/webkit/messages_unittest.py:31
&gt; +    from StringIO import StringIO

Why not use Unicode compact function here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596346</commentid>
    <comment_count>3</comment_count>
      <attachid>385029</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-12-06 13:48:45 -0800</bug_when>
    <thetext>Comment on attachment 385029
Patch

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

&gt;&gt; Source/WebKit/Scripts/webkit/messages_unittest.py:31
&gt;&gt; +    from StringIO import StringIO
&gt; 
&gt; Why not use Unicode compact function here?

Because this file has no webkitpy dependencies, we don&apos;t want to introduce one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596371</commentid>
    <comment_count>4</comment_count>
      <attachid>385029</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-06 14:45:45 -0800</bug_when>
    <thetext>Comment on attachment 385029
Patch

Clearing flags on attachment: 385029

Committed r253219: &lt;https://trac.webkit.org/changeset/253219&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596372</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-06 14:45:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596373</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-06 14:46:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57714030&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385029</attachid>
            <date>2019-12-06 11:25:31 -0800</date>
            <delta_ts>2019-12-06 14:45:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204952-20191206112531.patch</filename>
            <type>text/plain</type>
            <size>26235</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTMyMDUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEyLTA2ICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBv
cnQgaW4gd2Via2l0cHkudGVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA0OTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdGVkIGJ5IHRlc3Qtd2Via2l0cHkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlc191bml0dGVzdC5weTogVXNlIFB5dGhvbiAyLzMgY29tcGF0aWJsZSBT
dHJpbmdJTy4KKwogMjAxOS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgUHJvdGVjdCBXZWJSVEMgbmV0d29yayBtb25pdG9yaW5nIHRvIHdhaXQgZm9y
ZXZlciBpbiBlZGdlIGNhc2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXNfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI1MzIwNSkKKysrIFNvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDcgKzI0LDExIEBAIGltcG9ydCBvcwogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCiBpbXBv
cnQgdW5pdHRlc3QKLWZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCisKK2lmIHN5cy52ZXJz
aW9uX2luZm8gPiAoMywgMCk6CisgICAgZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KK2Vsc2U6Cisg
ICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KIAogc3lzLnBhdGguYXBwZW5kKG9zLnBh
dGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKSkKIGZyb20gd2Via2l0IGltcG9y
dCBtZXNzYWdlcwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gMjUzMjA5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMTItMDYgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRh
cmRAYXBwbGUuY29tPgorCisgICAgICAgIFB5dGhvbiAzOiBBZGQgc3VwcG9ydCBpbiB3ZWJraXRw
eS50ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQ5NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zOiBBZGQgd2Via2l0cHkudG9vbC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9saW50X3Rlc3RfZXhwZWN0YXRpb25z
X3VuaXR0ZXN0LnB5OiBVc2UgUHl0aG9uIDIvMworICAgICAgICBjb21wYXRpYmxlIFN0cmluZ0lP
IG9iamVjdHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHk6IERpdHRvLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVu
bmVyX2ludGVncmF0aW9udGVzdC5weTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5pdHRlc3QucHk6IERpdHRvLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9maW5kZXIucHk6CisgICAgICAgIChGaW5k
ZXIuX2V4Y2x1ZGUpOiBDb252ZXJ0IGZpbHRlciB0byBsaXN0LgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdGVzdC9tYWluLnB5OgorICAgICAgICAoVGVzdGVyLl9sb2dfZXhjZXB0aW9uKTog
VXNlIFB5dGhvbiAyLzMgY29tcGF0aWJsZSBTdHJpbmdJTyBvYmplY3QuCisgICAgICAgIChfTG9h
ZGVyLmdldFRlc3RDYXNlTmFtZXMpOiBDb252ZXJ0IGZpbHRlciB0byBsaXN0LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdGVy
VGVzdC50ZXN0X25vX3Rlc3RzX2ZvdW5kKTogVXNlIFB5dGhvbiAyLzMgY29tcGF0aWJsZSBTdHJp
bmdJTy4KKyAgICAgICAgKFRlc3RlclRlc3QudGVzdF9pbnRlZ3JhdGlvbl90ZXN0c19hcmVfZm91
bmQpOiBTb3J0IHNlcmlhbCB0ZXN0cyBiZWZvcmUgY29tcGFyaW5nLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdGVzdC9wcmludGVyLnB5OiBVc2UgUHl0aG9uIDIvMyBjb21wYXRpYmxlIFN0
cmluZ0lPLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3Qu
cHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9za2lwLnB5OgorICAg
ICAgICAoX3NraXBwZWRfbWV0aG9kLl9za2lwKTogRml4IGNsYXNzIGluc3BlY3Rpb24gb24gaW5z
dGFuY2UgbWV0aG9kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9za2lwX3VuaXR0
ZXN0LnB5OiBVc2UgUHl0aG9uIDIvMyBjb21wYXRpYmxlIFN0cmluZ0lPLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfY29udmVydGVyLnB5OiBVc2UgUHl0aG9uIDIvMyBjb21w
YXRpYmxlIEhUTUxQYXJzZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2Mvd3B0X3J1
bm5lci5weToKKyAgICAgICAgKG1haW4pOiBGaXggUHl0aG9uIDMgc3ludGF4IGVycm9ycy4KKyAg
ICAgICAgKiBsbGRiL2R1bXBfY2xhc3NfbGF5b3V0X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVz
dER1bXBDbGFzc0xheW91dC5zZXRVcENsYXNzKTogRml4IFB5dGhvbiAzIHN5bnRheCBlcnJvcnMu
CisKIDIwMTktMTItMDUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFB5dGhvbiAzOiBBZGQgc3VwcG9ydCB0byB3ZWJraXRweS5icm93c2VycGVyZmRhc2gK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCShyZXZpc2lvbiAyNTMyMDUpCisr
KyBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkod29ya2luZyBjb3B5KQpAQCAt
NDMsOSArNDMsMTAgQEAgUFlUSE9OM19DT01QQVRJQkxFX0RJUkVDVE9SSUVTID0gWwogICAnd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMnLAogICAnd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZp
ZXdzJywKICAgJ3dlYmtpdHB5LnBvcnQnLAotICAnd2Via2l0cHkudG9vbCcsCiAgICd3ZWJraXRw
eS5yZXN1bHRzJywKICAgJ3dlYmtpdHB5LnN0eWxlJywKKyAgJ3dlYmtpdHB5LnRlc3QnLAorICAn
d2Via2l0cHkudG9vbCcsCiAgICd3ZWJraXRweS54Y29kZScsCiBdCiBTTE9XX1RFU1RTID0gWwpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGludF90ZXN0X2V4cGVj
dGF0aW9uc191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9saW50X3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CShyZXZpc2lv
biAyNTMyMDUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9saW50X3Rl
c3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYs
MTEgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCBTdHJpbmdJTwog
aW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
aG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAorZnJvbSB3ZWJraXRweS5jb21tb24udW5pY29kZV9j
b21wYXRpYmlsaXR5IGltcG9ydCBTdHJpbmdJTwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMg
aW1wb3J0IGxpbnRfdGVzdF9leHBlY3RhdGlvbnMKIAogCkBAIC04NSwxNCArODUsMTQgQEAgY2xh
c3MgTGludFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGYWtlUG9ydChob3N0LCAnYicsICdwYXRoLXRvLWInKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFrZVBvcnQo
aG9zdCwgJ2Itd2luJywgJ3BhdGgtdG8tYicpKSkKIAotICAgICAgICBsb2dnaW5nX3N0cmVhbSA9
IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgbG9nZ2luZ19zdHJlYW0gPSBTdHJpbmdJTygp
CiAgICAgICAgIG9wdGlvbnMgPSBvcHRwYXJzZS5WYWx1ZXMoeydwbGF0Zm9ybSc6IE5vbmV9KQog
ICAgICAgICByZXMgPSBsaW50X3Rlc3RfZXhwZWN0YXRpb25zLmxpbnQoaG9zdCwgb3B0aW9ucywg
bG9nZ2luZ19zdHJlYW0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAwKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGhvc3QucG9ydHNfcGFyc2VkLCBbJ2EnLCAnYicsICdiLXdpbidd
KQogCiAgICAgZGVmIHRlc3RfbGludF90ZXN0X2ZpbGVzKHNlbGYpOgotICAgICAgICBsb2dnaW5n
X3N0cmVhbSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgbG9nZ2luZ19zdHJlYW0gPSBT
dHJpbmdJTygpCiAgICAgICAgIG9wdGlvbnMgPSBvcHRwYXJzZS5WYWx1ZXMoeydwbGF0Zm9ybSc6
ICd0ZXN0LW1hYy1sZW9wYXJkJ30pCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBjbGFzcyBMaW50VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IGhvc3QucG9ydF9mYWN0b3J5LmdldCA9IGxhbWJkYSBwbGF0Zm9ybSwgb3B0aW9ucz1Ob25lOiBw
b3J0CiAgICAgICAgIGhvc3QucG9ydF9mYWN0b3J5LmFsbF9wb3J0X25hbWVzID0gbGFtYmRhIHBs
YXRmb3JtPU5vbmU6IFtwb3J0Lm5hbWUoKV0KIAotICAgICAgICBsb2dnaW5nX3N0cmVhbSA9IFN0
cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgbG9nZ2luZ19zdHJlYW0gPSBTdHJpbmdJTygpCiAK
ICAgICAgICAgcmVzID0gbGludF90ZXN0X2V4cGVjdGF0aW9ucy5saW50KGhvc3QsIG9wdGlvbnMs
IGxvZ2dpbmdfc3RyZWFtKQogCkBAIC0xNDAsOCArMTQwLDggQEAgY2xhc3MgTWFpblRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICBkZWYgZXhjZXB0aW9uX3JhaXNpbmdfbGludChob3N0
LCBvcHRpb25zLCBsb2dnaW5nX3N0cmVhbSk6CiAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKIAot
ICAgICAgICBzdGRvdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCi0gICAgICAgIHN0ZGVyciA9IFN0
cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgc3Rkb3V0ID0gU3RyaW5nSU8oKQorICAgICAgICBz
dGRlcnIgPSBTdHJpbmdJTygpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGxpbnRfdGVzdF9l
eHBlY3RhdGlvbnMubGludCA9IGludGVycnVwdGluZ19saW50CiAgICAgICAgICAgICByZXMgPSBs
aW50X3Rlc3RfZXhwZWN0YXRpb25zLm1haW4oW10sIHN0ZG91dCwgc3RkZXJyKQpJbmRleDogVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3Jh
dGlvbnRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkJKHJldmlzaW9uIDI1MzIw
NSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHNfaW50ZWdyYXRpb250ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKIGltcG9ydCBqc29uCi1pbXBvcnQgU3RyaW5nSU8KIGltcG9ydCB1bml0
dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG91dHB1dGNhcHR1cmUs
IHBhdGgKQEAgLTM3LDYgKzM2LDcgQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmNyYXNo
bG9nc191bgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5
c3RlbUhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgU3RyaW5nSU8KIAogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMgaW1wb3J0IHJ1bl93ZWJraXRfdGVzdHMKIGZyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLm1vZGVscy50ZXN0X3J1bl9yZXN1bHRzIGltcG9ydCBJTlRFUlJVUFRFRF9FWElU
X1NUQVRVUwpAQCAtNzcsNyArNzcsNyBAQCBkZWYgcGFzc2luZ19ydW4oZXh0cmFfYXJncz1Ob25l
LCBwb3J0X29iCiAgICAgaWYgc2hhcmVkX3BvcnQ6CiAgICAgICAgIHBvcnRfb2JqLmhvc3QucG9y
dF9mYWN0b3J5LmdldCA9IGxhbWJkYSAqYXJncywgKiprd2FyZ3M6IHBvcnRfb2JqCiAKLSAgICBs
b2dnaW5nX3N0cmVhbSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICBsb2dnaW5nX3N0cmVhbSA9
IFN0cmluZ0lPKCkKICAgICBydW5fZGV0YWlscyA9IHJ1bl93ZWJraXRfdGVzdHMucnVuKHBvcnRf
b2JqLCBvcHRpb25zLCBwYXJzZWRfYXJncywgbG9nZ2luZ19zdHJlYW09bG9nZ2luZ19zdHJlYW0p
CiAgICAgcmV0dXJuIHJ1bl9kZXRhaWxzLmV4aXRfY29kZSA9PSAwCiAKQEAgLTEwMCw3ICsxMDAs
NyBAQCBkZWYgcnVuX2FuZF9jYXB0dXJlKHBvcnRfb2JqLCBvcHRpb25zLCBwCiAgICAgb2MgPSBv
dXRwdXRjYXB0dXJlLk91dHB1dENhcHR1cmUoKQogICAgIHRyeToKICAgICAgICAgb2MuY2FwdHVy
ZV9vdXRwdXQoKQotICAgICAgICBsb2dnaW5nX3N0cmVhbSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkK
KyAgICAgICAgbG9nZ2luZ19zdHJlYW0gPSBTdHJpbmdJTygpCiAgICAgICAgIHJ1bl9kZXRhaWxz
ID0gcnVuX3dlYmtpdF90ZXN0cy5ydW4ocG9ydF9vYmosIG9wdGlvbnMsIHBhcnNlZF9hcmdzLCBs
b2dnaW5nX3N0cmVhbT1sb2dnaW5nX3N0cmVhbSkKICAgICBmaW5hbGx5OgogICAgICAgICBvYy5y
ZXN0b3JlX291dHB1dCgpCkBAIC0xMzUsNyArMTM1LDcgQEAgZGVmIGdldF90ZXN0X3Jlc3VsdHMo
YXJncywgaG9zdD1Ob25lKToKIAogICAgIG9jID0gb3V0cHV0Y2FwdHVyZS5PdXRwdXRDYXB0dXJl
KCkKICAgICBvYy5jYXB0dXJlX291dHB1dCgpCi0gICAgbG9nZ2luZ19zdHJlYW0gPSBTdHJpbmdJ
Ty5TdHJpbmdJTygpCisgICAgbG9nZ2luZ19zdHJlYW0gPSBTdHJpbmdJTygpCiAgICAgdHJ5Ogog
ICAgICAgICBydW5fZGV0YWlscyA9IHJ1bl93ZWJraXRfdGVzdHMucnVuKHBvcnRfb2JqLCBvcHRp
b25zLCBwYXJzZWRfYXJncywgbG9nZ2luZ19zdHJlYW09bG9nZ2luZ19zdHJlYW0pCiAgICAgZmlu
YWxseToKQEAgLTE4MCw3ICsxODAsNyBAQCBjbGFzcyBSdW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
LCBTdHJlYW1UCiAKICAgICBkZWYgdGVzdF9iYXNpYyhzZWxmKToKICAgICAgICAgb3B0aW9ucywg
YXJncyA9IHBhcnNlX2FyZ3ModGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKLSAgICAgICAgbG9nZ2luZ19z
dHJlYW0gPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgICAgIGxvZ2dpbmdfc3RyZWFtID0gU3Ry
aW5nSU8oKQogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBwb3J0X29iaiA9IGhv
c3QucG9ydF9mYWN0b3J5LmdldChvcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zKQogICAgICAgICBk
ZXRhaWxzID0gcnVuX3dlYmtpdF90ZXN0cy5ydW4ocG9ydF9vYmosIG9wdGlvbnMsIGFyZ3MsIGxv
Z2dpbmdfc3RyZWFtKQpAQCAtNzk4LDggKzc5OCw4IEBAIGNsYXNzIFJ1blRlc3QodW5pdHRlc3Qu
VGVzdENhc2UsIFN0cmVhbVQKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdWxsX3Jlc3VsdHNb
J2hhc19wcmV0dHlfcGF0Y2gnXSwgRmFsc2UpCiAKICAgICBkZWYgdGVzdF91bnN1cHBvcnRlZF9w
bGF0Zm9ybShzZWxmKToKLSAgICAgICAgc3Rkb3V0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAg
ICAgICBzdGRlcnIgPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgICAgIHN0ZG91dCA9IFN0cmlu
Z0lPKCkKKyAgICAgICAgc3RkZXJyID0gU3RyaW5nSU8oKQogICAgICAgICByZXMgPSBydW5fd2Vi
a2l0X3Rlc3RzLm1haW4oWyctLXBsYXRmb3JtJywgJ2ZvbyddLCBzdGRvdXQsIHN0ZGVycikKIAog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgcnVuX3dlYmtpdF90ZXN0cy5FWENFUFRJT05B
TF9FWElUX1NUQVRVUykKQEAgLTgxOSw3ICs4MTksNyBAQCBjbGFzcyBSdW5UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlLCBTdHJlYW1UCiAgICAgICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcGFyc2Vf
YXJncyhbJy0tdmVyYm9zZScsICctLWZ1bGx5LXBhcmFsbGVsJywgJy0tY2hpbGQtcHJvY2Vzc2Vz
JywgJzInLCAncGFzc2VzL3RleHQuaHRtbCcsICdwYXNzZXMvaW1hZ2UuaHRtbCddLCB0ZXN0c19p
bmNsdWRlZD1UcnVlLCBwcmludF9ub3RoaW5nPUZhbHNlKQogICAgICAgICBob3N0ID0gTW9ja0hv
c3QoKQogICAgICAgICBwb3J0X29iaiA9IGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWU9
b3B0aW9ucy5wbGF0Zm9ybSwgb3B0aW9ucz1vcHRpb25zKQotICAgICAgICBsb2dnaW5nX3N0cmVh
bSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgbG9nZ2luZ19zdHJlYW0gPSBTdHJpbmdJ
TygpCiAgICAgICAgIHJ1bl93ZWJraXRfdGVzdHMucnVuKHBvcnRfb2JqLCBvcHRpb25zLCBwYXJz
ZWRfYXJncywgbG9nZ2luZ19zdHJlYW09bG9nZ2luZ19zdHJlYW0pCiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgndGV4dC5odG1sIHBhc3NlZCcgaW4gbG9nZ2luZ19zdHJlYW0uZ2V0dmFsdWUoKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdpbWFnZS5odG1sIHBhc3NlZCcgaW4gbG9nZ2luZ19z
dHJlYW0uZ2V0dmFsdWUoKSkKQEAgLTgzNiw3ICs4MzYsNyBAQCBjbGFzcyBSdW5UZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlLCBTdHJlYW1UCiAgICAgICAgIG9jID0gb3V0cHV0Y2FwdHVyZS5PdXRwdXRD
YXB0dXJlKCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb2MuY2FwdHVyZV9vdXRwdXQoKQot
ICAgICAgICAgICAgbG9nZ2luZyA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgICAgIGxv
Z2dpbmcgPSBTdHJpbmdJTygpCiAgICAgICAgICAgICBydW5fd2Via2l0X3Rlc3RzLnJ1bihwb3J0
LCBydW5fd2Via2l0X3Rlc3RzLnBhcnNlX2FyZ3MoWyctLWRlYnVnLXJ3dC1sb2dnaW5nJywgJy1u
JywgJy0tbm8tYnVpbGQnLCAnLS1yb290JywgJy9idWlsZCddKVswXSwgW10sIGxvZ2dpbmdfc3Ry
ZWFtPWxvZ2dpbmcpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBvdXRwdXQsIGVyciwg
XyA9IG9jLnJlc3RvcmVfb3V0cHV0KCkKQEAgLTg2MCw3ICs4NjAsNyBAQCBjbGFzcyBSdW5UZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UCiAgICAgICAgIG9jID0gb3V0cHV0Y2FwdHVyZS5P
dXRwdXRDYXB0dXJlKCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb2MuY2FwdHVyZV9vdXRw
dXQoKQotICAgICAgICAgICAgbG9nZ2luZyA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAg
ICAgIGxvZ2dpbmcgPSBTdHJpbmdJTygpCiAgICAgICAgICAgICBydW5fd2Via2l0X3Rlc3RzLl9w
cmludF9leHBlY3RhdGlvbnMocG9ydCwgcnVuX3dlYmtpdF90ZXN0cy5wYXJzZV9hcmdzKFtdKVsw
XSwgW10sIGxvZ2dpbmdfc3RyZWFtPWxvZ2dpbmcpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAg
ICAgICBvdXRwdXQsIF8sIF8gPSBvYy5yZXN0b3JlX291dHB1dCgpCkBAIC04OTQsNyArODk0LDcg
QEAgY2xhc3MgUnVuVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVAogICAgICAgICBvYyA9
IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCiAgICAgICAgIHRyeToKICAgICAgICAgICAg
IG9jLmNhcHR1cmVfb3V0cHV0KCkKLSAgICAgICAgICAgIGxvZ2dpbmcgPSBTdHJpbmdJTy5TdHJp
bmdJTygpCisgICAgICAgICAgICBsb2dnaW5nID0gU3RyaW5nSU8oKQogICAgICAgICAgICAgcnVu
X3dlYmtpdF90ZXN0cy5ydW4ocG9ydCwgcnVuX3dlYmtpdF90ZXN0cy5wYXJzZV9hcmdzKFsnLS1k
ZWJ1Zy1yd3QtbG9nZ2luZycsICctbicsICctLW5vLWJ1aWxkJywgJy0tcm9vdCcsICcvYnVpbGQn
XSlbMF0sIFtdLCBsb2dnaW5nX3N0cmVhbT1sb2dnaW5nKQogICAgICAgICBmaW5hbGx5OgogICAg
ICAgICAgICAgb3V0cHV0LCBlcnIsIF8gPSBvYy5yZXN0b3JlX291dHB1dCgpCkBAIC05MTUsNyAr
OTE1LDcgQEAgY2xhc3MgUnVuVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVAogICAgICAg
ICBvYyA9IG91dHB1dGNhcHR1cmUuT3V0cHV0Q2FwdHVyZSgpCiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIG9jLmNhcHR1cmVfb3V0cHV0KCkKLSAgICAgICAgICAgIGxvZ2dpbmcgPSBTdHJpbmdJ
Ty5TdHJpbmdJTygpCisgICAgICAgICAgICBsb2dnaW5nID0gU3RyaW5nSU8oKQogICAgICAgICAg
ICAgcnVuX3dlYmtpdF90ZXN0cy5fcHJpbnRfZXhwZWN0YXRpb25zKHBvcnQsIHJ1bl93ZWJraXRf
dGVzdHMucGFyc2VfYXJncyhbXSlbMF0sIFtdLCBsb2dnaW5nX3N0cmVhbT1sb2dnaW5nKQogICAg
ICAgICBmaW5hbGx5OgogICAgICAgICAgICAgb3V0cHV0LCBfLCBfID0gb2MucmVzdG9yZV9vdXRw
dXQoKQpAQCAtMTA0MCw4ICsxMDQwLDggQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBkZWYgZXhjZXB0aW9uX3JhaXNpbmdfcnVuKHBvcnQsIG9wdGlvbnMsIGFy
Z3MsIHN0ZGVycik6CiAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKIAotICAgICAgICBzdGRvdXQg
PSBTdHJpbmdJTy5TdHJpbmdJTygpCi0gICAgICAgIHN0ZGVyciA9IFN0cmluZ0lPLlN0cmluZ0lP
KCkKKyAgICAgICAgc3Rkb3V0ID0gU3RyaW5nSU8oKQorICAgICAgICBzdGRlcnIgPSBTdHJpbmdJ
TygpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJ1bl93ZWJraXRfdGVzdHMucnVuID0gaW50
ZXJydXB0aW5nX3J1bgogICAgICAgICAgICAgcmVzID0gcnVuX3dlYmtpdF90ZXN0cy5tYWluKFtd
LCBzdGRvdXQsIHN0ZGVycikKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFu
Y2VfdGVzdHMvcGVyZnRlc3RfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdF91bml0dGVzdC5weQkocmV2aXNp
b24gMjUzMjA1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9w
ZXJmdGVzdF91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDEzIEBACiAj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgU3RyaW5nSU8KIGltcG9ydCBq
c29uCiBpbXBvcnQgbWF0aAogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9u
Lmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5v
dXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi51
bmljb2RlX2NvbXBhdGliaWxpdHkgaW1wb3J0IFN0cmluZ0lPCiBmcm9tIHdlYmtpdHB5LnBvcnQu
ZHJpdmVyIGltcG9ydCBEcml2ZXJPdXRwdXQKIGZyb20gd2Via2l0cHkucG9ydC50ZXN0IGltcG9y
dCBUZXN0RHJpdmVyCiBmcm9tIHdlYmtpdHB5LnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVu
bmVyX2ludGVncmF0aW9udGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl9pbnRlZ3JhdGlvbnRlc3QucHkJ
KHJldmlzaW9uIDI1MzIwNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2Vf
dGVzdHMvcGVyZnRlc3RzcnVubmVyX2ludGVncmF0aW9udGVzdC5weQkod29ya2luZyBjb3B5KQpA
QCAtMjgsNyArMjgsNiBAQAogCiAiIiJJbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgcnVuX3BlcmZfdGVz
dHMuIiIiCiAKLWltcG9ydCBTdHJpbmdJTwogaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQganNvbgog
aW1wb3J0IHJlCkBAIC0zNiw2ICszNSw3IEBAIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRw
eS5jb21tb24udW5pY29kZV9jb21wYXRpYmlsaXR5IGltcG9ydCBTdHJpbmdJTwogZnJvbSB3ZWJr
aXRweS5wb3J0LmRyaXZlciBpbXBvcnQgRHJpdmVyT3V0cHV0CiBmcm9tIHdlYmtpdHB5LnBvcnQu
dGVzdCBpbXBvcnQgVGVzdFBvcnQKIGZyb20gd2Via2l0cHkucGVyZm9ybWFuY2VfdGVzdHMucGVy
ZnRlc3QgaW1wb3J0IFBlcmZUZXN0CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZv
cm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0c3J1bm5lcl91
bml0dGVzdC5weQkocmV2aXNpb24gMjUzMjA1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
ZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDEzICsyOCwxMyBAQAogCiAiIiJVbml0IHRlc3RzIGZvciBydW5fcGVyZl90ZXN0
cy4iIiIKIAotaW1wb3J0IFN0cmluZ0lPCiBpbXBvcnQganNvbgogaW1wb3J0IHJlCiBpbXBvcnQg
dW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9z
dAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1
dENhcHR1cmUKK2Zyb20gd2Via2l0cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBv
cnQgU3RyaW5nSU8KIGZyb20gd2Via2l0cHkucG9ydC50ZXN0IGltcG9ydCBUZXN0UG9ydAogZnJv
bSB3ZWJraXRweS5wZXJmb3JtYW5jZV90ZXN0cy5wZXJmdGVzdCBpbXBvcnQgREVGQVVMVF9URVNU
X1JVTk5FUl9DT1VOVAogZnJvbSB3ZWJraXRweS5wZXJmb3JtYW5jZV90ZXN0cy5wZXJmdGVzdHNy
dW5uZXIgaW1wb3J0IFBlcmZUZXN0c1J1bm5lcgpAQCAtMjAxLDE2ICsyMDEsMTYgQEAgY2xhc3Mg
TWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24KICAgICAgICAgICAgICAgICByZXR1cm4gbW9jay51cGxvYWRfc2luZ2xlX3RleHRf
ZmlsZV9yZXR1cm5fdmFsdWUKIAotICAgICAgICBNb2NrRmlsZVVwbG9hZGVyLnVwbG9hZF9zaW5n
bGVfdGV4dF9maWxlX3JldHVybl92YWx1ZSA9IFN0cmluZ0lPLlN0cmluZ0lPKCdPSycpCisgICAg
ICAgIE1vY2tGaWxlVXBsb2FkZXIudXBsb2FkX3NpbmdsZV90ZXh0X2ZpbGVfcmV0dXJuX3ZhbHVl
ID0gU3RyaW5nSU8oJ09LJykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJ1bm5lci5fdXBsb2Fk
X2pzb24oJ2h0dHBzOi8vc29tZS5ob3N0JywgJ3NvbWUuanNvbicsICcvc29tZS9wYXRoJywgTW9j
a0ZpbGVVcGxvYWRlcikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTW9ja0ZpbGVVcGxvYWRl
ci5jYWxsZWQsIFsnRmlsZVVwbG9hZGVyJywgJ3VwbG9hZF9zaW5nbGVfdGV4dF9maWxlJ10pCiAK
ICAgICAgICAgTW9ja0ZpbGVVcGxvYWRlci5yZXNldCgpCi0gICAgICAgIE1vY2tGaWxlVXBsb2Fk
ZXIudXBsb2FkX3NpbmdsZV90ZXh0X2ZpbGVfcmV0dXJuX3ZhbHVlID0gU3RyaW5nSU8uU3RyaW5n
SU8oJ09LJykKKyAgICAgICAgTW9ja0ZpbGVVcGxvYWRlci51cGxvYWRfc2luZ2xlX3RleHRfZmls
ZV9yZXR1cm5fdmFsdWUgPSBTdHJpbmdJTygnT0snKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
cnVubmVyLl91cGxvYWRfanNvbignc29tZS5ob3N0JywgJ3NvbWUuanNvbicsICcvc29tZS9wYXRo
JywgTW9ja0ZpbGVVcGxvYWRlcikpCiAKICAgICAgICAgTW9ja0ZpbGVVcGxvYWRlci5yZXNldCgp
Ci0gICAgICAgIE1vY2tGaWxlVXBsb2FkZXIudXBsb2FkX3NpbmdsZV90ZXh0X2ZpbGVfcmV0dXJu
X3ZhbHVlID0gU3RyaW5nSU8uU3RyaW5nSU8oJ1NvbWUgZXJyb3InKQorICAgICAgICBNb2NrRmls
ZVVwbG9hZGVyLnVwbG9hZF9zaW5nbGVfdGV4dF9maWxlX3JldHVybl92YWx1ZSA9IFN0cmluZ0lP
KCdTb21lIGVycm9yJykKICAgICAgICAgb3V0cHV0ID0gT3V0cHV0Q2FwdHVyZSgpCiAgICAgICAg
IG91dHB1dC5jYXB0dXJlX291dHB1dCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocnVubmVy
Ll91cGxvYWRfanNvbignaHR0cHM6Ly9zb21lLmhvc3QnLCAnc29tZS5qc29uJywgJy9zb21lL3Bh
dGgnLCBNb2NrRmlsZVVwbG9hZGVyKSkKQEAgLTIyNCwxMiArMjI0LDEyIEBAIGNsYXNzIE1haW5U
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNb2NrRmls
ZVVwbG9hZGVyLmNhbGxlZCwgWydGaWxlVXBsb2FkZXInLCAndXBsb2FkX3NpbmdsZV90ZXh0X2Zp
bGUnXSkKIAogICAgICAgICBNb2NrRmlsZVVwbG9hZGVyLnJlc2V0KCkKLSAgICAgICAgTW9ja0Zp
bGVVcGxvYWRlci51cGxvYWRfc2luZ2xlX3RleHRfZmlsZV9yZXR1cm5fdmFsdWUgPSBTdHJpbmdJ
Ty5TdHJpbmdJTygneyJzdGF0dXMiOiAiT0sifScpCisgICAgICAgIE1vY2tGaWxlVXBsb2FkZXIu
dXBsb2FkX3NpbmdsZV90ZXh0X2ZpbGVfcmV0dXJuX3ZhbHVlID0gU3RyaW5nSU8oJ3sic3RhdHVz
IjogIk9LIn0nKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocnVubmVyLl91cGxvYWRfanNvbign
aHR0cHM6Ly9zb21lLmhvc3QnLCAnc29tZS5qc29uJywgJy9zb21lL3BhdGgnLCBNb2NrRmlsZVVw
bG9hZGVyKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNb2NrRmlsZVVwbG9hZGVyLmNhbGxl
ZCwgWydGaWxlVXBsb2FkZXInLCAndXBsb2FkX3NpbmdsZV90ZXh0X2ZpbGUnXSkKIAogICAgICAg
ICBNb2NrRmlsZVVwbG9hZGVyLnJlc2V0KCkKLSAgICAgICAgTW9ja0ZpbGVVcGxvYWRlci51cGxv
YWRfc2luZ2xlX3RleHRfZmlsZV9yZXR1cm5fdmFsdWUgPSBTdHJpbmdJTy5TdHJpbmdJTygneyJz
dGF0dXMiOiAiU29tZXRoaW5nSGFzRmFpbGVkIiwgImZhaWx1cmVTdG9yZWQiOiBmYWxzZX0nKQor
ICAgICAgICBNb2NrRmlsZVVwbG9hZGVyLnVwbG9hZF9zaW5nbGVfdGV4dF9maWxlX3JldHVybl92
YWx1ZSA9IFN0cmluZ0lPKCd7InN0YXR1cyI6ICJTb21ldGhpbmdIYXNGYWlsZWQiLCAiZmFpbHVy
ZVN0b3JlZCI6IGZhbHNlfScpCiAgICAgICAgIG91dHB1dCA9IE91dHB1dENhcHR1cmUoKQogICAg
ICAgICBvdXRwdXQuY2FwdHVyZV9vdXRwdXQoKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJ1
bm5lci5fdXBsb2FkX2pzb24oJ2h0dHBzOi8vc29tZS5ob3N0JywgJ3NvbWUuanNvbicsICcvc29t
ZS9wYXRoJywgTW9ja0ZpbGVVcGxvYWRlcikpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rlc3QvZmluZGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVz
dC9maW5kZXIucHkJKHJldmlzaW9uIDI1MzIwNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dGVzdC9maW5kZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCBjbGFzcyBG
aW5kZXIob2JqZWN0KToKICAgICAgICAgX2xvZy5pbmZvKCdTa2lwcGluZyB0ZXN0cyBpbiB0aGUg
Zm9sbG93aW5nIG1vZHVsZXMgb3IgcGFja2FnZXMgYmVjYXVzZSB0aGV5ICVzOicgJSByZWFzb24p
CiAgICAgICAgIGZvciBwcmVmaXggaW4gbW9kdWxlX3ByZWZpeGVzOgogICAgICAgICAgICAgX2xv
Zy5pbmZvKCcgICAgJXMnICUgcHJlZml4KQotICAgICAgICAgICAgbW9kdWxlc190b19leGNsdWRl
ID0gZmlsdGVyKGxhbWJkYSBtOiBtLnN0YXJ0c3dpdGgocHJlZml4KSwgbW9kdWxlcykKKyAgICAg
ICAgICAgIG1vZHVsZXNfdG9fZXhjbHVkZSA9IGxpc3QoZmlsdGVyKGxhbWJkYSBtOiBtLnN0YXJ0
c3dpdGgocHJlZml4KSwgbW9kdWxlcykpCiAgICAgICAgICAgICBmb3IgbSBpbiBtb2R1bGVzX3Rv
X2V4Y2x1ZGU6CiAgICAgICAgICAgICAgICAgaWYgbGVuKG1vZHVsZXNfdG9fZXhjbHVkZSkgPiAx
OgogICAgICAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCcgICAgICAgICVzJyAlIG0pCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQkocmV2aXNpb24gMjUzMjA1KQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcg
KzI0LDYgQEAKIAogIiIidW5pdCB0ZXN0aW5nIGNvZGUgZm9yIHdlYmtpdHB5LiIiIgogCi1pbXBv
cnQgU3RyaW5nSU8KIGltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBqc29uCiBpbXBvcnQgbG9nZ2lu
ZwpAQCAtNDEsNiArNDAsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndXRpbHMg
aW1wCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVT
eXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKK2Zyb20gd2Via2l0
cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgU3RyaW5nSU8KIGZyb20gd2Vi
a2l0cHkucG9ydC5jb25maWcgaW1wb3J0IENvbmZpZwogZnJvbSB3ZWJraXRweS50ZXN0LmZpbmRl
ciBpbXBvcnQgRmluZGVyCiBmcm9tIHdlYmtpdHB5LnRlc3QucHJpbnRlciBpbXBvcnQgUHJpbnRl
cgpAQCAtMzUzLDkgKzM1Myw5IEBAIGNsYXNzIFRlc3RlcihvYmplY3QpOgogICAgICAgICByZXR1
cm4gbmFtZXMKIAogICAgIGRlZiBfbG9nX2V4Y2VwdGlvbihzZWxmKToKLSAgICAgICAgcyA9IFN0
cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgcyA9IFN0cmluZ0lPKCkKICAgICAgICAgdHJhY2Vi
YWNrLnByaW50X2V4YyhmaWxlPXMpCi0gICAgICAgIGZvciBsIGluIHMuYnVmbGlzdDoKKyAgICAg
ICAgZm9yIGwgaW4gcy5nZXR2YWx1ZSgpLnNwbGl0bGluZXMoKToKICAgICAgICAgICAgIF9sb2cu
ZXJyb3IoJyAgJyArIGwucnN0cmlwKCkpCiAKIApAQCAtMzczLDkgKzM3Myw4IEBAIGNsYXNzIF9M
b2FkZXIodW5pdHRlc3QuVGVzdExvYWRlcik6CiAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihn
ZXRhdHRyKHRlc3RDYXNlQ2xhc3MsIGF0dHJuYW1lKSwgJ19fY2FsbF9fJyk6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICAgICByZXR1cm4gKGFueShhdHRybmFtZS5zdGFy
dHN3aXRoKHByZWZpeCkgZm9yIHByZWZpeCBpbiBzZWxmLnRlc3RfbWV0aG9kX3ByZWZpeGVzKSkK
LSAgICAgICAgdGVzdEZuTmFtZXMgPSBmaWx0ZXIoaXNUZXN0TWV0aG9kLCBkaXIodGVzdENhc2VD
bGFzcykpCi0gICAgICAgIHRlc3RGbk5hbWVzLnNvcnQoKQotICAgICAgICByZXR1cm4gdGVzdEZu
TmFtZXMKKworICAgICAgICByZXR1cm4gc29ydGVkKGZpbHRlcihpc1Rlc3RNZXRob2QsIGRpcih0
ZXN0Q2FzZUNsYXNzKSkpCiAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAy
NTMyMDUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbl91bml0dGVzdC5weQko
d29ya2luZyBjb3B5KQpAQCAtMjAsMTEgKzIwLDExIEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCBTdHJpbmdJTwogaW1wb3J0IGxvZ2dpbmcKIGltcG9y
dCBzeXMKIGltcG9ydCB1bml0dGVzdAogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi51bmljb2RlX2Nv
bXBhdGliaWxpdHkgaW1wb3J0IFN0cmluZ0lPCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
b3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpAQCAtNTIsNyArNTIsNyBAQCBjbGFz
cyBUZXN0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X25vX3Rlc3Rz
X2ZvdW5kKHNlbGYpOgogICAgICAgICB0ZXN0ZXIgPSBUZXN0ZXIoKQotICAgICAgICBlcnJvcnMg
PSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgICAgIGVycm9ycyA9IFN0cmluZ0lPKCkKIAogICAg
ICAgICAjIEhlcmUgd2UgbmVlZCB0byByZW1vdmUgYW55IGV4aXN0aW5nIGxvZyBoYW5kbGVycyBz
byB0aGF0IHRoZXkKICAgICAgICAgIyBkb24ndCBsb2cgdGhlIG1lc3NhZ2VzIHdlYmtpdHB5LnRl
c3Qgd2hpbGUgd2UncmUgdGVzdGluZyBpdC4KQEAgLTk5LDcgKzk5LDcgQEAgY2xhc3MgVGVzdGVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBTVFVCU19DTEFTUyArICcuaW50
ZWdyYXRpb25fdGVzdF9lbXB0eScsCiAgICAgICAgICAgICBTVFVCU19DTEFTUyArICcudGVzdF9l
bXB0eScsCiAgICAgICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcmlhbF90
ZXN0cywgWworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChzZXJpYWxfdGVzdHMpLCBb
CiAgICAgICAgICAgICBTVFVCU19DTEFTUyArICcuc2VyaWFsX2ludGVncmF0aW9uX3Rlc3RfZW1w
dHknLAogICAgICAgICAgICAgU1RVQlNfQ0xBU1MgKyAnLnNlcmlhbF90ZXN0X2VtcHR5JywKICAg
ICAgICAgICAgIF0pCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcHJpbnRlci5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcHJpbnRlci5weQko
cmV2aXNpb24gMjUzMjA1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3ByaW50ZXIu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDExICsyMSwxMSBAQAogIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgU3RyaW5nSU8KIGltcG9ydCBsb2dnaW5nCiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2FwdHVyZQogZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhvc3QKK2Zyb20g
d2Via2l0cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgU3RyaW5nSU8KIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZpZXdzLm1ldGVyZWRfc3RyZWFtIGltcG9ydCBNZXRl
cmVkU3RyZWFtCiBmcm9tIHdlYmtpdHB5LnRvb2wuZ3JhbW1hciBpbXBvcnQgcGx1cmFsaXplCiAK
QEAgLTE4Nyw3ICsxODcsNyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAKIGNsYXNzIF9DYXB0
dXJlQW5kUGFzc1Rocm91Z2hTdHJlYW0ob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwg
c3RyZWFtKToKLSAgICAgICAgc2VsZi5fYnVmZmVyID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAg
ICAgICBzZWxmLl9idWZmZXIgPSBTdHJpbmdJTygpCiAgICAgICAgIHNlbGYuX3N0cmVhbSA9IHN0
cmVhbQogCiAgICAgZGVmIHdyaXRlKHNlbGYsIG1zZyk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rlc3QvcnVubmVyX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI1MzIwNSkKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3QucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTIwLDExICsyMCwxMSBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCi1pbXBvcnQgU3RyaW5nSU8KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgcmUKIGlt
cG9ydCB1bml0dGVzdAogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi51bmljb2RlX2NvbXBhdGliaWxp
dHkgaW1wb3J0IFN0cmluZ0lPCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1v
Y2tPcHRpb25zCiBmcm9tIHdlYmtpdHB5LnRlc3QucHJpbnRlciBpbXBvcnQgUHJpbnRlcgogZnJv
bSB3ZWJraXRweS50ZXN0LnJ1bm5lciBpbXBvcnQgUnVubmVyCkBAIC04Niw3ICs4Niw3IEBAIGNs
YXNzIFJ1bm5lclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfcnVuKHNl
bGYsIHZlcmJvc2U9MCwgdGltaW5nPUZhbHNlLCBjaGlsZF9wcm9jZXNzZXM9MSwgcXVpZXQ9RmFs
c2UpOgogICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnModmVyYm9zZT12ZXJib3NlLCB0aW1p
bmc9dGltaW5nLCBjaGlsZF9wcm9jZXNzZXM9Y2hpbGRfcHJvY2Vzc2VzLCBxdWlldD1xdWlldCwg
cGFzc190aHJvdWdoPUZhbHNlKQotICAgICAgICBzdHJlYW0gPSBTdHJpbmdJTy5TdHJpbmdJTygp
CisgICAgICAgIHN0cmVhbSA9IFN0cmluZ0lPKCkKICAgICAgICAgbG9hZGVyID0gRmFrZUxvYWRl
cigoJ3Rlc3QxIChGb28pJywgJy4nLCAnJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCd0ZXN0MiAoRm9vKScsICdGJywgJ3Rlc3QyXG5mYWlsZWQnKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoJ3Rlc3QzIChGb28pJywgJ0UnLCAndGVzdDNcbmVycmVkJykpCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcC5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcC5weQkocmV2aXNpb24gMjUzMjA1KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90ZXN0L3NraXAucHkJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0
LDkgQEAgZGVmIHNraXBfaWYoa2xhc3MsIGNvbmRpdGlvbiwgbWVzc2FnZT1ObwogCiAKIGRlZiBf
c2tpcHBlZF9tZXRob2QobWV0aG9kLCBtZXNzYWdlLCBsb2dnZXIpOgotICAgIGRlZiBfc2tpcCgq
YXJncyk6Ci0gICAgICAgIGlmIG1ldGhvZC5pbV9jbGFzcy5fcHJpbnRlZF9za2lwcGVkX21lc3Nh
Z2U6CisgICAgZGVmIF9za2lwKHNlbGYsICphcmdzKToKKyAgICAgICAgaWYgc2VsZi5fcHJpbnRl
ZF9za2lwcGVkX21lc3NhZ2U6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgbWV0aG9kLmlt
X2NsYXNzLl9wcmludGVkX3NraXBwZWRfbWVzc2FnZSA9IFRydWUKLSAgICAgICAgbG9nZ2VyLmlu
Zm8oJ1NraXBwaW5nICVzLiVzOiAlcycgJSAobWV0aG9kLl9fbW9kdWxlX18sIG1ldGhvZC5pbV9j
bGFzcy5fX25hbWVfXywgbWVzc2FnZSkpCisgICAgICAgIHNlbGYuX3ByaW50ZWRfc2tpcHBlZF9t
ZXNzYWdlID0gVHJ1ZQorICAgICAgICBsb2dnZXIuaW5mbygnU2tpcHBpbmcgJXMuJXM6ICVzJyAl
IChtZXRob2QuX19tb2R1bGVfXywgdHlwZShzZWxmKS5fX25hbWVfXywgbWVzc2FnZSkpCiAgICAg
cmV0dXJuIF9za2lwCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91
bml0dGVzdC5weQkocmV2aXNpb24gMjUzMjA1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
ZXN0L3NraXBfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIwLDEwICsyMCwxMCBAQAog
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgU3RyaW5nSU8K
IGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24u
dW5pY29kZV9jb21wYXRpYmlsaXR5IGltcG9ydCBTdHJpbmdJTwogZnJvbSB3ZWJraXRweS50ZXN0
LnNraXAgaW1wb3J0IHNraXBfaWYKIAogCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNraXBUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5vbGRfcHJvcGFnYXRlID0gc2VsZi5s
b2dnZXIucHJvcGFnYXRlCiAgICAgICAgIHNlbGYubG9nZ2VyLnByb3BhZ2F0ZSA9IEZhbHNlCiAK
LSAgICAgICAgc2VsZi5sb2dfc3RyZWFtID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICBz
ZWxmLmxvZ19zdHJlYW0gPSBTdHJpbmdJTygpCiAgICAgICAgIHNlbGYuaGFuZGxlciA9IGxvZ2dp
bmcuU3RyZWFtSGFuZGxlcihzZWxmLmxvZ19zdHJlYW0pCiAgICAgICAgIHNlbGYubG9nZ2VyLmFk
ZEhhbmRsZXIoc2VsZi5oYW5kbGVyKQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3cz
Yy90ZXN0X2NvbnZlcnRlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3czYy90ZXN0X2NvbnZlcnRlci5weQkocmV2aXNpb24gMjUzMjA1KQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9jb252ZXJ0ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDEw
ICszMCwxNSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgcmUKK2ltcG9y
dCBzeXMKIAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJr
aXRweS5jb21tb24ud2Via2l0X2ZpbmRlciBpbXBvcnQgV2ViS2l0RmluZGVyCi1mcm9tIEhUTUxQ
YXJzZXIgaW1wb3J0IEhUTUxQYXJzZXIKKworaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToK
KyAgICBmcm9tIGh0bWwucGFyc2VyIGltcG9ydCBIVE1MUGFyc2VyCitlbHNlOgorICAgIGZyb20g
SFRNTFBhcnNlciBpbXBvcnQgSFRNTFBhcnNlcgogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3dwdF9ydW5uZXIu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2Mvd3B0X3J1bm5lci5w
eQkocmV2aXNpb24gMjUzMjA1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2Mvd3B0X3J1
bm5lci5weQkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBkZWYgbWFpbihzY3JpcHRf
bmFtZSwgYXJndik6CiAgICAgaG9zdCA9IEhvc3QoKQogICAgIHRyeToKICAgICAgICAgcG9ydCA9
IGhvc3QucG9ydF9mYWN0b3J5LmdldChvcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zKQotICAgIGV4
Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yLCBlOgorICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVy
cm9yIGFzIGU6CiAgICAgICAgIF9sb2cuZXJyb3Ioc3RyKGUpKQogICAgICAgICBzeXMuZXhpdCgt
MSkKIApJbmRleDogVG9vbHMvbGxkYi9kdW1wX2NsYXNzX2xheW91dF91bml0dGVzdC5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9sbGRiL2R1bXBfY2xhc3NfbGF5b3V0X3VuaXR0ZXN0LnB5CShyZXZp
c2lvbiAyNTMyMDUpCisrKyBUb29scy9sbGRiL2R1bXBfY2xhc3NfbGF5b3V0X3VuaXR0ZXN0LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIGNsYXNzIFRlc3REdW1wQ2xhc3NMYXlv
dXQodW5pdHRlc3QuVGVzdEMKICAgICAgICAgICAgIGFyY2hpdGVjdHVyZSA9ICd4ODZfNjQnCiAg
ICAgICAgICAgICBkZWJ1Z2dlcl9pbnN0YW5jZSA9IExMREJEZWJ1Z2dlckluc3RhbmNlKGxsZGJX
ZWJLaXRUZXN0ZXJFeGVjdXRhYmxlLCBhcmNoaXRlY3R1cmUpCiAgICAgICAgICAgICBpZiBub3Qg
ZGVidWdnZXJfaW5zdGFuY2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQgJ0ZhaWxlZCB0byBjcmVh
dGUgbGxkYiBkZWJ1Z2dlciBpbnN0YW5jZSBmb3IgJXMnICUgKGxsZGJXZWJLaXRUZXN0ZXJFeGVj
dXRhYmxlKQorICAgICAgICAgICAgICAgIHByaW50KCdGYWlsZWQgdG8gY3JlYXRlIGxsZGIgZGVi
dWdnZXIgaW5zdGFuY2UgZm9yICVzJyAlIChsbGRiV2ViS2l0VGVzdGVyRXhlY3V0YWJsZSkpCiAK
ICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHN1cGVyKFRlc3REdW1wQ2xhc3NMYXlvdXQs
IHNlbGYpLnNldFVwKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>