<?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>180626</bug_id>
          
          <creation_ts>2017-12-09 13:47:56 -0800</creation_ts>
          <short_desc>Web Inspector: support async setup() and async teardown() in AsyncTestSuite</short_desc>
          <delta_ts>2017-12-12 16:32:44 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380008</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-12-09 13:47:56 -0800</bug_when>
    <thetext>I found a use for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380009</commentid>
    <comment_count>1</comment_count>
      <attachid>328916</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-12-09 13:52:45 -0800</bug_when>
    <thetext>Created attachment 328916
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380416</commentid>
    <comment_count>2</comment_count>
      <attachid>328916</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2017-12-11 15:07:23 -0800</bug_when>
    <thetext>Comment on attachment 328916
Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Test/TestSuite.js:142
&gt; +                    if (testcase.test[Symbol.toStringTag] === &quot;AsyncFunction&quot;)

So if test case.test() is async, then we assume testcase.setup() is too? Or should this test testcase.setup[Symbol.toStringTag]? Assert here one way or another?

&gt; Source/WebInspectorUI/UserInterface/Test/TestSuite.js:163
&gt; +                    if (testcase.test[Symbol.toStringTag] === &quot;AsyncFunction&quot;)

Ditto for testcase.teardown().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380552</commentid>
    <comment_count>3</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-12-11 21:45:02 -0800</bug_when>
    <thetext>(In reply to Timothy Hatcher from comment #2)
&gt; Comment on attachment 328916 [details]
&gt; Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328916&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Test/TestSuite.js:142
&gt; &gt; +                    if (testcase.test[Symbol.toStringTag] === &quot;AsyncFunction&quot;)
&gt; 
&gt; So if test case.test() is async, then we assume testcase.setup() is too? Or
&gt; should this test testcase.setup[Symbol.toStringTag]? Assert here one way or
&gt; another?
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Test/TestSuite.js:163
&gt; &gt; +                    if (testcase.test[Symbol.toStringTag] === &quot;AsyncFunction&quot;)
&gt; 
&gt; Ditto for testcase.teardown().

Ooh, copypasta. It&apos;s supposed to be .setup and .teardown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380829</commentid>
    <comment_count>4</comment_count>
      <attachid>329152</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-12-12 14:07:07 -0800</bug_when>
    <thetext>Created attachment 329152
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380938</commentid>
    <comment_count>5</comment_count>
      <attachid>329152</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 16:31:18 -0800</bug_when>
    <thetext>Comment on attachment 329152
Proposed Fix

Clearing flags on attachment: 329152

Committed r225820: &lt;https://trac.webkit.org/changeset/225820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380939</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 16:31:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380941</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-12 16:32:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/36008686&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328916</attachid>
            <date>2017-12-09 13:52:45 -0800</date>
            <delta_ts>2017-12-12 14:07:05 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-180626-20171209135245.patch</filename>
            <type>text/plain</type>
            <size>15254</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
YzFmZDhlZmQ2Nzk4MTZhYjg1NDRhOTEzZTU2MGE1YmE1ZTE2NGZmLi4wZWM2N2Y5NGExYTg0NjVi
MjIzN2U1Mzg5NjFmNTMyYzE0NjgxN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0xMi0wOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGFzeW5jIHNldHVwKCkgYW5kIGFzeW5jIHRl
YXJkb3duKCkgaW4gQXN5bmNUZXN0U3VpdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDYyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgY2FuIG1ha2Ugc29tZSBjb2RlIHNpbXBsZXIgYnkgcmVt
b3ZpbmcgUHJvbWlzZS1yZWxhdGVkIGJvaWxlcnBsYXRlLiBJJ20gc3BsaXR0aW5nCisgICAgICAg
IHRoaXMgcGF0Y2ggZnJvbSB0aGUgbmV3IHVzZS1zaXRlIGluIHRoZSBpbnRlcmVzdCBvZiBtYWtp
bmcgaXQgZWFzaWVyIHRvIHJldmlldy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0U3VpdGUuanM6CisgICAgICAgIChBc3luY1Rlc3RTdWl0ZS5wcm90b3R5cGUucnVuVGVzdENh
c2VzKToKKyAgICAgICAgKEFzeW5jVGVzdFN1aXRlKToKKwogMjAxNy0xMS0yOSAgTmlraXRhIFZh
c2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
dHlsZXMgUmVkZXNpZ246IGNhbid0IGFkZCBuZXcgcHJvcGVydHkgYWZ0ZXIgcHJvcGVydHkgd2l0
aG91dCB0cmFpbGluZyBzZW1pY29sb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdFN1aXRlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0U3VpdGUuanMKaW5kZXggZDYyNjAyZjY3MGJhMWJkYjBl
Mjc5ZDcxMTA4YjI0NWZiYjIzMGRkYi4uZTRjZjc1ZDhmMGRhZTM3NzlhMDczYzJmMDcwYmYwY2Fm
ZDNkMGRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdC9UZXN0U3VpdGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC9UZXN0U3VpdGUuanMKQEAgLTEzOSw2ICsxMzksOCBAQCBBc3luY1Rlc3RTdWl0ZSA9
IGNsYXNzIEFzeW5jVGVzdFN1aXRlIGV4dGVuZHMgVGVzdFN1aXRlCiAgICAgICAgICAgICBpZiAo
dGVzdGNhc2Uuc2V0dXApIHsKICAgICAgICAgICAgICAgICBjaGFpbiA9IGNoYWluLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXJuZXNzLmxvZygiLS0gUnVubmluZyB0
ZXN0IHNldHVwLiIpOworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdGNhc2UudGVzdFtTeW1i
b2wudG9TdHJpbmdUYWddID09PSAiQXN5bmNGdW5jdGlvbiIpCisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdGVzdGNhc2Uuc2V0dXAoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKHRlc3RjYXNlLnNldHVwKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIH0KQEAgLTE1OCw2ICsxNjAsOCBAQCBBc3luY1Rlc3RTdWl0ZSA9IGNsYXNzIEFzeW5j
VGVzdFN1aXRlIGV4dGVuZHMgVGVzdFN1aXRlCiAgICAgICAgICAgICBpZiAodGVzdGNhc2UudGVh
cmRvd24pIHsKICAgICAgICAgICAgICAgICBjaGFpbiA9IGNoYWluLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9oYXJuZXNzLmxvZygiLS0gUnVubmluZyB0ZXN0IHRlYXJk
b3duLiIpOworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdGNhc2UudGVzdFtTeW1ib2wudG9T
dHJpbmdUYWddID09PSAiQXN5bmNGdW5jdGlvbiIpCisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdGVzdGNhc2UudGVhcmRvd24oKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKHRlc3RjYXNlLnRlYXJkb3duKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmMjg5MGNhZmMxOTBiMzU4NzMwNjVjY2VmZjA3ZmJjMTcyY2U2ODRi
Li43MmZiNGI5ZDc5MTM5MDkxYjZiZmY2ZWI0Yjg3ZmMzNGY2NmExOWFiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTctMTItMDkgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBhc3luYyBzZXR1cCgpIGFuZCBhc3luYyB0ZWFy
ZG93bigpIGluIEFzeW5jVGVzdFN1aXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODA2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdHMgdG8gY292ZXIgYXN5bmMgc2V0dXAoKSBhbmQg
YXN5bmMgdGVhcmRvd24oKSBpbiB0aGUgY2FzZQorICAgICAgICBvZiBzdWNjZXNzLCBydW50aW1l
IGZhaWx1cmUsIGFuZCBleHBsaWNpdCBmYWlsdXJlLgorCisgICAgICAgICogaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVj
dG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS5odG1sOgorCiAyMDE3LTEyLTA0ICBNczJn
ZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZWJhc2VsaW5lIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxl
bWVudHMvdGhlLWRpYWxvZy1lbGVtZW50L2RpYWxvZy1zaG93TW9kYWwuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1
aXRlLWV4cGVjdGVkLnR4dAppbmRleCBkNmZmM2NkMDJmZGQzYTQxMmQxNGFkOTFlODM2ZDAwZGYw
MTg0ODQ4Li44YjliZWIwYTg5YjViYTBhNjU5ZmEyN2Q0ZDg1ODgyN2U5NzcxZjRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10
ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dApAQCAtMTA1LDMgKzEwNSw0OCBAQCBQQVNTOiBQcm9taXNl
IGZyb20gYXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygp
IHNob3VsZCByZQogUEFTUzogUHJvbWlzZSBkaWQgZXZhbHVhdGUgdGhlIGFzeW5jIHRlc3QgZnVu
Y3Rpb24uCiBQQVNTOiBSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgYSBydW50aW1lIGV4Y2VwdGlv
bi4KIAorPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBc3luY1Rlc3RTdWl0ZS5Bc3luY1NldHVwQW5k
QXN5bmNUZWFyZG93bgorLS0gUnVubmluZyB0ZXN0IHNldHVwLgorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFRlc3RXaXRoU2V0dXBBbmRUZWFyZG93bgorUEFTUzogVGVzdCBzaG91bGQgc2VlIHNpZGUg
ZWZmZWN0cyBvZiBydW5uaW5nIHNldHVwKCkgYWN0aW9uLgorLS0gUnVubmluZyB0ZXN0IHRlYXJk
b3duLgorUEFTUzogVGVhcmRvd24gc2hvdWxkIHNlZSBzaWRlIGVmZmVjdHMgb2YgcnVubmluZyBz
ZXR1cCgpIGFjdGlvbi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFRlc3RSdW5uaW5nQWZ0ZXJU
ZWFyZG93bgorUEFTUzogVGVzdCBzaG91bGQgc2VlIHNpZGUgZWZmZWN0cyBvZiBwcmV2aW91cyB0
ZXN0J3MgdGVhcmRvd24oKSBhY3Rpb24uCitQQVNTOiBQcm9taXNlIGZyb20gYXN5bmNTZXR1cEFu
ZEFzeW5jVGVhcmRvd25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlc29sdmUuCisK
Kz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQXN5bmNUZXN0U3VpdGUuQXN5bmNTZXR1cEV4cGxpY2l0
RmFpbHVyZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFzeW5jRnVuY3Rpb25GYWlsdXJlCishISBF
WENFUFRJT046IEFzeW5jRnVuY3Rpb25GYWlsdXJlIEV4Y2VwdGlvbiBNZXNzYWdlCitTdGFjayBU
cmFjZTogKHN1cHByZXNzZWQpCitQQVNTOiBQcm9taXNlIGZyb20gYXN5bmNTZXR1cEV4cGxpY2l0
RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LgorUEFTUzogUHJv
bWlzZSBkaWQgZXZhbHVhdGUgdGhlIGFzeW5jIHNldHVwIGZ1bmN0aW9uLgorUEFTUzogUmVqZWN0
ZWQgdmFsdWUgc2hvdWxkIGJlIHRocm93biBleGNlcHRpb24uCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogQXN5bmNUZXN0U3VpdGUuQXN5bmNTZXR1cFJ1bnRpbWVGYWlsdXJlCistLSBSdW5uaW5n
IHRlc3Qgc2V0dXAuCishISBFWENFUFRJT046IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICcoe30pLngueCcpCitTdGFjayBUcmFjZTogKHN1cHByZXNzZWQpCitQQVNTOiBQ
cm9taXNlIGZyb20gYXN5bmNTZXR1cFJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNl
cygpIHNob3VsZCByZWplY3QuCitQQVNTOiBQcm9taXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5bmMg
c2V0dXAgZnVuY3Rpb24uCitQQVNTOiBSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgYSBydW50aW1l
IGV4Y2VwdGlvbi4KKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBc3luY1Rlc3RTdWl0ZS5Bc3lu
Y1RlYXJkb3duRXhwbGljaXRGYWlsdXJlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQXN5bmNGdW5j
dGlvbkZhaWx1cmUKKy0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KKyEhIEVYQ0VQVElPTjogQXN5
bmNGdW5jdGlvbkZhaWx1cmUgRXhjZXB0aW9uIE1lc3NhZ2UKK1N0YWNrIFRyYWNlOiAoc3VwcHJl
c3NlZCkKK1BBU1M6IFByb21pc2UgZnJvbSBhc3luY1RlYXJkb3duRXhwbGljaXRGYWlsdXJlVGVz
dFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuCitQQVNTOiBQcm9taXNlIGRpZCBl
dmFsdWF0ZSB0aGUgYXN5bmMgdGVhcmRvd24gZnVuY3Rpb24uCitQQVNTOiBSZWplY3RlZCB2YWx1
ZSBzaG91bGQgYmUgdGhyb3duIGV4Y2VwdGlvbi4KKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBB
c3luY1Rlc3RTdWl0ZS5Bc3luY1RlYXJkb3duUnVudGltZUZhaWx1cmUKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBBc3luY0Z1bmN0aW9uRmFpbHVyZQorLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgor
ISEgRVhDRVBUSU9OOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnKHt9
KS54LngnKQorU3RhY2sgVHJhY2U6IChzdXBwcmVzc2VkKQorUEFTUzogUHJvbWlzZSBmcm9tIGFz
eW5jVGVhcmRvd25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQg
cmVqZWN0LgorUEFTUzogUHJvbWlzZSBkaWQgZXZhbHVhdGUgdGhlIGFzeW5jIHRlYXJkb3duIGZ1
bmN0aW9uLgorUEFTUzogUmVqZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIGEgcnVudGltZSBleGNlcHRp
b24uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5j
LXRlc3Qtc3VpdGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5j
LXRlc3Qtc3VpdGUuaHRtbAppbmRleCA4MTNlMzkzNTA1ZjIyYWY3ZDJhN2E3ODk4YmRlNjljYzk0
ZWY3ZGQzLi43Nzk0ZDEwNDM3MzRmOWI4MDZhNGY0MTIyNmQ0MzZmMWZiMTI2N2FlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0
ZS5odG1sCkBAIC0yOTAsNyArMjkwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIH0sCiAg
ICAgICAgIHRlYXJkb3duOiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgICBQcm90
b2NvbFRlc3QuYXNzZXJ0KGZhbHNlLCAiVGVhcmRvd24gYWN0aW9uIHNob3VsZCBub3QgZXhlY3V0
ZSBpZiBpdHMgc2V0dXAgYWN0aW9uIHRocmV3IGFuIGV4Y2VwdGlvbi4iKTsKLSAgICAgICAgICAg
IHJlamVjdCgpOyAgICAgICAgICAgCisgICAgICAgICAgICByZWplY3QoKTsKICAgICAgICAgfQog
ICAgIH0pOwogCkBAIC0zODksNyArMzg5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0pOwog
Ci0KKyAgICAvLyBBc3luYyB0ZXN0IGZ1bmN0aW9ucy4KICAgICBsZXQgYXN5bmNGdW5jdGlvblN1
Y2Nlc3NUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IGZhbHNlOwogICAgIGxldCBhc3luY0Z1bmN0aW9u
U3VjY2Vzc1Rlc3RTdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rl
c3RTdWl0ZS5Bc3luY0Z1bmN0aW9uU3VjY2VzcyIpOwogICAgIGFzeW5jRnVuY3Rpb25TdWNjZXNz
VGVzdFN1aXRlLmFkZFRlc3RDYXNlKHsKQEAgLTQxMyw3ICs0MTMsNiBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRl
c3QuCiAgICAgfSk7CiAKLQogICAgIGxldCBhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVz
dFN1aXRlRGlkRXZhbHVhdGUgPSBmYWxzZTsKICAgICBsZXQgYXN5bmNGdW5jdGlvbkV4cGxpY2l0
RmFpbHVyZVRlc3RTdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rl
c3RTdWl0ZS5Bc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlIik7CiAgICAgYXN5bmNGdW5jdGlv
bkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5hZGRUZXN0Q2FzZSh7CkBAIC00MzcsNyArNDM2LDYg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8g
Q29udGludWUgdGhpcyB0ZXN0LgogICAgIH0pOwogCi0KICAgICBsZXQgYXN5bmNGdW5jdGlvblJ1
bnRpbWVGYWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUgPSBmYWxzZTsKICAgICBsZXQgYXN5bmNG
dW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jRnVuY3Rpb25SdW50aW1lRmFpbHVyZSIpOwogICAg
IGFzeW5jRnVuY3Rpb25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5hZGRUZXN0Q2FzZSh7CkBAIC00
NjEsNiArNDU5LDE0MiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSk7CiAKKyAgICAvLyBBc3lu
YyBzZXR1cCgpIGFuZCB0ZWFyZG93bigpIHN1Y2Nlc3MgdGVzdCBjYXNlcy4KKyAgICBjb25zdCBh
c3luY1NldHVwQW5kVGVhcmRvd25TeW1ib2wgPSBTeW1ib2woImFzeW5jLXN1aXRlLWFzeW5jLXNl
dHVwLWFuZC10ZWFyZG93bi10b2tlbiIpOworICAgIHdpbmRvd1thc3luY1NldHVwQW5kVGVhcmRv
d25TeW1ib2xdID0gMDsKKworICAgIGxldCBhc3luY1NldHVwQW5kQXN5bmNUZWFyZG93blRlc3RT
dWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5Bc3lu
Y1NldHVwQW5kQXN5bmNUZWFyZG93biIpOworICAgIGFzeW5jU2V0dXBBbmRBc3luY1RlYXJkb3du
VGVzdFN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlRlc3RXaXRoU2V0dXBBbmRU
ZWFyZG93biIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgZXhlY3V0aW9uIG9yZGVyIGZv
ciBzZXR1cCBhbmQgdGVhcmRvd24gYWN0aW9ucy4iLAorICAgICAgICBhc3luYyBzZXR1cCgpIHsK
KyAgICAgICAgICAgIHdpbmRvd1thc3luY1NldHVwQW5kVGVhcmRvd25TeW1ib2xdID0gMTsKKyAg
ICAgICAgfSwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIFByb3RvY29sVGVz
dC5leHBlY3RUaGF0KHdpbmRvd1thc3luY1NldHVwQW5kVGVhcmRvd25TeW1ib2xdID09PSAxLCAi
VGVzdCBzaG91bGQgc2VlIHNpZGUgZWZmZWN0cyBvZiBydW5uaW5nIHNldHVwKCkgYWN0aW9uLiIp
OworICAgICAgICAgICAgd2luZG93W2FzeW5jU2V0dXBBbmRUZWFyZG93blN5bWJvbF0gPSAyOwor
ICAgICAgICB9LAorICAgICAgICBhc3luYyB0ZWFyZG93bigpIHsKKyAgICAgICAgICAgIFByb3Rv
Y29sVGVzdC5leHBlY3RUaGF0KHdpbmRvd1thc3luY1NldHVwQW5kVGVhcmRvd25TeW1ib2xdID09
PSAyLCAiVGVhcmRvd24gc2hvdWxkIHNlZSBzaWRlIGVmZmVjdHMgb2YgcnVubmluZyBzZXR1cCgp
IGFjdGlvbi4iKTsKKyAgICAgICAgICAgIHdpbmRvd1thc3luY1NldHVwQW5kVGVhcmRvd25TeW1i
b2xdID0gMzsKKyAgICAgICAgfQorICAgIH0pOworICAgIGFzeW5jU2V0dXBBbmRBc3luY1RlYXJk
b3duVGVzdFN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlRlc3RSdW5uaW5nQWZ0
ZXJUZWFyZG93biIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgZXhlY3V0aW9uIG9yZGVy
IGZvciB0ZXN0IGFmdGVyIGEgdGVhcmRvd24gYWN0aW9uLiIsCisgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCh3aW5kb3db
YXN5bmNTZXR1cEFuZFRlYXJkb3duU3ltYm9sXSA9PT0gMywgIlRlc3Qgc2hvdWxkIHNlZSBzaWRl
IGVmZmVjdHMgb2YgcHJldmlvdXMgdGVzdCdzIHRlYXJkb3duKCkgYWN0aW9uLiIpOworICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgcmVzdWx0ID0gcmVz
dWx0LnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gYXN5bmNTZXR1cEFuZEFzeW5jVGVhcmRv
d25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CisgICAgfSkudGhlbihmdW5jdGlvbiByZXNvbHZl
ZCgpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJvbSBhc3luY1NldHVw
QW5kQXN5bmNUZWFyZG93blRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVzb2x2ZS4i
KTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRl
c3QuCisgICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgeworICAgICAgICBQcm90b2NvbFRlc3Qu
ZmFpbCgiUHJvbWlzZSBmcm9tIGFzeW5jU2V0dXBBbmRBc3luY1RlYXJkb3duVGVzdFN1aXRlLnJ1
blRlc3RDYXNlcygpIHNob3VsZCByZXNvbHZlLiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9KTsKKworICAgIC8vIEFzeW5j
IHNldHVwKCkgZmFpbHVyZSB0ZXN0IGNhc2VzLgorICAgIGxldCBhc3luY1NldHVwRXhwbGljaXRG
YWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUgPSBmYWxzZTsKKyAgICBsZXQgYXN5bmNTZXR1cEV4
cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJB
c3luY1Rlc3RTdWl0ZS5Bc3luY1NldHVwRXhwbGljaXRGYWlsdXJlIik7CisgICAgYXN5bmNTZXR1
cEV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJB
c3luY0Z1bmN0aW9uRmFpbHVyZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBh
biBhc3luYyBzdWl0ZSB3aXRoIGFzeW5jIHRlc3QgZnVuY3Rpb25zIHRoYXQgdGhyb3dzIHdpbGwg
cmVqZWN0IiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGFzeW5jU2V0dXBF
eHBsaWNpdEZhaWx1cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IHRydWU7CisgICAgICAgICAgICB0
aHJvdyAiQXN5bmNGdW5jdGlvbkZhaWx1cmUgRXhjZXB0aW9uIE1lc3NhZ2UiOworICAgICAgICB9
CisgICAgfSk7CisKKyAgICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CisgICAgICAgIHJl
dHVybiBhc3luY1NldHVwRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOwor
ICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZSgpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZh
aWwoIlByb21pc2UgZnJvbSBhc3luY1NldHVwRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRl
c3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29s
dmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgorICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUp
IHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJvbSBhc3luY1NldHVwRXhw
bGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7Cisg
ICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGFzeW5jU2V0dXBFeHBsaWNpdEZhaWx1cmVU
ZXN0U3VpdGVEaWRFdmFsdWF0ZSwgIlByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyBzZXR1
cCBmdW5jdGlvbi4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKGUsICJBc3lu
Y0Z1bmN0aW9uRmFpbHVyZSBFeGNlcHRpb24gTWVzc2FnZSIsICJSZWplY3RlZCB2YWx1ZSBzaG91
bGQgYmUgdGhyb3duIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2
ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKKyAgICBsZXQgYXN5bmNTZXR1
cFJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUgPSBmYWxzZTsKKyAgICBsZXQgYXN5
bmNTZXR1cFJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jU2V0dXBSdW50aW1lRmFpbHVyZSIpOworICAgIGFz
eW5jU2V0dXBSdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJBc3luY0Z1bmN0aW9uRmFpbHVyZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sg
dGhhdCBhbiBhc3luYyBzdWl0ZSB3aXRoIGFuIGFzeW5jIHNldHVwIGZ1bmN0aW9uIHRoYXQgdGhy
b3dzIHdpdGggYSBydW50aW1lIGVycm9yIHdpbGwgcmVqZWN0IiwKKyAgICAgICAgYXN5bmMgc2V0
dXAoKSB7CisgICAgICAgICAgICBhc3luY1NldHVwUnVudGltZUZhaWx1cmVUZXN0U3VpdGVEaWRF
dmFsdWF0ZSA9IHRydWU7CisgICAgICAgICAgICAoe30pLngueC54OworICAgICAgICB9LAorICAg
ICAgICBhc3luYyB0ZXN0KCkgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICB9KTsKKworICAgIHJlc3Vs
dCA9IHJlc3VsdC50aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIGFzeW5jU2V0dXBSdW50aW1l
RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uIHJl
c29sdmUoKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gYXN5bmNT
ZXR1cFJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qu
Iik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0
ZXN0LgorICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0
LnBhc3MoIlByb21pc2UgZnJvbSBhc3luY1NldHVwUnVudGltZUZhaWx1cmVUZXN0U3VpdGUucnVu
VGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVj
dFRoYXQoYXN5bmNTZXR1cFJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUsICJQcm9t
aXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5bmMgc2V0dXAgZnVuY3Rpb24uIik7CisgICAgICAgIFBy
b3RvY29sVGVzdC5leHBlY3RUaGF0KGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IsICJSZWplY3RlZCB2
YWx1ZSBzaG91bGQgYmUgYSBydW50aW1lIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKKyAgICAv
LyBBc3luYyB0ZWFyZG93bigpIGZhaWx1cmUgdGVzdCBjYXNlcy4KKyAgICBsZXQgYXN5bmNUZWFy
ZG93bkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlID0gZmFsc2U7CisgICAgbGV0
IGFzeW5jVGVhcmRvd25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUgPSBQcm90b2NvbFRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuQXN5bmNUZWFyZG93bkV4cGxpY2l0RmFpbHVy
ZSIpOworICAgIGFzeW5jVGVhcmRvd25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQXN5bmNGdW5jdGlvbkZhaWx1cmUiLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgYW4gYXN5bmMgc3VpdGUgd2l0aCBhc3luYyB0ZXN0IGZ1bmN0
aW9ucyB0aGF0IHRocm93cyB3aWxsIHJlamVjdCIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7IHJl
dHVybiB0cnVlOyB9LAorICAgICAgICBhc3luYyB0ZWFyZG93bigpIHsKKyAgICAgICAgICAgIGFz
eW5jVGVhcmRvd25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IHRydWU7Cisg
ICAgICAgICAgICB0aHJvdyAiQXN5bmNGdW5jdGlvbkZhaWx1cmUgRXhjZXB0aW9uIE1lc3NhZ2Ui
OworICAgICAgICB9LAorICAgIH0pOworCisgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4g
eworICAgICAgICByZXR1cm4gYXN5bmNUZWFyZG93bkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5y
dW5UZXN0Q2FzZXMoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uIHJlc29sdmUoKSB7CisgICAgICAg
IFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gYXN5bmNUZWFyZG93bkV4cGxpY2l0RmFp
bHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9LCBm
dW5jdGlvbiByZWplY3RlZChlKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNl
IGZyb20gYXN5bmNUZWFyZG93bkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMo
KSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChhc3lu
Y1RlYXJkb3duRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUsICJQcm9taXNlIGRp
ZCBldmFsdWF0ZSB0aGUgYXN5bmMgdGVhcmRvd24gZnVuY3Rpb24uIik7CisgICAgICAgIFByb3Rv
Y29sVGVzdC5leHBlY3RFcXVhbChlLCAiQXN5bmNGdW5jdGlvbkZhaWx1cmUgRXhjZXB0aW9uIE1l
c3NhZ2UiLCAiUmVqZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIHRocm93biBleGNlcHRpb24uIik7Cisg
ICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0Lgor
ICAgIH0pOworCisgICAgbGV0IGFzeW5jVGVhcmRvd25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZURp
ZEV2YWx1YXRlID0gZmFsc2U7CisgICAgbGV0IGFzeW5jVGVhcmRvd25SdW50aW1lRmFpbHVyZVRl
c3RTdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5B
c3luY1RlYXJkb3duUnVudGltZUZhaWx1cmUiKTsKKyAgICBhc3luY1RlYXJkb3duUnVudGltZUZh
aWx1cmVUZXN0U3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQXN5bmNGdW5jdGlv
bkZhaWx1cmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYW4gYXN5bmMgc3Vp
dGUgd2l0aCBhbiBhc3luYyB0ZWFyZG93biBmdW5jdGlvbiB0aGF0IHRocm93cyB3aXRoIGEgcnVu
dGltZSBlcnJvciB3aWxsIHJlamVjdCIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7IHJldHVybiB0
cnVlOyB9LAorICAgICAgICBhc3luYyB0ZWFyZG93bigpIHsKKyAgICAgICAgICAgIGFzeW5jVGVh
cmRvd25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlID0gdHJ1ZTsKKyAgICAgICAg
ICAgICh7fSkueC54Lng7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICByZXN1bHQgPSByZXN1
bHQudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBhc3luY1RlYXJkb3duUnVudGltZUZhaWx1
cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CisgICAgfSkudGhlbihmdW5jdGlvbiByZXNvbHZl
KCkgeworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiUHJvbWlzZSBmcm9tIGFzeW5jVGVhcmRv
d25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIp
OworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVz
dC4KKyAgICB9LCBmdW5jdGlvbiByZWplY3RlZChlKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5w
YXNzKCJQcm9taXNlIGZyb20gYXN5bmNUZWFyZG93blJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1
blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5leHBl
Y3RUaGF0KGFzeW5jVGVhcmRvd25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlLCAi
UHJvbWlzZSBkaWQgZXZhbHVhdGUgdGhlIGFzeW5jIHRlYXJkb3duIGZ1bmN0aW9uLiIpOworICAg
ICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChlIGluc3RhbmNlb2YgVHlwZUVycm9yLCAiUmVq
ZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIGEgcnVudGltZSBleGNlcHRpb24uIik7CisgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgorICAgIH0pOwor
CiAgICAgLy8gVGhpcyB3aWxsIGZpbmlzaCB0aGUgdGVzdCB3aGV0aGVyIHRoZSBjaGFpbiB3YXMg
cmVzb2x2ZWQgb3IgcmVqZWN0ZWQuCiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4geyBQ
cm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7IH0pOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329152</attachid>
            <date>2017-12-12 14:07:07 -0800</date>
            <delta_ts>2017-12-12 16:31:18 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-180626-20171212140706.patch</filename>
            <type>text/plain</type>
            <size>15169</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
MzkzNjc0ZTYwYTI0MTg2MjM5NGVhZDI3YWEwZGRhZmQ2OWI1Y2ZlLi5hODM3N2JlMDRmNjBlMTdk
ZTgyYzJkYjZkYmY5Njg5MDQxZTdjY2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0xMi0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGFzeW5jIHNldHVwKCkgYW5kIGFzeW5jIHRl
YXJkb3duKCkgaW4gQXN5bmNUZXN0U3VpdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDYyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgY2FuIG1ha2Ugc29tZSBjb2RlIHNpbXBsZXIgYnkgcmVt
b3ZpbmcgUHJvbWlzZS1yZWxhdGVkIGJvaWxlcnBsYXRlLiBJJ20gc3BsaXR0aW5nCisgICAgICAg
IHRoaXMgcGF0Y2ggZnJvbSB0aGUgbmV3IHVzZS1zaXRlIGluIHRoZSBpbnRlcmVzdCBvZiBtYWtp
bmcgaXQgZWFzaWVyIHRvIHJldmlldy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0U3VpdGUuanM6CisgICAgICAgIChBc3luY1Rlc3RTdWl0ZS5wcm90b3R5cGUucnVuVGVzdENh
c2VzKToKKyAgICAgICAgKEFzeW5jVGVzdFN1aXRlKToKKwogMjAxNy0xMi0xMiAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
ZG9uJ3QgcHJpbnQgZW1wdHkgZXJyb3IgbWVzc2FnZSB3aGVuIGNvcHlpbmcgcmVzb3VyY2UgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3Qv
VGVzdFN1aXRlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0U3VpdGUuanMKaW5kZXggZDYyNjAyZjY3MGJhMWJkYjBlMjc5ZDcxMTA4YjI0NWZiYjIzMGRk
Yi4uMjY5ZTFkZTE1MmVkMTA1NTU4N2ZkYjhjYjQ1MWZkNTRmNjk5NDkyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0U3VpdGUuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0U3VpdGUuanMK
QEAgLTEzOSw2ICsxMzksOCBAQCBBc3luY1Rlc3RTdWl0ZSA9IGNsYXNzIEFzeW5jVGVzdFN1aXRl
IGV4dGVuZHMgVGVzdFN1aXRlCiAgICAgICAgICAgICBpZiAodGVzdGNhc2Uuc2V0dXApIHsKICAg
ICAgICAgICAgICAgICBjaGFpbiA9IGNoYWluLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9oYXJuZXNzLmxvZygiLS0gUnVubmluZyB0ZXN0IHNldHVwLiIpOworICAgICAg
ICAgICAgICAgICAgICBpZiAodGVzdGNhc2Uuc2V0dXBbU3ltYm9sLnRvU3RyaW5nVGFnXSA9PT0g
IkFzeW5jRnVuY3Rpb24iKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RjYXNl
LnNldHVwKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSh0ZXN0Y2Fz
ZS5zZXR1cCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CkBAIC0xNTgsNiAr
MTYwLDggQEAgQXN5bmNUZXN0U3VpdGUgPSBjbGFzcyBBc3luY1Rlc3RTdWl0ZSBleHRlbmRzIFRl
c3RTdWl0ZQogICAgICAgICAgICAgaWYgKHRlc3RjYXNlLnRlYXJkb3duKSB7CiAgICAgICAgICAg
ICAgICAgY2hhaW4gPSBjaGFpbi50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGhp
cy5faGFybmVzcy5sb2coIi0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHRlc3RjYXNlLnRlYXJkb3duW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICJB
c3luY0Z1bmN0aW9uIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0Y2FzZS50
ZWFyZG93bigpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UodGVzdGNh
c2UudGVhcmRvd24pOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDQ5Y2Y4NDE4MjBjN2I3ZmE5OTRjYjcxMzA1M2E4ZTg2MjlkNDBiYzkuLmFiZGU0MjZiZWU5ZTRm
NmUxNTZmMTMwNTMxOThiZDU1ODdlY2U1OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0x
Mi0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBzdXBwb3J0IGFzeW5jIHNldHVwKCkgYW5kIGFzeW5jIHRlYXJkb3duKCkgaW4gQXN5bmNU
ZXN0U3VpdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MDYyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0ZXN0cyB0byBjb3ZlciBhc3luYyBzZXR1cCgpIGFuZCBhc3luYyB0ZWFyZG93bigp
IGluIHRoZSBjYXNlCisgICAgICAgIG9mIHN1Y2Nlc3MsIHJ1bnRpbWUgZmFpbHVyZSwgYW5kIGV4
cGxpY2l0IGZhaWx1cmUuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10
ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9h
c3luYy10ZXN0LXN1aXRlLmh0bWw6CisKIDIwMTctMTItMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIE5hdmlnYXRpb24gcmVxdWVzdHMgc2hvdWxkIHVzZSBu
YXZpZ2F0ZSBmZXRjaCBtb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0CmluZGV4IGQ2ZmYz
Y2QwMmZkZDNhNDEyZDE0YWQ5MWU4MzZkMDBkZjAxODQ4NDguLjhiOWJlYjBhODliNWJhMGE2NTlm
YTI3ZDRkODU4ODI3ZTk3NzFmNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91
bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0CkBAIC0x
MDUsMyArMTA1LDQ4IEBAIFBBU1M6IFByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uUnVudGltZUZh
aWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlCiBQQVNTOiBQcm9taXNlIGRp
ZCBldmFsdWF0ZSB0aGUgYXN5bmMgdGVzdCBmdW5jdGlvbi4KIFBBU1M6IFJlamVjdGVkIHZhbHVl
IHNob3VsZCBiZSBhIHJ1bnRpbWUgZXhjZXB0aW9uLgogCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6
IEFzeW5jVGVzdFN1aXRlLkFzeW5jU2V0dXBBbmRBc3luY1RlYXJkb3duCistLSBSdW5uaW5nIHRl
c3Qgc2V0dXAuCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVGVzdFdpdGhTZXR1cEFuZFRlYXJkb3du
CitQQVNTOiBUZXN0IHNob3VsZCBzZWUgc2lkZSBlZmZlY3RzIG9mIHJ1bm5pbmcgc2V0dXAoKSBh
Y3Rpb24uCistLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCitQQVNTOiBUZWFyZG93biBzaG91bGQg
c2VlIHNpZGUgZWZmZWN0cyBvZiBydW5uaW5nIHNldHVwKCkgYWN0aW9uLgorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogVGVzdFJ1bm5pbmdBZnRlclRlYXJkb3duCitQQVNTOiBUZXN0IHNob3VsZCBz
ZWUgc2lkZSBlZmZlY3RzIG9mIHByZXZpb3VzIHRlc3QncyB0ZWFyZG93bigpIGFjdGlvbi4KK1BB
U1M6IFByb21pc2UgZnJvbSBhc3luY1NldHVwQW5kQXN5bmNUZWFyZG93blRlc3RTdWl0ZS5ydW5U
ZXN0Q2FzZXMoKSBzaG91bGQgcmVzb2x2ZS4KKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBc3lu
Y1Rlc3RTdWl0ZS5Bc3luY1NldHVwRXhwbGljaXRGYWlsdXJlCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQXN5bmNGdW5jdGlvbkZhaWx1cmUKKyEhIEVYQ0VQVElPTjogQXN5bmNGdW5jdGlvbkZhaWx1
cmUgRXhjZXB0aW9uIE1lc3NhZ2UKK1N0YWNrIFRyYWNlOiAoc3VwcHJlc3NlZCkKK1BBU1M6IFBy
b21pc2UgZnJvbSBhc3luY1NldHVwRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNl
cygpIHNob3VsZCByZWplY3QuCitQQVNTOiBQcm9taXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5bmMg
c2V0dXAgZnVuY3Rpb24uCitQQVNTOiBSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgdGhyb3duIGV4
Y2VwdGlvbi4KKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBc3luY1Rlc3RTdWl0ZS5Bc3luY1Nl
dHVwUnVudGltZUZhaWx1cmUKKy0tIFJ1bm5pbmcgdGVzdCBzZXR1cC4KKyEhIEVYQ0VQVElPTjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJyh7fSkueC54JykKK1N0YWNr
IFRyYWNlOiAoc3VwcHJlc3NlZCkKK1BBU1M6IFByb21pc2UgZnJvbSBhc3luY1NldHVwUnVudGlt
ZUZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4KK1BBU1M6IFBy
b21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyBzZXR1cCBmdW5jdGlvbi4KK1BBU1M6IFJlamVj
dGVkIHZhbHVlIHNob3VsZCBiZSBhIHJ1bnRpbWUgZXhjZXB0aW9uLgorCis9PSBSdW5uaW5nIHRl
c3Qgc3VpdGU6IEFzeW5jVGVzdFN1aXRlLkFzeW5jVGVhcmRvd25FeHBsaWNpdEZhaWx1cmUKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBBc3luY0Z1bmN0aW9uRmFpbHVyZQorLS0gUnVubmluZyB0ZXN0
IHRlYXJkb3duLgorISEgRVhDRVBUSU9OOiBBc3luY0Z1bmN0aW9uRmFpbHVyZSBFeGNlcHRpb24g
TWVzc2FnZQorU3RhY2sgVHJhY2U6IChzdXBwcmVzc2VkKQorUEFTUzogUHJvbWlzZSBmcm9tIGFz
eW5jVGVhcmRvd25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxk
IHJlamVjdC4KK1BBU1M6IFByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZWFyZG93biBm
dW5jdGlvbi4KK1BBU1M6IFJlamVjdGVkIHZhbHVlIHNob3VsZCBiZSB0aHJvd24gZXhjZXB0aW9u
LgorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFzeW5jVGVzdFN1aXRlLkFzeW5jVGVhcmRvd25S
dW50aW1lRmFpbHVyZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFzeW5jRnVuY3Rpb25GYWlsdXJl
CistLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCishISBFWENFUFRJT046IHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICcoe30pLngueCcpCitTdGFjayBUcmFjZTogKHN1cHBy
ZXNzZWQpCitQQVNTOiBQcm9taXNlIGZyb20gYXN5bmNUZWFyZG93blJ1bnRpbWVGYWlsdXJlVGVz
dFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuCitQQVNTOiBQcm9taXNlIGRpZCBl
dmFsdWF0ZSB0aGUgYXN5bmMgdGVhcmRvd24gZnVuY3Rpb24uCitQQVNTOiBSZWplY3RlZCB2YWx1
ZSBzaG91bGQgYmUgYSBydW50aW1lIGV4Y2VwdGlvbi4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS5odG1sCmluZGV4IDgxM2Uz
OTM1MDVmMjJhZjdkMmE3YTc4OThiZGU2OWNjOTRlZjdkZDMuLjc3OTRkMTA0MzczNGY5YjgwNmE0
ZjQxMjI2ZDQzNmYxZmIxMjY3YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91
bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLmh0bWwKQEAgLTI5MCw3ICsyOTAsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgfSwKICAgICAgICAgdGVhcmRvd246IChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKICAgICAgICAgICAgIFByb3RvY29sVGVzdC5hc3NlcnQoZmFsc2UsICJUZWFy
ZG93biBhY3Rpb24gc2hvdWxkIG5vdCBleGVjdXRlIGlmIGl0cyBzZXR1cCBhY3Rpb24gdGhyZXcg
YW4gZXhjZXB0aW9uLiIpOwotICAgICAgICAgICAgcmVqZWN0KCk7ICAgICAgICAgICAKKyAgICAg
ICAgICAgIHJlamVjdCgpOwogICAgICAgICB9CiAgICAgfSk7CiAKQEAgLTM4OSw3ICszODksNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBD
b250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSk7CiAKLQorICAgIC8vIEFzeW5jIHRlc3QgZnVuY3Rp
b25zLgogICAgIGxldCBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rlc3RTdWl0ZURpZEV2YWx1YXRlID0g
ZmFsc2U7CiAgICAgbGV0IGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRlID0gUHJvdG9jb2xU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jRnVuY3Rpb25TdWNjZXNz
Iik7CiAgICAgYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGUuYWRkVGVzdENhc2UoewpAQCAt
NDEzLDcgKzQxMyw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KICAgICB9KTsKIAotCiAgICAgbGV0IGFz
eW5jRnVuY3Rpb25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IGZhbHNlOwog
ICAgIGxldCBhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlID0gUHJvdG9jb2xU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jRnVuY3Rpb25FeHBsaWNp
dEZhaWx1cmUiKTsKICAgICBhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLmFk
ZFRlc3RDYXNlKHsKQEAgLTQzNyw3ICs0MzYsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSk7
CiAKLQogICAgIGxldCBhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0U3VpdGVEaWRFdmFs
dWF0ZSA9IGZhbHNlOwogICAgIGxldCBhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0U3Vp
dGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuQXN5bmNG
dW5jdGlvblJ1bnRpbWVGYWlsdXJlIik7CiAgICAgYXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJl
VGVzdFN1aXRlLmFkZFRlc3RDYXNlKHsKQEAgLTQ2MSw2ICs0NTksMTQyIEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMg
dGVzdC4KICAgICB9KTsKIAorICAgIC8vIEFzeW5jIHNldHVwKCkgYW5kIHRlYXJkb3duKCkgc3Vj
Y2VzcyB0ZXN0IGNhc2VzLgorICAgIGNvbnN0IGFzeW5jU2V0dXBBbmRUZWFyZG93blN5bWJvbCA9
IFN5bWJvbCgiYXN5bmMtc3VpdGUtYXN5bmMtc2V0dXAtYW5kLXRlYXJkb3duLXRva2VuIik7Cisg
ICAgd2luZG93W2FzeW5jU2V0dXBBbmRUZWFyZG93blN5bWJvbF0gPSAwOworCisgICAgbGV0IGFz
eW5jU2V0dXBBbmRBc3luY1RlYXJkb3duVGVzdFN1aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFz
eW5jU3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jU2V0dXBBbmRBc3luY1RlYXJkb3duIik7Cisg
ICAgYXN5bmNTZXR1cEFuZEFzeW5jVGVhcmRvd25UZXN0U3VpdGUuYWRkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiVGVzdFdpdGhTZXR1cEFuZFRlYXJkb3duIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayBleGVjdXRpb24gb3JkZXIgZm9yIHNldHVwIGFuZCB0ZWFyZG93biBhY3Rpb25z
LiIsCisgICAgICAgIGFzeW5jIHNldHVwKCkgeworICAgICAgICAgICAgd2luZG93W2FzeW5jU2V0
dXBBbmRUZWFyZG93blN5bWJvbF0gPSAxOworICAgICAgICB9LAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQod2luZG93W2FzeW5jU2V0
dXBBbmRUZWFyZG93blN5bWJvbF0gPT09IDEsICJUZXN0IHNob3VsZCBzZWUgc2lkZSBlZmZlY3Rz
IG9mIHJ1bm5pbmcgc2V0dXAoKSBhY3Rpb24uIik7CisgICAgICAgICAgICB3aW5kb3dbYXN5bmNT
ZXR1cEFuZFRlYXJkb3duU3ltYm9sXSA9IDI7CisgICAgICAgIH0sCisgICAgICAgIGFzeW5jIHRl
YXJkb3duKCkgeworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQod2luZG93W2Fz
eW5jU2V0dXBBbmRUZWFyZG93blN5bWJvbF0gPT09IDIsICJUZWFyZG93biBzaG91bGQgc2VlIHNp
ZGUgZWZmZWN0cyBvZiBydW5uaW5nIHNldHVwKCkgYWN0aW9uLiIpOworICAgICAgICAgICAgd2lu
ZG93W2FzeW5jU2V0dXBBbmRUZWFyZG93blN5bWJvbF0gPSAzOworICAgICAgICB9CisgICAgfSk7
CisgICAgYXN5bmNTZXR1cEFuZEFzeW5jVGVhcmRvd25UZXN0U3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiVGVzdFJ1bm5pbmdBZnRlclRlYXJkb3duIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayBleGVjdXRpb24gb3JkZXIgZm9yIHRlc3QgYWZ0ZXIgYSB0ZWFyZG93biBh
Y3Rpb24uIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIFBy
b3RvY29sVGVzdC5leHBlY3RUaGF0KHdpbmRvd1thc3luY1NldHVwQW5kVGVhcmRvd25TeW1ib2xd
ID09PSAzLCAiVGVzdCBzaG91bGQgc2VlIHNpZGUgZWZmZWN0cyBvZiBwcmV2aW91cyB0ZXN0J3Mg
dGVhcmRvd24oKSBhY3Rpb24uIik7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CisgICAgICAgIHJl
dHVybiBhc3luY1NldHVwQW5kQXN5bmNUZWFyZG93blRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsK
KyAgICB9KS50aGVuKGZ1bmN0aW9uIHJlc29sdmVkKCkgeworICAgICAgICBQcm90b2NvbFRlc3Qu
cGFzcygiUHJvbWlzZSBmcm9tIGFzeW5jU2V0dXBBbmRBc3luY1RlYXJkb3duVGVzdFN1aXRlLnJ1
blRlc3RDYXNlcygpIHNob3VsZCByZXNvbHZlLiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9LCBmdW5jdGlvbiByZWplY3Rl
ZChlKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gYXN5bmNTZXR1
cEFuZEFzeW5jVGVhcmRvd25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlc29sdmUu
Iik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0
ZXN0LgorICAgIH0pOworCisgICAgLy8gQXN5bmMgc2V0dXAoKSBmYWlsdXJlIHRlc3QgY2FzZXMu
CisgICAgbGV0IGFzeW5jU2V0dXBFeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9
IGZhbHNlOworICAgIGxldCBhc3luY1NldHVwRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlID0gUHJv
dG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jU2V0dXBFeHBs
aWNpdEZhaWx1cmUiKTsKKyAgICBhc3luY1NldHVwRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFzeW5jRnVuY3Rpb25GYWlsdXJlIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFuIGFzeW5jIHN1aXRlIHdpdGggYXN5bmMgdGVz
dCBmdW5jdGlvbnMgdGhhdCB0aHJvd3Mgd2lsbCByZWplY3QiLAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgYXN5bmNTZXR1cEV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZURpZEV2
YWx1YXRlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRocm93ICJBc3luY0Z1bmN0aW9uRmFpbHVyZSBF
eGNlcHRpb24gTWVzc2FnZSI7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHJlc3VsdCA9IHJl
c3VsdC50aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIGFzeW5jU2V0dXBFeHBsaWNpdEZhaWx1
cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CisgICAgfSkudGhlbihmdW5jdGlvbiByZXNvbHZl
KCkgeworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiUHJvbWlzZSBmcm9tIGFzeW5jU2V0dXBF
eHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsK
KyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3Qu
CisgICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgeworICAgICAgICBQcm90b2NvbFRlc3QucGFz
cygiUHJvbWlzZSBmcm9tIGFzeW5jU2V0dXBFeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUucnVuVGVz
dENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRo
YXQoYXN5bmNTZXR1cEV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlLCAiUHJvbWlz
ZSBkaWQgZXZhbHVhdGUgdGhlIGFzeW5jIHNldHVwIGZ1bmN0aW9uLiIpOworICAgICAgICBQcm90
b2NvbFRlc3QuZXhwZWN0RXF1YWwoZSwgIkFzeW5jRnVuY3Rpb25GYWlsdXJlIEV4Y2VwdGlvbiBN
ZXNzYWdlIiwgIlJlamVjdGVkIHZhbHVlIHNob3VsZCBiZSB0aHJvd24gZXhjZXB0aW9uLiIpOwor
ICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4K
KyAgICB9KTsKKworICAgIGxldCBhc3luY1NldHVwUnVudGltZUZhaWx1cmVUZXN0U3VpdGVEaWRF
dmFsdWF0ZSA9IGZhbHNlOworICAgIGxldCBhc3luY1NldHVwUnVudGltZUZhaWx1cmVUZXN0U3Vp
dGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuQXN5bmNT
ZXR1cFJ1bnRpbWVGYWlsdXJlIik7CisgICAgYXN5bmNTZXR1cFJ1bnRpbWVGYWlsdXJlVGVzdFN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFzeW5jRnVuY3Rpb25GYWlsdXJlIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFuIGFzeW5jIHN1aXRlIHdpdGggYW4g
YXN5bmMgc2V0dXAgZnVuY3Rpb24gdGhhdCB0aHJvd3Mgd2l0aCBhIHJ1bnRpbWUgZXJyb3Igd2ls
bCByZWplY3QiLAorICAgICAgICBhc3luYyBzZXR1cCgpIHsKKyAgICAgICAgICAgIGFzeW5jU2V0
dXBSdW50aW1lRmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlID0gdHJ1ZTsKKyAgICAgICAgICAg
ICh7fSkueC54Lng7CisgICAgICAgIH0sCisgICAgICAgIGFzeW5jIHRlc3QoKSB7IHJldHVybiB0
cnVlOyB9LAorICAgIH0pOworCisgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4geworICAg
ICAgICByZXR1cm4gYXN5bmNTZXR1cFJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNl
cygpOworICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZSgpIHsKKyAgICAgICAgUHJvdG9jb2xU
ZXN0LmZhaWwoIlByb21pc2UgZnJvbSBhc3luY1NldHVwUnVudGltZUZhaWx1cmVUZXN0U3VpdGUu
cnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSwgZnVuY3Rpb24gcmVqZWN0
ZWQoZSkgeworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUHJvbWlzZSBmcm9tIGFzeW5jU2V0
dXBSdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIp
OworICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChhc3luY1NldHVwUnVudGltZUZhaWx1
cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSwgIlByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyBz
ZXR1cCBmdW5jdGlvbi4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQoZSBpbnN0
YW5jZW9mIFR5cGVFcnJvciwgIlJlamVjdGVkIHZhbHVlIHNob3VsZCBiZSBhIHJ1bnRpbWUgZXhj
ZXB0aW9uLiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVl
IHRoaXMgdGVzdC4KKyAgICB9KTsKKworICAgIC8vIEFzeW5jIHRlYXJkb3duKCkgZmFpbHVyZSB0
ZXN0IGNhc2VzLgorICAgIGxldCBhc3luY1RlYXJkb3duRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRl
RGlkRXZhbHVhdGUgPSBmYWxzZTsKKyAgICBsZXQgYXN5bmNUZWFyZG93bkV4cGxpY2l0RmFpbHVy
ZVRlc3RTdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0
ZS5Bc3luY1RlYXJkb3duRXhwbGljaXRGYWlsdXJlIik7CisgICAgYXN5bmNUZWFyZG93bkV4cGxp
Y2l0RmFpbHVyZVRlc3RTdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBc3luY0Z1
bmN0aW9uRmFpbHVyZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhbiBhc3lu
YyBzdWl0ZSB3aXRoIGFzeW5jIHRlc3QgZnVuY3Rpb25zIHRoYXQgdGhyb3dzIHdpbGwgcmVqZWN0
IiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsgcmV0dXJuIHRydWU7IH0sCisgICAgICAgIGFzeW5j
IHRlYXJkb3duKCkgeworICAgICAgICAgICAgYXN5bmNUZWFyZG93bkV4cGxpY2l0RmFpbHVyZVRl
c3RTdWl0ZURpZEV2YWx1YXRlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRocm93ICJBc3luY0Z1bmN0
aW9uRmFpbHVyZSBFeGNlcHRpb24gTWVzc2FnZSI7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAg
ICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBhc3luY1RlYXJk
b3duRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOworICAgIH0pLnRoZW4o
ZnVuY3Rpb24gcmVzb2x2ZSgpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoIlByb21pc2Ug
ZnJvbSBhc3luY1RlYXJkb3duRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygp
IHNob3VsZCByZWplY3QuIik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8g
Q29udGludWUgdGhpcyB0ZXN0LgorICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJvbSBhc3luY1RlYXJkb3duRXhwbGljaXRG
YWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAg
IFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGFzeW5jVGVhcmRvd25FeHBsaWNpdEZhaWx1cmVUZXN0
U3VpdGVEaWRFdmFsdWF0ZSwgIlByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZWFyZG93
biBmdW5jdGlvbi4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKGUsICJBc3lu
Y0Z1bmN0aW9uRmFpbHVyZSBFeGNlcHRpb24gTWVzc2FnZSIsICJSZWplY3RlZCB2YWx1ZSBzaG91
bGQgYmUgdGhyb3duIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2
ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKKyAgICBsZXQgYXN5bmNUZWFy
ZG93blJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUgPSBmYWxzZTsKKyAgICBsZXQg
YXN5bmNUZWFyZG93blJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0
ZUFzeW5jU3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jVGVhcmRvd25SdW50aW1lRmFpbHVyZSIp
OworICAgIGFzeW5jVGVhcmRvd25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJBc3luY0Z1bmN0aW9uRmFpbHVyZSIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiQ2hlY2sgdGhhdCBhbiBhc3luYyBzdWl0ZSB3aXRoIGFuIGFzeW5jIHRlYXJkb3duIGZ1
bmN0aW9uIHRoYXQgdGhyb3dzIHdpdGggYSBydW50aW1lIGVycm9yIHdpbGwgcmVqZWN0IiwKKyAg
ICAgICAgYXN5bmMgdGVzdCgpIHsgcmV0dXJuIHRydWU7IH0sCisgICAgICAgIGFzeW5jIHRlYXJk
b3duKCkgeworICAgICAgICAgICAgYXN5bmNUZWFyZG93blJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRl
RGlkRXZhbHVhdGUgPSB0cnVlOworICAgICAgICAgICAgKHt9KS54LngueDsKKyAgICAgICAgfSwK
KyAgICB9KTsKKworICAgIHJlc3VsdCA9IHJlc3VsdC50aGVuKCgpID0+IHsKKyAgICAgICAgcmV0
dXJuIGFzeW5jVGVhcmRvd25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsK
KyAgICB9KS50aGVuKGZ1bmN0aW9uIHJlc29sdmUoKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5m
YWlsKCJQcm9taXNlIGZyb20gYXN5bmNUZWFyZG93blJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1
blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJl
c29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgorICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVk
KGUpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJvbSBhc3luY1RlYXJk
b3duUnVudGltZUZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4i
KTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQoYXN5bmNUZWFyZG93blJ1bnRpbWVG
YWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUsICJQcm9taXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5
bmMgdGVhcmRvd24gZnVuY3Rpb24uIik7CisgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0
KGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IsICJSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgYSBydW50
aW1lIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBD
b250aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKICAgICAvLyBUaGlzIHdpbGwgZmluaXNoIHRo
ZSB0ZXN0IHdoZXRoZXIgdGhlIGNoYWluIHdhcyByZXNvbHZlZCBvciByZWplY3RlZC4KICAgICBy
ZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7IFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsg
fSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>