<?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>144131</bug_id>
          
          <creation_ts>2015-04-23 16:24:56 -0700</creation_ts>
          <short_desc>Expand test infrastructure to support scrolling tests (Part 3): Updated Tests</short_desc>
          <delta_ts>2015-06-17 15:19:36 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=143286</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=143684</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>143684</dependson>
          <blocked>146081</blocked>
    
    <blocked>144482</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1088091</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-04-23 16:24:56 -0700</bug_when>
    <thetext>Complete the task of building the scroll triggering infrastructure by threading the WheelEventTestTrigger state through the scrolling code.

See also Bugs 143286 and 143684.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090252</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-04-29 17:43:05 -0700</bug_when>
    <thetext>The changes to connect the scrolling code to the test infrastructure was landed in &lt;https://trac.webkit.org/changeset/183595&gt;.

This patch lands the updated tests that use the new infrastructure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090254</commentid>
    <comment_count>2</comment_count>
      <attachid>252014</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-04-29 17:44:42 -0700</bug_when>
    <thetext>Created attachment 252014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090468</commentid>
    <comment_count>3</comment_count>
      <attachid>252014</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-04-30 10:18:29 -0700</bug_when>
    <thetext>Comment on attachment 252014
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090473</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-04-30 10:23:07 -0700</bug_when>
    <thetext>Committed r183628: &lt;http://trac.webkit.org/changeset/183628&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252014</attachid>
            <date>2015-04-29 17:44:42 -0700</date>
            <delta_ts>2015-04-30 10:18:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144131-20150429174332.patch</filename>
            <type>text/plain</type>
            <size>50132</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4MzU5NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE1LTA0LTI5ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEV4cGFuZCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIHRvIHN1cHBvcnQgc2Nyb2xsaW5nIHRlc3RzIChQYXJ0IDMpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQxMzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIFdLMiBzY3JvbGxp
