<?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>171479</bug_id>
          
          <creation_ts>2017-04-29 11:06:07 -0700</creation_ts>
          <short_desc>Allow WPT server to serve specific WebKit tests</short_desc>
          <delta_ts>2017-05-11 20:16:25 -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>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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>joepeck</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303018</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-29 11:06:07 -0700</bug_when>
    <thetext>Either we can add a specific directory within imported/w3c/web-platform-tests or we can add a mount point to WPT server directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303019</commentid>
    <comment_count>1</comment_count>
      <attachid>308673</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-29 11:09:49 -0700</bug_when>
    <thetext>Created attachment 308673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303020</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-29 11:12:00 -0700</bug_when>
    <thetext>Gave it a try at tweaking our py infrastructure, pretty straightforward in fact.
Sam, if you want to have a try at it...
Maybe we want to move in that direction, I am not totally sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306215</commentid>
    <comment_count>3</comment_count>
      <attachid>308673</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-08 19:14:47 -0700</bug_when>
    <thetext>Comment on attachment 308673
Patch

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

r=me provided we reach a consensus on webkit-dev for naming.

&gt; Tools/ChangeLog:9
&gt; +        It points to LayoutTests/wpt folder and is triggered on &quot;/WebKit&quot; urls.

These directory names and the mounting point should probably be discussed on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307697</commentid>
    <comment_count>4</comment_count>
      <attachid>309851</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-11 19:48:49 -0700</bug_when>
    <thetext>Created attachment 309851
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307698</commentid>
    <comment_count>5</comment_count>
      <attachid>309851</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-11 19:49:42 -0700</bug_when>
    <thetext>Comment on attachment 309851
Patch for landing

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

&gt; Tools/ChangeLog:9
&gt; +        It points to LayoutTests/wpt folder and is triggered on &quot;/WebKit&quot; urls.

Wait, you&apos;re adding this to LayoutTests/http/tests/wpt now, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307702</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-11 19:51:22 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Created attachment 309851 [details]
&gt; Patch for landing

Made the following changes:
- changed folder to http/wpt
- moved some tests from http/tests/fetch to http/wpt/fetch to ensure they run well
- added some unit py tests for the URI conversion part</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307703</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-11 19:51:41 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #5)
&gt; Comment on attachment 309851 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=309851&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:9
&gt; &gt; +        It points to LayoutTests/wpt folder and is triggered on &quot;/WebKit&quot; urls.
&gt; 
&gt; Wait, you&apos;re adding this to LayoutTests/http/tests/wpt now, right?

Ah, forgot to update the change log...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307704</commentid>
    <comment_count>8</comment_count>
      <attachid>309852</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-11 19:52:30 -0700</bug_when>
    <thetext>Created attachment 309852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307707</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-11 19:53:55 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; (In reply to Ryosuke Niwa from comment #5)
&gt; &gt; Comment on attachment 309851 [details]
&gt; &gt; Patch for landing
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=309851&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/ChangeLog:9
&gt; &gt; &gt; +        It points to LayoutTests/wpt folder and is triggered on &quot;/WebKit&quot; urls.
&gt; &gt; 
&gt; &gt; Wait, you&apos;re adding this to LayoutTests/http/tests/wpt now, right?
&gt; 
&gt; Ah, forgot to update the change log...

I am adding to LayoutTests/http/wpt, LayoutTests/http/tests remains served by apache only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307729</commentid>
    <comment_count>10</comment_count>
      <attachid>309852</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-11 20:16:23 -0700</bug_when>
    <thetext>Comment on attachment 309852
Patch

Clearing flags on attachment: 309852

Committed r216725: &lt;http://trac.webkit.org/changeset/216725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307730</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-11 20:16:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308673</attachid>
            <date>2017-04-29 11:09:49 -0700</date>
            <delta_ts>2017-05-11 19:48:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171479-20170429110948.patch</filename>
            <type>text/plain</type>
            <size>9507</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTcyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjBiZTk3MjE4NjAyYWMyMTM2NDk5YWFiMWEwYzFjNTRh
NjRhMzJkNS4uZTU1NjBhYWVmYzQxOWZmYTkyMjA2MGFmZTZmZTVlOTg5Y2Y3YzdlZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDE3LTA0LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBbGxvdyBXUFQgc2VydmVyIHRvIHNlcnZlIHNwZWNpZmljIFdlYktpdCB0ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0NzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYSBuZXcg
bW91bnQgcG9pbnQgdG8gV1BUIHNlcnZlci4KKyAgICAgICAgSXQgcG9pbnRzIHRvIExheW91dFRl
c3RzL3dwdCBmb2xkZXIgYW5kIGlzIHRyaWdnZXJlZCBvbiAiL1dlYktpdCIgdXJscy4KKworICAg
ICAgICBVcGRhdGluZyB0aGUgd2Via2l0cHkgaW5mcmFzdHJ1Y3R1cmUgdG8gbGF1bmNoIFdQVCBz
ZXJ2ZXIgYW5kIGRvIHRlc3QgdXJsIG1hcHBpbmcgZm9yIExheW91dFRlc3RzL3dwdCB0ZXN0cy4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21h
bmFnZXIucHk6CisgICAgICAgIChNYW5hZ2VyLl9faW5pdF9fKToKKyAgICAgICAgKE1hbmFnZXIu
X2lzX2h0dHBfdGVzdCk6CisgICAgICAgIChNYW5hZ2VyLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVz
dCk6CisgICAgICAgIChNYW5hZ2VyLl9ydW5fdGVzdHMpOgorICAgICAgICAoTWFuYWdlci5faXNf
d2ViX3BsYXRmb3JtX3Rlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHk6CisgICAg
ICAgIChidWlsZF9yb3V0ZXMpOgorICAgICAgICAobWFpbik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9wb3J0L2RyaXZlci5weToKKyAgICAgICAgKERyaXZlcik6CisgICAgICAgIChEcml2
ZXIuaXNfd2Via2l0X3NwZWNpZmljX3dlYl9wbGF0Zm9ybV90ZXN0KToKKyAgICAgICAgKERyaXZl
ci50ZXN0X3RvX3VyaSk6CisgICAgICAgIChEcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5w
dXQpOgorCiAyMDE3LTA0LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzeXN0ZW0gdHJhY2UgcG9pbnRzIGZvciBEb2N1bWVudDo6dXBkYXRl
VG91Y2hFdmVudFJlZ2lvbnMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKaW5kZXggYTc3NjE5ZWE4YjAx
MGYyMzQ3YzY0Zjg4ODZlOGQzNGU5NjJlYTM4NC4uYWJiOWNhY2E5NTMyZmM4NWIxMjk2NzU2NTlj
ZGIyMGI1NzJlYjdjMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CkBAIC04MSw2ICs4MSw3IEBAIGNs
YXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5IVFRQX1NVQkRJUiA9ICdodHRwJyAr
IHBvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUgogICAgICAgICBzZWxmLldFQlNPQ0tFVF9TVUJESVIg
PSAnd2Vic29ja2V0JyArIHBvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUgogICAgICAgICBzZWxmLndl
Yl9wbGF0Zm9ybV90ZXN0X3N1YmRpciA9IHNlbGYuX3BvcnQud2ViX3BsYXRmb3JtX3Rlc3Rfc2Vy
dmVyX2RvY19yb290KCkKKyAgICAgICAgc2VsZi53ZWJraXRfc3BlY2lmaWNfd2ViX3BsYXRmb3Jt
X3Rlc3Rfc3ViZGlyID0gJ3dwdCcgKyBwb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IKICAgICAgICAg
c2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZID0gJ0xheW91dFRlc3RzJwogICAgICAgICBzZWxm
Ll9yZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKQogICAg
ICAgICBzZWxmLl9maW5kZXIgPSBMYXlvdXRUZXN0RmluZGVyKHNlbGYuX3BvcnQsIHNlbGYuX29w
dGlvbnMpCkBAIC05MywxMyArOTQsMTMgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAg
ICByZXR1cm4gc2VsZi5fZmluZGVyLmZpbmRfdGVzdHMoc2VsZi5fb3B0aW9ucywgYXJncykKIAog
ICAgIGRlZiBfaXNfaHR0cF90ZXN0KHNlbGYsIHRlc3QpOgotICAgICAgICByZXR1cm4gc2VsZi5I
VFRQX1NVQkRJUiBpbiB0ZXN0IG9yIHNlbGYuX2lzX3dlYnNvY2tldF90ZXN0KHRlc3QpIG9yIHNl
bGYuX2lzX3dlYl9wbGF0Zm9ybV90ZXN0KHRlc3QpCisgICAgICAgIHJldHVybiBzZWxmLkhUVFBf
U1VCRElSIGluIHRlc3Qgb3Igc2VsZi5faXNfd2Vic29ja2V0X3Rlc3QodGVzdCkgb3Igc2VsZi5f
bmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdCkKIAogICAgIGRlZiBfaXNfd2Vic29ja2V0X3Rl
c3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHJldHVybiBzZWxmLldFQlNPQ0tFVF9TVUJESVIgaW4g
dGVzdAogCi0gICAgZGVmIF9pc193ZWJfcGxhdGZvcm1fdGVzdChzZWxmLCB0ZXN0KToKLSAgICAg
ICAgcmV0dXJuIHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc3ViZGlyIGluIHRlc3QKKyAgICBkZWYg
X25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0KHNlbGYsIHRlc3QpOgorICAgICAgICByZXR1cm4gc2Vs
Zi53ZWJfcGxhdGZvcm1fdGVzdF9zdWJkaXIgaW4gdGVzdCBvciBzZWxmLndlYmtpdF9zcGVjaWZp
Y193ZWJfcGxhdGZvcm1fdGVzdF9zdWJkaXIgaW4gdGVzdAogCiAgICAgZGVmIF9jdXN0b21fZGV2
aWNlX2Zvcl90ZXN0KHNlbGYsIHRlc3QpOgogICAgICAgICBmb3IgZGV2aWNlX2NsYXNzIGluIHNl
bGYuX3BvcnQuQ1VTVE9NX0RFVklDRV9DTEFTU0VTOgpAQCAtMzE3LDggKzMxOCw4IEBAIGNsYXNz
IE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHRlc3RfcnVuX3Jlc3VsdHMuUnVuRGV0
YWlscyhleGl0X2NvZGUsIHN1bW1hcml6ZWRfcmVzdWx0cywgaW5pdGlhbF9yZXN1bHRzLCByZXRy
eV9yZXN1bHRzLCBlbmFibGVkX3BpeGVsX3Rlc3RzX2luX3JldHJ5KQogCiAgICAgZGVmIF9ydW5f
dGVzdHMoc2VsZiwgdGVzdHNfdG9fcnVuLCB0ZXN0c190b19za2lwLCByZXBlYXRfZWFjaCwgaXRl
cmF0aW9ucywgbnVtX3dvcmtlcnMsIHJldHJ5aW5nKToKLSAgICAgICAgbmVlZHNfaHR0cCA9IGFu
eSgoc2VsZi5faXNfaHR0cF90ZXN0KHRlc3QpIGFuZCBub3Qgc2VsZi5faXNfd2ViX3BsYXRmb3Jt
X3Rlc3QodGVzdCkpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKLSAgICAgICAgbmVlZHNfd2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyID0gYW55KHNlbGYuX2lzX3dlYl9wbGF0Zm9ybV90ZXN0KHRl
c3QpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgbmVlZHNfaHR0cCA9IGFueSgo
c2VsZi5faXNfaHR0cF90ZXN0KHRlc3QpIGFuZCBub3Qgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3Jt
X3Rlc3QodGVzdCkpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgbmVlZHNfd2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyID0gYW55KHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0
KHRlc3QpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKICAgICAgICAgbmVlZHNfd2Vic29ja2V0
cyA9IGFueShzZWxmLl9pc193ZWJzb2NrZXRfdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190
b19ydW4pCiAKICAgICAgICAgdGVzdF9pbnB1dHMgPSBzZWxmLl9nZXRfdGVzdF9pbnB1dHModGVz
dHNfdG9fcnVuLCByZXBlYXRfZWFjaCwgaXRlcmF0aW9ucykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1
bmNoZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dl
Yl9wbGF0Zm9ybV90ZXN0X2xhdW5jaGVyLnB5CmluZGV4IDRjZTI1MTgxOTAyYThlODNlMDU5NmY3
ZGZhMjM5MjViMGFlMGM4MTMuLjFkNGM4NmViOWQ2MTgwMjFjYmRjOWZjZWM0YjJlZmJlZDUzNDM0
NjYgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZl
cnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9sYXVuY2hlci5weQpA
QCAtMjAsMTAgKzIwLDI2IEBAIGV4Y2VwdCBJbXBvcnRFcnJvciwgZToKICAgICAgICAgIlBsZWFz
ZSBjaGVjayB0aGF0IHRoZSBmaWxlIHNlcnZlLnB5IGlzIHByZXNlbnQgaW4gdGhlIHdlYi1wbGF0
Zm9ybS10ZXN0cyBmb2xkZXIuXG4iCiAgICAgICAgICJQbGVhc2UgYWxzbyBjaGVjayB0aGF0IF9f
aW5pdF9fLnB5IGZpbGVzIGluIHRoZSB3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMgZm9sZGVyIGFu
ZCBzdWJmb2xkZXJzIGFyZSBhbHNvIHByZXNlbnQuIikKICAgICByYWlzZQotCiAjIFRoaXMgc2Ny
aXB0IGlzIHVzZWQgdG8gbGF1bmNoIHRoZSB3ZWIgcGxhdGZvcm0gdGVzdCBzZXJ2ZXIgbWFpbiBz
Y3JpcHQgKHNlcnZlLnB5KSBhbmQgc3RvcCBpdCB3aGVuIGFza2VkIGJ5IHJ1bi13ZWJraXQtdGVz
dHMKIAogCitkZWYgYnVpbGRfcm91dGVzKGFsaWFzZXMpOgorICAgIGJ1aWxkZXIgPSBXZWJQbGF0
Zm9ybVRlc3RTZXJ2ZXIuUm91dGVzQnVpbGRlcigpCisgICAgZm9yIGFsaWFzIGluIGFsaWFzZXM6
CisgICAgICAgIHVybCA9IGFsaWFzWyJ1cmwtcGF0aCJdCisgICAgICAgIGRpcmVjdG9yeSA9IGFs
aWFzWyJsb2NhbC1kaXIiXQorICAgICAgICBpZiBub3QgdXJsLnN0YXJ0c3dpdGgoIi8iKSBvciBs
ZW4oZGlyZWN0b3J5KSA9PSAwOgorICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJcInVybC1wYXRo
XCIgdmFsdWUgbXVzdCBzdGFydCB3aXRoICcvJy4iKQorICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgaWYgdXJsLmVuZHN3aXRoKCIvIik6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygiXG5c
bmFkZGluZyBtb3VudCBwb2ludCAiICsgdXJsICsgIiAiICsgZGlyZWN0b3J5ICsgIlxuXG4iKQor
ICAgICAgICAgICAgYnVpbGRlci5hZGRfbW91bnRfcG9pbnQodXJsLCBkaXJlY3RvcnkpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZGVyLmFkZF9maWxlX21vdW50X3BvaW50KHVybCwg
ZGlyZWN0b3J5KQorICAgIGJ1aWxkZXIuYWRkX21vdW50X3BvaW50KCIvV2ViS2l0LyIsICIuLi8u
Li8uLi93cHQvIikKKyAgICByZXR1cm4gYnVpbGRlci5nZXRfcm91dGVzKCkKKworCiBkZWYgbWFp
bihhcmd2LCBzdGRvdXQsIHN0ZGVycik6CiAgICAgIyBUaGlzIGlzIGEgY29weSBvZiBzZXJ2ZS5w
eSBtYWluIGZ1bmN0aW9uLCBleGNlcHQgZm9yIHRoZSB3YWl0IHN0ZXAKICAgICBjb25maWcgPSBX
ZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIubG9hZF9jb25maWcoImNvbmZpZy5kZWZhdWx0Lmpzb24iLCAi
Y29uZmlnLmpzb24iKQpAQCAtMzIsNyArNDgsNyBAQCBkZWYgbWFpbihhcmd2LCBzdGRvdXQsIHN0
ZGVycik6CiAKICAgICB3aXRoIHN0YXNoLlN0YXNoU2VydmVyKChjb25maWdbImhvc3QiXSwgV2Vi
UGxhdGZvcm1UZXN0U2VydmVyLmdldF9wb3J0KCkpLCBhdXRoa2V5PXN0cih1dWlkLnV1aWQ0KCkp
KToKICAgICAgICAgd2l0aCBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuZ2V0X3NzbF9lbnZpcm9ubWVu
dChjb25maWcpIGFzIHNzbF9lbnY6Ci0gICAgICAgICAgICBjb25maWdfLCBzdGFydGVkX3NlcnZl
cnMgPSBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuc3RhcnQoY29uZmlnLCBzc2xfZW52LCBXZWJQbGF0
Zm9ybVRlc3RTZXJ2ZXIuYnVpbGRfcm91dGVzKGNvbmZpZ1siYWxpYXNlcyJdKSkKKyAgICAgICAg
ICAgIGNvbmZpZ18sIHN0YXJ0ZWRfc2VydmVycyA9IFdlYlBsYXRmb3JtVGVzdFNlcnZlci5zdGFy
dChjb25maWcsIHNzbF9lbnYsIGJ1aWxkX3JvdXRlcyhjb25maWdbImFsaWFzZXMiXSkpCiAKICAg
ICAgICAgICAgIGZvciBwcm90b2NvbCwgc2VydmVycyBpbiBzdGFydGVkX3NlcnZlcnMuaXRlbXMo
KToKICAgICAgICAgICAgICAgICBmb3IgcG9ydCwgcHJvY2VzcyBpbiBzZXJ2ZXJzOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKaW5kZXggYTI0Mzc2MTUxYmI4ZjkwYWIwYjlmYWEw
ZTBiMmIyOTMzZmI4ZTVmMi4uOWEwMTgyYjZhZTEwN2U4OWM3YjFmZDA2Y2YyYmUwNThiYmI0NmI3
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CkBAIC0yNTQsMTAgKzI1NCwx
NSBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKIAogICAgIEhUVFBfRElSID0gImh0dHAvdGVzdHMv
IgogICAgIEhUVFBfTE9DQUxfRElSID0gImh0dHAvdGVzdHMvbG9jYWwvIgorICAgIFdFQktJVF9T
UEVDSUZJQ19XRUJfUExBVEZPUk1fVEVTVF9TVUJESVIgPSAid3B0LyIKKyAgICBXRUJLSVRfV0VC
X1BMQVRGT1JNX1RFU1RfU0VSVkVSX1JPVVRFID0gIldlYktpdC8iCiAKICAgICBkZWYgaXNfaHR0
cF90ZXN0KHNlbGYsIHRlc3RfbmFtZSk6CiAgICAgICAgIHJldHVybiB0ZXN0X25hbWUuc3RhcnRz
d2l0aChzZWxmLkhUVFBfRElSKSBhbmQgbm90IHRlc3RfbmFtZS5zdGFydHN3aXRoKHNlbGYuSFRU
UF9MT0NBTF9ESVIpCiAKKyAgICBkZWYgaXNfd2Via2l0X3NwZWNpZmljX3dlYl9wbGF0Zm9ybV90
ZXN0KHNlbGYsIHRlc3RfbmFtZSk6CisgICAgICAgIHJldHVybiB0ZXN0X25hbWUuc3RhcnRzd2l0
aChzZWxmLldFQktJVF9TUEVDSUZJQ19XRUJfUExBVEZPUk1fVEVTVF9TVUJESVIpCisKICAgICBk
ZWYgaXNfd2ViX3BsYXRmb3JtX3Rlc3Qoc2VsZiwgdGVzdF9uYW1lKToKICAgICAgICAgcmV0dXJu
IHRlc3RfbmFtZS5zdGFydHN3aXRoKHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyX2RvY19y
b290KQogCkBAIC0yNjUsNiArMjcwLDggQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAg
ICIiIkNvbnZlcnQgYSB0ZXN0IG5hbWUgdG8gYSBVUkkuIiIiCiAgICAgICAgIGlmIHNlbGYuaXNf
d2ViX3BsYXRmb3JtX3Rlc3QodGVzdF9uYW1lKToKICAgICAgICAgICAgIHJldHVybiBzZWxmLndl
Yl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9iYXNlX3VybCArIHRlc3RfbmFtZVtsZW4oc2VsZi53ZWJf
cGxhdGZvcm1fdGVzdF9zZXJ2ZXJfZG9jX3Jvb3QpOl0KKyAgICAgICAgaWYgc2VsZi5pc193ZWJr
aXRfc3BlY2lmaWNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdF9uYW1lKToKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9iYXNlX3VybCArIHNlbGYuV0VCS0lU
X1dFQl9QTEFURk9STV9URVNUX1NFUlZFUl9ST1VURSArIHRlc3RfbmFtZVtsZW4oc2VsZi5XRUJL
SVRfU1BFQ0lGSUNfV0VCX1BMQVRGT1JNX1RFU1RfU1VCRElSKTpdCiAKICAgICAgICAgaWYgbm90
IHNlbGYuaXNfaHR0cF90ZXN0KHRlc3RfbmFtZSk6CiAgICAgICAgICAgICByZXR1cm4gcGF0aC5h
YnNwYXRoX3RvX3VyaShzZWxmLl9wb3J0Lmhvc3QucGxhdGZvcm0sIHNlbGYuX3BvcnQuYWJzcGF0
aF9mb3JfdGVzdCh0ZXN0X25hbWUpKQpAQCAtMjg5LDYgKzI5Niw4IEBAIGNsYXNzIERyaXZlcihv
YmplY3QpOgogICAgICAgICAgICAgaWYgbm90IHByZWZpeC5lbmRzd2l0aCgnLycpOgogICAgICAg
ICAgICAgICAgIHByZWZpeCArPSAnLycKICAgICAgICAgICAgIHJldHVybiB1cmlbbGVuKHByZWZp
eCk6XQorICAgICAgICBpZiB1cmkuc3RhcnRzd2l0aChzZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3Nl
cnZlcl9iYXNlX3VybCArIHNlbGYuV0VCS0lUX1dFQl9QTEFURk9STV9URVNUX1NFUlZFUl9ST1VU
RSk6CisgICAgICAgICAgICByZXR1cm4gdXJpLnJlcGxhY2Uoc2VsZi53ZWJfcGxhdGZvcm1fdGVz
dF9zZXJ2ZXJfYmFzZV91cmwgKyBzZWxmLldFQktJVF9XRUJfUExBVEZPUk1fVEVTVF9TRVJWRVJf
Uk9VVEUsIHNlbGYuV0VCS0lUX1NQRUNJRklDX1dFQl9QTEFURk9STV9URVNUX1NVQkRJUikKICAg
ICAgICAgaWYgdXJpLnN0YXJ0c3dpdGgoc2VsZi53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXJfYmFz
ZV91cmwpOgogICAgICAgICAgICAgcmV0dXJuIHVyaS5yZXBsYWNlKHNlbGYud2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyX2Jhc2VfdXJsLCBzZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9kb2Nf
cm9vdCkKICAgICAgICAgaWYgdXJpLnN0YXJ0c3dpdGgoImh0dHA6Ly8iKToKQEAgLTQ3Miw3ICs0
ODEsNyBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgIyBGSVhNRTogcGVyZm9ybWFu
Y2UgdGVzdHMgcGFzcyBpbiBmdWxsIFVSTHMgaW5zdGVhZCBvZiB0ZXN0IG5hbWVzLgogICAgICAg
ICBpZiBkcml2ZXJfaW5wdXQudGVzdF9uYW1lLnN0YXJ0c3dpdGgoJ2h0dHA6Ly8nKSBvciBkcml2
ZXJfaW5wdXQudGVzdF9uYW1lLnN0YXJ0c3dpdGgoJ2h0dHBzOi8vJykgIG9yIGRyaXZlcl9pbnB1
dC50ZXN0X25hbWUgPT0gKCdhYm91dDpibGFuaycpOgogICAgICAgICAgICAgY29tbWFuZCA9IGRy
aXZlcl9pbnB1dC50ZXN0X25hbWUKLSAgICAgICAgZWxpZiBzZWxmLmlzX3dlYl9wbGF0Zm9ybV90
ZXN0KGRyaXZlcl9pbnB1dC50ZXN0X25hbWUpIG9yIChzZWxmLmlzX2h0dHBfdGVzdChkcml2ZXJf
aW5wdXQudGVzdF9uYW1lKSBhbmQgKHNlbGYuX3BvcnQuZ2V0X29wdGlvbignd2Via2l0X3Rlc3Rf
cnVubmVyJykgb3Igc3lzLnBsYXRmb3JtID09ICJjeWd3aW4iKSk6CisgICAgICAgIGVsaWYgc2Vs
Zi5pc193ZWJfcGxhdGZvcm1fdGVzdChkcml2ZXJfaW5wdXQudGVzdF9uYW1lKSBvciBzZWxmLmlz
X3dlYmtpdF9zcGVjaWZpY193ZWJfcGxhdGZvcm1fdGVzdChkcml2ZXJfaW5wdXQudGVzdF9uYW1l
KSBvciAoc2VsZi5pc19odHRwX3Rlc3QoZHJpdmVyX2lucHV0LnRlc3RfbmFtZSkgYW5kIChzZWxm
Ll9wb3J0LmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpIG9yIHN5cy5wbGF0Zm9ybSA9
PSAiY3lnd2luIikpOgogICAgICAgICAgICAgY29tbWFuZCA9IHNlbGYudGVzdF90b191cmkoZHJp
dmVyX2lucHV0LnRlc3RfbmFtZSkKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLWFic29sdXRl
UGF0aCciCiAgICAgICAgICAgICBjb21tYW5kICs9IHNlbGYuX3BvcnQuYWJzcGF0aF9mb3JfdGVz
dChkcml2ZXJfaW5wdXQudGVzdF9uYW1lLCBzZWxmLl90YXJnZXRfaG9zdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309851</attachid>
            <date>2017-05-11 19:48:49 -0700</date>
            <delta_ts>2017-05-11 19:52:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-171479-20170511194849.patch</filename>
            <type>text/plain</type>
            <size>26418</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NjkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2RmZjRjZjU2YjZkZTk5NzZlMzQ4MjY0NjRhZmFiM2Ew
MDJjNDlkMC4uODJiYWRjZmI4ZDRjMDI4Nzc3NzM1OTZlMWFiMmI3ZDE4ZWI3NGVlZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDE3LTA1LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBbGxvdyBXUFQgc2VydmVyIHRvIHNlcnZlIHNwZWNpZmljIFdlYktpdCB0ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0NzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQWRkaW5nIGEgbmV3IG1v
dW50IHBvaW50IHRvIFdQVCBzZXJ2ZXIuCisgICAgICAgIEl0IHBvaW50cyB0byBMYXlvdXRUZXN0
cy93cHQgZm9sZGVyIGFuZCBpcyB0cmlnZ2VyZWQgb24gIi9XZWJLaXQiIHVybHMuCisKKyAgICAg
ICAgVXBkYXRpbmcgdGhlIHdlYmtpdHB5IGluZnJhc3RydWN0dXJlIHRvIGxhdW5jaCBXUFQgc2Vy
dmVyIGFuZCBkbyB0ZXN0IHVybCBtYXBwaW5nIGZvciBMYXlvdXRUZXN0cy93cHQgdGVzdHMuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5h
Z2VyLnB5OgorICAgICAgICAoTWFuYWdlci5fX2luaXRfXyk6CisgICAgICAgIChNYW5hZ2VyLl9p
c19odHRwX3Rlc3QpOgorICAgICAgICAoTWFuYWdlci5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Qp
OgorICAgICAgICAoTWFuYWdlci5fcnVuX3Rlc3RzKToKKyAgICAgICAgKE1hbmFnZXIuX2lzX3dl
Yl9wbGF0Zm9ybV90ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X2xhdW5jaGVyLnB5OgorICAgICAg
ICAoYnVpbGRfcm91dGVzKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9kcml2ZXIucHk6CisgICAgICAgIChEcml2ZXIpOgorICAgICAgICAoRHJpdmVy
LmlzX3dlYmtpdF9zcGVjaWZpY193ZWJfcGxhdGZvcm1fdGVzdCk6CisgICAgICAgIChEcml2ZXIu
dGVzdF90b191cmkpOgorICAgICAgICAoRHJpdmVyLl9jb21tYW5kX2Zyb21fZHJpdmVyX2lucHV0
KToKKwogMjAxNy0wNS0xMSAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBBZGQgV1BFIHJlbGVhc2UgYm90cwpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIu
cHkKaW5kZXggYTc3NjE5ZWE4YjAxMGYyMzQ3YzY0Zjg4ODZlOGQzNGU5NjJlYTM4NC4uZTkxYmNj
M2QwMzNhZDU4Nzc5NmQ1YmZlNTQ0ZjhkYjhiOTM2NWE3NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5
CkBAIC03OCw5ICs3OCwxMCBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
X29wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIHNlbGYuX3ByaW50ZXIgPSBwcmludGVyCiAgICAg
ICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IE5vbmUKLSAgICAgICAgc2VsZi5IVFRQX1NVQkRJUiA9
ICdodHRwJyArIHBvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUgorICAgICAgICBzZWxmLkhUVFBfU1VC
RElSID0gJ2h0dHAnICsgcG9ydC5URVNUX1BBVEhfU0VQQVJBVE9SICsgJ3Rlc3QnCiAgICAgICAg
IHNlbGYuV0VCU09DS0VUX1NVQkRJUiA9ICd3ZWJzb2NrZXQnICsgcG9ydC5URVNUX1BBVEhfU0VQ
QVJBVE9SCiAgICAgICAgIHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc3ViZGlyID0gc2VsZi5fcG9y
dC53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXJfZG9jX3Jvb3QoKQorICAgICAgICBzZWxmLndlYmtp
dF9zcGVjaWZpY193ZWJfcGxhdGZvcm1fdGVzdF9zdWJkaXIgPSAnaHR0cCcgKyBwb3J0LlRFU1Rf
UEFUSF9TRVBBUkFUT1IgKyAnd3B0JyArIHBvcnQuVEVTVF9QQVRIX1NFUEFSQVRPUgogICAgICAg
ICBzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlkgPSAnTGF5b3V0VGVzdHMnCiAgICAgICAgIHNl
bGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpCiAg
ICAgICAgIHNlbGYuX2ZpbmRlciA9IExheW91dFRlc3RGaW5kZXIoc2VsZi5fcG9ydCwgc2VsZi5f
b3B0aW9ucykKQEAgLTkzLDEzICs5NCwxMyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiBzZWxmLl9maW5kZXIuZmluZF90ZXN0cyhzZWxmLl9vcHRpb25zLCBhcmdzKQog
CiAgICAgZGVmIF9pc19odHRwX3Rlc3Qoc2VsZiwgdGVzdCk6Ci0gICAgICAgIHJldHVybiBzZWxm
LkhUVFBfU1VCRElSIGluIHRlc3Qgb3Igc2VsZi5faXNfd2Vic29ja2V0X3Rlc3QodGVzdCkgb3Ig
c2VsZi5faXNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdCkKKyAgICAgICAgcmV0dXJuIHNlbGYuSFRU
UF9TVUJESVIgaW4gdGVzdCBvciBzZWxmLl9pc193ZWJzb2NrZXRfdGVzdCh0ZXN0KSBvciBzZWxm
Ll9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KQogCiAgICAgZGVmIF9pc193ZWJzb2NrZXRf
dGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuV0VCU09DS0VUX1NVQkRJUiBp
biB0ZXN0CiAKLSAgICBkZWYgX2lzX3dlYl9wbGF0Zm9ybV90ZXN0KHNlbGYsIHRlc3QpOgotICAg
ICAgICByZXR1cm4gc2VsZi53ZWJfcGxhdGZvcm1fdGVzdF9zdWJkaXIgaW4gdGVzdAorICAgIGRl
ZiBfbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHJldHVybiBz
ZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3N1YmRpciBpbiB0ZXN0IG9yIHNlbGYud2Via2l0X3NwZWNp
ZmljX3dlYl9wbGF0Zm9ybV90ZXN0X3N1YmRpciBpbiB0ZXN0CiAKICAgICBkZWYgX2N1c3RvbV9k
ZXZpY2VfZm9yX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIGZvciBkZXZpY2VfY2xhc3MgaW4g
c2VsZi5fcG9ydC5DVVNUT01fREVWSUNFX0NMQVNTRVM6CkBAIC0zMTcsOCArMzE4LDggQEAgY2xh
c3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gdGVzdF9ydW5fcmVzdWx0cy5SdW5E
ZXRhaWxzKGV4aXRfY29kZSwgc3VtbWFyaXplZF9yZXN1bHRzLCBpbml0aWFsX3Jlc3VsdHMsIHJl
dHJ5X3Jlc3VsdHMsIGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5fcmV0cnkpCiAKICAgICBkZWYgX3J1
bl90ZXN0cyhzZWxmLCB0ZXN0c190b19ydW4sIHRlc3RzX3RvX3NraXAsIHJlcGVhdF9lYWNoLCBp
dGVyYXRpb25zLCBudW1fd29ya2VycywgcmV0cnlpbmcpOgotICAgICAgICBuZWVkc19odHRwID0g
YW55KChzZWxmLl9pc19odHRwX3Rlc3QodGVzdCkgYW5kIG5vdCBzZWxmLl9pc193ZWJfcGxhdGZv
cm1fdGVzdCh0ZXN0KSkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQotICAgICAgICBuZWVkc193
ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBhbnkoc2VsZi5faXNfd2ViX3BsYXRmb3JtX3Rlc3Qo
dGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQorICAgICAgICBuZWVkc19odHRwID0gYW55
KChzZWxmLl9pc19odHRwX3Rlc3QodGVzdCkgYW5kIG5vdCBzZWxmLl9uZWVkc193ZWJfcGxhdGZv
cm1fdGVzdCh0ZXN0KSkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQorICAgICAgICBuZWVkc193
ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBhbnkoc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rl
c3QodGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQogICAgICAgICBuZWVkc193ZWJzb2Nr
ZXRzID0gYW55KHNlbGYuX2lzX3dlYnNvY2tldF90ZXN0KHRlc3QpIGZvciB0ZXN0IGluIHRlc3Rz
X3RvX3J1bikKIAogICAgICAgICB0ZXN0X2lucHV0cyA9IHNlbGYuX2dldF90ZXN0X2lucHV0cyh0
ZXN0c190b19ydW4sIHJlcGVhdF9lYWNoLCBpdGVyYXRpb25zKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21h
bmFnZXJfdW5pdHRlc3QucHkKaW5kZXggYzkyODAxYmRlNmZjYjViYTcyMzY5ZmE1NmU5OTdjZGQ1
MjZmZTJkOS4uYzc5MmJjOTYxZDVjZDg4ZmI3MGI5MjcxZWJjYzMzYWQxNjkzOGIzZCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFu
YWdlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CkBAIC02NSw2ICs2NSw5IEBAIGNsYXNz
IE1hbmFnZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG1hbmFnZXIubmVlZHNfc2VydmVycyhbJ2ltcG9ydGVkL3czYy93cHQvdGVzdCddKSkKIAogICAg
ICAgICBtYW5hZ2VyID0gZ2V0X21hbmFnZXIoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWFu
YWdlci5uZWVkc19zZXJ2ZXJzKFsnaHR0cC93cHQvZnVua3knXSkpCisKKyAgICAgICAgbWFuYWdl
ciA9IGdldF9tYW5hZ2VyKCkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYW5hZ2VyLm5lZWRz
X3NlcnZlcnMoWydpbXBvcnRlZC93M2MnXSkpCiAKICAgICBkZWYgaW50ZWdyYXRpb25fdGVzdF9u
ZWVkc19zZXJ2ZXJzKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9sYXVuY2hlci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rf
bGF1bmNoZXIucHkKaW5kZXggNGNlMjUxODE5MDJhOGU4M2UwNTk2ZjdkZmEyMzkyNWIwYWUwYzgx
My4uYTVjZjQ0ZWQyZWQxMTM4OWIwZTI2ZDkyNzk1NjQ1NjdhMTZmN2IzMCAxMDA3NTUKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1f
dGVzdF9sYXVuY2hlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X2xhdW5jaGVyLnB5CkBAIC0yMCwxMCArMjAsMjYg
QEAgZXhjZXB0IEltcG9ydEVycm9yLCBlOgogICAgICAgICAiUGxlYXNlIGNoZWNrIHRoYXQgdGhl
IGZpbGUgc2VydmUucHkgaXMgcHJlc2VudCBpbiB0aGUgd2ViLXBsYXRmb3JtLXRlc3RzIGZvbGRl
ci5cbiIKICAgICAgICAgIlBsZWFzZSBhbHNvIGNoZWNrIHRoYXQgX19pbml0X18ucHkgZmlsZXMg
aW4gdGhlIHdlYi1wbGF0Zm9ybS10ZXN0cy90b29scyBmb2xkZXIgYW5kIHN1YmZvbGRlcnMgYXJl
IGFsc28gcHJlc2VudC4iKQogICAgIHJhaXNlCi0KICMgVGhpcyBzY3JpcHQgaXMgdXNlZCB0byBs
YXVuY2ggdGhlIHdlYiBwbGF0Zm9ybSB0ZXN0IHNlcnZlciBtYWluIHNjcmlwdCAoc2VydmUucHkp
IGFuZCBzdG9wIGl0IHdoZW4gYXNrZWQgYnkgcnVuLXdlYmtpdC10ZXN0cwogCiAKK2RlZiBidWls
ZF9yb3V0ZXMoYWxpYXNlcyk6CisgICAgYnVpbGRlciA9IFdlYlBsYXRmb3JtVGVzdFNlcnZlci5S
b3V0ZXNCdWlsZGVyKCkKKyAgICBmb3IgYWxpYXMgaW4gYWxpYXNlczoKKyAgICAgICAgdXJsID0g
YWxpYXNbInVybC1wYXRoIl0KKyAgICAgICAgZGlyZWN0b3J5ID0gYWxpYXNbImxvY2FsLWRpciJd
CisgICAgICAgIGlmIG5vdCB1cmwuc3RhcnRzd2l0aCgiLyIpIG9yIGxlbihkaXJlY3RvcnkpID09
IDA6CisgICAgICAgICAgICBsb2dnZXIuZXJyb3IoIlwidXJsLXBhdGhcIiB2YWx1ZSBtdXN0IHN0
YXJ0IHdpdGggJy8nLiIpCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiB1cmwuZW5k
c3dpdGgoIi8iKToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJcblxuYWRkaW5nIG1vdW50IHBv
aW50ICIgKyB1cmwgKyAiICIgKyBkaXJlY3RvcnkgKyAiXG5cbiIpCisgICAgICAgICAgICBidWls
ZGVyLmFkZF9tb3VudF9wb2ludCh1cmwsIGRpcmVjdG9yeSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGJ1aWxkZXIuYWRkX2ZpbGVfbW91bnRfcG9pbnQodXJsLCBkaXJlY3RvcnkpCisgICAg
YnVpbGRlci5hZGRfbW91bnRfcG9pbnQoIi9XZWJLaXQvIiwgIi4uLy4uLy4uL2h0dHAvd3B0LyIp
CisgICAgcmV0dXJuIGJ1aWxkZXIuZ2V0X3JvdXRlcygpCisKKwogZGVmIG1haW4oYXJndiwgc3Rk
b3V0LCBzdGRlcnIpOgogICAgICMgVGhpcyBpcyBhIGNvcHkgb2Ygc2VydmUucHkgbWFpbiBmdW5j
dGlvbiwgZXhjZXB0IGZvciB0aGUgd2FpdCBzdGVwCiAgICAgY29uZmlnID0gV2ViUGxhdGZvcm1U
ZXN0U2VydmVyLmxvYWRfY29uZmlnKCJjb25maWcuZGVmYXVsdC5qc29uIiwgImNvbmZpZy5qc29u
IikKQEAgLTMyLDcgKzQ4LDcgQEAgZGVmIG1haW4oYXJndiwgc3Rkb3V0LCBzdGRlcnIpOgogCiAg
ICAgd2l0aCBzdGFzaC5TdGFzaFNlcnZlcigoY29uZmlnWyJob3N0Il0sIFdlYlBsYXRmb3JtVGVz
dFNlcnZlci5nZXRfcG9ydCgpKSwgYXV0aGtleT1zdHIodXVpZC51dWlkNCgpKSk6CiAgICAgICAg
IHdpdGggV2ViUGxhdGZvcm1UZXN0U2VydmVyLmdldF9zc2xfZW52aXJvbm1lbnQoY29uZmlnKSBh
cyBzc2xfZW52OgotICAgICAgICAgICAgY29uZmlnXywgc3RhcnRlZF9zZXJ2ZXJzID0gV2ViUGxh
dGZvcm1UZXN0U2VydmVyLnN0YXJ0KGNvbmZpZywgc3NsX2VudiwgV2ViUGxhdGZvcm1UZXN0U2Vy
dmVyLmJ1aWxkX3JvdXRlcyhjb25maWdbImFsaWFzZXMiXSkpCisgICAgICAgICAgICBjb25maWdf
LCBzdGFydGVkX3NlcnZlcnMgPSBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuc3RhcnQoY29uZmlnLCBz
c2xfZW52LCBidWlsZF9yb3V0ZXMoY29uZmlnWyJhbGlhc2VzIl0pKQogCiAgICAgICAgICAgICBm
b3IgcHJvdG9jb2wsIHNlcnZlcnMgaW4gc3RhcnRlZF9zZXJ2ZXJzLml0ZW1zKCk6CiAgICAgICAg
ICAgICAgICAgZm9yIHBvcnQsIHByb2Nlc3MgaW4gc2VydmVyczoKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvZHJpdmVyLnB5CmluZGV4IGEyNDM3NjE1MWJiOGY5MGFiMGI5ZmFhMGUwYjJiMjkzM2Zi
OGU1ZjIuLmQwNzk1NTUzNWVmZDhjZGNhNWEzZTAyM2U3ODhmMTI5YWMxZDU5YzMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQpAQCAtMjU0LDEwICsyNTQsMTUgQEAgY2xhc3Mg
RHJpdmVyKG9iamVjdCk6CiAKICAgICBIVFRQX0RJUiA9ICJodHRwL3Rlc3RzLyIKICAgICBIVFRQ
X0xPQ0FMX0RJUiA9ICJodHRwL3Rlc3RzL2xvY2FsLyIKKyAgICBXRUJLSVRfU1BFQ0lGSUNfV0VC
X1BMQVRGT1JNX1RFU1RfU1VCRElSID0gImh0dHAvd3B0LyIKKyAgICBXRUJLSVRfV0VCX1BMQVRG
T1JNX1RFU1RfU0VSVkVSX1JPVVRFID0gIldlYktpdC8iCiAKICAgICBkZWYgaXNfaHR0cF90ZXN0
KHNlbGYsIHRlc3RfbmFtZSk6CiAgICAgICAgIHJldHVybiB0ZXN0X25hbWUuc3RhcnRzd2l0aChz
ZWxmLkhUVFBfRElSKSBhbmQgbm90IHRlc3RfbmFtZS5zdGFydHN3aXRoKHNlbGYuSFRUUF9MT0NB
TF9ESVIpCiAKKyAgICBkZWYgaXNfd2Via2l0X3NwZWNpZmljX3dlYl9wbGF0Zm9ybV90ZXN0KHNl
bGYsIHRlc3RfbmFtZSk6CisgICAgICAgIHJldHVybiB0ZXN0X25hbWUuc3RhcnRzd2l0aChzZWxm
LldFQktJVF9TUEVDSUZJQ19XRUJfUExBVEZPUk1fVEVTVF9TVUJESVIpCisKICAgICBkZWYgaXNf
d2ViX3BsYXRmb3JtX3Rlc3Qoc2VsZiwgdGVzdF9uYW1lKToKICAgICAgICAgcmV0dXJuIHRlc3Rf
bmFtZS5zdGFydHN3aXRoKHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyX2RvY19yb290KQog
CkBAIC0yNjUsNiArMjcwLDggQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgICIiIkNv
bnZlcnQgYSB0ZXN0IG5hbWUgdG8gYSBVUkkuIiIiCiAgICAgICAgIGlmIHNlbGYuaXNfd2ViX3Bs
YXRmb3JtX3Rlc3QodGVzdF9uYW1lKToKICAgICAgICAgICAgIHJldHVybiBzZWxmLndlYl9wbGF0
Zm9ybV90ZXN0X3NlcnZlcl9iYXNlX3VybCArIHRlc3RfbmFtZVtsZW4oc2VsZi53ZWJfcGxhdGZv
cm1fdGVzdF9zZXJ2ZXJfZG9jX3Jvb3QpOl0KKyAgICAgICAgaWYgc2VsZi5pc193ZWJraXRfc3Bl
Y2lmaWNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdF9uYW1lKToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9iYXNlX3VybCArIHNlbGYuV0VCS0lUX1dFQl9Q
TEFURk9STV9URVNUX1NFUlZFUl9ST1VURSArIHRlc3RfbmFtZVtsZW4oc2VsZi5XRUJLSVRfU1BF
Q0lGSUNfV0VCX1BMQVRGT1JNX1RFU1RfU1VCRElSKTpdCiAKICAgICAgICAgaWYgbm90IHNlbGYu
aXNfaHR0cF90ZXN0KHRlc3RfbmFtZSk6CiAgICAgICAgICAgICByZXR1cm4gcGF0aC5hYnNwYXRo
X3RvX3VyaShzZWxmLl9wb3J0Lmhvc3QucGxhdGZvcm0sIHNlbGYuX3BvcnQuYWJzcGF0aF9mb3Jf
dGVzdCh0ZXN0X25hbWUpKQpAQCAtMjg5LDYgKzI5Niw4IEBAIGNsYXNzIERyaXZlcihvYmplY3Qp
OgogICAgICAgICAgICAgaWYgbm90IHByZWZpeC5lbmRzd2l0aCgnLycpOgogICAgICAgICAgICAg
ICAgIHByZWZpeCArPSAnLycKICAgICAgICAgICAgIHJldHVybiB1cmlbbGVuKHByZWZpeCk6XQor
ICAgICAgICBpZiB1cmkuc3RhcnRzd2l0aChzZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9i
YXNlX3VybCArIHNlbGYuV0VCS0lUX1dFQl9QTEFURk9STV9URVNUX1NFUlZFUl9ST1VURSk6Cisg
ICAgICAgICAgICByZXR1cm4gdXJpLnJlcGxhY2Uoc2VsZi53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2
ZXJfYmFzZV91cmwgKyBzZWxmLldFQktJVF9XRUJfUExBVEZPUk1fVEVTVF9TRVJWRVJfUk9VVEUs
IHNlbGYuV0VCS0lUX1NQRUNJRklDX1dFQl9QTEFURk9STV9URVNUX1NVQkRJUikKICAgICAgICAg
aWYgdXJpLnN0YXJ0c3dpdGgoc2VsZi53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXJfYmFzZV91cmwp
OgogICAgICAgICAgICAgcmV0dXJuIHVyaS5yZXBsYWNlKHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rf
c2VydmVyX2Jhc2VfdXJsLCBzZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9kb2Nfcm9vdCkK
ICAgICAgICAgaWYgdXJpLnN0YXJ0c3dpdGgoImh0dHA6Ly8iKToKQEAgLTQ3Miw3ICs0ODEsNyBA
QCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgIyBGSVhNRTogcGVyZm9ybWFuY2UgdGVz
dHMgcGFzcyBpbiBmdWxsIFVSTHMgaW5zdGVhZCBvZiB0ZXN0IG5hbWVzLgogICAgICAgICBpZiBk
cml2ZXJfaW5wdXQudGVzdF9uYW1lLnN0YXJ0c3dpdGgoJ2h0dHA6Ly8nKSBvciBkcml2ZXJfaW5w
dXQudGVzdF9uYW1lLnN0YXJ0c3dpdGgoJ2h0dHBzOi8vJykgIG9yIGRyaXZlcl9pbnB1dC50ZXN0
X25hbWUgPT0gKCdhYm91dDpibGFuaycpOgogICAgICAgICAgICAgY29tbWFuZCA9IGRyaXZlcl9p
bnB1dC50ZXN0X25hbWUKLSAgICAgICAgZWxpZiBzZWxmLmlzX3dlYl9wbGF0Zm9ybV90ZXN0KGRy
aXZlcl9pbnB1dC50ZXN0X25hbWUpIG9yIChzZWxmLmlzX2h0dHBfdGVzdChkcml2ZXJfaW5wdXQu
dGVzdF9uYW1lKSBhbmQgKHNlbGYuX3BvcnQuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVy
Jykgb3Igc3lzLnBsYXRmb3JtID09ICJjeWd3aW4iKSk6CisgICAgICAgIGVsaWYgc2VsZi5pc193
ZWJfcGxhdGZvcm1fdGVzdChkcml2ZXJfaW5wdXQudGVzdF9uYW1lKSBvciBzZWxmLmlzX3dlYmtp
dF9zcGVjaWZpY193ZWJfcGxhdGZvcm1fdGVzdChkcml2ZXJfaW5wdXQudGVzdF9uYW1lKSBvciAo
c2VsZi5pc19odHRwX3Rlc3QoZHJpdmVyX2lucHV0LnRlc3RfbmFtZSkgYW5kIChzZWxmLl9wb3J0
LmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpIG9yIHN5cy5wbGF0Zm9ybSA9PSAiY3ln
d2luIikpOgogICAgICAgICAgICAgY29tbWFuZCA9IHNlbGYudGVzdF90b191cmkoZHJpdmVyX2lu
cHV0LnRlc3RfbmFtZSkKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLWFic29sdXRlUGF0aCci
CiAgICAgICAgICAgICBjb21tYW5kICs9IHNlbGYuX3BvcnQuYWJzcGF0aF9mb3JfdGVzdChkcml2
ZXJfaW5wdXQudGVzdF9uYW1lLCBzZWxmLl90YXJnZXRfaG9zdCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZHJpdmVyX3VuaXR0ZXN0LnB5CmluZGV4IDhjZmM3OGUzYWFmNWRjNWZi
NGZjYjZjODQxZWY3YTYwZDU4YmM0YWQuLmFlNGI3OTMyNjdkMzJiMWY5YzUzZmFmZjNkODkwZGI1
M2YwNTRjZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXJf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlcl91bml0
dGVzdC5weQpAQCAtMTE4LDYgKzExOCw3IEBAIGNsYXNzIERyaXZlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci50ZXN0X3RvX3VyaSgnaHR0
cC90ZXN0cy9mb28uaHRtbCcpLCAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Zvby5odG1sJykKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIudGVzdF90b191cmkoJ2h0dHAvdGVzdHMvc3Ns
L2Jhci5odG1sJyksICdodHRwczovLzEyNy4wLjAuMTo4NDQzL3NzbC9iYXIuaHRtbCcpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyLnRlc3RfdG9fdXJpKCdpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Zvby9iYXIuaHRtbCcpLCAnaHR0cDovL2xvY2FsaG9zdDo4ODAwL2Zv
by9iYXIuaHRtbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyLnRlc3RfdG9fdXJp
KCdodHRwL3dwdC9iYXIyLmh0bWwnKSwgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQvYmFy
Mi5odG1sJykKIAogICAgIGRlZiB0ZXN0X3VyaV90b190ZXN0KHNlbGYpOgogICAgICAgICBwb3J0
ID0gc2VsZi5tYWtlX3BvcnQoKQpAQCAtMTI2LDYgKzEyNyw3IEBAIGNsYXNzIERyaXZlclRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci51cmlf
dG9fdGVzdCgnaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Zvby5odG1sJyksICdodHRwL3Rlc3RzL2Zv
by5odG1sJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIudXJpX3RvX3Rlc3QoJ2h0
dHBzOi8vMTI3LjAuMC4xOjg0NDMvc3NsL2Jhci5odG1sJyksICdodHRwL3Rlc3RzL3NzbC9iYXIu
aHRtbCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyLnVyaV90b190ZXN0KCdodHRw
Oi8vbG9jYWxob3N0Ojg4MDAvZm9vL2Jhci5odG1sJyksICdpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Zvby9iYXIuaHRtbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVy
LnVyaV90b190ZXN0KCdodHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2JhcjIuaHRtbCcpLCAn
aHR0cC93cHQvYmFyMi5odG1sJykKIAogICAgIGRlZiB0ZXN0X3JlYWRfYmxvY2soc2VsZik6CiAg
ICAgICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9ydCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWUzYmVmMTc0ODI0Y2E5OWUz
YmE3YjNiNDU4MWVjY2Y0MGRmYWJmMi4uMGJlZjA0Nzc3YWQyM2M3NzA2MzRiNmI4NTA4YjI3NmNm
YTFjYzg1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTExICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBXUFQgc2VydmVyIHRvIHNlcnZl
IHNwZWNpZmljIFdlYktpdCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxNDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIE1vdmluZyB0ZXN0cyB0byBlbnN1cmUgdGhleSBhcmUgY29ycmVjdGx5IHJ1
bm5lZC4KKworICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2ItZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1i
bG9iLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9mZXRjaC1hcy1ibG9i
LXdvcmtlci1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRw
L3dwdC9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci5odG1sLgorICAgICAg
ICAqIGh0dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2IuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sLgorICAgICAgICAqIGh0
dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2IuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2IuanMuCisgICAgICAgIChwcm9taXNlX3Rlc3Qp
OgorCiAyMDE3LTA1LTExICBNYXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFya2VkIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlz
L3RpbWVycy9uZWdhdGl2ZS1zZXR0aW1lb3V0Lmh0bWwgYXMgZmxha3kuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2ItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YxMWQ4YTMxYjgxY2Q4OTJjYjIxOWIxNmY2
ZWMyMzY2NWYxZGEyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2ItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0KLVBBU1MgTUlNRSB0eXBlIGZvciBC
bG9iIGZyb20gZW1wdHkgYm9keSAKLVBBU1MgTUlNRSB0eXBlIGZvciBCbG9iIGZyb20gZW1wdHkg
Ym9keSB3aXRoIENvbnRlbnQtVHlwZSAKLVBBU1MgTUlNRSB0eXBlIGZvciBCbG9iIAotUEFTUyBN
SU1FIHR5cGUgZm9yIEJsb2Igd2l0aCBub24tZW1wdHkgdHlwZSAKLVBBU1MgRXh0cmFjdCBhIE1J
TUUgdHlwZSB3aXRoIGNsb25lIAotUEFTUyBNSU1FIHR5cGUgdW5jaGFuZ2VkIGlmIGhlYWRlcnMg
YXJlIG1vZGlmaWVkIGFmdGVyIFJlcXVlc3QoKSBjb25zdHJ1Y3RvciAKLVBBU1MgRXh0cmFjdCBh
IE1JTUUgdHlwZSAoMSkgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0
Y2gvZmV0Y2gtYXMtYmxvYi13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDdmMTFkOGEzMWI4MWNkODkyY2IyMTliMTZmNmVjMjM2NjVmMWRh
MjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLQotUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2Ig
ZnJvbSBlbXB0eSBib2R5IAotUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2IgZnJvbSBlbXB0eSBib2R5
IHdpdGggQ29udGVudC1UeXBlIAotUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2IgCi1QQVNTIE1JTUUg
dHlwZSBmb3IgQmxvYiB3aXRoIG5vbi1lbXB0eSB0eXBlIAotUEFTUyBFeHRyYWN0IGEgTUlNRSB0
eXBlIHdpdGggY2xvbmUgCi1QQVNTIE1JTUUgdHlwZSB1bmNoYW5nZWQgaWYgaGVhZGVycyBhcmUg
bW9kaWZpZWQgYWZ0ZXIgUmVxdWVzdCgpIGNvbnN0cnVjdG9yIAotUEFTUyBFeHRyYWN0IGEgTUlN
RSB0eXBlICgxKSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9m
ZXRjaC1hcy1ibG9iLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9m
ZXRjaC1hcy1ibG9iLXdvcmtlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
NWI2YTE2MGUxNzQ3NGEyN2YwNWU0ZWYxOWFjMmE1MTE0NDMyNjgxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0
Y2gvZmV0Y2gtYXMtYmxvYi13b3JrZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLSAgICAgICAgPHRpdGxlPlJlc3BvbnNlIGJvZHkgdXNlZCB0ZXN0czwv
dGl0bGU+Ci0gICAgICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0gICAgICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KLSAgICAgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgZmV0
Y2hfdGVzdHNfZnJvbV93b3JrZXIobmV3IFdvcmtlcigiZmV0Y2gtYXMtYmxvYi5qcyIpKTsKLSAg
ICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2IuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhODAxZTgxMDI4NTdhNjM3MjllODk5YTVmODA2YWM1OTRmM2VhYjRhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+UmVzcG9uc2UgYm9keSB1c2VkIHRl
c3RzPC90aXRsZT4KLSAgICAgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICAgICAgPG1ldGEgbmFtZT0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgotICAgICAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAg
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJmZXRjaC1h
cy1ibG9iLmpzIj48L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2IuanMgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2IuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJlYzQwMGQwM2JkZGE3Y2M0NWU0NmJlNTU0Y2Y3ZWM0YjBlYWFkNGEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAs
MCBAQAotaWYgKHNlbGYuaW1wb3J0U2NyaXB0cykgewotICBpbXBvcnRTY3JpcHRzKCcvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzJyk7Ci19Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0g
ICAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KCdodHRwOi8vbG9jYWxob3N0LycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJ30pOwotICAgIHJldHVybiByZXEuYmxvYigp
Ci0gICAgICAudGhlbihmdW5jdGlvbihibG9iKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhi
bG9iLnR5cGUsICcnKTsKLSAgICAgICAgfSk7Ci0gIH0sICdNSU1FIHR5cGUgZm9yIEJsb2IgZnJv
bSBlbXB0eSBib2R5Jyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHJl
cSA9IG5ldyBSZXF1ZXN0KCdodHRwOi8vbG9jYWxob3N0LycsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHttZXRob2Q6ICdQT1NUJywgaGVhZGVyczogW1snQ29udGVudC1UeXBlJywgJ015dGV4
dC9QbGFpbiddXX0pOwotICAgIHJldHVybiByZXEuYmxvYigpCi0gICAgICAudGhlbihmdW5jdGlv
bihibG9iKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhibG9iLnR5cGUsICdteXRleHQvcGxh
aW4nKTsKLSAgICAgICAgfSk7Ci0gIH0sICdNSU1FIHR5cGUgZm9yIEJsb2IgZnJvbSBlbXB0eSBi
b2R5IHdpdGggQ29udGVudC1UeXBlJyk7Ci0KLS8vIFRoZSA1IGZvbGxvd2luZyB0ZXN0cyBhcmUg
Y29taW5nIGZyb20gQ2hyb21pdW0gc2VlIGZldGNoL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LmpzCi0K
LS8vIFRlc3RzIGZvciBNSU1FIHR5cGVzLgotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAg
ICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLCBib2R5OiBuZXcgQmxvYihbJyddKX0pOwot
ICAgIHJldHVybiByZXEuYmxvYigpCi0gICAgICAudGhlbihmdW5jdGlvbihibG9iKSB7Ci0gICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhibG9iLnR5cGUsICcnKTsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlcS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyksICcnKTsKLSAgICAgICAgfSk7Ci0g
IH0sICdNSU1FIHR5cGUgZm9yIEJsb2InKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
LSAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9keTogbmV3IEJsb2IoWycnXSwge3R5cGU6ICdUZXh0L1BsYWluJ30pfSk7Ci0gICAg
cmV0dXJuIHJlcS5ibG9iKCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJ3RleHQvcGxhaW4nKTsKLSAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlcS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyksICd0ZXh0L3BsYWluJyk7
Ci0gICAgICAgIH0pOwotICB9LCAnTUlNRSB0eXBlIGZvciBCbG9iIHdpdGggbm9uLWVtcHR5IHR5
cGUnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgcmVxID0gbmV3IFJl
cXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAge21l
dGhvZDogJ1BPU1QnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogbmV3IEJsb2Io
WycnXSwge3R5cGU6ICdUZXh0L1BsYWluJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVhZGVyczogW1snQ29udGVudC1UeXBlJywgJ1RleHQvSHRtbCddXX0pOwotICAgIHZhciBjbG9u
ZSA9IHJlcS5jbG9uZSgpOwotICAgIHJldHVybiBQcm9taXNlLmFsbChbcmVxLmJsb2IoKSwgY2xv
bmUuYmxvYigpXSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2JzKSB7Ci0gICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhibG9ic1swXS50eXBlLCAndGV4dC9odG1sJyk7Ci0gICAgICAgICAgYXNzZXJ0
X2VxdWFscyhibG9ic1sxXS50eXBlLCAndGV4dC9odG1sJyk7Ci0gICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZXEuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpLCAnVGV4dC9IdG1sJyk7Ci0gICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjbG9uZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyksICdU
ZXh0L0h0bWwnKTsKLSAgICAgICAgfSk7Ci0gIH0sICdFeHRyYWN0IGEgTUlNRSB0eXBlIHdpdGgg
Y2xvbmUnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgcmVxID0gbmV3
IFJlcXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
e21ldGhvZDogJ1BPU1QnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogbmV3IEJs
b2IoWycnXSwge3R5cGU6ICdUZXh0L1BsYWluJ30pfSk7Ci0gICAgcmVxLmhlYWRlcnMuc2V0KCdD
b250ZW50LVR5cGUnLCAnVGV4dC9IdG1sJyk7Ci0gICAgcmV0dXJuIHJlcS5ibG9iKCkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlw
ZSwgJ3RleHQvcGxhaW4nKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcS5oZWFkZXJzLmdl
dCgnQ29udGVudC1UeXBlJyksICdUZXh0L0h0bWwnKTsKLSAgICAgICAgfSk7Ci0gIH0sCi0gICdN
SU1FIHR5cGUgdW5jaGFuZ2VkIGlmIGhlYWRlcnMgYXJlIG1vZGlmaWVkIGFmdGVyIFJlcXVlc3Qo
KSBjb25zdHJ1Y3RvcicpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBy
ZXEgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9zdC8nLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICB7bWV0aG9kOiAnUE9TVCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5
OiBuZXcgQmxvYihbJyddLCB7dHlwZTogJ1RleHQvUGxhaW4nfSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWFkZXJzOiBbWydDb250ZW50LVR5cGUnLCAnVGV4dC9IdG1sJ11dfSk7Ci0g
ICAgcmV0dXJuIHJlcS5ibG9iKCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKLSAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJ3RleHQvaHRtbCcpOwotICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVxLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSwgJ1RleHQvSHRtbCcp
OwotICAgICAgICB9KTsKLSAgfSwgJ0V4dHJhY3QgYSBNSU1FIHR5cGUgKDEpJyk7Ci0KLWRvbmUo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2It
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0Y2gtYXMtYmxvYi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2YxMWQ4YTMxYjgxY2Q4OTJjYjIxOWIxNmY2ZWMyMzY2
NWYxZGEyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2Zl
dGNoLWFzLWJsb2ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitQQVNTIE1JTUUgdHlw
ZSBmb3IgQmxvYiBmcm9tIGVtcHR5IGJvZHkgCitQQVNTIE1JTUUgdHlwZSBmb3IgQmxvYiBmcm9t
IGVtcHR5IGJvZHkgd2l0aCBDb250ZW50LVR5cGUgCitQQVNTIE1JTUUgdHlwZSBmb3IgQmxvYiAK
K1BBU1MgTUlNRSB0eXBlIGZvciBCbG9iIHdpdGggbm9uLWVtcHR5IHR5cGUgCitQQVNTIEV4dHJh
Y3QgYSBNSU1FIHR5cGUgd2l0aCBjbG9uZSAKK1BBU1MgTUlNRSB0eXBlIHVuY2hhbmdlZCBpZiBo
ZWFkZXJzIGFyZSBtb2RpZmllZCBhZnRlciBSZXF1ZXN0KCkgY29uc3RydWN0b3IgCitQQVNTIEV4
dHJhY3QgYSBNSU1FIHR5cGUgKDEpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2YxMWQ4YTMxYjgxY2Q4OTJjYjIxOWIxNmY2ZWMyMzY2NWYxZGEyOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKworUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2IgZnJv
bSBlbXB0eSBib2R5IAorUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2IgZnJvbSBlbXB0eSBib2R5IHdp
dGggQ29udGVudC1UeXBlIAorUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2IgCitQQVNTIE1JTUUgdHlw
ZSBmb3IgQmxvYiB3aXRoIG5vbi1lbXB0eSB0eXBlIAorUEFTUyBFeHRyYWN0IGEgTUlNRSB0eXBl
IHdpdGggY2xvbmUgCitQQVNTIE1JTUUgdHlwZSB1bmNoYW5nZWQgaWYgaGVhZGVycyBhcmUgbW9k
aWZpZWQgYWZ0ZXIgUmVxdWVzdCgpIGNvbnN0cnVjdG9yIAorUEFTUyBFeHRyYWN0IGEgTUlNRSB0
eXBlICgxKSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0Y2gt
YXMtYmxvYi13b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNoLWFz
LWJsb2Itd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViNmExNjBlMTc0NzRhMjdmMDVlNGVmMTlh
YzJhNTExNDQzMjY4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Zl
dGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgICAgICA8dGl0bGU+UmVzcG9uc2UgYm9keSB1c2VkIHRlc3RzPC90aXRsZT4KKyAgICAg
ICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I3Jlc3BvbnNlIj4KKyAgICAgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmZXRjaF90ZXN0c19mcm9t
X3dvcmtlcihuZXcgV29ya2VyKCJmZXRjaC1hcy1ibG9iLmpzIikpOworICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2ZldGNoL2ZldGNoLWFzLWJsb2IuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNo
L2ZldGNoLWFzLWJsb2IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODAxZTgxMDI4NTdhNjM3MjllODk5YTVm
ODA2YWM1OTRmM2VhYjRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICAgICAgPHRpdGxlPlJlc3BvbnNlIGJvZHkgdXNlZCB0ZXN0czwvdGl0bGU+CisgICAgICAgIDxt
ZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNw
b25zZSI+CisgICAgICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8c2NyaXB0IHNyYz0iZmV0Y2gtYXMtYmxvYi5qcyI+PC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0
Y2gvZmV0Y2gtYXMtYmxvYi5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNoLWFz
LWJsb2IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmVjNDAwZDAzYmRkYTdjYzQ1ZTQ2YmU1NTRjZjdlYzRiMGVh
YWQ0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNo
LWFzLWJsb2IuanMKQEAgLTAsMCArMSw4NyBAQAoraWYgKHNlbGYuaW1wb3J0U2NyaXB0cykgewor
ICBpbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyk7Cit9CisKK3Byb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KCdodHRwOi8v
bG9jYWxob3N0LycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJ30p
OworICAgIHJldHVybiByZXEuYmxvYigpCisgICAgICAudGhlbihmdW5jdGlvbihibG9iKSB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhibG9iLnR5cGUsICcnKTsKKyAgICAgICAgfSk7CisgIH0s
ICdNSU1FIHR5cGUgZm9yIEJsb2IgZnJvbSBlbXB0eSBib2R5Jyk7CisKK3Byb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KCdodHRwOi8vbG9jYWxob3N0
LycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywgaGVhZGVyczog
W1snQ29udGVudC1UeXBlJywgJ015dGV4dC9QbGFpbiddXX0pOworICAgIHJldHVybiByZXEuYmxv
YigpCisgICAgICAudGhlbihmdW5jdGlvbihibG9iKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhibG9iLnR5cGUsICdteXRleHQvcGxhaW4nKTsKKyAgICAgICAgfSk7CisgIH0sICdNSU1FIHR5
cGUgZm9yIEJsb2IgZnJvbSBlbXB0eSBib2R5IHdpdGggQ29udGVudC1UeXBlJyk7CisKKy8vIFRo
ZSA1IGZvbGxvd2luZyB0ZXN0cyBhcmUgY29taW5nIGZyb20gQ2hyb21pdW0gc2VlIGZldGNoL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LmpzCisKKy8vIFRlc3RzIGZvciBNSU1FIHR5cGVzLgorcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9s
b2NhbGhvc3QvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLCBi
b2R5OiBuZXcgQmxvYihbJyddKX0pOworICAgIHJldHVybiByZXEuYmxvYigpCisgICAgICAudGhl
bihmdW5jdGlvbihibG9iKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhibG9iLnR5cGUsICcn
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBl
JyksICcnKTsKKyAgICAgICAgfSk7CisgIH0sICdNSU1FIHR5cGUgZm9yIEJsb2InKTsKKworcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6
Ly9sb2NhbGhvc3QvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1Qn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogbmV3IEJsb2IoWycnXSwge3R5cGU6
ICdUZXh0L1BsYWluJ30pfSk7CisgICAgcmV0dXJuIHJlcS5ibG9iKCkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKGJsb2IpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJ3RleHQv
cGxhaW4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcS5oZWFkZXJzLmdldCgnQ29udGVu
dC1UeXBlJyksICd0ZXh0L3BsYWluJyk7CisgICAgICAgIH0pOworICB9LCAnTUlNRSB0eXBlIGZv
ciBCbG9iIHdpdGggbm9uLWVtcHR5IHR5cGUnKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9keTogbmV3IEJsb2IoWycnXSwge3R5cGU6ICdUZXh0L1BsYWluJ30pLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW1snQ29udGVudC1UeXBlJywgJ1RleHQv
SHRtbCddXX0pOworICAgIHZhciBjbG9uZSA9IHJlcS5jbG9uZSgpOworICAgIHJldHVybiBQcm9t
aXNlLmFsbChbcmVxLmJsb2IoKSwgY2xvbmUuYmxvYigpXSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KGJsb2JzKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhibG9ic1swXS50eXBlLCAndGV4dC9o
dG1sJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhibG9ic1sxXS50eXBlLCAndGV4dC9odG1s
Jyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXEuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlw
ZScpLCAnVGV4dC9IdG1sJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjbG9uZS5oZWFkZXJz
LmdldCgnQ29udGVudC1UeXBlJyksICdUZXh0L0h0bWwnKTsKKyAgICAgICAgfSk7CisgIH0sICdF
eHRyYWN0IGEgTUlNRSB0eXBlIHdpdGggY2xvbmUnKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKKyAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9keTogbmV3IEJsb2IoWycnXSwge3R5cGU6ICdUZXh0L1BsYWluJ30pfSk7
CisgICAgcmVxLmhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCAnVGV4dC9IdG1sJyk7CisgICAg
cmV0dXJuIHJlcS5ibG9iKCkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJ3RleHQvcGxhaW4nKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlcS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyksICdUZXh0L0h0bWwnKTsK
KyAgICAgICAgfSk7CisgIH0sCisgICdNSU1FIHR5cGUgdW5jaGFuZ2VkIGlmIGhlYWRlcnMgYXJl
IG1vZGlmaWVkIGFmdGVyIFJlcXVlc3QoKSBjb25zdHJ1Y3RvcicpOworCitwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICAgIHZhciByZXEgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9z
dC8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib2R5OiBuZXcgQmxvYihbJyddLCB7dHlwZTogJ1RleHQvUGxh
aW4nfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbWydDb250ZW50LVR5
cGUnLCAnVGV4dC9IdG1sJ11dfSk7CisgICAgcmV0dXJuIHJlcS5ibG9iKCkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKGJsb2IpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJ3Rl
eHQvaHRtbCcpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxLmhlYWRlcnMuZ2V0KCdDb250
ZW50LVR5cGUnKSwgJ1RleHQvSHRtbCcpOworICAgICAgICB9KTsKKyAgfSwgJ0V4dHJhY3QgYSBN
SU1FIHR5cGUgKDEpJyk7CisKK2RvbmUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309852</attachid>
            <date>2017-05-11 19:52:30 -0700</date>
            <delta_ts>2017-05-11 20:16:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171479-20170511195230.patch</filename>
            <type>text/plain</type>
            <size>26423</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NjkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2RmZjRjZjU2YjZkZTk5NzZlMzQ4MjY0NjRhZmFiM2Ew
MDJjNDlkMC4uMDM2OGY2NWE3MDBiYmQ4YjZlYzYxZjU1ZWMzOGZkY2VlNzAxZmU4MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDE3LTA1LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBbGxvdyBXUFQgc2VydmVyIHRvIHNlcnZlIHNwZWNpZmljIFdlYktpdCB0ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0NzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQWRkaW5nIGEgbmV3IG1v
dW50IHBvaW50IHRvIFdQVCBzZXJ2ZXIuCisgICAgICAgIEl0IHBvaW50cyB0byBMYXlvdXRUZXN0
cy9odHRwL3dwdCBmb2xkZXIgYW5kIGlzIHRyaWdnZXJlZCBvbiAiL1dlYktpdCIgdXJscy4KKwor
ICAgICAgICBVcGRhdGluZyB0aGUgd2Via2l0cHkgaW5mcmFzdHJ1Y3R1cmUgdG8gbGF1bmNoIFdQ
VCBzZXJ2ZXIgYW5kIGRvIHRlc3QgdXJsIG1hcHBpbmcgZm9yIExheW91dFRlc3RzL3dwdCB0ZXN0
cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L21hbmFnZXIucHk6CisgICAgICAgIChNYW5hZ2VyLl9faW5pdF9fKToKKyAgICAgICAgKE1hbmFn
ZXIuX2lzX2h0dHBfdGVzdCk6CisgICAgICAgIChNYW5hZ2VyLl9uZWVkc193ZWJfcGxhdGZvcm1f
dGVzdCk6CisgICAgICAgIChNYW5hZ2VyLl9ydW5fdGVzdHMpOgorICAgICAgICAoTWFuYWdlci5f
aXNfd2ViX3BsYXRmb3JtX3Rlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHk6Cisg
ICAgICAgIChidWlsZF9yb3V0ZXMpOgorICAgICAgICAobWFpbik6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToKKyAgICAgICAgKERyaXZlcik6CisgICAgICAgIChE
cml2ZXIuaXNfd2Via2l0X3NwZWNpZmljX3dlYl9wbGF0Zm9ybV90ZXN0KToKKyAgICAgICAgKERy
aXZlci50ZXN0X3RvX3VyaSk6CisgICAgICAgIChEcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJf
aW5wdXQpOgorCiAyMDE3LTA1LTExICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3Bl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBXUEUgcmVsZWFzZSBib3RzCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2Vy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFu
YWdlci5weQppbmRleCBhNzc2MTllYThiMDEwZjIzNDdjNjRmODg4NmU4ZDM0ZTk2MmVhMzg0Li5l
OTFiY2MzZDAzM2FkNTg3Nzk2ZDViZmU1NDRmOGRiOGI5MzY1YTc0IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFn
ZXIucHkKQEAgLTc4LDkgKzc4LDEwIEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAg
c2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5fcHJpbnRlciA9IHByaW50ZXIK
ICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zID0gTm9uZQotICAgICAgICBzZWxmLkhUVFBfU1VC
RElSID0gJ2h0dHAnICsgcG9ydC5URVNUX1BBVEhfU0VQQVJBVE9SCisgICAgICAgIHNlbGYuSFRU
UF9TVUJESVIgPSAnaHR0cCcgKyBwb3J0LlRFU1RfUEFUSF9TRVBBUkFUT1IgKyAndGVzdCcKICAg
ICAgICAgc2VsZi5XRUJTT0NLRVRfU1VCRElSID0gJ3dlYnNvY2tldCcgKyBwb3J0LlRFU1RfUEFU
SF9TRVBBUkFUT1IKICAgICAgICAgc2VsZi53ZWJfcGxhdGZvcm1fdGVzdF9zdWJkaXIgPSBzZWxm
Ll9wb3J0LndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9kb2Nfcm9vdCgpCisgICAgICAgIHNlbGYu
d2Via2l0X3NwZWNpZmljX3dlYl9wbGF0Zm9ybV90ZXN0X3N1YmRpciA9ICdodHRwJyArIHBvcnQu
VEVTVF9QQVRIX1NFUEFSQVRPUiArICd3cHQnICsgcG9ydC5URVNUX1BBVEhfU0VQQVJBVE9SCiAg
ICAgICAgIHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSA9ICdMYXlvdXRUZXN0cycKICAgICAg
ICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSBzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5
KCkKICAgICAgICAgc2VsZi5fZmluZGVyID0gTGF5b3V0VGVzdEZpbmRlcihzZWxmLl9wb3J0LCBz
ZWxmLl9vcHRpb25zKQpAQCAtOTMsMTMgKzk0LDEzIEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToK
ICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbmRlci5maW5kX3Rlc3RzKHNlbGYuX29wdGlvbnMsIGFy
Z3MpCiAKICAgICBkZWYgX2lzX2h0dHBfdGVzdChzZWxmLCB0ZXN0KToKLSAgICAgICAgcmV0dXJu
IHNlbGYuSFRUUF9TVUJESVIgaW4gdGVzdCBvciBzZWxmLl9pc193ZWJzb2NrZXRfdGVzdCh0ZXN0
KSBvciBzZWxmLl9pc193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KQorICAgICAgICByZXR1cm4gc2Vs
Zi5IVFRQX1NVQkRJUiBpbiB0ZXN0IG9yIHNlbGYuX2lzX3dlYnNvY2tldF90ZXN0KHRlc3QpIG9y
IHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0KHRlc3QpCiAKICAgICBkZWYgX2lzX3dlYnNv
Y2tldF90ZXN0KHNlbGYsIHRlc3QpOgogICAgICAgICByZXR1cm4gc2VsZi5XRUJTT0NLRVRfU1VC
RElSIGluIHRlc3QKIAotICAgIGRlZiBfaXNfd2ViX3BsYXRmb3JtX3Rlc3Qoc2VsZiwgdGVzdCk6
Ci0gICAgICAgIHJldHVybiBzZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3N1YmRpciBpbiB0ZXN0Cisg
ICAgZGVmIF9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgcmV0
dXJuIHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc3ViZGlyIGluIHRlc3Qgb3Igc2VsZi53ZWJraXRf
c3BlY2lmaWNfd2ViX3BsYXRmb3JtX3Rlc3Rfc3ViZGlyIGluIHRlc3QKIAogICAgIGRlZiBfY3Vz
dG9tX2RldmljZV9mb3JfdGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAgZm9yIGRldmljZV9jbGFz
cyBpbiBzZWxmLl9wb3J0LkNVU1RPTV9ERVZJQ0VfQ0xBU1NFUzoKQEAgLTMxNyw4ICszMTgsOCBA
QCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiB0ZXN0X3J1bl9yZXN1bHRz
LlJ1bkRldGFpbHMoZXhpdF9jb2RlLCBzdW1tYXJpemVkX3Jlc3VsdHMsIGluaXRpYWxfcmVzdWx0
cywgcmV0cnlfcmVzdWx0cywgZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSkKIAogICAgIGRl
ZiBfcnVuX3Rlc3RzKHNlbGYsIHRlc3RzX3RvX3J1biwgdGVzdHNfdG9fc2tpcCwgcmVwZWF0X2Vh
Y2gsIGl0ZXJhdGlvbnMsIG51bV93b3JrZXJzLCByZXRyeWluZyk6Ci0gICAgICAgIG5lZWRzX2h0
dHAgPSBhbnkoKHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0KSBhbmQgbm90IHNlbGYuX2lzX3dlYl9w
bGF0Zm9ybV90ZXN0KHRlc3QpKSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0gICAgICAgIG5l
ZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciA9IGFueShzZWxmLl9pc193ZWJfcGxhdGZvcm1f
dGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCisgICAgICAgIG5lZWRzX2h0dHAg
PSBhbnkoKHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0KSBhbmQgbm90IHNlbGYuX25lZWRzX3dlYl9w
bGF0Zm9ybV90ZXN0KHRlc3QpKSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCisgICAgICAgIG5l
ZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciA9IGFueShzZWxmLl9uZWVkc193ZWJfcGxhdGZv
cm1fdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCiAgICAgICAgIG5lZWRzX3dl
YnNvY2tldHMgPSBhbnkoc2VsZi5faXNfd2Vic29ja2V0X3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4g
dGVzdHNfdG9fcnVuKQogCiAgICAgICAgIHRlc3RfaW5wdXRzID0gc2VsZi5fZ2V0X3Rlc3RfaW5w
dXRzKHRlc3RzX3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvbWFuYWdlcl91bml0dGVzdC5weQppbmRleCBjOTI4MDFiZGU2ZmNiNWJhNzIzNjlmYTU2ZTk5
N2NkZDUyNmZlMmQ5Li5jNzkyYmM5NjFkNWNkODhmYjcwYjkyNzFlYmNjMzNhZDE2OTM4YjNkIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKQEAgLTY1LDYgKzY1LDkgQEAg
Y2xhc3MgTWFuYWdlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobWFuYWdlci5uZWVkc19zZXJ2ZXJzKFsnaW1wb3J0ZWQvdzNjL3dwdC90ZXN0J10pKQog
CiAgICAgICAgIG1hbmFnZXIgPSBnZXRfbWFuYWdlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtYW5hZ2VyLm5lZWRzX3NlcnZlcnMoWydodHRwL3dwdC9mdW5reSddKSkKKworICAgICAgICBt
YW5hZ2VyID0gZ2V0X21hbmFnZXIoKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hbmFnZXIu
bmVlZHNfc2VydmVycyhbJ2ltcG9ydGVkL3czYyddKSkKIAogICAgIGRlZiBpbnRlZ3JhdGlvbl90
ZXN0X25lZWRzX3NlcnZlcnMoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X2xhdW5jaGVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1f
dGVzdF9sYXVuY2hlci5weQppbmRleCA0Y2UyNTE4MTkwMmE4ZTgzZTA1OTZmN2RmYTIzOTI1YjBh
ZTBjODEzLi5hNWNmNDRlZDJlZDExMzg5YjBlMjZkOTI3OTU2NDU2N2ExNmY3YjMwIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0
Zm9ybV90ZXN0X2xhdW5jaGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHkKQEAgLTIwLDEwICsy
MCwyNiBAQCBleGNlcHQgSW1wb3J0RXJyb3IsIGU6CiAgICAgICAgICJQbGVhc2UgY2hlY2sgdGhh
dCB0aGUgZmlsZSBzZXJ2ZS5weSBpcyBwcmVzZW50IGluIHRoZSB3ZWItcGxhdGZvcm0tdGVzdHMg
Zm9sZGVyLlxuIgogICAgICAgICAiUGxlYXNlIGFsc28gY2hlY2sgdGhhdCBfX2luaXRfXy5weSBm
aWxlcyBpbiB0aGUgd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzIGZvbGRlciBhbmQgc3ViZm9sZGVy
cyBhcmUgYWxzbyBwcmVzZW50LiIpCiAgICAgcmFpc2UKLQogIyBUaGlzIHNjcmlwdCBpcyB1c2Vk
IHRvIGxhdW5jaCB0aGUgd2ViIHBsYXRmb3JtIHRlc3Qgc2VydmVyIG1haW4gc2NyaXB0IChzZXJ2
ZS5weSkgYW5kIHN0b3AgaXQgd2hlbiBhc2tlZCBieSBydW4td2Via2l0LXRlc3RzCiAKIAorZGVm
IGJ1aWxkX3JvdXRlcyhhbGlhc2VzKToKKyAgICBidWlsZGVyID0gV2ViUGxhdGZvcm1UZXN0U2Vy
dmVyLlJvdXRlc0J1aWxkZXIoKQorICAgIGZvciBhbGlhcyBpbiBhbGlhc2VzOgorICAgICAgICB1
cmwgPSBhbGlhc1sidXJsLXBhdGgiXQorICAgICAgICBkaXJlY3RvcnkgPSBhbGlhc1sibG9jYWwt
ZGlyIl0KKyAgICAgICAgaWYgbm90IHVybC5zdGFydHN3aXRoKCIvIikgb3IgbGVuKGRpcmVjdG9y
eSkgPT0gMDoKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiXCJ1cmwtcGF0aFwiIHZhbHVlIG11
c3Qgc3RhcnQgd2l0aCAnLycuIikKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIHVy
bC5lbmRzd2l0aCgiLyIpOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlxuXG5hZGRpbmcgbW91
bnQgcG9pbnQgIiArIHVybCArICIgIiArIGRpcmVjdG9yeSArICJcblxuIikKKyAgICAgICAgICAg
IGJ1aWxkZXIuYWRkX21vdW50X3BvaW50KHVybCwgZGlyZWN0b3J5KQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgYnVpbGRlci5hZGRfZmlsZV9tb3VudF9wb2ludCh1cmwsIGRpcmVjdG9yeSkK
KyAgICBidWlsZGVyLmFkZF9tb3VudF9wb2ludCgiL1dlYktpdC8iLCAiLi4vLi4vLi4vaHR0cC93
cHQvIikKKyAgICByZXR1cm4gYnVpbGRlci5nZXRfcm91dGVzKCkKKworCiBkZWYgbWFpbihhcmd2
LCBzdGRvdXQsIHN0ZGVycik6CiAgICAgIyBUaGlzIGlzIGEgY29weSBvZiBzZXJ2ZS5weSBtYWlu
IGZ1bmN0aW9uLCBleGNlcHQgZm9yIHRoZSB3YWl0IHN0ZXAKICAgICBjb25maWcgPSBXZWJQbGF0
Zm9ybVRlc3RTZXJ2ZXIubG9hZF9jb25maWcoImNvbmZpZy5kZWZhdWx0Lmpzb24iLCAiY29uZmln
Lmpzb24iKQpAQCAtMzIsNyArNDgsNyBAQCBkZWYgbWFpbihhcmd2LCBzdGRvdXQsIHN0ZGVycik6
CiAKICAgICB3aXRoIHN0YXNoLlN0YXNoU2VydmVyKChjb25maWdbImhvc3QiXSwgV2ViUGxhdGZv
cm1UZXN0U2VydmVyLmdldF9wb3J0KCkpLCBhdXRoa2V5PXN0cih1dWlkLnV1aWQ0KCkpKToKICAg
ICAgICAgd2l0aCBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuZ2V0X3NzbF9lbnZpcm9ubWVudChjb25m
aWcpIGFzIHNzbF9lbnY6Ci0gICAgICAgICAgICBjb25maWdfLCBzdGFydGVkX3NlcnZlcnMgPSBX
ZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuc3RhcnQoY29uZmlnLCBzc2xfZW52LCBXZWJQbGF0Zm9ybVRl
c3RTZXJ2ZXIuYnVpbGRfcm91dGVzKGNvbmZpZ1siYWxpYXNlcyJdKSkKKyAgICAgICAgICAgIGNv
bmZpZ18sIHN0YXJ0ZWRfc2VydmVycyA9IFdlYlBsYXRmb3JtVGVzdFNlcnZlci5zdGFydChjb25m
aWcsIHNzbF9lbnYsIGJ1aWxkX3JvdXRlcyhjb25maWdbImFsaWFzZXMiXSkpCiAKICAgICAgICAg
ICAgIGZvciBwcm90b2NvbCwgc2VydmVycyBpbiBzdGFydGVkX3NlcnZlcnMuaXRlbXMoKToKICAg
ICAgICAgICAgICAgICBmb3IgcG9ydCwgcHJvY2VzcyBpbiBzZXJ2ZXJzOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9kcml2ZXIucHkKaW5kZXggYTI0Mzc2MTUxYmI4ZjkwYWIwYjlmYWEwZTBiMmIy
OTMzZmI4ZTVmMi4uZDA3OTU1NTM1ZWZkOGNkY2E1YTNlMDIzZTc4OGYxMjlhYzFkNTljMyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CkBAIC0yNTQsMTAgKzI1NCwxNSBAQCBj
bGFzcyBEcml2ZXIob2JqZWN0KToKIAogICAgIEhUVFBfRElSID0gImh0dHAvdGVzdHMvIgogICAg
IEhUVFBfTE9DQUxfRElSID0gImh0dHAvdGVzdHMvbG9jYWwvIgorICAgIFdFQktJVF9TUEVDSUZJ
Q19XRUJfUExBVEZPUk1fVEVTVF9TVUJESVIgPSAiaHR0cC93cHQvIgorICAgIFdFQktJVF9XRUJf
UExBVEZPUk1fVEVTVF9TRVJWRVJfUk9VVEUgPSAiV2ViS2l0LyIKIAogICAgIGRlZiBpc19odHRw
X3Rlc3Qoc2VsZiwgdGVzdF9uYW1lKToKICAgICAgICAgcmV0dXJuIHRlc3RfbmFtZS5zdGFydHN3
aXRoKHNlbGYuSFRUUF9ESVIpIGFuZCBub3QgdGVzdF9uYW1lLnN0YXJ0c3dpdGgoc2VsZi5IVFRQ
X0xPQ0FMX0RJUikKIAorICAgIGRlZiBpc193ZWJraXRfc3BlY2lmaWNfd2ViX3BsYXRmb3JtX3Rl
c3Qoc2VsZiwgdGVzdF9uYW1lKToKKyAgICAgICAgcmV0dXJuIHRlc3RfbmFtZS5zdGFydHN3aXRo
KHNlbGYuV0VCS0lUX1NQRUNJRklDX1dFQl9QTEFURk9STV9URVNUX1NVQkRJUikKKwogICAgIGRl
ZiBpc193ZWJfcGxhdGZvcm1fdGVzdChzZWxmLCB0ZXN0X25hbWUpOgogICAgICAgICByZXR1cm4g
dGVzdF9uYW1lLnN0YXJ0c3dpdGgoc2VsZi53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXJfZG9jX3Jv
b3QpCiAKQEAgLTI2NSw2ICsyNzAsOCBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAg
IiIiQ29udmVydCBhIHRlc3QgbmFtZSB0byBhIFVSSS4iIiIKICAgICAgICAgaWYgc2VsZi5pc193
ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0X25hbWUpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYud2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyX2Jhc2VfdXJsICsgdGVzdF9uYW1lW2xlbihzZWxmLndlYl9w
bGF0Zm9ybV90ZXN0X3NlcnZlcl9kb2Nfcm9vdCk6XQorICAgICAgICBpZiBzZWxmLmlzX3dlYmtp
dF9zcGVjaWZpY193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0X25hbWUpOgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyX2Jhc2VfdXJsICsgc2VsZi5XRUJLSVRf
V0VCX1BMQVRGT1JNX1RFU1RfU0VSVkVSX1JPVVRFICsgdGVzdF9uYW1lW2xlbihzZWxmLldFQktJ
VF9TUEVDSUZJQ19XRUJfUExBVEZPUk1fVEVTVF9TVUJESVIpOl0KIAogICAgICAgICBpZiBub3Qg
c2VsZi5pc19odHRwX3Rlc3QodGVzdF9uYW1lKToKICAgICAgICAgICAgIHJldHVybiBwYXRoLmFi
c3BhdGhfdG9fdXJpKHNlbGYuX3BvcnQuaG9zdC5wbGF0Zm9ybSwgc2VsZi5fcG9ydC5hYnNwYXRo
X2Zvcl90ZXN0KHRlc3RfbmFtZSkpCkBAIC0yODksNiArMjk2LDggQEAgY2xhc3MgRHJpdmVyKG9i
amVjdCk6CiAgICAgICAgICAgICBpZiBub3QgcHJlZml4LmVuZHN3aXRoKCcvJyk6CiAgICAgICAg
ICAgICAgICAgcHJlZml4ICs9ICcvJwogICAgICAgICAgICAgcmV0dXJuIHVyaVtsZW4ocHJlZml4
KTpdCisgICAgICAgIGlmIHVyaS5zdGFydHN3aXRoKHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc2Vy
dmVyX2Jhc2VfdXJsICsgc2VsZi5XRUJLSVRfV0VCX1BMQVRGT1JNX1RFU1RfU0VSVkVSX1JPVVRF
KToKKyAgICAgICAgICAgIHJldHVybiB1cmkucmVwbGFjZShzZWxmLndlYl9wbGF0Zm9ybV90ZXN0
X3NlcnZlcl9iYXNlX3VybCArIHNlbGYuV0VCS0lUX1dFQl9QTEFURk9STV9URVNUX1NFUlZFUl9S
T1VURSwgc2VsZi5XRUJLSVRfU1BFQ0lGSUNfV0VCX1BMQVRGT1JNX1RFU1RfU1VCRElSKQogICAg
ICAgICBpZiB1cmkuc3RhcnRzd2l0aChzZWxmLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcl9iYXNl
X3VybCk6CiAgICAgICAgICAgICByZXR1cm4gdXJpLnJlcGxhY2Uoc2VsZi53ZWJfcGxhdGZvcm1f
dGVzdF9zZXJ2ZXJfYmFzZV91cmwsIHNlbGYud2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyX2RvY19y
b290KQogICAgICAgICBpZiB1cmkuc3RhcnRzd2l0aCgiaHR0cDovLyIpOgpAQCAtNDcyLDcgKzQ4
MSw3IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICAjIEZJWE1FOiBwZXJmb3JtYW5j
ZSB0ZXN0cyBwYXNzIGluIGZ1bGwgVVJMcyBpbnN0ZWFkIG9mIHRlc3QgbmFtZXMuCiAgICAgICAg
IGlmIGRyaXZlcl9pbnB1dC50ZXN0X25hbWUuc3RhcnRzd2l0aCgnaHR0cDovLycpIG9yIGRyaXZl
cl9pbnB1dC50ZXN0X25hbWUuc3RhcnRzd2l0aCgnaHR0cHM6Ly8nKSAgb3IgZHJpdmVyX2lucHV0
LnRlc3RfbmFtZSA9PSAoJ2Fib3V0OmJsYW5rJyk6CiAgICAgICAgICAgICBjb21tYW5kID0gZHJp
dmVyX2lucHV0LnRlc3RfbmFtZQotICAgICAgICBlbGlmIHNlbGYuaXNfd2ViX3BsYXRmb3JtX3Rl
c3QoZHJpdmVyX2lucHV0LnRlc3RfbmFtZSkgb3IgKHNlbGYuaXNfaHR0cF90ZXN0KGRyaXZlcl9p
bnB1dC50ZXN0X25hbWUpIGFuZCAoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9y
dW5uZXInKSBvciBzeXMucGxhdGZvcm0gPT0gImN5Z3dpbiIpKToKKyAgICAgICAgZWxpZiBzZWxm
LmlzX3dlYl9wbGF0Zm9ybV90ZXN0KGRyaXZlcl9pbnB1dC50ZXN0X25hbWUpIG9yIHNlbGYuaXNf
d2Via2l0X3NwZWNpZmljX3dlYl9wbGF0Zm9ybV90ZXN0KGRyaXZlcl9pbnB1dC50ZXN0X25hbWUp
IG9yIChzZWxmLmlzX2h0dHBfdGVzdChkcml2ZXJfaW5wdXQudGVzdF9uYW1lKSBhbmQgKHNlbGYu
X3BvcnQuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVyJykgb3Igc3lzLnBsYXRmb3JtID09
ICJjeWd3aW4iKSk6CiAgICAgICAgICAgICBjb21tYW5kID0gc2VsZi50ZXN0X3RvX3VyaShkcml2
ZXJfaW5wdXQudGVzdF9uYW1lKQogICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tYWJzb2x1dGVQ
YXRoJyIKICAgICAgICAgICAgIGNvbW1hbmQgKz0gc2VsZi5fcG9ydC5hYnNwYXRoX2Zvcl90ZXN0
KGRyaXZlcl9pbnB1dC50ZXN0X25hbWUsIHNlbGYuX3RhcmdldF9ob3N0KQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXJfdW5pdHRlc3QucHkKaW5kZXggOGNmYzc4ZTNhYWY1
ZGM1ZmI0ZmNiNmM4NDFlZjdhNjBkNThiYzRhZC4uYWU0Yjc5MzI2N2QzMmIxZjljNTNmYWZmM2Q4
OTBkYjUzZjA1NGNmMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Ry
aXZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVy
X3VuaXR0ZXN0LnB5CkBAIC0xMTgsNiArMTE4LDcgQEAgY2xhc3MgRHJpdmVyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyLnRlc3RfdG9fdXJp
KCdodHRwL3Rlc3RzL2Zvby5odG1sJyksICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvZm9vLmh0bWwn
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci50ZXN0X3RvX3VyaSgnaHR0cC90ZXN0
cy9zc2wvYmFyLmh0bWwnKSwgJ2h0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc3NsL2Jhci5odG1sJykK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIudGVzdF90b191cmkoJ2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZm9vL2Jhci5odG1sJyksICdodHRwOi8vbG9jYWxob3N0Ojg4
MDAvZm9vL2Jhci5odG1sJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIudGVzdF90
b191cmkoJ2h0dHAvd3B0L2JhcjIuaHRtbCcpLCAnaHR0cDovL2xvY2FsaG9zdDo4ODAwL1dlYktp
dC9iYXIyLmh0bWwnKQogCiAgICAgZGVmIHRlc3RfdXJpX3RvX3Rlc3Qoc2VsZik6CiAgICAgICAg
IHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCkBAIC0xMjYsNiArMTI3LDcgQEAgY2xhc3MgRHJpdmVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVy
LnVyaV90b190ZXN0KCdodHRwOi8vMTI3LjAuMC4xOjgwMDAvZm9vLmh0bWwnKSwgJ2h0dHAvdGVz
dHMvZm9vLmh0bWwnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci51cmlfdG9fdGVz
dCgnaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zc2wvYmFyLmh0bWwnKSwgJ2h0dHAvdGVzdHMvc3Ns
L2Jhci5odG1sJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIudXJpX3RvX3Rlc3Qo
J2h0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9mb28vYmFyLmh0bWwnKSwgJ2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZm9vL2Jhci5odG1sJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChk
cml2ZXIudXJpX3RvX3Rlc3QoJ2h0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQvYmFyMi5odG1s
JyksICdodHRwL3dwdC9iYXIyLmh0bWwnKQogCiAgICAgZGVmIHRlc3RfcmVhZF9ibG9jayhzZWxm
KToKICAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQb3J0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTNiZWYxNzQ4MjRj
YTk5ZTNiYTdiM2I0NTgxZWNjZjQwZGZhYmYyLi4wYmVmMDQ3NzdhZDIzYzc3MDYzNGI2Yjg1MDhi
Mjc2Y2ZhMWNjODU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDUtMTEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IFdQVCBzZXJ2ZXIgdG8g
c2VydmUgc3BlY2lmaWMgV2ViS2l0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtl
IE5pd2EuCisKKyAgICAgICAgTW92aW5nIHRlc3RzIHRvIGVuc3VyZSB0aGV5IGFyZSBjb3JyZWN0
bHkgcnVubmVkLgorCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvZmV0Y2gtYXMtYmxvYi1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNo
LWFzLWJsb2ItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL2ZldGNoLWFz
LWJsb2Itd29ya2VyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi13b3JrZXItZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGh0dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLmh0bWwuCisg
ICAgICAgICogaHR0cC93cHQvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLmh0bWwuCisgICAgICAg
ICogaHR0cC93cHQvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5qczogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5qcy4KKyAgICAgICAgKHByb21pc2Vf
dGVzdCk6CisKIDIwMTctMDUtMTEgIE1hdHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYXJrZWQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFw
cGFwaXMvdGltZXJzL25lZ2F0aXZlLXNldHRpbWVvdXQuaHRtbCBhcyBmbGFreS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2ItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjExZDhhMzFiODFjZDg5MmNiMjE5
YjE2ZjZlYzIzNjY1ZjFkYTI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLQotUEFTUyBNSU1FIHR5cGUg
Zm9yIEJsb2IgZnJvbSBlbXB0eSBib2R5IAotUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2IgZnJvbSBl
bXB0eSBib2R5IHdpdGggQ29udGVudC1UeXBlIAotUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2IgCi1Q
QVNTIE1JTUUgdHlwZSBmb3IgQmxvYiB3aXRoIG5vbi1lbXB0eSB0eXBlIAotUEFTUyBFeHRyYWN0
IGEgTUlNRSB0eXBlIHdpdGggY2xvbmUgCi1QQVNTIE1JTUUgdHlwZSB1bmNoYW5nZWQgaWYgaGVh
ZGVycyBhcmUgbW9kaWZpZWQgYWZ0ZXIgUmVxdWVzdCgpIGNvbnN0cnVjdG9yIAotUEFTUyBFeHRy
YWN0IGEgTUlNRSB0eXBlICgxKSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YxMWQ4YTMxYjgxY2Q4OTJjYjIxOWIxNmY2ZWMyMzY2
NWYxZGEyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotCi1QQVNTIE1JTUUgdHlwZSBmb3Ig
QmxvYiBmcm9tIGVtcHR5IGJvZHkgCi1QQVNTIE1JTUUgdHlwZSBmb3IgQmxvYiBmcm9tIGVtcHR5
IGJvZHkgd2l0aCBDb250ZW50LVR5cGUgCi1QQVNTIE1JTUUgdHlwZSBmb3IgQmxvYiAKLVBBU1Mg
TUlNRSB0eXBlIGZvciBCbG9iIHdpdGggbm9uLWVtcHR5IHR5cGUgCi1QQVNTIEV4dHJhY3QgYSBN
SU1FIHR5cGUgd2l0aCBjbG9uZSAKLVBBU1MgTUlNRSB0eXBlIHVuY2hhbmdlZCBpZiBoZWFkZXJz
IGFyZSBtb2RpZmllZCBhZnRlciBSZXF1ZXN0KCkgY29uc3RydWN0b3IgCi1QQVNTIEV4dHJhY3Qg
YSBNSU1FIHR5cGUgKDEpIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Zl
dGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Zl
dGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI1YjZhMTYwZTE3NDc0YTI3ZjA1ZTRlZjE5YWMyYTUxMTQ0MzI2ODEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9mZXRjaC9mZXRjaC1hcy1ibG9iLXdvcmtlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+UmVzcG9uc2UgYm9keSB1c2VkIHRl
c3RzPC90aXRsZT4KLSAgICAgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICAgICAgPG1ldGEgbmFtZT0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgotICAgICAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAg
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAg
ICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihuZXcgV29ya2VyKCJmZXRjaC1hcy1ibG9iLmpzIikp
OwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE4MDFlODEwMjg1N2E2MzcyOWU4OTlhNWY4MDZhYzU5NGYzZWFiNGEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1hcy1ibG9iLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxNCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgICAgIDx0aXRsZT5SZXNwb25zZSBib2R5IHVz
ZWQgdGVzdHM8L3RpdGxlPgotICAgICAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgotICAgICAgICA8bWV0YSBuYW1lPSJo
ZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+Ci0g
ICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LSAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHNjcmlwdCBzcmM9ImZl
dGNoLWFzLWJsb2IuanMiPjwvc2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmVjNDAwZDAzYmRkYTdjYzQ1ZTQ2YmU1NTRjZjdlYzRiMGVhYWQ0YS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2ZldGNoL2ZldGNoLWFzLWJsb2IuanMKKysrIC9kZXYvbnVsbApAQCAtMSw4
NyArMCwwIEBACi1pZiAoc2VsZi5pbXBvcnRTY3JpcHRzKSB7Ci0gIGltcG9ydFNjcmlwdHMoJy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKLX0KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKLSAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnfSk7Ci0gICAgcmV0dXJuIHJlcS5i
bG9iKCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGJsb2IudHlwZSwgJycpOwotICAgICAgICB9KTsKLSAgfSwgJ01JTUUgdHlwZSBmb3IgQmxv
YiBmcm9tIGVtcHR5IGJvZHknKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2
YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9sb2NhbGhvc3QvJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLCBoZWFkZXJzOiBbWydDb250ZW50LVR5cGUnLCAn
TXl0ZXh0L1BsYWluJ11dfSk7Ci0gICAgcmV0dXJuIHJlcS5ibG9iKCkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKGJsb2IpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJ215dGV4
dC9wbGFpbicpOwotICAgICAgICB9KTsKLSAgfSwgJ01JTUUgdHlwZSBmb3IgQmxvYiBmcm9tIGVt
cHR5IGJvZHkgd2l0aCBDb250ZW50LVR5cGUnKTsKLQotLy8gVGhlIDUgZm9sbG93aW5nIHRlc3Rz
IGFyZSBjb21pbmcgZnJvbSBDaHJvbWl1bSBzZWUgZmV0Y2gvc2NyaXB0LXRlc3RzL3JlcXVlc3Qu
anMKLQotLy8gVGVzdHMgZm9yIE1JTUUgdHlwZXMuCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
ewotICAgIHZhciByZXEgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9zdC8nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcsIGJvZHk6IG5ldyBCbG9iKFsnJ10p
fSk7Ci0gICAgcmV0dXJuIHJlcS5ibG9iKCkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsK
LSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJycpOwotICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVxLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSwgJycpOwotICAgICAgICB9
KTsKLSAgfSwgJ01JTUUgdHlwZSBmb3IgQmxvYicpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewotICAgIHZhciByZXEgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9zdC8nLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBib2R5OiBuZXcgQmxvYihbJyddLCB7dHlwZTogJ1RleHQvUGxhaW4nfSl9KTsK
LSAgICByZXR1cm4gcmVxLmJsb2IoKQotICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAndGV4dC9wbGFpbicpOwotICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVxLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSwgJ3RleHQvcGxh
aW4nKTsKLSAgICAgICAgfSk7Ci0gIH0sICdNSU1FIHR5cGUgZm9yIEJsb2Igd2l0aCBub24tZW1w
dHkgdHlwZScpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciByZXEgPSBu
ZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9zdC8nLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICB7bWV0aG9kOiAnUE9TVCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBuZXcg
QmxvYihbJyddLCB7dHlwZTogJ1RleHQvUGxhaW4nfSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWFkZXJzOiBbWydDb250ZW50LVR5cGUnLCAnVGV4dC9IdG1sJ11dfSk7Ci0gICAgdmFy
IGNsb25lID0gcmVxLmNsb25lKCk7Ci0gICAgcmV0dXJuIFByb21pc2UuYWxsKFtyZXEuYmxvYigp
LCBjbG9uZS5ibG9iKCldKQotICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYnMpIHsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJsb2JzWzBdLnR5cGUsICd0ZXh0L2h0bWwnKTsKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGJsb2JzWzFdLnR5cGUsICd0ZXh0L2h0bWwnKTsKLSAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlcS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyksICdUZXh0L0h0bWwnKTsK
LSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNsb25lLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUn
KSwgJ1RleHQvSHRtbCcpOwotICAgICAgICB9KTsKLSAgfSwgJ0V4dHJhY3QgYSBNSU1FIHR5cGUg
d2l0aCBjbG9uZScpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciByZXEg
PSBuZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9zdC8nLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICB7bWV0aG9kOiAnUE9TVCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBu
ZXcgQmxvYihbJyddLCB7dHlwZTogJ1RleHQvUGxhaW4nfSl9KTsKLSAgICByZXEuaGVhZGVycy5z
ZXQoJ0NvbnRlbnQtVHlwZScsICdUZXh0L0h0bWwnKTsKLSAgICByZXR1cm4gcmVxLmJsb2IoKQot
ICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoYmxv
Yi50eXBlLCAndGV4dC9wbGFpbicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxLmhlYWRl
cnMuZ2V0KCdDb250ZW50LVR5cGUnKSwgJ1RleHQvSHRtbCcpOwotICAgICAgICB9KTsKLSAgfSwK
LSAgJ01JTUUgdHlwZSB1bmNoYW5nZWQgaWYgaGVhZGVycyBhcmUgbW9kaWZpZWQgYWZ0ZXIgUmVx
dWVzdCgpIGNvbnN0cnVjdG9yJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAg
dmFyIHJlcSA9IG5ldyBSZXF1ZXN0KCdodHRwOi8vbG9jYWxob3N0LycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvZHk6IG5ldyBCbG9iKFsnJ10sIHt0eXBlOiAnVGV4dC9QbGFpbid9KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRlcnM6IFtbJ0NvbnRlbnQtVHlwZScsICdUZXh0L0h0bWwnXV19
KTsKLSAgICByZXR1cm4gcmVxLmJsb2IoKQotICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgewot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAndGV4dC9odG1sJyk7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXEuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpLCAnVGV4dC9I
dG1sJyk7Ci0gICAgICAgIH0pOwotICB9LCAnRXh0cmFjdCBhIE1JTUUgdHlwZSAoMSknKTsKLQot
ZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0Y2gtYXMt
YmxvYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9mZXRjaC1hcy1i
bG9iLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjExZDhhMzFiODFjZDg5MmNiMjE5YjE2ZjZl
YzIzNjY1ZjFkYTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0
Y2gvZmV0Y2gtYXMtYmxvYi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1BBU1MgTUlN
RSB0eXBlIGZvciBCbG9iIGZyb20gZW1wdHkgYm9keSAKK1BBU1MgTUlNRSB0eXBlIGZvciBCbG9i
IGZyb20gZW1wdHkgYm9keSB3aXRoIENvbnRlbnQtVHlwZSAKK1BBU1MgTUlNRSB0eXBlIGZvciBC
bG9iIAorUEFTUyBNSU1FIHR5cGUgZm9yIEJsb2Igd2l0aCBub24tZW1wdHkgdHlwZSAKK1BBU1Mg
RXh0cmFjdCBhIE1JTUUgdHlwZSB3aXRoIGNsb25lIAorUEFTUyBNSU1FIHR5cGUgdW5jaGFuZ2Vk
IGlmIGhlYWRlcnMgYXJlIG1vZGlmaWVkIGFmdGVyIFJlcXVlc3QoKSBjb25zdHJ1Y3RvciAKK1BB
U1MgRXh0cmFjdCBhIE1JTUUgdHlwZSAoMSkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNoLWFzLWJsb2Itd29ya2VyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ZjExZDhhMzFiODFjZDg5MmNiMjE5YjE2ZjZlYzIzNjY1ZjFkYTI5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0Y2gtYXMtYmxvYi13b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitQQVNTIE1JTUUgdHlwZSBmb3IgQmxv
YiBmcm9tIGVtcHR5IGJvZHkgCitQQVNTIE1JTUUgdHlwZSBmb3IgQmxvYiBmcm9tIGVtcHR5IGJv
ZHkgd2l0aCBDb250ZW50LVR5cGUgCitQQVNTIE1JTUUgdHlwZSBmb3IgQmxvYiAKK1BBU1MgTUlN
RSB0eXBlIGZvciBCbG9iIHdpdGggbm9uLWVtcHR5IHR5cGUgCitQQVNTIEV4dHJhY3QgYSBNSU1F
IHR5cGUgd2l0aCBjbG9uZSAKK1BBU1MgTUlNRSB0eXBlIHVuY2hhbmdlZCBpZiBoZWFkZXJzIGFy
ZSBtb2RpZmllZCBhZnRlciBSZXF1ZXN0KCkgY29uc3RydWN0b3IgCitQQVNTIEV4dHJhY3QgYSBN
SU1FIHR5cGUgKDEpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9m
ZXRjaC1hcy1ibG9iLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0
Y2gtYXMtYmxvYi13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWI2YTE2MGUxNzQ3NGEyN2YwNWU0
ZWYxOWFjMmE1MTE0NDMyNjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvZmV0Y2gvZmV0Y2gtYXMtYmxvYi13b3JrZXIuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgICAgIDx0aXRsZT5SZXNwb25zZSBib2R5IHVzZWQgdGVzdHM8L3RpdGxlPgor
ICAgICAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jcmVzcG9uc2UiPgorICAgICAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZldGNoX3Rlc3Rz
X2Zyb21fd29ya2VyKG5ldyBXb3JrZXIoImZldGNoLWFzLWJsb2IuanMiKSk7CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvZmV0Y2gtYXMtYmxvYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4MDFlODEwMjg1N2E2MzcyOWU4
OTlhNWY4MDZhYzU5NGYzZWFiNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9mZXRjaC9mZXRjaC1hcy1ibG9iLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgICAgICA8dGl0bGU+UmVzcG9uc2UgYm9keSB1c2VkIHRlc3RzPC90aXRsZT4KKyAgICAg
ICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I3Jlc3BvbnNlIj4KKyAgICAgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQgc3JjPSJmZXRjaC1hcy1ibG9iLmpzIj48L3Njcmlw
dD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9mZXRjaC9mZXRjaC1hcy1ibG9iLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0
Y2gtYXMtYmxvYi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZWM0MDBkMDNiZGRhN2NjNDVlNDZiZTU1NGNmN2Vj
NGIwZWFhZDRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gv
ZmV0Y2gtYXMtYmxvYi5qcwpAQCAtMCwwICsxLDg3IEBACitpZiAoc2VsZi5pbXBvcnRTY3JpcHRz
KSB7CisgIGltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKK30KKwor
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0
dHA6Ly9sb2NhbGhvc3QvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BP
U1QnfSk7CisgICAgcmV0dXJuIHJlcS5ibG9iKCkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2Ip
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlwZSwgJycpOworICAgICAgICB9KTsK
KyAgfSwgJ01JTUUgdHlwZSBmb3IgQmxvYiBmcm9tIGVtcHR5IGJvZHknKTsKKworcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgcmVxID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9sb2Nh
bGhvc3QvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLCBoZWFk
ZXJzOiBbWydDb250ZW50LVR5cGUnLCAnTXl0ZXh0L1BsYWluJ11dfSk7CisgICAgcmV0dXJuIHJl
cS5ibG9iKCkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGJsb2IudHlwZSwgJ215dGV4dC9wbGFpbicpOworICAgICAgICB9KTsKKyAgfSwgJ01J
TUUgdHlwZSBmb3IgQmxvYiBmcm9tIGVtcHR5IGJvZHkgd2l0aCBDb250ZW50LVR5cGUnKTsKKwor
Ly8gVGhlIDUgZm9sbG93aW5nIHRlc3RzIGFyZSBjb21pbmcgZnJvbSBDaHJvbWl1bSBzZWUgZmV0
Y2gvc2NyaXB0LXRlc3RzL3JlcXVlc3QuanMKKworLy8gVGVzdHMgZm9yIE1JTUUgdHlwZXMuCitw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciByZXEgPSBuZXcgUmVxdWVzdCgnaHR0
cDovL2xvY2FsaG9zdC8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9T
VCcsIGJvZHk6IG5ldyBCbG9iKFsnJ10pfSk7CisgICAgcmV0dXJuIHJlcS5ibG9iKCkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2IudHlw
ZSwgJycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxLmhlYWRlcnMuZ2V0KCdDb250ZW50
LVR5cGUnKSwgJycpOworICAgICAgICB9KTsKKyAgfSwgJ01JTUUgdHlwZSBmb3IgQmxvYicpOwor
Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciByZXEgPSBuZXcgUmVxdWVzdCgn
aHR0cDovL2xvY2FsaG9zdC8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAn
UE9TVCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBuZXcgQmxvYihbJyddLCB7
dHlwZTogJ1RleHQvUGxhaW4nfSl9KTsKKyAgICByZXR1cm4gcmVxLmJsb2IoKQorICAgICAgLnRo
ZW4oZnVuY3Rpb24oYmxvYikgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAn
dGV4dC9wbGFpbicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxLmhlYWRlcnMuZ2V0KCdD
b250ZW50LVR5cGUnKSwgJ3RleHQvcGxhaW4nKTsKKyAgICAgICAgfSk7CisgIH0sICdNSU1FIHR5
cGUgZm9yIEJsb2Igd2l0aCBub24tZW1wdHkgdHlwZScpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgeworICAgIHZhciByZXEgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9zdC8nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib2R5OiBuZXcgQmxvYihbJyddLCB7dHlwZTogJ1RleHQvUGxhaW4nfSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbWydDb250ZW50LVR5cGUnLCAn
VGV4dC9IdG1sJ11dfSk7CisgICAgdmFyIGNsb25lID0gcmVxLmNsb25lKCk7CisgICAgcmV0dXJu
IFByb21pc2UuYWxsKFtyZXEuYmxvYigpLCBjbG9uZS5ibG9iKCldKQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oYmxvYnMpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2JzWzBdLnR5cGUsICd0
ZXh0L2h0bWwnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2JzWzFdLnR5cGUsICd0ZXh0
L2h0bWwnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcS5oZWFkZXJzLmdldCgnQ29udGVu
dC1UeXBlJyksICdUZXh0L0h0bWwnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNsb25lLmhl
YWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSwgJ1RleHQvSHRtbCcpOworICAgICAgICB9KTsKKyAg
fSwgJ0V4dHJhY3QgYSBNSU1FIHR5cGUgd2l0aCBjbG9uZScpOworCitwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgIHZhciByZXEgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2xvY2FsaG9zdC8n
LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib2R5OiBuZXcgQmxvYihbJyddLCB7dHlwZTogJ1RleHQvUGxhaW4n
fSl9KTsKKyAgICByZXEuaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsICdUZXh0L0h0bWwnKTsK
KyAgICByZXR1cm4gcmVxLmJsb2IoKQorICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAndGV4dC9wbGFpbicpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVxLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSwgJ1RleHQvSHRt
bCcpOworICAgICAgICB9KTsKKyAgfSwKKyAgJ01JTUUgdHlwZSB1bmNoYW5nZWQgaWYgaGVhZGVy
cyBhcmUgbW9kaWZpZWQgYWZ0ZXIgUmVxdWVzdCgpIGNvbnN0cnVjdG9yJyk7CisKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KCdodHRwOi8vbG9j
YWxob3N0LycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IG5ldyBCbG9iKFsnJ10sIHt0eXBlOiAnVGV4
dC9QbGFpbid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFtbJ0NvbnRl
bnQtVHlwZScsICdUZXh0L0h0bWwnXV19KTsKKyAgICByZXR1cm4gcmVxLmJsb2IoKQorICAgICAg
LnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBl
LCAndGV4dC9odG1sJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXEuaGVhZGVycy5nZXQo
J0NvbnRlbnQtVHlwZScpLCAnVGV4dC9IdG1sJyk7CisgICAgICAgIH0pOworICB9LCAnRXh0cmFj
dCBhIE1JTUUgdHlwZSAoMSknKTsKKworZG9uZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>