bmcgdGVzdHMgdG8gdXNlIHRoZSBuZXcgc2Nyb2xsIHRyaWdnZXIgaW5mcmFzdHJ1Y3R1cmUgdG8g
cmVkdWNlIHRoZSB1c2Ugb2YKKyAgICAgICAgdGltZW91dHMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVk
LWRpdi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXIuaHRtbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Ny
b2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1s
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFz
dC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hl
ZC1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgt
aGFuZGxlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtd2l0aC1o
YW5kbGVyLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hl
ZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRj
aGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1h
aW5mcmFtZS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zh
c3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
ZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1z
Y3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1zZWxlY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LXdpdGgt
aGFuZGxlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1o
YW5kbGVyLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9s
bC16ZXJvLWRlbHRhLXdoZWVsLWV2ZW50cy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvcm9vdC1vdmVyZmxvdy13aXRoLW1vdXNld2hlZWwu
aHRtbDoKKwogMjAxNS0wNC0yOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIE5vZGVMaXN0IGhhcyBpc3N1ZXMgd2l0aCBTeW1ib2wgYW5kIGVtcHR5IHN0
cmluZwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTgz
NTkzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC01MiwyMSArNTIsMTcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Ci1kaXYgZGlzcGxheSBoZWlnaHQgPSAzNTAKLU1vdXNlIG1vdmVkIHRvICgyOCwgNDc1KQotUGFn
ZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6IDU4NgotUGFnZSBhZnRlcjogIDAsIGRpdiBhZnRlcjog
NjU2CiBQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KIChHcmFwaGljc0xh
eWVyCiAgIChhbmNob3IgMC4wMCAwLjAwKQotICAoYm91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAg
KGJvdW5kcyAyMDA4LjAwIDIyNjYuMDApCiAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUu
MDAgeCA1ODUuMDApCiAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1LjAw
KQogICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgIChjb250ZW50c1NjYWxlIDEuMDAp
CiAgIChjaGlsZHJlbiAxCiAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgIChib3VuZHMgMjAwOC4w
MCAyMzI2LjAwKQorICAgICAgKGJvdW5kcyAyMDA4LjAwIDIyNjYuMDApCiAgICAgICAoY29udGVu
dHNPcGFxdWUgMSkKICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUu
MDApCiAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDE1NzAuMDAgeCAxNzU1LjAwKQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRoLWhhbmRsZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MiwyMiArNTIsMTcgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1kaXYgZGlzcGxheSBoZWlnaHQgPSAz
NTAKLU1vdXNlIG1vdmVkIHRvICgyOCwgNDc1KQotUGFnZSBiZWZvcmU6IDAsIGRpdiBiZWZvcmU6
IDU4NgotUGFnZSBhZnRlcjogIDAsIGRpdiBhZnRlcjogNjU2CiBQQVNTIFBhZ2UgZGlkIG5vdCBy
ZWNlaXZlIHdoZWVsIGV2ZW50cy4KLURvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgOCBv
ZiB0aGUgd2hlZWwgZXZlbnRzLgogKEdyYXBoaWNzTGF5ZXIKICAgKGFuY2hvciAwLjAwIDAuMDAp
Ci0gIChib3VuZHMgMjAwOC4wMCAyMzQxLjAwKQorICAoYm91bmRzIDIwMDguMDAgMjI2Ni4wMCkK
ICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKICAgKGNvdmVyYWdl
IHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgIChpbnRlcnNlY3RzIGNvdmVyYWdl
IHJlY3QgMSkKICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgKGNoaWxkcmVuIDEKICAgICAoR3Jh
cGhpY3NMYXllcgotICAgICAgKGJvdW5kcyAyMDA4LjAwIDIzNDEuMDApCisgICAgICAoYm91bmRz
IDIwMDguMDAgMjI2Ni4wMCkKICAgICAgIChjb250ZW50c09wYXF1ZSAxKQogICAgICAgKHZpc2li
bGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKICAgICAgIChjb3ZlcmFnZSByZWN0
IDAuMDAsIDAuMDAgMTU3MC4wMCB4IDE3NTUuMDApCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVk
LWRpdi13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVk
LWRpdi13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMTgzNTkzKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1kaXYtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUyLDE2ICs1
MiwxMSBAQCBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCiAgICAgdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgdmFyIGRpdlNjcm9sbFBv
c2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOwogCi0gICAgZGVidWcoIlBhZ2UgYmVm
b3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgZGl2IGJlZm9yZTogIiArIGRp
dlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKLSAgICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlciArICIsIGRpdiBhZnRlcjogIiArIGRpdlNjcm9sbFBvc2l0aW9u
QWZ0ZXIpOwotCiAgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xs
UG9zaXRpb25BZnRlcikKICAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBl
dmVudHMuIik7CiAgICAgZWxzZQogICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVj
ZWl2ZSB3aGVlbCBldmVudHMuIik7CiAKLSAgICBkZWJ1ZygiRG9jdW1lbnQgd2FzIGluaXRpYWwg
dGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhlIHdoZWVsIGV2ZW50cy4iKTsKLQog
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3Vt
ZW50LAogICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9S
RUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKQEAgLTgx
LDEwICs3Niw4IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogCiAgICAgLy8gU2Nyb2xsIHRoZSAj
c291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgogICAgIHZhciBzdGFydFBvc1ggPSBN
YXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRMZWZ0KSArIDIwOwotICAgIGRlYnVnKCJkaXYgZGlz
cGxheSBoZWlnaHQgPSAiICsgTWF0aC5yb3VuZChkaXZUYXJnZXQuY2xpZW50SGVpZ2h0KSk7Ci0g
ICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldFRvcCkgKyBNYXRo
LnJvdW5kKGRpdlRhcmdldC5jbGllbnRIZWlnaHQpIC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJl
Zm9yZSBlbmQuCisgICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNl
dFRvcCkgKyAxMDA7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCiAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgIGRlYnVnKCJNb3VzZSBt
b3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwogICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2JlZ2FuJywgJ25vbmUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFu
Z2VkJywgJ25vbmUnKTsKQEAgLTk1LDcgKzg4LDcgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ25vbmUnLCAnZW5kJyk7Ci0gICAgY2hlY2tGb3JTY3JvbGwoKTsKKyAgICBldmVudFNlbmRl
ci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogfQogCiBmdW5j
dGlvbiBzZXR1cFRvcExldmVsKCkKQEAgLTEwMyw2ICs5Niw4IEBAIGZ1bmN0aW9uIHNldHVwVG9w
TGV2ZWwoKQogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICBzZXRUaW1l
b3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdlTG9j
YXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CkBAIC0xMjEsNyArMTE2
LDcgQEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCiAgICAgPC9kaXY+CiAgICAgPGRpdiBjbGFz
cz0ic2Nyb2xsYWJsZV9yZWdpb24iPgogICAgICAgICA8aDM+U2Nyb2xsYWJsZSBSZWdpb248L2gz
PgotICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVy
Zmxvdy14OiBoaWRkZW47IGhlaWdodDogMzUwcHg7Jz4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0
IiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuOyBtYXgtaGVpZ2h0
OiAzNTBweDsnPgogICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSIgc3R5bGU9J3dpZHRo
OiA5OSUnPgogICAgICAgICAgICAgICAgIDx0cj48dGg+Q291bnQ8L3RoPjx0aD5EQVRBPC90aD48
dGg+UmV2IENvdW50PC90aD48L3RyPgogICAgICAgICAgICAgICAgIDx0cj48dGQ+VE9QIFRPUCBU
T1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRP
UCBUT1AgVE9QPC90ZD48L3RyPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCShyZXZpc2lvbiAxODM1
OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw5ICs0Niw2IEBAIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKICAgICB2YXIgcGFnZVNjcm9s
bFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKICAgICB2YXIgZGl2U2Ny
b2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CiAKLSAgICBkZWJ1ZygiUGFn
ZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBkaXYgYmVmb3JlOiAi
ICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOwotICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiAr
IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsgZGl2U2Nyb2xsUG9z
aXRpb25BZnRlcik7Ci0KICAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VT
Y3JvbGxQb3NpdGlvbkFmdGVyKQogICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdo
ZWVsIGV2ZW50cy4iKTsKICAgICBlbHNlCkBAIC03MywxMCArNzAsOCBAQCBmdW5jdGlvbiBzY3Jv
bGxUZXN0KCkKIAogICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUg
I3RhcmdldC4KICAgICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0
TGVmdCkgKyAyMDsKLSAgICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIE1hdGgucm91
bmQoZGl2VGFyZ2V0LmNsaWVudEhlaWdodCkpOwotICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJv
dW5kKGRpdlRhcmdldC5vZmZzZXRUb3ApICsgTWF0aC5yb3VuZChkaXZUYXJnZXQuY2xpZW50SGVp
Z2h0KSAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgIHZhciBzdGFydFBv
c1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRUb3ApICsgMTAwOyAvLyBPbmUgd2hlZWwg
dHVybiBiZWZvcmUgZW5kLgogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwg
c3RhcnRQb3NZKTsKLSAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAi
LCAiICsgc3RhcnRQb3NZICsgIikiKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CiAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CkBAIC04Nyw3ICs4
Miw3IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsK
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotICAgIGNo
ZWNrRm9yU2Nyb2xsKCk7CisgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxl
dGVzKGNoZWNrRm9yU2Nyb2xsKTsKIH0KIAogZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCkBAIC05
Niw2ICs5MSw3IEBAIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQogICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CiAgICAgICAgIHNldFRpbWVv
dXQoc2Nyb2xsVGVzdCwgMCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdmFyIG1lc3NhZ2VMb2Nh
dGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwt
ZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xs
LWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4MzU5MykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFz
dC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtNTIsMjAgKzUyLDE3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQot
TW91c2UgbW92ZWQgdG8gKDI4LCAxMjUpCi1QYWdlIGJlZm9yZTogMCwgZGl2IGJlZm9yZTogMAot
UGFnZSBhZnRlcjogIDcwLCBkaXYgYWZ0ZXI6IDAKIFBBU1MgU2Nyb2xsYWJsZSBkaXYgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KIChHcmFwaGljc0xheWVyCiAgIChhbmNob3IgMC4wMCAw
LjAwKQotICAoYm91bmRzIDIwMDguMDAgMjMxMS4wMCkKKyAgKGJvdW5kcyAyMDA4LjAwIDIyNjYu
MDApCiAgICh2aXNpYmxlIHJlY3QgMC4wMCwgNzAuMDAgNzg1LjAwIHggNTg1LjAwKQogICAoY292
ZXJhZ2UgcmVjdCAwLjAwLCA3MC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgIChpbnRlcnNlY3RzIGNv
dmVyYWdlIHJlY3QgMSkKICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgKGNoaWxkcmVuIDEKICAg
ICAoR3JhcGhpY3NMYXllcgotICAgICAgKGJvdW5kcyAyMDA4LjAwIDIzMTEuMDApCisgICAgICAo
Ym91bmRzIDIwMDguMDAgMjI2Ni4wMCkKICAgICAgIChjb250ZW50c09wYXF1ZSAxKQogICAgICAg
KHZpc2libGUgcmVjdCAwLjAwLCA3MC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgICAgICAoY292ZXJh
Z2UgcmVjdCAwLjAwLCAwLjAwIDE1NzAuMDAgeCAxNzU1LjAwKQpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1kaXYt
bGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zh
c3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MywyMCArNTMsMTcgQEAg
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCiBNb3VzZSBt
b3ZlZCB0byAoMjgsIDEyNSkKLVBhZ2UgYmVmb3JlOiAwLCBkaXYgYmVmb3JlOiAwCi1QYWdlIGFm
dGVyOiAgNzAsIGRpdiBhZnRlcjogMAogUEFTUyBTY3JvbGxhYmxlIGRpdiBkaWQgbm90IHJlY2Vp
dmUgd2hlZWwgZXZlbnRzLgotRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciA4IG9mIHRo
ZSB3aGVlbCBldmVudHMuCiAoR3JhcGhpY3NMYXllcgogICAoYW5jaG9yIDAuMDAgMC4wMCkKLSAg
KGJvdW5kcyAyMDA4LjAwIDIzMjYuMDApCisgIChib3VuZHMgMjAwOC4wMCAyMjgxLjAwKQogICAo
dmlzaWJsZSByZWN0IDAuMDAsIDcwLjAwIDc4NS4wMCB4IDU4NS4wMCkKICAgKGNvdmVyYWdlIHJl
Y3QgMC4wMCwgNzAuMDAgNzg1LjAwIHggNTg1LjAwKQogICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSBy
ZWN0IDEpCiAgIChjb250ZW50c1NjYWxlIDEuMDApCiAgIChjaGlsZHJlbiAxCiAgICAgKEdyYXBo
aWNzTGF5ZXIKLSAgICAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAgICAgKGJvdW5kcyAy
MDA4LjAwIDIyODEuMDApCiAgICAgICAoY29udGVudHNPcGFxdWUgMSkKICAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgNzAuMDAgNzg1LjAwIHggNTg1LjAwKQogICAgICAgKGNvdmVyYWdlIHJlY3Qg
MC4wMCwgMC4wMCAxNTcwLjAwIHggMTc1NS4wMCkKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQt
bWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxh
dGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci5odG1sCShyZXZpc2lvbiAxODM1OTMpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qt
c2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNTksMTYgKzU5LDExIEBAIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKICAgICB2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKICAg
ICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CiAKLSAg
ICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBk
aXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOwotICAgIGRlYnVnKCJQYWdl
IGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsg
ZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7Ci0KICAgICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gZGl2U2Nyb2xsUG9zaXRpb25BZnRlcikKICAgICAgICAgdGVzdEZhaWxlZCgiU2Nyb2xs
YWJsZSBkaXYgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOwogICAgIGVsc2UKICAgICAgICAgdGVz
dFBhc3NlZCgiU2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsK
IAotICAgIGRlYnVnKCJEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENv
dW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRzLiIpOwotCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4
dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCiAgICAgICAgICAgICBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVS
X1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOwpAQCAtMTAwLDkgKzk1LDggQEAgZnVuY3Rpb24g
c2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Ci0KKyAgICBldmVudFNlbmRlci5jYWxs
QWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogICAgIC8vIFdlIHNob3Vs
ZCBmaW5pc2ggdmlhIHRoZSBzY3JvbGwgZXZlbnQ7IHRoaXMgd2lsbCBmaXJlIGluIHRoZSBjYXNl
IG9mIGZhaWx1cmUgd2hlbiB0aGUgcGFnZSBkb2Vzbid0IHNjcm9sbC4KLSAgICBzZXRUaW1lb3V0
KGNoZWNrRm9yU2Nyb2xsLCA1MDApOwogfQogCiBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKQEAg
LTExMSw2ICsxMDUsNyBAQCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICBzZXRU
aW1lb3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdl
TG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Ny
b2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2
LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDE4MzU5MykKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2
LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDYgQEAg
ZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQogICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRl
ciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFm
dGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKIAotICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiAr
IHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQ
b3NpdGlvbkJlZm9yZSk7Ci0gICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0ZXI6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsK
LQogICAgIGlmIChkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBkaXZTY3JvbGxQb3NpdGlvbkFm
dGVyKQogICAgICAgICB0ZXN0RmFpbGVkKCJTY3JvbGxhYmxlIGRpdiBjb25zdW1lZCB3aGVlbCBl
dmVudHMuIik7CiAgICAgZWxzZQpAQCAtODEsNyArNzgsNiBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0
KCkKICAgICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0TGVmdCkg
KyAyMDsKICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0VG9w
KSAtIDQyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZ
KTsKLSAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3Rh
cnRQb3NZICsgIikiKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CiAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcs
ICdub25lJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CkBAIC05Miw5ICs4OCw4IEBAIGZ1
bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2NvbnRpbnVlJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotCisgICAgZXZlbnRTZW5k
ZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKICAgICAvLyBX
ZSBzaG91bGQgZmluaXNoIHZpYSB0aGUgc2Nyb2xsIGV2ZW50OyB0aGlzIHdpbGwgZmlyZSBpbiB0
aGUgY2FzZSBvZiBmYWlsdXJlIHdoZW4gdGhlIHBhZ2UgZG9lc24ndCBzY3JvbGwuCi0gICAgc2V0
VGltZW91dChjaGVja0ZvclNjcm9sbCwgNTAwKTsKIH0KIAogZnVuY3Rpb24gc2V0dXBUb3BMZXZl
bCgpCkBAIC0xMDMsNiArOTgsNyBAQCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogCisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAg
ICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBt
ZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zh
c3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9m
YXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTgsMjEgKzgsMTcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCi1JRnJhbWUgZGlzcGxheSBoZWlnaHQgPSA1MDAKLU1vdXNlIG1vdmVkIHRvICgyOCwg
NTY2KQotUGFnZSBiZWZvcmU6IDAsIElGcmFtZSBiZWZvcmU6IDQxNgotUGFnZSBhZnRlcjogIDAs
IElGcmFtZSBhZnRlcjogNDg2CiBQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50
cy4KIChHcmFwaGljc0xheWVyCiAgIChhbmNob3IgMC4wMCAwLjAwKQotICAoYm91bmRzIDc4NS4w
MCAyMzI2LjAwKQorICAoYm91bmRzIDc4NS4wMCAyMjY2LjAwKQogICAodmlzaWJsZSByZWN0IDAu
MDAsIDAuMDAgNzg1LjAwIHggNjAwLjAwKQogICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDc4
NS4wMCB4IDYwMC4wMCkKICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAoY29udGVu
dHNTY2FsZSAxLjAwKQogICAoY2hpbGRyZW4gMQogICAgIChHcmFwaGljc0xheWVyCi0gICAgICAo
Ym91bmRzIDc4NS4wMCAyMzI2LjAwKQorICAgICAgKGJvdW5kcyA3ODUuMDAgMjI2Ni4wMCkKICAg
ICAgIChjb250ZW50c09wYXF1ZSAxKQogICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4
NS4wMCB4IDYwMC4wMCkKICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMTU3MC4wMCB4
IDE4MDAuMDApCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS13aXRoLWhhbmRs
ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZy
YW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4MzU5MykKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3Jv
bGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTgsMjIgKzgsMTcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCi1JRnJhbWUgZGlzcGxheSBoZWlnaHQgPSA1MDAKLU1vdXNlIG1vdmVkIHRvICgyOCwgNTY2
KQotUGFnZSBiZWZvcmU6IDAsIElGcmFtZSBiZWZvcmU6IDQxNgotUGFnZSBhZnRlcjogIDAsIElG
cmFtZSBhZnRlcjogNDg2CiBQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4K
LURvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgMCBvZiB0aGUgd2hlZWwgZXZlbnRzLgog
KEdyYXBoaWNzTGF5ZXIKICAgKGFuY2hvciAwLjAwIDAuMDApCi0gIChib3VuZHMgNzg1LjAwIDIz
NDEuMDApCisgIChib3VuZHMgNzg1LjAwIDIyNjYuMDApCiAgICh2aXNpYmxlIHJlY3QgMC4wMCwg
MC4wMCA3ODUuMDAgeCA2MDAuMDApCiAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAw
IHggNjAwLjAwKQogICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgIChjb250ZW50c1Nj
YWxlIDEuMDApCiAgIChjaGlsZHJlbiAxCiAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgIChib3Vu
ZHMgNzg1LjAwIDIzNDEuMDApCisgICAgICAoYm91bmRzIDc4NS4wMCAyMjY2LjAwKQogICAgICAg
KGNvbnRlbnRzT3BhcXVlIDEpCiAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNzg1LjAw
IHggNjAwLjAwKQogICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAxNTcwLjAwIHggMTgw
MC4wMCkKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFuZGxlci5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJh
d2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLXdpdGgtaGFu
ZGxlci5odG1sCShyZXZpc2lvbiAxODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlm
cmFtZS13aXRoLWhhbmRsZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTYgKzI4LDExIEBA
IGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKICAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRp
b25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
OwogCi0gICAgZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKLSAg
ICBkZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIElG
cmFtZSBhZnRlcjogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpOwotCiAgICAgaWYgKHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKICAgICAg
ICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CiAgICAgZWxzZQog
ICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7
CiAKLSAgICBkZWJ1ZygiRG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxD
b3VudCArICIgb2YgdGhlIHdoZWVsIGV2ZW50cy4iKTsKLQogICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRl
eHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAogICAgICAgICAgICAgaW50
ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlF
Ul9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FDSEVTKTsKQEAgLTU4LDExICs1Myw5IEBAIGZ1bmN0aW9u
IHNjcm9sbFRlc3QoKQogICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZyYW1lQm9k
eS5zY3JvbGxUb3A7CiAKICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2gg
dGhlICN0YXJnZXQuCi0gICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0
ICsgMjA7Ci0gICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9ICIgKyBpZnJhbWVUYXJn
ZXQuY2xpZW50SGVpZ2h0KTsKLSAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0Lm9mZnNl
dFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4g
YmVmb3JlIGVuZC4KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0
UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAgICBk
ZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsg
IikiKTsKKyAgICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChpZnJhbWVUYXJnZXQub2Zmc2V0
TGVmdCkgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChpZnJhbWVUYXJnZXQu
b2Zmc2V0VG9wKSArIDEwMDsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gs
IHN0YXJ0UG9zWSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAn
bm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwpAQCAtNzMsNyArNjYsNyBAQCBmdW5j
dGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CiAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKLSAgICBjaGVja0ZvclNjcm9s
bCgpOworICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0Zv
clNjcm9sbCk7CiB9CiAKIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQpAQCAtODIsNiArNzUsNyBA
QCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCisgICAgICAgIGV2ZW50
U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRl
c3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRj
aGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZy
YW1lLmh0bWwJKHJldmlzaW9uIDE4MzU5MykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDEyICsxNCwxMCBAQCB2YXIgY29udGludWVD
b3VudCA9IDU7CiAKIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKIHsKKyAgICAvLyBUaGUgSUZy
YW1lIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCiAgICAgdmFyIHBhZ2VTY3JvbGxQ
b3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgdmFyIGlGcmFtZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5
LnNjcm9sbFRvcDsKIAotICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZSArICIsIElGcmFtZSBiZWZvcmU6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJl
Zm9yZSk7Ci0gICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKTsKLQog
ICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIpCiAgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwog
ICAgIGVsc2UKQEAgLTQ0LDExICs0MiwxMCBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKIAogICAg
IGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZyYW1lQm9keS5zY3JvbGxUb3A7CiAKLSAg
ICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKLSAgICBkZWJ1
ZygiSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQp
OwotICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wICsgaWZyYW1lVGFy
Z2V0LmNsaWVudEhlaWdodCAtIDQyOworICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3
ZSByZWFjaCB0aGUgI3RhcmdldC4KKyAgICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChpZnJh
bWVUYXJnZXQub2Zmc2V0TGVmdCkgKyAyMDsKKyAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3Vu
ZChpZnJhbWVUYXJnZXQub2Zmc2V0VG9wKSArIDEwMDsKICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7Ci0gICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgi
ICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CiAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAn
bm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScpOwpAQCAtNTksNyArNTYsNyBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScs
ICdlbmQnKTsKLSAgICBjaGVja0ZvclNjcm9sbCgpOworICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRl
clNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CiB9CiAKIGZ1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKQpAQCAtNjgsNiArNjUsNyBAQCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogCisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwog
ICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsMjAgKzgsMTcgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCi1Nb3VzZSBtb3ZlZCB0byAoMjgsIDY2KQotUGFnZSBiZWZv
cmU6IDAsIElGcmFtZSBiZWZvcmU6IDAKLVBhZ2UgYWZ0ZXI6ICA3MCwgSUZyYW1lIGFmdGVyOiAw
CiBQQVNTIElGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgogKEdyYXBoaWNzTGF5
ZXIKICAgKGFuY2hvciAwLjAwIDAuMDApCi0gIChib3VuZHMgNzg1LjAwIDIzMTEuMDApCisgIChi
b3VuZHMgNzg1LjAwIDIyNjYuMDApCiAgICh2aXNpYmxlIHJlY3QgMC4wMCwgNzAuMDAgNzg1LjAw
IHggNjAwLjAwKQogICAoY292ZXJhZ2UgcmVjdCAwLjAwLCA3MC4wMCA3ODUuMDAgeCA2MDAuMDAp
CiAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkK
ICAgKGNoaWxkcmVuIDEKICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgKGJvdW5kcyA3ODUuMDAg
MjMxMS4wMCkKKyAgICAgIChib3VuZHMgNzg1LjAwIDIyNjYuMDApCiAgICAgICAoY29udGVudHNP
cGFxdWUgMSkKICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgNzAuMDAgNzg1LjAwIHggNjAwLjAw
KQogICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAxNTcwLjAwIHggMTgwMC4wMCkKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
ZmFzdC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgtaGFuZGxlci1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0
aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTgzNTkzKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1pZnJh
bWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtOCwyMSArOCwxNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
LU1vdXNlIG1vdmVkIHRvICgyOCwgNjYpCi1QYWdlIGJlZm9yZTogMCwgSUZyYW1lIGJlZm9yZTog
MAotUGFnZSBhZnRlcjogIDcwLCBJRnJhbWUgYWZ0ZXI6IDAKIFBBU1MgSUZyYW1lIGRpZCBub3Qg
cmVjZWl2ZSB3aGVlbCBldmVudHMuCi1Eb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yIDgg
b2YgdGhlIHdoZWVsIGV2ZW50cy4KIChHcmFwaGljc0xheWVyCiAgIChhbmNob3IgMC4wMCAwLjAw
KQotICAoYm91bmRzIDc4NS4wMCAyMzI2LjAwKQorICAoYm91bmRzIDc4NS4wMCAyMjY2LjAwKQog
ICAodmlzaWJsZSByZWN0IDAuMDAsIDcwLjAwIDc4NS4wMCB4IDYwMC4wMCkKICAgKGNvdmVyYWdl
IHJlY3QgMC4wMCwgNzAuMDAgNzg1LjAwIHggNjAwLjAwKQogICAoaW50ZXJzZWN0cyBjb3ZlcmFn
ZSByZWN0IDEpCiAgIChjb250ZW50c1NjYWxlIDEuMDApCiAgIChjaGlsZHJlbiAxCiAgICAgKEdy
YXBoaWNzTGF5ZXIKLSAgICAgIChib3VuZHMgNzg1LjAwIDIzMjYuMDApCisgICAgICAoYm91bmRz
IDc4NS4wMCAyMjY2LjAwKQogICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCiAgICAgICAodmlzaWJs
ZSByZWN0IDAuMDAsIDcwLjAwIDc4NS4wMCB4IDYwMC4wMCkKICAgICAgIChjb3ZlcmFnZSByZWN0
IDAuMDAsIDAuMDAgMTU3MC4wMCB4IDE4MDAuMDApCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlmcmFtZS1sYXRj
aGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMTgzNTkz
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9mYXN0LXNjcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDE2ICszNSwxMSBAQCBmdW5jdGlvbiBjaGVja0ZvclNjcm9s
bCgpCiAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3A7CiAgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVz
Wyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKIAotICAgIGRlYnVnKCJQYWdlIGJl
Zm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIElGcmFtZSBiZWZvcmU6ICIg
KyBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSk7Ci0gICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAi
ICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIgKyBpRnJhbWVT
Y3JvbGxQb3NpdGlvbkFmdGVyKTsKLQogICAgIGlmIChpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9y
ZSAhPSBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQogICAgICAgICB0ZXN0RmFpbGVkKCJJRnJh
bWUgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOwogICAgIGVsc2UKICAgICAgICAgdGVzdFBhc3Nl
ZCgiSUZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CiAKLSAgICBkZWJ1Zygi
RG9jdW1lbnQgd2FzIGluaXRpYWwgdGFyZ2V0IGZvciAiICsgd2hlZWxDb3VudCArICIgb2YgdGhl
IHdoZWVsIGV2ZW50cy4iKTsKLQogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMu
bGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LAogICAgICAgICAgICAgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfVklTSUJMRV9SRUNUUyB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVT
X1RJTEVfQ0FDSEVTKTsKQEAgLTYwLDEwICs1NSwxMSBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkK
IAogICAgIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsK
IAotICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwotICAg
IHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wIC0gNDI7CisgICAgLy8gU2Ny
b2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFy
dFBvc1ggPSBNYXRoLnJvdW5kKGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0KSArIDIwOworICAgIHZh
ciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKGlmcmFtZVRhcmdldC5vZmZzZXRUb3ApIC0gNDI7IC8v
IFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1l
CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAg
IGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kg
KyAiKSIpOworICAgIC8vZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwg
IiArIHN0YXJ0UG9zWSArICIpIik7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwogICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwpAQCAtNzQsOSArNzAs
OSBAQCBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CiAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKKyAgICBldmVu
dFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogCiAg
ICAgLy8gV2Ugc2hvdWxkIGZpbmlzaCB2aWEgdGhlIHNjcm9sbCBldmVudDsgdGhpcyB3aWxsIGZp
cmUgaW4gdGhlIGNhc2Ugb2YgZmFpbHVyZSB3aGVuIHRoZSBwYWdlIGRvZXNuJ3Qgc2Nyb2xsLgot
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDUwMCk7CiB9CiAKIGZ1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKQpAQCAtODUsNiArODEsNyBAQCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogCisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwog
ICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7
CkBAIC05OCwxMSArOTUsMTEgQEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCiB9CiAKIDwvc2Ny
aXB0PgotPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgorPGRpdiBpZD0i
cGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7Ij4KICAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0
eWxlPSJoZWlnaHQ6IDEwMHB4Ij4KICAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRv
d253YXJkcwogICAgIDwvZGl2PgotICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0
IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiA1MDBweDsgd2lkdGg6IDUw
MHB4OyIgCisgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxlPSJib3Jk
ZXI6c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDMwMHB4OyB3aWR0aDogNTAwcHg7IiAKICAgICAg
c3JjPSAiZGF0YTp0ZXh0L2h0bWwsCiAgICAgIDxkaXYgaWQ9J25vdFRvQmVTY3JvbGxlZCcgc3R5
bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CiAgICAgIFRPUCBUT1AgVE9QIFRP
UCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxici8+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zh
c3Qtc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1z
Y3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHJldmlzaW9uIDE4MzU5MykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFz
dC1zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDkgKzI5LDYgQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQogICAgIHZhciBwYWdlU2Ny
b2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogICAgIHZhciBpRnJh
bWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQu
Ym9keS5zY3JvbGxUb3A7CiAKLSAgICBkZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRp
b25CZWZvcmUpOwotICAgIGRlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlv
bkFmdGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7
Ci0KICAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaUZyYW1lU2Nyb2xsUG9z
aXRpb25BZnRlcikKICAgICAgICAgdGVzdEZhaWxlZCgiSUZyYW1lIGNvbnN1bWVkIHdoZWVsIGV2
ZW50cy4iKTsKICAgICBlbHNlCkBAIC01MSwxMSArNDgsMTEgQEAgZnVuY3Rpb24gc2Nyb2xsVGVz
dCgpCiAgICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3aW5kb3cuZnJhbWVzWyd0YXJn
ZXQnXS5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKIAogICAgIGlmcmFtZVRhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKLSAgICAKLSAgICB2YXIgc3RhcnRQb3NYID0g
aWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKLSAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1l
VGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNj
cm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQorCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVu
dGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgIHZhciBzdGFydFBvc1ggPSBNYXRoLnJvdW5k
KGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0KSArIDIwOworICAgIHZhciBzdGFydFBvc1kgPSBNYXRo
LnJvdW5kKGlmcmFtZVRhcmdldC5vZmZzZXRUb3ApIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhh
biBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCiAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgIGRlYnVnKCJNb3VzZSBtb3Zl
ZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwogICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2Jl
Z2FuJywgJ25vbmUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2Vk
JywgJ25vbmUnKTsKQEAgLTY2LDkgKzYzLDkgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J25vbmUnLCAnZW5kJyk7CisgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxl
dGVzKGNoZWNrRm9yU2Nyb2xsKTsKIAogICAgIC8vIFdlIHNob3VsZCBmaW5pc2ggdmlhIHRoZSBz
Y3JvbGwgZXZlbnQ7IHRoaXMgd2lsbCBmaXJlIGluIHRoZSBjYXNlIG9mIGZhaWx1cmUgd2hlbiB0
aGUgcGFnZSBkb2Vzbid0IHNjcm9sbC4KLSAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCA1
MDApOwogfQogCiBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKQEAgLTc3LDYgKzc0LDcgQEAgZnVu
Y3Rpb24gc2V0dXBUb3BMZXZlbCgpCiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAorICAgICAgICBldmVudFNlbmRl
ci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAw
KTsKICAgICB9IGVsc2UgewogICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1t
YWluZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNo
ZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTgzNTkzKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MCwyMCArMTAsMTcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1Nb3VzZSBt
b3ZlZCB0byAoMzAsIDEyNykKLVBhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiAwCi1QYWdl
IGFmdGVyOiAgNzAsIHNlbGVjdCBhZnRlcjogMAogUEFTUyBTZWxlY3QgZGlkIG5vdCByZWNlaXZl
IHdoZWVsIGV2ZW50cy4KIChHcmFwaGljc0xheWVyCiAgIChhbmNob3IgMC4wMCAwLjAwKQotICAo
Ym91bmRzIDIwMDguMDAgMjMxMS4wMCkKKyAgKGJvdW5kcyAyMDA4LjAwIDIyNjYuMDApCiAgICh2
aXNpYmxlIHJlY3QgMC4wMCwgNzAuMDAgNzg1LjAwIHggNTg1LjAwKQogICAoY292ZXJhZ2UgcmVj
dCAwLjAwLCA3MC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJl
Y3QgMSkKICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgKGNoaWxkcmVuIDEKICAgICAoR3JhcGhp
Y3NMYXllcgotICAgICAgKGJvdW5kcyAyMDA4LjAwIDIzMTEuMDApCisgICAgICAoYm91bmRzIDIw
MDguMDAgMjI2Ni4wMCkKICAgICAgIChjb250ZW50c09wYXF1ZSAxKQogICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCA3MC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgICAgICAoY292ZXJhZ2UgcmVjdCAw
LjAwLCAwLjAwIDE1NzAuMDAgeCAxNzU1LjAwKQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hl
ZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Ny
b2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRo
LWhhbmRsZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCwyMSArMTAsMTcgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1Nb3VzZSBtb3ZlZCB0byAoMzAsIDEy
NykKLVBhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiAwCi1QYWdlIGFmdGVyOiAgNzAsIHNl
bGVjdCBhZnRlcjogMAogUEFTUyBTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4K
LURvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBmb3IgOCBvZiB0aGUgd2hlZWwgZXZlbnRzLgog
KEdyYXBoaWNzTGF5ZXIKICAgKGFuY2hvciAwLjAwIDAuMDApCi0gIChib3VuZHMgMjAwOC4wMCAy
MzI2LjAwKQorICAoYm91bmRzIDIwMDguMDAgMjI2Ni4wMCkKICAgKHZpc2libGUgcmVjdCAwLjAw
LCA3MC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDcwLjAwIDc4
NS4wMCB4IDU4NS4wMCkKICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAoY29udGVu
dHNTY2FsZSAxLjAwKQogICAoY2hpbGRyZW4gMQogICAgIChHcmFwaGljc0xheWVyCi0gICAgICAo
Ym91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgICAgIChib3VuZHMgMjAwOC4wMCAyMjY2LjAwKQog
ICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCiAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDcwLjAw
IDc4NS4wMCB4IDU4NS4wMCkKICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMTU3MC4w
MCB4IDE3NTUuMDApCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS13aXRo
LWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5m
cmFtZS13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMTgzNTkzKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1tYWluZnJhbWUtd2l0aC1oYW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTU5LDE2ICs1OSwxMSBAQCBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCiAgICAgdmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgdmFyIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOwogCi0gICAg
ZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2Vs
ZWN0IGJlZm9yZTogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKLSAgICBkZWJ1Zygi
UGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRl
cjogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOwotCiAgICAgaWYgKHNlbGVjdFNjcm9s
bFBvc2l0aW9uQmVmb3JlICE9IHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpCiAgICAgICAgIHRl
c3RGYWlsZWQoIlNlbGVjdCBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CiAgICAgZWxzZQogICAg
ICAgICB0ZXN0UGFzc2VkKCJTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsK
IAotICAgIGRlYnVnKCJEb2N1bWVudCB3YXMgaW5pdGlhbCB0YXJnZXQgZm9yICIgKyB3aGVlbENv
dW50ICsgIiBvZiB0aGUgd2hlZWwgZXZlbnRzLiIpOwotCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4
dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsCiAgICAgICAgICAgICBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTIHwgaW50ZXJuYWxzLkxBWUVS
X1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMpOwpAQCAtODUsMTAgKzgwLDEwIEBAIGZ1bmN0aW9u
IHNjcm9sbFRlc3QoKQogCiAgICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RU
YXJnZXQuc2Nyb2xsVG9wOwogCisgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJl
YWNoIHRoZSAjdGFyZ2V0LgogICAgIHZhciBzdGFydFBvc1ggPSBNYXRoLnJvdW5kKHNlbGVjdFRh
cmdldC5vZmZzZXRMZWZ0KSArIDIwOwogICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKHNl
bGVjdFRhcmdldC5vZmZzZXRUb3ApIC0gNDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
c3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0
YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUn
KTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsK
QEAgLTk5LDkgKzk0LDkgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5k
Jyk7CisgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9y
U2Nyb2xsKTsKIAogICAgIC8vIFdlIHNob3VsZCBmaW5pc2ggdmlhIHRoZSBzY3JvbGwgZXZlbnQ7
IHRoaXMgd2lsbCBmaXJlIGluIHRoZSBjYXNlIG9mIGZhaWx1cmUgd2hlbiB0aGUgcGFnZSBkb2Vz
bid0IHNjcm9sbC4KLSAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCA1MDApOwogfQogCiBm
dW5jdGlvbiBzZXR1cFRvcExldmVsKCkKQEAgLTExMCw2ICsxMDUsNyBAQCBmdW5jdGlvbiBzZXR1
cFRvcExldmVsKCkKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JX
aGVlbEV2ZW50cygpOwogICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJh
d2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwJ
KHJldmlzaW9uIDE4MzU5MykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDYgQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3Jv
bGwoKQogICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Ny
b2xsVG9wOwogICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0
LnNjcm9sbFRvcDsKIAotICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkJl
Zm9yZSk7Ci0gICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKTsKLQog
ICAgIGlmIChzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBzZWxlY3RTY3JvbGxQb3NpdGlv
bkFmdGVyKQogICAgICAgICB0ZXN0RmFpbGVkKCJTZWxlY3QgY29uc3VtZWQgd2hlZWwgZXZlbnRz
LiIpOwogICAgIGVsc2UKQEAgLTgxLDcgKzc4LDYgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAg
ICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQpICsg
MjA7CiAgICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldFRv
cCkgLSA0MjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9z
WSk7Ci0gICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0
YXJ0UG9zWSArICIpIik7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQn
LCAnbm9uZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwpAQCAtOTIsOSArODgsOSBAQCBm
dW5jdGlvbiBzY3JvbGxUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CiAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKKyAgICBldmVudFNlbmRl
ci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogCiAgICAgLy8g
V2Ugc2hvdWxkIGZpbmlzaCB2aWEgdGhlIHNjcm9sbCBldmVudDsgdGhpcyB3aWxsIGZpcmUgaW4g
dGhlIGNhc2Ugb2YgZmFpbHVyZSB3aGVuIHRoZSBwYWdlIGRvZXNuJ3Qgc2Nyb2xsLgotICAgIHNl
dFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDUwMCk7CiB9CiAKIGZ1bmN0aW9uIHNldHVwVG9wTGV2
ZWwoKQpAQCAtMTAzLDYgKzk5LDcgQEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCiAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKIAorICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAg
ICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKICAgICB9IGVsc2UgewogICAgICAgICB2YXIg
bWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9m
YXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
ZmFzdC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTgzNTkzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xMiwxOSArMTIsMTcgQEAgUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogVEVTVCBDT01QTEVURQogZGl2IGRpc3BsYXkgaGVpZ2h0ID0gMTExCiBNb3VzZSBt
b3ZlZCB0byAoMzAsIDIzOCkKLVBhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVmb3JlOiA3MAotUGFn
ZSBhZnRlcjogIDAsIHNlbGVjdCBhZnRlcjogMTQwCiBQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZl
IHdoZWVsIGV2ZW50cy4KIChHcmFwaGljc0xheWVyCiAgIChhbmNob3IgMC4wMCAwLjAwKQotICAo
Ym91bmRzIDIwMDguMDAgMjMyNi4wMCkKKyAgKGJvdW5kcyAyMDA4LjAwIDIyOTYuMDApCiAgICh2
aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgIChjb3ZlcmFnZSByZWN0
IDAuMDAsIDAuMDAgNzg1LjAwIHggNTg1LjAwKQogICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0
IDEpCiAgIChjb250ZW50c1NjYWxlIDEuMDApCiAgIChjaGlsZHJlbiAxCiAgICAgKEdyYXBoaWNz
TGF5ZXIKLSAgICAgIChib3VuZHMgMjAwOC4wMCAyMzI2LjAwKQorICAgICAgKGJvdW5kcyAyMDA4
LjAwIDIyOTYuMDApCiAgICAgICAoY29udGVudHNPcGFxdWUgMSkKICAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAw
LCAwLjAwIDE1NzAuMDAgeCAxNzU1LjAwKQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1z
ZWxlY3Qtd2l0aC1oYW5kbGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLXNl
bGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXItZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiwyMCArMTIsMTggQEAgUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogVEVTVCBDT01QTEVURQogZGl2IGRpc3BsYXkgaGVpZ2h0ID0g
MTExCiBNb3VzZSBtb3ZlZCB0byAoMzAsIDIzOCkKLVBhZ2UgYmVmb3JlOiAwLCBzZWxlY3QgYmVm
b3JlOiA3MAotUGFnZSBhZnRlcjogIDAsIHNlbGVjdCBhZnRlcjogMTQwCiBQQVNTIFBhZ2UgZGlk
IG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KIERvY3VtZW50IHdhcyBpbml0aWFsIHRhcmdldCBm
b3IgOCBvZiB0aGUgd2hlZWwgZXZlbnRzLgogKEdyYXBoaWNzTGF5ZXIKICAgKGFuY2hvciAwLjAw
IDAuMDApCi0gIChib3VuZHMgMjAwOC4wMCAyMzQxLjAwKQorICAoYm91bmRzIDIwMDguMDAgMjMx
MS4wMCkKICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKICAgKGNv
dmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA3ODUuMDAgeCA1ODUuMDApCiAgIChpbnRlcnNlY3RzIGNv
dmVyYWdlIHJlY3QgMSkKICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgKGNoaWxkcmVuIDEKICAg
ICAoR3JhcGhpY3NMYXllcgotICAgICAgKGJvdW5kcyAyMDA4LjAwIDIzNDEuMDApCisgICAgICAo
Ym91bmRzIDIwMDguMDAgMjMxMS4wMCkKICAgICAgIChjb250ZW50c09wYXF1ZSAxKQogICAgICAg
KHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDc4NS4wMCB4IDU4NS4wMCkKICAgICAgIChjb3ZlcmFn
ZSByZWN0IDAuMDAsIDAuMDAgMTU3MC4wMCB4IDE3NTUuMDApCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xsLXNlbGVj
dC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zhc3Qtc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLXNlbGVjdC13aXRoLWhhbmRsZXIuaHRtbAkocmV2aXNpb24gMTgzNTkz
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9mYXN0LXNjcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qtd2l0aC1oYW5kbGVyLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTUyLDkgKzUyLDYgQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQog
ICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
OwogICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9s
bFRvcDsKIAotICAgIGRlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7
Ci0gICAgZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAi
LCBzZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKTsKLQogICAgIGlm
IChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCiAg
ICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwogICAgIGVs
c2UKQEAgLTc5LDYgKzc2LDcgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAKICAgICBzZWxlY3RT
Y3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CiAKKyAgICAvLyBT
Y3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCiAgICAgdmFyIHN0
YXJ0UG9zWCA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQpICsgMjA7CiAgICAg
ZGVidWcoImRpdiBkaXNwbGF5IGhlaWdodCA9ICIgKyBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5j
bGllbnRIZWlnaHQpKTsKICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChzZWxlY3RUYXJn
ZXQub2Zmc2V0VG9wKSArIE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCkgLSA0
MjsKQEAgLTk0LDcgKzkyLDcgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAn
ZW5kJyk7Ci0gICAgY2hlY2tGb3JTY3JvbGwoKTsKKyAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJT
Y3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogfQogCiBmdW5jdGlvbiBzZXR1cFRv
cExldmVsKCkKQEAgLTEwMyw2ICsxMDEsNyBAQCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogCisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwog
ICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2Zhc3Qtc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFz
dC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwJKHJldmlzaW9uIDE4MzU5MykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZmFz
dC1zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDkgKzQ2LDYgQEAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQogICAgIHZhciBwYWdlU2Nyb2xs
UG9zaXRpb25BZnRlciA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwogICAgIHZhciBzZWxlY3RT
Y3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKIAotICAgIGRlYnVn
KCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVjdCBi
ZWZvcmU6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7Ci0gICAgZGVidWcoIlBhZ2Ug
YWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBzZWxlY3QgYWZ0ZXI6ICIg
KyBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKTsKLQogICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCiAgICAgICAgIHRlc3RGYWlsZWQo
IlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwogICAgIGVsc2UKQEAgLTg3LDcgKzg0LDcg
QEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwogICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Ci0gICAgY2hlY2tG
b3JTY3JvbGwoKTsKKyAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMo
Y2hlY2tGb3JTY3JvbGwpOwogfQogCiBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKQEAgLTk2LDYg
KzkzLDcgQEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAorICAgICAg
ICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAgICAgc2V0VGltZW91dChz
Y3JvbGxUZXN0LCAwKTsKICAgICB9IGVsc2UgewogICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9u
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwt
emVyby1kZWx0YS13aGVlbC1ldmVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC16
ZXJvLWRlbHRhLXdoZWVsLWV2ZW50cy5odG1sCShyZXZpc2lvbiAxODM1OTMpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNj
cm9sbC16ZXJvLWRlbHRhLXdoZWVsLWV2ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4
ICs1MCw3IEBAIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
KTsKICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotCi0g
ICAgc2V0VGltZW91dChjaGVja0Zvclplcm8sIDApOworICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRl
clNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0Zvclplcm8pOwogfQogCiBmdW5jdGlvbiBzZXRVcCgp
IHsKQEAgLTYyLDYgKzYxLDcgQEAgZnVuY3Rpb24gc2V0VXAoKSB7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAor
ICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAgICAgc2V0VGlt
ZW91dChzY3JvbGxUZXN0LCAwKTsKICAgICB9CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Jvb3Qtb3ZlcmZsb3ctd2l0aC1tb3Vz
ZXdoZWVsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9yb290LW92ZXJmbG93LXdpdGgtbW91c2V3aGVlbC5odG1s
CShyZXZpc2lvbiAxODM1OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Jvb3Qtb3ZlcmZsb3ctd2l0aC1tb3VzZXdoZWVsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCiAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J25vbmUnLCAnZW5kJyk7Ci0gICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgNTAwKTsKKyAg
ICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwp
OwogfQogCiBmdW5jdGlvbiBvbkxvYWQoKSB7CkBAIC00MSw2ICs0MSw3IEBAIGZ1bmN0aW9uIG9u
TG9hZCgpIHsKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CiAgICAgICAgIHNldFRpbWVv
dXQoc2Nyb2xsVGVzdCwgMCk7CiAgICAgfQogfQo=
</data>
<flag name="review"
          id="276841"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>