<?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>89181</bug_id>
          
          <creation_ts>2012-06-15 00:23:48 -0700</creation_ts>
          <short_desc>Use testRunner instead of layoutTestController in networkinformation, perf, plugins, pointer-lock, printing, scrollbars, and security tests</short_desc>
          <delta_ts>2012-06-15 00:38:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88210</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>haraken</cc>
    
    <cc>morrita</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>649959</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 00:23:48 -0700</bug_when>
    <thetext>Use testRunner instead of layoutTestController in networkinformation, perf, plugins, pointer-lock, printing, scrollbars, and security tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649963</commentid>
    <comment_count>1</comment_count>
      <attachid>147756</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 00:25:52 -0700</bug_when>
    <thetext>Created attachment 147756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649968</commentid>
    <comment_count>2</comment_count>
      <attachid>147756</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-15 00:30:44 -0700</bug_when>
    <thetext>Comment on attachment 147756
Patch

Looks ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649973</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 00:38:46 -0700</bug_when>
    <thetext>Committed r120417: &lt;http://trac.webkit.org/changeset/120417&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147756</attachid>
            <date>2012-06-15 00:25:52 -0700</date>
            <delta_ts>2012-06-15 00:30:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89181-20120615002550.patch</filename>
            <type>text/plain</type>
            <size>210642</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMDQxNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wNi0xNSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgdGVzdFJ1bm5lciBpbnN0ZWFkIG9mIGxh
eW91dFRlc3RDb250cm9sbGVyIGluIG5ldHdvcmtpbmZvcm1hdGlvbiwgcGVyZiwgcGx1Z2lucywg
cG9pbnRlci1sb2NrLCBwcmludGluZywgc2Nyb2xsYmFycywgYW5kIHNlY3VyaXR5IHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTE4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGVyZi9jbG9u
ZS13aXRoLWZvY3VzLmh0bWw6CisgICAgICAgICogcGVyZi9uZXN0ZWQtY29tYmluZWQtc2VsZWN0
b3JzLmh0bWw6CisgICAgICAgICogcGVyZi90YWJsZS1yb3dzLWxlbmd0aC1jYWNoaW5nLmh0bWw6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9jYWxsLWFzLWZ1bmN0aW9uLmh0
bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXQtdXJsLXdpdGgtYmxh
bmstdGFyZ2V0Mi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2V0
LXVybC13aXRoLWlmcmFtZS10YXJnZXQtbm8tY3Jhc2guaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9wcmludGluZy9jdXN0b20tcGFnZS1zaXplLXN0eWxlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9wcmludGluZy9jdXN0b20tcGFnZS1zaXplLXN0
eWxlLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL3BsdWdpbnMvaW52YWxpZGF0ZS1yZWN0
LXdpdGgtbnVsbC1ucHAtYXJndW1lbnQuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvc2Ny
b2xsYmFycy9vdmVyZmxvdy1zY3JvbGxiYXItaG9yaXpvbnRhbC13aGVlbC1zY3JvbGwuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3BsdWdpbnMvY29udGVudHMtc2NhbGUtZmFjdG9y
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9wbHVnaW5zL21vdXNlLWV2ZW50cy1z
Y2FsZWQuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1hcnJh
eS1hcHBseS1jcmFzaC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9wbHVnaW5zL2JpbmRp
bmdzLW9iamMtbG9uZy1tZXRob2QtbmFtZS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9w
bHVnaW5zL2JpbmRpbmdzLW9iamMtbWV0aG9kLW5hbWUtY29udmVyc2lvbi5odG1sOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9wbHVnaW5zL2JpbmRpbmdzLXRlc3Qtb2JqYy5odG1sOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9wbHVnaW5zL2NhbGwtYXMtZnVuY3Rpb24tdGVzdC5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9wbHVnaW5zL2NvbnZlcnQtcG9pbnQuaHRtbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvcGx1Z2lucy9kaXNhYmxlLXBsdWdpbnMuaHRtbDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvcGx1Z2lucy9qc29iamMtZG9tLXdyYXBwZXJzLmh0bWw6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL3BsdWdpbnMvanNvYmpjLXNpbXBsZS5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9wbHVnaW5zL3BsdWdpbkRvY3VtZW50Vmlldy1kZWFsbG9jYXRlZC1kYXRhU291cmNl
Lmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3BsdWdpbnMvcm9vdC1vYmpl
Y3QtcHJlbWF0dXJlLWRlbGV0ZS1jcmFzaC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9w
bHVnaW5zL3N1cHBvcnRzLWNhcmJvbi1ldmVudC1tb2RlbC5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9wbHVnaW5zL3Rlc3RwbHVnaW4tb25uZXctb25wYWludC5odG1sOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9wbHVnaW5zL3Rocm93LW9uLWRlYWxsb2MuaHRtbDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvcGx1Z2lucy91bmRlZmluZWQtcHJvcGVydHktY3Jhc2guaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvcGx1Z2lucy91cGRhdGUtd2lkZ2V0LWZyb20tc3R5bGUtcmVjYWxj
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3BsdWdpbnMvd2ViU2NyaXB0T2JqZWN0LWV4
Y2VwdGlvbi1kZWFkbG9jay5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zY3JvbGxiYXJz
L2tleS13aW5kb3ctbm90LWZpcnN0LXJlc3BvbmRlci5odG1sOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L3BsdWdpbnMvYXBwbGljYXRpb24tcGx1Z2luLXBsdWdpbnMtZGlzYWJsZWQuaHRtbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9jYWxsLWphdmFzY3JpcHQtdGhhdC1kZXN0cm95
cy1wbHVnaW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9nZXQtdmFsdWUt
bmV0c2NhcGUtd2luZG93Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vd2luL3BsdWdpbnMvaWZy
YW1lLWluc2lkZS1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9wbHVnaW5z
L25wbi1pbnZhbGlkYXRlLXJlY3QtaW52YWxpZGF0ZXMtd2luZG93Lmh0bWw6CisgICAgICAgICog
cGxhdGZvcm0vd2luL3BsdWdpbnMvdmlzaWJpbGl0eS1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vcGx1Z2lucy93aW5kb3ctZ2VvbWV0cnktaW5pdGlhbGl6ZWQtYmVmb3JlLXNl
dC13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy93aW5kb3ctcmVn
aW9uLWlzLXNldC10by1jbGlwLXJlY3QuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1
Z2lucy93aW5kb3dsZXNzLXBhaW50LXJlY3QtY29vcmRpbmF0ZXMuaHRtbDoKKyAgICAgICAgKiBw
bHVnaW5zLzoKKyAgICAgICAgKiBwb2ludGVyLWxvY2svbG9jay1mYWlsLXJlc3BvbnNlcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcG9pbnRlci1sb2NrL2xvY2stZmFpbC1yZXNwb25zZXMuaHRt
bDoKKyAgICAgICAgKiBwb2ludGVyLWxvY2svcG9pbnRlci1sb2NrLWFwaS5odG1sOgorICAgICAg
ICAqIHBvaW50ZXItbG9jay9wb2ludGVybG9ja2NoYW5nZS1wb2ludGVybG9ja2Vycm9yLWV2ZW50
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrY2hhbmdl
LXBvaW50ZXJsb2NrZXJyb3ItZXZlbnRzLmh0bWw6CisgICAgICAgICogcG9pbnRlci1sb2NrL3Bv
aW50ZXJsb2NrbG9zdC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRlci1sb2Nr
L3BvaW50ZXJsb2NrbG9zdC1ldmVudC5odG1sOgorICAgICAgICAqIHByaW50aW5nL2NvbXBvc2l0
aW5nLWxheWVyLXByaW50aW5nLmh0bWw6CisgICAgICAgICogcHJpbnRpbmcvY3NzMi4xL1JFQURN
RS50eHQ6CisgICAgICAgICogcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDAwLmh0
bWw6CisgICAgICAgICogcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDAxLmh0bWw6
CisgICAgICAgICogcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDAyLmh0bWw6Cisg
ICAgICAgICogcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDAzLmh0bWw6CisgICAg
ICAgICogcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDA0Lmh0bWw6CisgICAgICAg
ICogcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYmVmb3JlLTAwMC5odG1sOgorICAgICAgICAq
IHByaW50aW5nL2NzczIuMS9wYWdlLWJyZWFrLWJlZm9yZS0wMDEuaHRtbDoKKyAgICAgICAgKiBw
cmludGluZy9jc3MyLjEvcGFnZS1icmVhay1iZWZvcmUtMDAyLmh0bWw6CisgICAgICAgICogcHJp
bnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstaW5zaWRlLTAwMC5odG1sOgorICAgICAgICAqIHByaW50
aW5nL2lmcmFtZS1wcmludC5odG1sOgorICAgICAgICAqIHByaW50aW5nL21lZGlhLXF1ZXJpZXMt
cHJpbnQuaHRtbDoKKyAgICAgICAgKiBwcmludGluZy9udW1iZXJPZlBhZ2VzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwcmludGluZy9wYWdlLWNvdW50LWxheW91dC1vdmVyZmxvdy5odG1sOgor
ICAgICAgICAqIHByaW50aW5nL3BhZ2UtY291bnQtcmVsYXlvdXQtc2hyaW5rLmh0bWw6CisgICAg
ICAgICogcHJpbnRpbmcvcGFnZS1jb3VudC13aXRoLW9uZS13b3JkLmh0bWw6CisgICAgICAgICog
cHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1kaXNwbGF5LW5vbmUuaHRtbDoKKyAgICAgICAgKiBw
cmludGluZy9wYWdlLWZvcm1hdC1kYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwcmludGlu
Zy9wYWdlLWZvcm1hdC1kYXRhLmh0bWw6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1ydWxlLWNz
cy10ZXh0Lmh0bWw6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1ydWxlLWluLW1lZGlhLXF1ZXJ5
Lmh0bWw6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sOgorICAgICAg
ICAqIHByaW50aW5nL3BhZ2VOdW1lckZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwcmludGluZy9wcmludC1jbG9zZS1jcmFzaC5odG1sOgorICAgICAgICAqIHByaW50aW5n
L3BzZXVkby1jbGFzcy1vdXRzaWRlLXBhZ2UuaHRtbDoKKyAgICAgICAgKiBwcmludGluZy9yZXNv
dXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qczoKKyAgICAgICAgKHBhZ2VOdW1iZXJGb3JF
bGVtZW50U2hvdWxkQmUpOgorICAgICAgICAobnVtYmVyT2ZQYWdlc1Nob3VsZEJlKToKKyAgICAg
ICAgKHJ1blByaW50aW5nVGVzdCk6CisgICAgICAgICogcHJpbnRpbmcvcmV0dXJuLWZyb20tcHJp
bnRpbmctbW9kZS5odG1sOgorICAgICAgICAqIHByaW50aW5nL3NjcmlwdC10ZXN0cy9udW1iZXJP
ZlBhZ2VzLmpzOgorICAgICAgICAqIHByaW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlTnVtZXJGb3JF
bGVtZW50QnlJZC5qczoKKyAgICAgICAgKiBwcmludGluZy9zZXRQcmludGluZy5odG1sOgorICAg
ICAgICAqIHByaW50aW5nL3NpbXVsdGFuZW91cy1wb3NpdGlvbi1mbG9hdC1jaGFuZ2UuaHRtbDoK
KyAgICAgICAgKiBwcmludGluZy9zaW5nbGUtbGluZS1tdXN0LW5vdC1iZS1zcGxpdC1pbnRvLXR3
by1wYWdlcy5odG1sOgorICAgICAgICAqIHByaW50aW5nL3dpZHRoLW92ZXJmbG93Lmh0bWw6Cisg
ICAgICAgICogcHJpbnRpbmcvem9vbWVkLWRvY3VtZW50Lmh0bWw6CisgICAgICAgICogc2Nyb2xs
YmFycy9oaWRkZW4taWZyYW1lLXNjcm9sbGJhci1jcmFzaC5odG1sOgorICAgICAgICAqIHNjcm9s
bGJhcnMvaGlkZGVuLWlmcmFtZS1zY3JvbGxiYXItY3Jhc2gyLmh0bWw6CisgICAgICAgICogc2Ny
b2xsYmFycy9oaWRkZW4tc2Nyb2xsYmFyLXByZXZlbnRzLWxheW91dC5odG1sOgorICAgICAgICAq
IHNjcm9sbGJhcnMvb3ZlcmZsb3ctY3VzdG9tLXNjcm9sbGJhci1jcmFzaC5odG1sOgorICAgICAg
ICAqIHNjcm9sbGJhcnMvcmVzb3VyY2VzL2hpZGRlbi1pZnJhbWUtc2Nyb2xsYmFyLWNyYXNoMi5o
dG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsLXJ0bC1vci1idC1sYXllci5odG1sOgor
ICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsYWJsZS1pZnJhbWUtcmVtb3ZlLWNyYXNoLmh0bWw6
CisgICAgICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItY2xpY2stZG9lcy1ub3QtYmx1ci1jb250
ZW50Lmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItY3Jhc2gtb24tcmVmcmVz
aC5odG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLWRyYWctdGh1bWItd2l0aC1s
YXJnZS1jb250ZW50Lmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItZ3JhZGll
bnQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9sbGJhci1pZnJhbWUtY2xp
Y2stZG9lcy1ub3QtYmx1ci1jb250ZW50Lmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFycy9zY3Jv
bGxiYXItaW5pdGlhbC1wb3NpdGlvbi5odG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xs
YmFyLW1pZGRsZWNsaWNrLW5vcGFzdGUuaHRtbDoKKyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9s
bGJhci1taXNzLW1vdXNlbW92ZS1kaXNhYmxlZC5odG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMv
c2Nyb2xsYmFyLW1pc3MtbW91c2Vtb3ZlLmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFycy9zY3Jv
bGxiYXItb3duaW5nLXJlbmRlcmVyLWNyYXNoLmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFycy9z
Y3JvbGxiYXItcGFydC1jcmVhdGVkLXdpdGgtbm8tcGFyZW50LWNyYXNoLmh0bWw6CisgICAgICAg
ICogc2Nyb2xsYmFycy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0bWw6CisgICAg
ICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItc2Nyb2xsYmFycGFydHMtcmVwYWludC1jcmFzaC5o
dG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsZXZlbnQtaWZyYW1lLW5vLXNjcm9sbGlu
Zy13aGVlbC5odG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsZXZlbnQtaWZyYW1lLW5v
LXNjcm9sbGluZy5odG1sOgorICAgICAgICAqIHNlY3VyaXR5L2F1dG9jb21wbGV0ZS1jbGVhcmVk
LW9uLWJhY2suaHRtbDoKKyAgICAgICAgKiBzZWN1cml0eS9ibG9jay10ZXN0LW5vLXBvcnQuaHRt
bDoKKyAgICAgICAgKiBzZWN1cml0eS9ibG9jay10ZXN0Lmh0bWw6CisgICAgICAgICogc2VjdXJp
dHkvc2V0LWZvcm0tYXV0b2NvbXBsZXRlLWF0dHJpYnV0ZS5odG1sOgorCiAyMDEyLTA2LTE1ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNo
cm9taXVtIHdpbiBhbmQgbWFjIHJlYmFzZWxpbmUgZm9yIHIxMjA0MDMuCkluZGV4OiBMYXlvdXRU
ZXN0cy9wZXJmL2Nsb25lLXdpdGgtZm9jdXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wZXJmL2Nsb25lLXdpdGgtZm9jdXMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0
VGVzdHMvcGVyZi9jbG9uZS13aXRoLWZvY3VzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsOCAr
Niw4IEBACiAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAgICAgCiAgICAgPHNjcmlwdD4K
LSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAg
ICAKICAgICAgICAgdmFyIGxpc3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xp
c3QnKTsKICAgICAgICAgdmFyIHRlbXBsYXRlRWxlbWVudCA9IGxpc3QuZmlyc3RDaGlsZDsKSW5k
ZXg6IExheW91dFRlc3RzL3BlcmYvbmVzdGVkLWNvbWJpbmVkLXNlbGVjdG9ycy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BlcmYvbmVzdGVkLWNvbWJpbmVkLXNlbGVjdG9ycy5odG1s
CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wZXJmL25lc3RlZC1jb21iaW5lZC1z
ZWxlY3RvcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw4ICs2LDggQEAKIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWFnbml0dWRlLXBlcmYuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAKIHZhciBsaXN0OwogdmFyIHN0YWNrOwpJbmRleDogTGF5b3V0VGVzdHMv
cGVyZi90YWJsZS1yb3dzLWxlbmd0aC1jYWNoaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGVyZi90YWJsZS1yb3dzLWxlbmd0aC1jYWNoaW5nLmh0bWwJKHJldmlzaW9uIDEyMDQx
MSkKKysrIExheW91dFRlc3RzL3BlcmYvdGFibGUtcm93cy1sZW5ndGgtY2FjaGluZy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC02LDggKzYsOCBAQAogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9t
YWduaXR1ZGUtcGVyZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAog
dmFyIHRhYmxlOwogdmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJv
eCcpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9jYWxsLWFz
LWZ1bmN0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vcGx1Z2lucy9jYWxsLWFzLWZ1bmN0aW9uLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvY2FsbC1hcy1mdW5jdGlvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+CiA8c2NyaXB0PgotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1
Z2lucy9nZXQtdXJsLXdpdGgtYmxhbmstdGFyZ2V0Mi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2V0LXVybC13aXRoLWJsYW5rLXRhcmdl
dDIuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vcGx1Z2lucy9nZXQtdXJsLXdpdGgtYmxhbmstdGFyZ2V0Mi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMSwxNCArMTEsMTQgQEAgZnVuY3Rpb24gY2FsbGJhY2socmVzdWx0KSB7CiAgICAgZWxz
ZQogICAgICAgICBkLmlubmVySFRNTCA9ICJGQUlMRUQgLSBnb3QgZXJyb3IgY29kZSAiICsgcmVz
dWx0CiAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1bnRlc3QoKSB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CiAgICAgICAgIC8vIFRoZSBuZXcgd2luZG93IHNo
b3VsZCBjbG9zZSBpbW1lZGlhdGVseSBhZnRlciBpdCBvcGVucyBhbmQgZmluaXNoZXMKICAgICAg
ICAgLy8gbG9hZGluZy4gIFRoZSBzZXRUaW1lb3V0IGFsbG93cyBOUFBfVVJMTm90aWZ5IHRvIHJ1
biBiZWZvcmUgdGhlCiAgICAgICAgIC8vIHdpbmRvdyBpcyBjbG9zZWQuCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dldC11cmwtd2l0aC1pZnJhbWUtdGFyZ2V0
LW5vLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vcGx1Z2lucy9nZXQtdXJsLXdpdGgtaWZyYW1lLXRhcmdldC1uby1jcmFzaC5odG1sCShyZXZp
c2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dl
dC11cmwtd2l0aC1pZnJhbWUtdGFyZ2V0LW5vLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAgKzEsMTAgQEAKIDxodG1sPgogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1bnRlc3QoKSB7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKLSAgICAgICAgcGxnLmdldFVSTE5vdGlmeSgiZGF0YTp0ZXh0L2h0bWws
PGJvZHkgb25sb2FkPSdsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCknPjwvYm9keT4i
LCAiZnJhbWUiLCAiY2FsbGJhY2siKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICBwbGcuZ2V0VVJMTm90aWZ5KCJkYXRhOnRleHQvaHRtbCw8Ym9k
eSBvbmxvYWQ9J3Rlc3RSdW5uZXIubm90aWZ5RG9uZSgpJz48L2JvZHk+IiwgImZyYW1lIiwgImNh
bGxiYWNrIik7CiAgICAgICAgIHBsZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHBsZykKICAgICB9
IGVsc2UgewogICAgICAgICBkb2N1bWVudC53cml0ZSgiQ2Fubm90IHJ1biBpbnRlcmFjdGl2ZWx5
Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wcmludGluZy9jdXN0b20t
cGFnZS1zaXplLXN0eWxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9wcmludGluZy9jdXN0b20tcGFnZS1zaXplLXN0eWxlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
cHJpbnRpbmcvY3VzdG9tLXBhZ2Utc2l6ZS1zdHlsZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTQsOSArNCw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEEKIAogCiBUZXN0IHBhZ2Ugc2l6ZTogMTBpbiAxMGluLiBQYWdlIGhhcyBjdXN0b20gcGFnZSBz
aXplIHN0eWxlCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmhhc0N1c3RvbVBhZ2VTaXplU3R5
bGUoMCkgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmhhc0N1c3RvbVBhZ2VTaXplU3R5bGUoMCkg
aXMgdHJ1ZQogVGVzdCBwYWdlIHNpemU6IGF1dG8uIFBhZ2UgZG9lcyBub3QgaGF2ZSBhbnkgY3Vz
dG9tIHBhZ2Ugc2l6ZSBzdHlsZQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5oYXNDdXN0b21Q
YWdlU2l6ZVN0eWxlKDApIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaGFzQ3VzdG9tUGFnZVNp
emVTdHlsZSgwKSBpcyBmYWxzZQogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3ByaW50aW5nL2N1c3RvbS1wYWdl
LXNpemUtc3R5bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9wcmludGluZy9jdXN0b20tcGFnZS1zaXplLXN0eWxlLmh0bWwJKHJldmlzaW9uIDEyMDQx
MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3ByaW50aW5nL2N1c3RvbS1wYWdl
LXNpemUtc3R5bGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUsMjEgKzE1LDIxIEBACiAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkX2VsZW1lbnQiKS5hcHBlbmRDaGlsZChz
dHlsZUVsZW1lbnQpOwogICAgIH0KIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
IAogICAgICAgICAvLyBQYWdlIHNpemUgc3R5bGUgdGVzdHMuCiAgICAgICAgIGRlYnVnKCJUZXN0
IHBhZ2Ugc2l6ZTogMTBpbiAxMGluLiBQYWdlIGhhcyBjdXN0b20gcGFnZSBzaXplIHN0eWxlIik7
CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZToxMGluIDEwaW47fSIpOwotICAgICAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuaGFzQ3VzdG9tUGFnZVNpemVTdHlsZSgw
KSIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLmhhc0N1c3RvbVBhZ2VT
aXplU3R5bGUoMCkiLCAidHJ1ZSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IHBhZ2Ugc2l6ZTog
YXV0by4gUGFnZSBkb2VzIG5vdCBoYXZlIGFueSBjdXN0b20gcGFnZSBzaXplIHN0eWxlIik7CiAg
ICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTphdXRvO30iKTsKLSAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmhhc0N1c3RvbVBhZ2VTaXplU3R5bGUoMCkiLCAiZmFs
c2UiKTsKKyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIuaGFzQ3VzdG9tUGFnZVNpemVTdHls
ZSgwKSIsICJmYWxzZSIpOwogCiAgICAgICAgIGRlYnVnKCIiKTsKICAgICB9IGVsc2UgewotICAg
ICAgICB0ZXN0RmFpbGVkKCJUaGlzIHRlc3QgY2FuIGJlIHJ1biBvbmx5IHdpdGggd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyIik7CisgICAgICAgIHRlc3RGYWlsZWQoIlRoaXMgdGVzdCBjYW4g
YmUgcnVuIG9ubHkgd2l0aCB3aW5kb3cudGVzdFJ1bm5lciIpOwogICAgIH0KIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvcGx1Z2lucy9pbnZhbGlk
YXRlLXJlY3Qtd2l0aC1udWxsLW5wcC1hcmd1bWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9wbHVnaW5zL2ludmFsaWRhdGUtcmVjdC13aXRoLW51bGwtbnBw
LWFyZ3VtZW50Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9wbHVnaW5zL2ludmFsaWRhdGUtcmVjdC13aXRoLW51bGwtbnBwLWFyZ3VtZW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3Jp
cHQ+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIDwv
c2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
c2Nyb2xsYmFycy9vdmVyZmxvdy1zY3JvbGxiYXItaG9yaXpvbnRhbC13aGVlbC1zY3JvbGwuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc2Nyb2xsYmFycy9vdmVy
Zmxvdy1zY3JvbGxiYXItaG9yaXpvbnRhbC13aGVlbC1zY3JvbGwuaHRtbAkocmV2aXNpb24gMTIw
NDExKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Njcm9sbGJhcnMvb3ZlcmZsb3ctc2Ny
b2xsYmFyLWhvcml6b250YWwtd2hlZWwtc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDkgKzQ2LDkgQEAgZGl2I3N0eWxlZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2s6aG9yaQogPC9z
dHlsZT4KIDxib2R5IHN0eWxlPSJtYXJnaW46MCI+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIDwvc2NyaXB0PgogPGRpdiBpZD0ib3ZlcmZsb3ciIHN0
eWxlPSJib3JkZXI6MnB4IHNvbGlkIGJsYWNrO292ZXJmbG93OmF1dG87aGVpZ2h0OjIwMHB4O3dp
ZHRoOjIwMHB4OyBsZWZ0OiAwcHg7IHRvcDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPgpA
QCAtNzgsNyArNzgsNyBAQCBzaG91bGQgYmUgODAsIGFuZCB0aGUgaG9yaXpvbnRhIDQwLjxwLz4K
IDxzY3JpcHQ+CiBmdW5jdGlvbiBmYWlsZWQoKSB7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSAiRkFJTEVEIjsKLSAgICB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKIH0KIAogaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpAQCAtMTU0LDcgKzE1NCw3IEBA
IGZ1bmN0aW9uIGZpbmlzaGVkKCkKICAgICAvLyBKdXN0IHRvIGNsZWFudXAgdGhlIHRlc3QgcmVz
dWx0cyBwYWdlCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0eWxlZCcpLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CiAKLSAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3BsdWdpbnMvY29udGVudHMt
c2NhbGUtZmFjdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9wbHVnaW5zL2NvbnRlbnRzLXNjYWxlLWZhY3Rvci5odG1sCShyZXZpc2lvbiAxMjA0MTEp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3BsdWdpbnMvY29udGVudHMtc2NhbGUt
ZmFjdG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE2LDEyICsxNiwxMiBAQCBmdW5jdGlvbiBj
cmVhdGVUZXN0UGx1Z2luKHRlc3ROYW1lKQogCiBmdW5jdGlvbiBydW5UZXN0KCkgCiB7Ci0gICAg
aWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG9ubHkgcnVuIGZyb20gd2l0
aGluIER1bXBSZW5kZXJUcmVlIGJlY2F1c2UgaXQgcmVxdWlyZXMgVGVzdE5ldHNjYXBlUGx1Z2lu
LlxuIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAg
ICBwbHVnaW4xID0gY3JlYXRlVGVzdFBsdWdpbignY29udGVudHMtc2NhbGUtZmFjdG9yJyk7CiAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwbHVnaW4xKTsKQEAgLTMwLDcgKzMwLDcgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpIAogICAgIHNob3VsZEJlKCJwbHVnaW4xLmNhY2hlZENvbnRlbnRz
U2NhbGVGYWN0b3IiLCAiMS4wIik7CiAKICAgICAvLyBOb3cgY2hhbmdlIHRoZSBiYWNraW5nIHNj
YWxlIGZhY3Rvci4KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRCYWNraW5nU2NhbGVGYWN0
b3IoMiwgZnVuY3Rpb24oKSB7CisgICAgdGVzdFJ1bm5lci5zZXRCYWNraW5nU2NhbGVGYWN0b3Io
MiwgZnVuY3Rpb24oKSB7CiAgICAgICAgIHNob3VsZEJlKCJwbHVnaW4xLmNvbnRlbnRzU2NhbGVG
YWN0b3IiLCAiMi4wIik7CiAgICAgICAgIHNob3VsZEJlKCJwbHVnaW4xLmNhY2hlZENvbnRlbnRz
U2NhbGVGYWN0b3IiLCAiMi4wIik7CiAgICAgCkBAIC00MCw3ICs0MCw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKSAKICAgICAgICAgc2hvdWxkQmUoInBsdWdpbjIuY29udGVudHNTY2FsZUZhY3RvciIs
ICIyLjAiKTsKICAgICAgICAgc2hvdWxkQmUoInBsdWdpbjIuY2FjaGVkQ29udGVudHNTY2FsZUZh
Y3RvciIsICIyLjAiKTsKIAotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0pOwogfQogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3BsdWdpbnMvbW91c2UtZXZl
bnRzLXNjYWxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvcGx1Z2lucy9tb3VzZS1ldmVudHMtc2NhbGVkLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvcGx1Z2lucy9tb3VzZS1ldmVudHMtc2NhbGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksMTAgKzksMTAgQEAgZnVuY3Rpb24gZmFrZUNsaWNr
KHgsIHkpIHsKICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiB9CiAKLWlmICghd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQoraWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICBkb2N1bWVu
dC53cml0ZSgiVGhpcyB0ZXN0IGRvZXMgbm90IHdvcmsgaW4gbWFudWFsIG1vZGUuIik7CiBlbHNl
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgcGxnLndpbmRvd2VkUGx1Z2luID0gZmFsc2U7CiAg
ICAgcGxnLmV2ZW50TG9nZ2luZ0VuYWJsZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3BsdWdpbnMvYmluZGluZ3MtYXJyYXktYXBwbHktY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1hcnJheS1h
cHBseS1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1hcnJheS1hcHBseS1jcmFzaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC04LDggKzgsOCBAQCBmdW5jdGlvbiBsb2cobXNnKQogICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bXNnICsgIlxuIikpOwogfQogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogaWYgKCF3aW5kb3cub2JqQ0NvbnRy
b2xsZXIpCiAgICAgYWxlcnQoIlRoaXMgbmVlZHMgdG8gYmUgcnVuIHVuZGVyIERSVCBvbiB0aGUg
TWFjLiIpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvYmluZGluZ3Mt
b2JqYy1sb25nLW1ldGhvZC1uYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3BsdWdpbnMvYmluZGluZ3Mtb2JqYy1sb25nLW1ldGhvZC1uYW1lLmh0bWwJKHJl
dmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL2JpbmRp
bmdzLW9iamMtbG9uZy1tZXRob2QtbmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDggKzUs
OCBAQAogdmFyIG1ldGhvZE5hbWUgPSAnJzsKIGZ1bmN0aW9uIGRvVGVzdCgpCiB7Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMjQ7ICsr
aSkKICAgICAgICAgbWV0aG9kTmFtZSArPSAnbG9uZyc7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy1vYmpjLW1ldGhvZC1uYW1lLWNvbnZlcnNpb24uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5n
cy1vYmpjLW1ldGhvZC1uYW1lLWNvbnZlcnNpb24uaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvYmluZGluZ3Mtb2JqYy1tZXRob2QtbmFt
ZS1jb252ZXJzaW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsOCArNSw4IEBACiB2YXIgbWV0
aG9kTmFtZSA9ICcnOwogZnVuY3Rpb24gZG9UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKIAogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JqQ1BsdWdpblsndGVzdENv
bnZlcnNpb25Db2xvbl8nXSgxKSIsICd0ZXN0Q29udmVyc2lvbkNvbG9uOihpbnQpdXNlbGVzcycp
OwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JqQ1BsdWdpblsndGVzdENvbnZlcnNpb25F
c2NhcGVDaGFyJCRhJF9iJCQkX18nXSgyKSIsICd0ZXN0Q29udmVyc2lvbkVzY2FwZUNoYXIkYV9i
JF86KGludCl1c2VsZXNzJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lu
cy9iaW5kaW5ncy10ZXN0LW9iamMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvcGx1Z2lucy9iaW5kaW5ncy10ZXN0LW9iamMuaHRtbAkocmV2aXNpb24gMTIwNDEx
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvYmluZGluZ3MtdGVzdC1vYmpj
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsOCArMyw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24g
ZG9UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIGlmICh3aW5k
b3cub2JqQ1BsdWdpbikgewogICAgICAgICAvLyBUeXBlIHNob3VsZCBiZSAib2JqZWN0IgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvY2FsbC1hcy1mdW5jdGlvbi10ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvY2Fs
bC1hcy1mdW5jdGlvbi10ZXN0Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9wbHVnaW5zL2NhbGwtYXMtZnVuY3Rpb24tdGVzdC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDExICszLDExIEBACiAgICAgPHNjcmlwdD4KICAgICAgICAgZnVuY3Rpb24g
ZG9UZXN0KCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgICAgICAgIC8vIFRlc3QgY2FsbGluZyBi
cmlkZ2VkIGZ1bmN0aW9uIHdpdGggZ2xvYmFsIHdpbmRvdyBhcyAidGhpcyIKLSAgICAgICAgICAg
IHZhciBmID0gKCJsYXlvdXRUZXN0Q29udHJvbGxlciIgaW4gd2luZG93KSA/IG9iakNDb250cm9s
bGVyLmNsYXNzTmFtZSA6IGNvbnNvbGUubG9nOworICAgICAgICAgICAgdmFyIGYgPSAoInRlc3RS
dW5uZXIiIGluIHdpbmRvdykgPyBvYmpDQ29udHJvbGxlci5jbGFzc05hbWUgOiBjb25zb2xlLmxv
ZzsKICAgICAgICAgICAgIAogICAgICAgICAgICAgdmFyIHJlc3VsdDsKICAgICAgICAgICAgIHRy
eSB7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9jb252ZXJ0LXBvaW50
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvY29u
dmVydC1wb2ludC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvcGx1Z2lucy9jb252ZXJ0LXBvaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyAr
MSw3IEBACiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0K
IDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9kaXNh
YmxlLXBsdWdpbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
cGx1Z2lucy9kaXNhYmxlLXBsdWdpbnMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvZGlzYWJsZS1wbHVnaW5zLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTEgKzEsMTEgQEAKIAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikKICAgICAgICAgYWxlcnQoJ3RoaXMgdGVzdCBtdXN0IGJlIHJ1biBmcm9tIER1
bXBSZW5kZXJUcmVlJykKICAgICAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGx1Z2luc0VuYWJsZWQoZmFsc2UpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuc2V0UGx1Z2luc0Vu
YWJsZWQoZmFsc2UpOwogICAgIAogICAgIHZhciBwbHVnaW5FbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3RQbHVnaW4nKTsKICAgICBwbHVnaW5FbGVtZW50LnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQocGx1Z2luRWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvcGx1Z2lucy9qc29iamMtZG9tLXdyYXBwZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvanNvYmpjLWRvbS13cmFwcGVycy5odG1sCShyZXZp
c2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9qc29iamMt
ZG9tLXdyYXBwZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDggKzE3LDggQEAgZnVuY3Rp
b24gY2hlY2soZXhwLCB2YWx1ZSkgewogICAgIHByaW50KCcnICsgZXhwICsgJyA9PSAnICsgdmFs
dWUgKyAnID8gLT4gJyArIHJlc3VsdCk7CiB9CiBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIGlmICghd2luZG93Lm9iakNQbHVnaW4pCiAgICAgICAg
IHJldHVybiBwcmludCgnRkFJTCAtIG5vIG9iakNQbHVnaW4nKTsKICAgICBvYmpDUGx1Z2luLnJl
bW92ZUJyaWRnZVJlc3RyaWN0aW9uc18od2luZG93KTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9wbHVnaW5zL2pzb2JqYy1zaW1wbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9qc29iamMtc2ltcGxlLmh0bWwJKHJldmlzaW9uIDEy
MDQxMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL2pzb2JqYy1zaW1wbGUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw4ICs4LDggQEAgZnVuY3Rpb24gcHJpbnQobWVzc2Fn
ZSkgewogfQogCiBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgIGlmICghd2luZG93Lm9iakNQbHVnaW4pCiAgICAgICAgIHJldHVybiBwcmludCgnRkFJ
TCAtIG5vIG9iakNQbHVnaW4nKTsKICAgICBvYmpDUGx1Z2luLnJlbW92ZUJyaWRnZVJlc3RyaWN0
aW9uc18od2luZG93KTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL3Bs
dWdpbkRvY3VtZW50Vmlldy1kZWFsbG9jYXRlZC1kYXRhU291cmNlLmh0bWwtZGlzYWJsZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvcGx1Z2luRG9jdW1l
bnRWaWV3LWRlYWxsb2NhdGVkLWRhdGFTb3VyY2UuaHRtbC1kaXNhYmxlZAkocmV2aXNpb24gMTIw
NDExKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvcGx1Z2luRG9jdW1lbnRW
aWV3LWRlYWxsb2NhdGVkLWRhdGFTb3VyY2UuaHRtbC1kaXNhYmxlZAkod29ya2luZyBjb3B5KQpA
QCAtNCwxNSArNCwxNSBAQAogZnVuY3Rpb24gZmluaXNoVGVzdCgpCiB7CiAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3BsdWdpbicpLnNyYyA9ICdhYm91dDpibGFuayc7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB9CiAK
ICAgICB2YXIgaSA9IDA7CkBAIC0yNCw4ICsyNCw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0K
ICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lclRleHQgPSAiVGVzdCBjYW5ub3QgcnVuOiBRdWlja1RpbWUgUGx1Z2luLndlYnBs
dWdpbiBtaXNzaW5nLiI7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwg
MCk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9yb290LW9iamVjdC1w
cmVtYXR1cmUtZGVsZXRlLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3BsdWdpbnMvcm9vdC1vYmplY3QtcHJlbWF0dXJlLWRlbGV0ZS1jcmFzaC5odG1s
CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9y
b290LW9iamVjdC1wcmVtYXR1cmUtZGVsZXRlLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgfQogCiAgICAgbG9nKCJQQVNT
OiBZb3UgZGlkbid0IGNyYXNoLlxuIik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBxdWV1
ZVRlc3QoKQpAQCAtNDMsMTIgKzQzLDEyIEBAIGZ1bmN0aW9uIHF1ZXVlVGVzdCgpCiBmdW5jdGlv
biB0aW1lb3V0VGVzdCgpCiB7CiAgICAgbG9nKCJGQUlMOiBUZXN0IHRpbWVkLW91dCBhZnRlciAi
ICsgY291bnQgKyAiIHJ1bnMuXG4iKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIHdpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbiBvbmxvYWQoKQogewotICAgIGlmICghKCJsYXlvdXRUZXN0Q29udHJvbGxlciIg
aW4gd2luZG93KSB8fCAhKCJvYmpDQ29udHJvbGxlciIgaW4gd2luZG93KSkgeworICAgIGlmICgh
KCJ0ZXN0UnVubmVyIiBpbiB3aW5kb3cpIHx8ICEoIm9iakNDb250cm9sbGVyIiBpbiB3aW5kb3cp
KSB7CiAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSAiRkFJTDogVGhpcyB0ZXN0IGNhbiBvbmx5
IHJ1biBpbnNpZGUgRHVtcFJlbmRlclRyZWUgb24gdGhlIG1hYy4iOwogICAgICAgICBsb2coZXJy
b3JNZXNzYWdlKTsKICAgICAgICAgdGhyb3cgZXJyb3JNZXNzYWdlOwpAQCAtNTYsOCArNTYsOCBA
QCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gb25sb2FkKCkKIAogICAgIHRpbWVvdXRJZGVudGlm
aWVyID0gc2V0VGltZW91dCh0aW1lb3V0VGVzdCwgMzAwMDApOyAvLyB0aW1lb3V0IGFmdGVyIDMw
IHNlY29uZHMKIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICBxdWV1ZVRl
c3QoKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL3N1cHBvcnRz
LWNhcmJvbi1ldmVudC1tb2RlbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9wbHVnaW5zL3N1cHBvcnRzLWNhcmJvbi1ldmVudC1tb2RlbC5odG1sCShyZXZpc2lv
biAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9zdXBwb3J0cy1j
YXJib24tZXZlbnQtbW9kZWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxz
Y3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogCiA8ZW1iZWQgaWQ9InRlc3RQbHVnaW4i
IApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvdGVzdHBsdWdpbi1vbm5l
dy1vbnBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Bs
dWdpbnMvdGVzdHBsdWdpbi1vbm5ldy1vbnBhaW50Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL3Rlc3RwbHVnaW4tb25uZXctb25wYWlu
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPGh0bWw+CiA8aGVhZD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgotICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgICAgICBmdW5jdGlv
biBsb2cobSkKICAgICAgICAgewpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdp
bnMvdGhyb3ctb24tZGVhbGxvYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9wbHVnaW5zL3Rocm93LW9uLWRlYWxsb2MuaHRtbAkocmV2aXNpb24gMTIwNDExKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvdGhyb3ctb24tZGVhbGxvYy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw4ICsxMCw4IEBAIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2Up
CiAKIGZ1bmN0aW9uIHRlc3QoKSAKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICBpZiAoIXdpbmRvdy5vYmpDUGx1Z2luKQogICAgICAgICByZXR1cm4gcHJpbnQoJ0ZBSUwgLSBu
byBvYmpDUGx1Z2luJyk7CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1
Z2lucy91bmRlZmluZWQtcHJvcGVydHktY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy91bmRlZmluZWQtcHJvcGVydHktY3Jhc2guaHRtbAko
cmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvdW5k
ZWZpbmVkLXByb3BlcnR5LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDggKzE5LDgg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHZhciBjcmFzaGVyID0gdGVzdDIoKTsKICAgICBkZWxl
dGUgb2JqQ0NvbnRyb2xsZXI7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lu
cy91cGRhdGUtd2lkZ2V0LWZyb20tc3R5bGUtcmVjYWxjLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvdXBkYXRlLXdpZGdldC1mcm9tLXN0eWxlLXJl
Y2FsYy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
cGx1Z2lucy91cGRhdGUtd2lkZ2V0LWZyb20tc3R5bGUtcmVjYWxjLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsOCArMSw4IEBACiA8ZGl2IGlkPSJ0YXJnZXQxIj48L2Rpdj4KIDxkaXYgaWQ9InRh
cmdldDIiPjwvZGl2PgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAKICAgICB2YXIgdGFyZ2V0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIik7
CiAgICAgdGFyZ2V0MS5vZmZzZXRUb3A7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
cGx1Z2lucy93ZWJTY3JpcHRPYmplY3QtZXhjZXB0aW9uLWRlYWRsb2NrLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3BsdWdpbnMvd2ViU2NyaXB0T2JqZWN0LWV4
Y2VwdGlvbi1kZWFkbG9jay5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvcGx1Z2lucy93ZWJTY3JpcHRPYmplY3QtZXhjZXB0aW9uLWRlYWRsb2NrLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8aHRtbD4KIDxzY3JpcHQ+CiAKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICBvYmpDQ29udHJvbGxlci5zdG9yZVdlYlNjcmlwdE9iamVjdCh3
aW5kb3cpOwogICAgIG9iakNDb250cm9sbGVyLnRlc3RWYWx1ZUZvcktleSgpOwogfQpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Njcm9sbGJhcnMva2V5LXdpbmRvdy1ub3QtZmlyc3Qt
cmVzcG9uZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Nj
cm9sbGJhcnMva2V5LXdpbmRvdy1ub3QtZmlyc3QtcmVzcG9uZGVyLmh0bWwJKHJldmlzaW9uIDEy
MDQxMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zY3JvbGxiYXJzL2tleS13aW5kb3ct
bm90LWZpcnN0LXJlc3BvbmRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw2IEBA
CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGlzdC5jbG9uZU5vZGUodHJ1ZSkp
OwogPC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1haW5GcmFtZUlzRmlyc3RSZXNw
b25kZXIoZmFsc2UpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGZhbHNlKTsKIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvcGx1Z2lucy9hcHBsaWNhdGlvbi1wbHVnaW4tcGx1
Z2lucy1kaXNhYmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L3BsdWdpbnMvYXBwbGljYXRpb24tcGx1Z2luLXBsdWdpbnMtZGlzYWJsZWQuaHRtbAkocmV2aXNp
b24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvcGx1Z2lucy9hcHBsaWNhdGlv
bi1wbHVnaW4tcGx1Z2lucy1kaXNhYmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcs
OCBAQAogPGh0bWw+CiA8Ym9keT4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZl
cmVuY2UoIldlYktpdFBsdWdpbnNFbmFibGVkIiwgZmFsc2UpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
UGx1Z2luc0VuYWJsZWQiLCBmYWxzZSk7CiAgICAgfQogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL2NhbGwtamF2YXNjcmlwdC10aGF0LWRlc3Ryb3lz
LXBsdWdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVn
aW5zL2NhbGwtamF2YXNjcmlwdC10aGF0LWRlc3Ryb3lzLXBsdWdpbi5odG1sCShyZXZpc2lvbiAx
MjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9jYWxsLWphdmFzY3Jp
cHQtdGhhdC1kZXN0cm95cy1wbHVnaW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDgg
QEAKIDxodG1sPgogPGhlYWQ+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL2dldC12YWx1ZS1uZXRzY2FwZS13
aW5kb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lu
cy9nZXQtdmFsdWUtbmV0c2NhcGUtd2luZG93Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL2dldC12YWx1ZS1uZXRzY2FwZS13aW5kb3cu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsOCArMTEsOCBAQAogICAgIFRoaXMgdGVzdHMgdGhh
dCB0aGUgYnJvd3NlciBzdXBwb3J0cyBOUE5fR2V0VmFsdWUoTlBOVm5ldHNjYXBlV2luZG93KS4K
IDwvZGl2PgogPHNjcmlwdD4KLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL2lmcmFt
ZS1pbnNpZGUtb3ZlcmZsb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vcGx1Z2lucy9pZnJhbWUtaW5zaWRlLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDEyMDQx
MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL2lmcmFtZS1pbnNpZGUtb3Zl
cmZsb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxoZWFkPgogICAgIDxz
Y3JpcHQ+CiAgICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpIHsKLSAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgdmFy
IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKVswXTsKICAg
ICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxMZWZ0ID0gMzAwOwogICAgICAgICAgICAgY29udGFp
bmVyLnNjcm9sbFRvcCA9IDMwMDsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVn
aW5zL25wbi1pbnZhbGlkYXRlLXJlY3QtaW52YWxpZGF0ZXMtd2luZG93Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvbnBuLWludmFsaWRhdGUtcmVj
dC1pbnZhbGlkYXRlcy13aW5kb3cuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvbnBuLWludmFsaWRhdGUtcmVjdC1pbnZhbGlkYXRlcy13
aW5kb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsOCArMTEsOCBAQAogICAgIFRoaXMgdGVz
dHMgdGhhdCBhIHBsdWdpbidzIEhXTkQgaXMgaW52YWxpZGF0ZWQgYnkgTlBOX0ludmFsaWRhdGVS
ZWN0LgogPC9kaXY+CiA8c2NyaXB0PgotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMv
dmlzaWJpbGl0eS1oaWRkZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vcGx1Z2lucy92aXNpYmlsaXR5LWhpZGRlbi5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy92aXNpYmlsaXR5LWhpZGRlbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw4ICsxMiw4IEBACiAgICAgICAgICAgICAgICAgZWxlbWVu
dHNUb1Nob3dbaV0uc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJzsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAg
ICAgIGFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkZWQsIGZhbHNlKTsKICAgICA8L3Njcmlw
dD4KICAgICA8c3R5bGU+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy93
aW5kb3ctZ2VvbWV0cnktaW5pdGlhbGl6ZWQtYmVmb3JlLXNldC13aW5kb3cuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy93aW5kb3ctZ2VvbWV0cnkt
aW5pdGlhbGl6ZWQtYmVmb3JlLXNldC13aW5kb3cuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvd2luZG93LWdlb21ldHJ5LWluaXRpYWxp
emVkLWJlZm9yZS1zZXQtd2luZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDggKzExLDgg
QEAKICAgICBUaGlzIHRlc3RzIHRoYXQgYSBwbHVnaW4ncyBIV05EIGlzIGFscmVhZHkgc2l6ZWQg
YW5kIHBvc2l0aW9uZWQgYmVmb3JlIE5QUF9TZXRXaW5kb3cgaXMgY2FsbGVkLgogPC9kaXY+CiA8
c2NyaXB0PgotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvd2luZG93LXJlZ2lvbi1p
cy1zZXQtdG8tY2xpcC1yZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL3BsdWdpbnMvd2luZG93LXJlZ2lvbi1pcy1zZXQtdG8tY2xpcC1yZWN0Lmh0bWwJKHJl
dmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3dpbmRv
dy1yZWdpb24taXMtc2V0LXRvLWNsaXAtcmVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDgg
KzIsOCBAQAogPGh0bWw+CiA8aGVhZD4KICAgICA8c2NyaXB0PgotICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZW1iZWQnKVsw
XS5zdGFydFRlc3QoKSB9LCBmYWxzZSk7CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvd2luZG93bGVzcy1wYWludC1yZWN0
LWNvb3JkaW5hdGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L3BsdWdpbnMvd2luZG93bGVzcy1wYWludC1yZWN0LWNvb3JkaW5hdGVzLmh0bWwJKHJldmlzaW9u
IDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3dpbmRvd2xlc3Mt
cGFpbnQtcmVjdC1jb29yZGluYXRlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBA
QAogPGh0bWw+CiA8aGVhZD4KICAgICA8c2NyaXB0PgotICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CiAgICAgICAg
IGVtYmVkIHsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvYWNjZXNzLWFmdGVyLXBhZ2UtZGVz
dHJveWVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9hY2Nlc3MtYWZ0
ZXItcGFnZS1kZXN0cm95ZWQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cGx1Z2lucy9hY2Nlc3MtYWZ0ZXItcGFnZS1kZXN0cm95ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMCArMSwxMCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiB2
YXIgdyA9IG9wZW4oKTsKQEAgLTE4LDggKzE4LDggQEAgdyA9IG51bGw7CiAKIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKXsKICAgICBwLmVuYWJsZWRQbHVnaW47Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiB9LCA1MCk7IC8vIFBhdXNlIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIHBhZ2UgdG8gZ2V0
IGZyZWVkCiAKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9hdHRhY2gtZHVy
aW5nLWRlc3Ryb3kuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2F0dGFj
aC1kdXJpbmctZGVzdHJveS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9w
bHVnaW5zL2F0dGFjaC1kdXJpbmctZGVzdHJveS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw4
ICsxMyw4IEBACiAgICAgICAgIHRhcmdldC5pbm5lckhUTUwgPSAidGV4dCI7CiAgICAgfQogCi0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKICAgICBsb2NhdGlvbi5ocmVmID0gImRhdGE6dGV4dC9odG1sLFRlc3QgZm9yIHJkYXI6Ly9w
cm9ibGVtLzcxOTQ3MzUgUEFTU0VELiI7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2NoYW5n
ZS13aWRnZXQtYW5kLWNsaWNrLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGx1Z2lucy9jaGFuZ2Utd2lkZ2V0LWFuZC1jbGljay1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA0
MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2NoYW5nZS13aWRnZXQtYW5kLWNsaWNrLWNyYXNo
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDE0ICsxNSwxNCBAQCBmdW5jdGlvbiBjcmFzaCgp
IHsNCiAgICAgY2xpY2tFbGVtZW50KHgpOw0KICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9
ICJQQVNTIjsNCiANCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsNCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQ0KKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7DQogfQ0KIA0KIGZ1
bmN0aW9uIGxvYWQoKSB7DQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsN
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7DQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOw0KICAgICB9DQogICAgIHNldFRpbWVvdXQoY3Jhc2gs
IDApOw0KIH0NCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2NsaWNraW5nLW1pc3NpbmctcGx1
Z2luLWZpcmVzLWRlbGVnYXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lu
cy9jbGlja2luZy1taXNzaW5nLXBsdWdpbi1maXJlcy1kZWxlZ2F0ZS5odG1sCShyZXZpc2lvbiAx
MjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2NsaWNraW5nLW1pc3NpbmctcGx1Z2luLWZp
cmVzLWRlbGVnYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsMTAgKzQsMTAgQEAKIDxwPlRo
aXMgdGVzdCBjaGVja3MgaWYgdGhlIG1pc3NpbmcgcGx1Zy1pbiBidXR0b24gY2FuIGJlIGNsaWNr
ZWQuIFRoaXMgaXMgYSB0ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDE3MjEiPkJ1ZyA0MTcyMTwvYT4uPC9wPgogPHNjcmlwdD4KIAotICAg
IGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhpcyB0ZXN0IGRvZXMgbm90IHdv
cmsgaW4gbWFudWFsIG1vZGUuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
IAogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygwLDApOwogICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygxMDUsIDEwNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2Ny
YXNoLXJlc3RvcmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1wbHVnaW4tcGFnZS1mcm9t
LXBhZ2UtY2FjaGUuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lu
cy9jcmFzaC1yZXN0b3JpbmctcGx1Z2luLXBhZ2UtZnJvbS1wYWdlLWNhY2hlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIDxoZWFkPgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNo
ZVByZWZlcmVuY2VLZXkiLCAxKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2luc1ByZWZlcmVuY2VLZXkiLCAx
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIub3ZlcnJp
ZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOworICAg
IHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRQYWdlQ2FjaGVTdXBwb3J0c1Bs
dWdpbnNQcmVmZXJlbmNlS2V5IiwgMSk7CiB9CiAKIGZ1bmN0aW9uIHBhZ2VTaG93bigpIHsKQEAg
LTE2LDggKzE2LDggQEAgZnVuY3Rpb24gcGFnZVNob3duKCkgewogCiBmdW5jdGlvbiB0ZXN0Q29t
cGxldGUoKSB7CiAgICAgYWxlcnQoIk1hZGUgaXQgYmFjayEiKTsKLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkgewpJbmRleDogTGF5b3V0VGVz
dHMvcGx1Z2lucy9jcmVhdGVTY3JpcHRhYmxlT2JqZWN0LWJlZm9yZS1zdGFydC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvY3JlYXRlU2NyaXB0YWJsZU9iamVjdC1iZWZv
cmUtc3RhcnQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9j
cmVhdGVTY3JpcHRhYmxlT2JqZWN0LWJlZm9yZS1zdGFydC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDggKzIsOCBAQAogPGhlYWQ+CiAgICAgPHRpdGxlPjwvdGl0bGU+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKICAgICA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpJbmRleDogTGF5b3V0
VGVzdHMvcGx1Z2lucy9kZXN0cm95LWR1cmluZy1ucHAtbmV3LW9iamVjdC13aXRoLWZhbGxiYWNr
LWNvbnRlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2Rlc3Ryb3kt
ZHVyaW5nLW5wcC1uZXctb2JqZWN0LXdpdGgtZmFsbGJhY2stY29udGVudC5odG1sCShyZXZpc2lv
biAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2Rlc3Ryb3ktZHVyaW5nLW5wcC1uZXct
b2JqZWN0LXdpdGgtZmFsbGJhY2stY29udGVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEw
ICsxLDEwIEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2lu
ZG93cygpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAg
ICB2YXIgbmV3V2luZG93ID0gd2luZG93Lm9wZW4oImRhdGE6dGV4dC9odG1sLEhlbGxvIHdvcmxk
ISIpCkBAIC0xNyw4ICsxNyw4IEBACiAKICAgICAgICAgZnVuY3Rpb24gZG9uZUlmQ2xvc2VkKCkg
ewogICAgICAgICAgICAgaWYgKHcuY2xvc2VkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0VGltZW91
dChkb25lSWZDbG9zZWQsIDEpOwpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9kZXN0cm95LWR1
cmluZy1ucHAtbmV3Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9kZXN0
cm95LWR1cmluZy1ucHAtbmV3Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3Rz
L3BsdWdpbnMvZGVzdHJveS1kdXJpbmctbnBwLW5ldy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDEwICsxLDEwIEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVu
V2luZG93cygpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAK
ICAgICB2YXIgbmV3V2luZG93ID0gd2luZG93Lm9wZW4oImRhdGE6dGV4dC9odG1sLEhlbGxvIHdv
cmxkISIpCkBAIC0xNyw4ICsxNyw4IEBACiAKICAgICAgICAgZnVuY3Rpb24gZG9uZUlmQ2xvc2Vk
KCkgewogICAgICAgICAgICAgaWYgKHcuY2xvc2VkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0VGlt
ZW91dChkb25lSWZDbG9zZWQsIDEpOwpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9kZXN0cm95
LW9uLXNldHdpbmRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvZGVz
dHJveS1vbi1zZXR3aW5kb3cuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cGx1Z2lucy9kZXN0cm95LW9uLXNldHdpbmRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDgg
KzYsOCBAQAogICAgIHZhciBwbHVnSW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGx1Zy1p
biIpOwogICAgIHZhciBjb3VudCA9IDA7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
IAogICAgIGZ1bmN0aW9uIGhhbmRsZVNldFdpbmRvdygpCiAgICAgewpJbmRleDogTGF5b3V0VGVz
dHMvcGx1Z2lucy9kZXN0cm95LXBsdWdpbi1mcm9tLWNhbGxiYWNrLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9kZXN0cm95LXBsdWdpbi1mcm9tLWNhbGxiYWNrLmh0bWwJ
KHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvZGVzdHJveS1wbHVnaW4t
ZnJvbS1jYWxsYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPGJvZHkg
b25sb2FkPSJ0ZXN0KCkiPgogPGVtYmVkIG5hbWU9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13
ZWJraXQtdGVzdC1uZXRzY2FwZSI+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogCiAgICAgZnVuY3Rpb24gZ2MoKQogICAgIHsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdp
bnMvZGVzdHJveS1yZWVudHJ5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lu
cy9kZXN0cm95LXJlZW50cnkuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cGx1Z2lucy9kZXN0cm95LXJlZW50cnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsOCArMTQs
OCBAQAogICAgICAgICB0YXJnZXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YXJnZXQpOwogICAg
IH0KIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgbG9jYXRpb24uaHJlZiA9ICJkYXRhOnRleHQvaHRtbCxUZXN0IGZvciBy
ZGFyOi8vcHJvYmxlbS82OTM3MDg5IFBBU1NFRC4iOwpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lu
cy9kZXN0cm95LXN0cmVhbS10d2ljZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
dWdpbnMvZGVzdHJveS1zdHJlYW0tdHdpY2UuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5
b3V0VGVzdHMvcGx1Z2lucy9kZXN0cm95LXN0cmVhbS10d2ljZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC01LDEyICs1LDEyIEBACiA8c2NyaXB0PgogZnVuY3Rpb24gbWFpbigpIAogewotICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikgewogICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBvbmx5IHJ1biBmcm9tIHdpdGhp
biBEdW1wUmVuZGVyVHJlZSBiZWNhdXNlIGl0IHJlcXVpcmVzIFRlc3ROZXRzY2FwZVBsdWdpbi5c
biIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogbWFp
bigpOwogCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIGRlYnVnKCJQ
QVNTOiBZb3UgZGlkbid0IGNyYXNoLlxuIik7CiAKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKIH0KIDwvc2NyaXB0PgogPGVtYmVkIGlkPSJwbHVnaW4iIApJbmRleDog
TGF5b3V0VGVzdHMvcGx1Z2lucy9kb2N1bWVudC1vcGVuLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGx1Z2lucy9kb2N1bWVudC1vcGVuLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysr
IExheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMSw5ICsxMSw5IEBACiAgICAgVGhpcyB0ZXN0cyB0aGF0IGRvY3VtZW50Lm9wZW4gaW52b2tl
ZCBieSBhIHBsdWdpbiB2aWEgTlBOX0ludm9rZSB3aXRob3V0IGEgamF2YXNjcmlwdCBjb250ZXh0
IHN1Y2NlZWRzLgogPC9kaXY+CiA8c2NyaXB0PgotICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlv
dXRUZXN0cy9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc2V0dGluZy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvZW1iZWQtYXR0cmlidXRlcy1zZXR0aW5nLmh0bWwJKHJl
dmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvZW1iZWQtYXR0cmlidXRlcy1z
ZXR0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAgdmFyIGVtYmVkOwog
CiBmdW5jdGlvbiB0ZXN0KCkgCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAg
ICAgIAogICAgIGVtYmVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VtYmVkJyk7CiAgICAg
cHJpbnQoIltFbWJlZCBpcyBlbGVtZW50IHNwZWNpZmllZCBpbiBtYXJrdXBdIik7CkluZGV4OiBM
YXlvdXRUZXN0cy9wbHVnaW5zL2VtYmVkLWluc2lkZS1vYmplY3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbHVnaW5zL2VtYmVkLWluc2lkZS1vYmplY3QuaHRtbAkocmV2aXNpb24g
MTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9lbWJlZC1pbnNpZGUtb2JqZWN0Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTYsMTQgKzYsMTQgQEAKICAgICAKICAgICBmdW5jdGlvbiBwbHVn
aW5DYWxsYmFjaygpIHsKICAgICAgICAgZGVidWcoJ1NVQ0NFU1MnKTsKLSAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICB2YXIgcGx1Z2luID0gZG9jdW1lbnQucGx1Z2luOwpJbmRleDogTGF5b3V0
VGVzdHMvcGx1Z2lucy9lbWJlZC1wcmVmZXJzLXBsdWdpbnMtZm9yLWltYWdlcy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvZW1iZWQtcHJlZmVycy1wbHVnaW5zLWZvci1p
bWFnZXMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9lbWJl
ZC1wcmVmZXJzLXBsdWdpbnMtZm9yLWltYWdlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcg
KzEsNyBAQAogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KQpAQCAtMTIsOCArMTIsOCBAQAogICAgICAgICBpZiAocGx1Z2luICYmIChwbHVnaW4udGVzdENh
bGxiYWNrIHx8IHBsdWdpbi5HZXRRdWlja1RpbWVWZXJzaW9uKSkKICAgICAgICAgICAgIGxvZ1N1
Y2Nlc3MoKTsKIAotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
ICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gbG9nU3VjY2VzcygpCkluZGV4OiBMYXlvdXRUZXN0
cy9wbHVnaW5zL2V2YWx1YXRlLWpzLWFmdGVyLXJlbW92aW5nLXBsdWdpbi1lbGVtZW50Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9ldmFsdWF0ZS1qcy1hZnRlci1yZW1v
dmluZy1wbHVnaW4tZWxlbWVudC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0
cy9wbHVnaW5zL2V2YWx1YXRlLWpzLWFmdGVyLXJlbW92aW5nLXBsdWdpbi1lbGVtZW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3Jp
cHQ+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIDwv
c2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2Zvcm0t
dmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2Zvcm0tdmFsdWUu
aHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9mb3JtLXZhbHVl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8L2Zvcm0+CiA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewpAQCAtMjUsNyArMjUsNyBAQCBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKCc/JykgCiAgICAgICAgIGxvZygnUEFTUzog
VGhlIGZvcm0gdmFsdWUgd2FzIHN1Y2Nlc3NmdWxseSBvYnRhaW5lZC4nKTsKICAgICBlbHNlCiAg
ICAgICAgIGxvZygnRkFJTDogQ291bGQgbm90IG9idGFpbiB0aGUgZm9ybSB2YWx1ZSBjb3JyZWN0
bHkuJyk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9u
dC1yZWxvYWQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9m
dWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwx
MyArOCwxMyBAQCBkdXJpbmcgdGhlIHRyYW5zaXRpb24gdG8gZnVsbHNjcmVlbi4KIDxlbWJlZCBp
ZD0icGxnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiBzcmM9ImRh
dGE6YXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSxhbGVydHdoZW5sb2FkZWQiPjwv
aWZyYW1lPgogCiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
IAogICAgIHZhciBwbHVnaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxnJyk7CiAgICAg
cGx1Z2luLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfSkKICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKCkgewogICAgICAgICBwbHVnaW4ud2Via2l0
UmVxdWVzdEZ1bGxTY3JlZW4oKTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LWVtcHR5
LXVybC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LWVtcHR5LXVy
bC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC1lbXB0
eS11cmwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxlbWJlZCBuYW1lPSJw
bGciIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiPjwvZW1iZWQ+CiA8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzgwOCI+YnVnIDc4MDg8YS8+LiBTaG91bGQgbm90IGZhaWwgd2l0aCBhbiBhc3NlcnRpb24u
PC9wPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAg
IHBsZy5nZXRVUkwoIiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGRvY3VtZW50LndyaXRlKCJD
YW5ub3QgcnVuIGludGVyYWN0aXZlbHkiKTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvZ2V0
LWZpbGUtdXJsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9nZXQtZmls
ZS11cmwuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9nZXQt
ZmlsZS11cmwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsOCArMTMsOCBAQCBmdW5jdGlvbiBD
aGVja0ZvckZpbmlzaGVkKCkgewogICBpZiAod2luZG93LnN1YmZyYW1lX2RvbmUgPT0gMSkgewog
ICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CiAgICAg
cmVzdWx0LmlubmVySFRNTCA9ICJTVUNDRVNTIjsKLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAo
dGVzdFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogICB9
IGVsc2UgewogICAgIHNldFRpbWVvdXQoQ2hlY2tGb3JGaW5pc2hlZCwgMTApOwpAQCAtMzAsOSAr
MzAsOSBAQCBmdW5jdGlvbiBydW50ZXN0KCkgewogICBzZXRUaW1lb3V0KENoZWNrRm9yRmluaXNo
ZWQsIDEwKTsKIH0KIAotaWYgKGxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworaWYgKHRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogcnVudGVzdCgpOwogPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC1qYXZhc2NyaXB0LXVybC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LWphdmFzY3JpcHQtdXJsLmh0bWwJKHJldmlz
aW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LWphdmFzY3JpcHQtdXJsLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTYgKzMsMTYgQEAKIDxlbWJlZCB0eXBlPSJhcHBsaWNh
dGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiBpZD0idGVzdFBsdWdpbiIgb25VUkxOb3RpZnk9
ImRvbmUoKSI+CiA8ZGl2IGlkPSJyZXN1bHQiPlRlc3RpbmcuLi48L2Rpdj4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiBmdW5jdGlvbiBkb25lKCkK
IHsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIlBB
U1MsIG5vIGFzc2VydGlvbiBmYWlsdXJlLiI7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiB9CiAKIHZhciB0ZXN0UGx1Z2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RQbHVn
aW4nKTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LXRhcmdldGVkLWphdmFzY3JpcHQt
dXJsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9nZXQtdGFyZ2V0ZWQt
amF2YXNjcmlwdC11cmwuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1
Z2lucy9nZXQtdGFyZ2V0ZWQtamF2YXNjcmlwdC11cmwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OSw5ICs5LDkgQEAKICAgICAgICAgdmFyIHJldHVyblZhbHVlUmVhc29uID0gLTE7CiAKICAgICAg
ICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgdmFyIHBs
dWdpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdlbWJlZCcpWzBdOwpAQCAtMzks
OCArMzksOCBAQAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGxvZygnU1VDQ0VT
UyAocmV0dXJuIHZhbHVlKTogTlBQX1VSTE5vdGlmeSB3YXMgbm90IGNhbGxlZCwgb3Igd2FzIGNh
bGxlZCB3aXRoIGEgcmVhc29uIG9mIE5QUkVTX0RPTkUnKTsKIAotICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIAog
ICAgICAgICBmdW5jdGlvbiBsb2cobXNnKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2dl
dC11cmwtbm90aWZ5LXdpdGgtdXJsLXRoYXQtZmFpbHMtdG8tbG9hZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LXVybC1ub3RpZnktd2l0aC11cmwtdGhhdC1mYWls
cy10by1sb2FkLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMv
Z2V0LXVybC1ub3RpZnktd2l0aC11cmwtdGhhdC1mYWlscy10by1sb2FkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTMgKzEsMTMgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0U3VjY2VlZGVk
KCkgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJUZXh0ID0g
J1NVQ0NFU1MnOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8Ym9keT4KSW5kZXg6IExh
eW91dFRlc3RzL3BsdWdpbnMvZ2V0LXVybC10aGF0LXRoZS1yZXNvdXJjZS1sb2FkLWRlbGVnYXRl
LXdpbGwtZGlzYWxsb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2dl
dC11cmwtdGhhdC10aGUtcmVzb3VyY2UtbG9hZC1kZWxlZ2F0ZS13aWxsLWRpc2FsbG93Lmh0bWwJ
KHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LXVybC10aGF0LXRo
ZS1yZXNvdXJjZS1sb2FkLWRlbGVnYXRlLXdpbGwtZGlzYWxsb3cuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMiw5ICsyLDkgQEAKIDxib2R5PgogPGVtYmVkIG5hbWU9InBsZyIgdHlwZT0iYXBwbGlj
YXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSI+PC9lbWJlZD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZERpc2FsbG93ZWRVUkwoJ2h0
dHA6Ly93d3cuYXBwbGUuY29tJyk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmFkZERpc2FsbG93ZWRVUkwoJ2h0
dHA6Ly93d3cuYXBwbGUuY29tJyk7CiAgICAgCiAgICAgcGxnLmdldFVSTCgiaHR0cDovL3d3dy5h
cHBsZS5jb20iLCAiY2FsbGJhY2siKTsKIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVn
aW5zL2dldC11cmwtd2l0aC1ibGFuay10YXJnZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0aC1ibGFuay10YXJnZXQuaHRtbAkocmV2aXNpb24gMTIw
NDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9nZXQtdXJsLXdpdGgtYmxhbmstdGFyZ2V0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDEyICsxMiwxMiBAQCBmdW5jdGlvbiBjYWxsYmFjayhy
ZXN1bHQpIHsKICAgICBlbHNlCiAgICAgICAgIGQuaW5uZXJIVE1MID0gIkZBSUxFRCAtIEV4cGVj
dGVkIGVycm9yIGNvZGUgMSBidXQgZ290IGVycm9yIGNvZGUgIiArIHJlc3VsdAogCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogfQogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIAogICAg
IHBsZy5nZXRVUkxOb3RpZnkoImh0dHA6Ly93d3cuYXBwbGUuY29tIiwgIl9ibGFuayIsICJjYWxs
YmFjayIpOwogfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LXVybC13aXRo
LWlmcmFtZS10YXJnZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2dl
dC11cmwtd2l0aC1pZnJhbWUtdGFyZ2V0Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91
dFRlc3RzL3BsdWdpbnMvZ2V0LXVybC13aXRoLWlmcmFtZS10YXJnZXQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTEsMTMgKzExLDEzIEBAIGZ1bmN0aW9uIGNhbGxiYWNrKHJlc3VsdCkgewogICAg
IGVsc2UKICAgICAgICAgZC5pbm5lckhUTUwgPSAiRkFJTEVEIC0gZ290IGVycm9yIGNvZGUgIiAr
IHJlc3VsdAogCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBydW50ZXN0KCkgewotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAg
ICAgICAgcGxnLmdldFVSTE5vdGlmeSgiZGF0YTosaGVsbG8gd29ybGQiLCAiZnJhbWUiLCAiY2Fs
bGJhY2siKTsKICAgICB9IGVsc2UgewogICAgICAgICBkb2N1bWVudC53cml0ZSgiQ2Fubm90IHJ1
biBpbnRlcmFjdGl2ZWx5Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0
aC1qYXZhc2NyaXB0LWRlc3Ryb3lpbmctcGx1Z2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGx1Z2lucy9nZXQtdXJsLXdpdGgtamF2YXNjcmlwdC1kZXN0cm95aW5nLXBsdWdpbi5o
dG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0
aC1qYXZhc2NyaXB0LWRlc3Ryb3lpbmctcGx1Z2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
MTMgKzQsMTMgQEAgZnVuY3Rpb24gcmVtb3ZlUGx1Z2luKCkgewogICAgIHBsdWdpbi5wYXJlbnRO
b2RlLnJlbW92ZUNoaWxkKHBsdWdpbik7CiAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpLmlubmVyVGV4dCA9ICdTVUNDRVNTJzsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKIH0KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIDwvc2Ny
aXB0PgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11cmwtd2l0aC1qYXZh
c2NyaXB0LXVybC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvZ2V0LXVy
bC13aXRoLWphdmFzY3JpcHQtdXJsLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRl
c3RzL3BsdWdpbnMvZ2V0LXVybC13aXRoLWphdmFzY3JpcHQtdXJsLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTMgKzEsMTMgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0U3VjY2VlZGVkKCkg
ewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJUZXh0ID0gJ1NV
Q0NFU1MnOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCi1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8Ym9keT4KSW5kZXg6IExheW91
dFRlc3RzL3BsdWdpbnMvZ2V0LXVzZXItYWdlbnQtd2l0aC1udWxsLW5wcC1mcm9tLW5wcC1uZXcu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2dldC11c2VyLWFnZW50LXdp
dGgtbnVsbC1ucHAtZnJvbS1ucHAtbmV3Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91
dFRlc3RzL3BsdWdpbnMvZ2V0LXVzZXItYWdlbnQtd2l0aC1udWxsLW5wcC1mcm9tLW5wcC1uZXcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxodG1sPgogPGhlYWQ+CiAgICAg
PHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMv
Z2V0dXJsLXJlcGxhY2UtcXVlcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVn
aW5zL2dldHVybC1yZXBsYWNlLXF1ZXJ5Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91
dFRlc3RzL3BsdWdpbnMvZ2V0dXJsLXJlcGxhY2UtcXVlcnkuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNCw5ICs0LDkgQEAKIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2Ij5idWcgNzY1NjxhLz46CiBRdWVyeSBzdHJpbmcgYWx3
YXlzIGFwcGVuZGVkIHRvIEZsYXNoIFVSTHMsIGluc3RlYWQgb2YgYmVpbmcgcmVwbGFjZWQ8L3A+
CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAgICAgdHJ5IHsKQEAgLTI0LDggKzI0LDggQEAg
UXVlcnkgc3RyaW5nIGFsd2F5cyBhcHBlbmRlZCB0byBGbGFzaCBVUgogICAgICAgICAgICAgICAg
IGRvY3VtZW50LndyaXRlKHF1ZXJ5ID09ICI/MiIgPyAKICAgICAgICAgICAgICAgICAgICAgIlNV
Q0NFU1MiIDogIkZBSUxVUkU6ICIgKyBxdWVyeSk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGNhdGNoIChleCkg
ewpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9nZXR1cmxub3RpZnktZHVyaW5nLWRvY3VtZW50
LXRlYXJkb3duLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9nZXR1cmxu
b3RpZnktZHVyaW5nLWRvY3VtZW50LXRlYXJkb3duLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysr
IExheW91dFRlc3RzL3BsdWdpbnMvZ2V0dXJsbm90aWZ5LWR1cmluZy1kb2N1bWVudC10ZWFyZG93
bi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0ICsxLDE0IEBACiA8aHRtbD4KICAgICA8aGVh
ZD4KICAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAg
YWxlcnQoJ3RoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gYnkgRHVtcFJlbmRlclRyZWUnKQogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwot
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FsbENsb3NlT25XZWJWaWV3cyhm
YWxzZSk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93
cygpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldENhbGxDbG9zZU9uV2ViVmlld3MoZmFsc2UpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoZmFsc2UpOwogICAgICAgICAg
ICAgd2luZG93Lm9wZW4oInJlc291cmNlcy9nZXR1cmxub3RpZnktb24tZGVzdHJveS5odG1sIik7
CiAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5z
L2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZpc2lv
biAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2Yt
cGx1Z2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8aHRtbD4KIDxoZWFk
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiAKIC8v
IFRoaXMgd2FzIHRoZSBvbmx5IHdheSB0aGF0IEkgd2FzIGFibGUgdG8gd2FpdCBsb25nIGVub3Vn
aApAQCAtMTksOCArMTksOCBAQCBmdW5jdGlvbiBsb2cobXNnKQogCiBmdW5jdGlvbiBib2R5TG9h
ZGVkKCkgewogICAgIGxvZygiUEFTU0VEIik7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvaWZyYW1l
LXNoaW1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9pZnJhbWUtc2hp
bXMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9pZnJhbWUt
c2hpbXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEwLDkgKzIxMCw5IEBACiAgICAgdmFyIG5l
eHRJZFRvQ2xpY2sgPSAwOwogCiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZG9OZXh0Q2xpY2ssIDApOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMjM5LDcgKzIzOSw3IEBACiAgICAgICAgICAgICBzZXRUaW1lb3V0KGRvTmV4dENs
aWNrLCAwKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAg
fSwgMCk7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2lubmVy
LWh0bWwtZGlzcGxheS1ub25lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lu
cy9pbm5lci1odG1sLWRpc3BsYXktbm9uZS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlv
dXRUZXN0cy9wbHVnaW5zL2lubmVyLWh0bWwtZGlzcGxheS1ub25lLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTcgKzEsMTcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgfQogCiAgICBmdW5j
dGlvbiBwcmludFJlc3VsdHMoKQogICAgewogICAgICAgYWxlcnQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInBsdWdpbiIpLnRlc3RDYWxsYmFjayk7CiAKLSAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgfQogCiAgICBmdW5jdGlvbiBzZXRQbHVnaW4oKQpJbmRleDogTGF5
b3V0VGVzdHMvcGx1Z2lucy9pbnN0YW5jZS1hdmFpbGFibGUtYmVmb3JlLXN0eWxlc2hlZXRzLWxv
YWRlZC1vYmplY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2luc3Rh
bmNlLWF2YWlsYWJsZS1iZWZvcmUtc3R5bGVzaGVldHMtbG9hZGVkLW9iamVjdC5odG1sCShyZXZp
c2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2luc3RhbmNlLWF2YWlsYWJsZS1i
ZWZvcmUtc3R5bGVzaGVldHMtbG9hZGVkLW9iamVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
LDggKzMsOCBAQAogPHAgaWQ9InJlc3VsdCI+CiA8L3A+CiA8c2NyaXB0PgotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdmFyIHBsdWdJbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwbHVnLWluIik7CiAKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvaW5zdGFuY2UtYXZh
aWxhYmxlLWJlZm9yZS1zdHlsZXNoZWV0cy1sb2FkZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbHVnaW5zL2luc3RhbmNlLWF2YWlsYWJsZS1iZWZvcmUtc3R5bGVzaGVldHMtbG9h
ZGVkLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvaW5zdGFu
Y2UtYXZhaWxhYmxlLWJlZm9yZS1zdHlsZXNoZWV0cy1sb2FkZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMyw4ICszLDggQEAKIDxwIGlkPSJyZXN1bHQiPgogPC9wPgogPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHZhciBwbHVnSW4gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGx1Zy1pbiIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2ludmFs
aWQtbWltZS13aXRoLXZhbGlkLWV4dGVuc2lvbi1zaG93cy1taXNzaW5nLXBsdWdpbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvaW52YWxpZC1taW1lLXdpdGgtdmFsaWQt
ZXh0ZW5zaW9uLXNob3dzLW1pc3NpbmctcGx1Z2luLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysr
IExheW91dFRlc3RzL3BsdWdpbnMvaW52YWxpZC1taW1lLXdpdGgtdmFsaWQtZXh0ZW5zaW9uLXNo
b3dzLW1pc3NpbmctcGx1Z2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8
c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBsb2dGYWlsdXJlKCkgewpAQCAtOSw4
ICs5LDggQEAKICAgICB9CiAKICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxk
aXYgaWQ9ImNvbnNvbGUiPlBBU1M8L2Rpdj4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvanMt
ZnJvbS1kZXN0cm95Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9qcy1m
cm9tLWRlc3Ryb3kuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lu
cy9qcy1mcm9tLWRlc3Ryb3kuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDxo
dG1sPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0
b3JFbmFibGVkKHRydWUpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVz
dFJ1bm5lci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gcnVudGVz
dCgpCkBAIC0xMiw4ICsxMiw4IEBAIGZ1bmN0aW9uIHJ1bnRlc3QoKQogCiAgICAgbG9jYXRpb24g
PSAiZGF0YTp0ZXh0L2h0bWwsUEFTUyBpZiBkaWRuJ3QgY3Jhc2guIiArCiAgICAgICAgICI8c2Ny
aXB0PiIgKyAKLSAgICAgICAgImlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIiArCi0g
ICAgICAgICIgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7IiArCisgICAgICAg
ICJpZiAod2luZG93LnRlc3RSdW5uZXIpIiArCisgICAgICAgICIgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsiICsKICAgICAgICAgIjwvc2NyIiArICJpcHQ+IjsKIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvcGx1Z2lucy9rZXlib2FyZC1ldmVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbHVnaW5zL2tleWJvYXJkLWV2ZW50cy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBM
YXlvdXRUZXN0cy9wbHVnaW5zL2tleWJvYXJkLWV2ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC03LDEwICs3LDEwIEBACiAgICAgcGxnLndpbmRvd2VkUGx1Z2luID0gZmFsc2U7CiAgICAgcGxn
LmV2ZW50TG9nZ2luZ0VuYWJsZWQgPSB0cnVlOwogCi0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRv
Y3VtZW50LndyaXRlKCJUaGlzIHRlc3QgZG9lcyBub3Qgd29yayBpbiBtYW51YWwgbW9kZS4iKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgICAgIC8vIFNlbmQgYSBt
b3VzZS1jbGljayBldmVudCB0byBzZXQgdGhlIGlucHV0IGZvY3VzIHRvIHRoZSB0ZXN0IHBsdWct
aW4uCiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDAsMCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbHVnaW5zL2xheW91dC1pbi1iZWZvcmVsb2FkLWxpc3RlbmVyLWFmZmVjdHMtcGx1Z2lu
LWxvYWRpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2xheW91dC1p
bi1iZWZvcmVsb2FkLWxpc3RlbmVyLWFmZmVjdHMtcGx1Z2luLWxvYWRpbmcuaHRtbAkocmV2aXNp
b24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9sYXlvdXQtaW4tYmVmb3JlbG9hZC1s
aXN0ZW5lci1hZmZlY3RzLXBsdWdpbi1sb2FkaW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
OSArMiw5IEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB3aW5kb3cuX2JlZm9yZWxv
YWRSZWNlaXZlZEZvckVtYmVkID0gZmFsc2U7CkBAIC0yNSw4ICsyNSw4IEBACiAgICAgICAgICAg
ICAvLyA8ZW1iZWQ+J3MgYmVmb3JlbG9hZCBldmVudCBmaXJlZC4KICAgICAgICAgICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKF9i
ZWZvcmVsb2FkUmVjZWl2ZWRGb3JFbWJlZCA/ICJQQVNTIiA6ICJGQUlMIik7Ci0gICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgICAgICAgICB9LCAwKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9taXNzaW5nLXBsdWdpbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvbWlzc2luZy1wbHVnaW4uaHRtbAkocmV2aXNpb24gMTIw
NDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9taXNzaW5nLXBsdWdpbi5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDggKzEsOCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvcGx1Z2lucy9tb3VzZS1jbGljay1pZnJhbWUtdG8tcGx1Z2luLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9tb3VzZS1jbGljay1pZnJhbWUtdG8tcGx1
Z2luLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbW91c2Ut
Y2xpY2staWZyYW1lLXRvLXBsdWdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBA
QCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHZhciB0ZXh0YXJlYSA9IGZyYW1lRG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RleHRhcmVhJyk7CiAgICAgdGV4dGFyZWEuZm9jdXMoKTsKIAotICAg
IGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAiQ2xpY2sgb24gdGhlIHBs
dWdpbiAodGhlIGJsdWUgcmVjdGFuZ2xlKTsgaWYgdGhlIHRleHQgZmllbGQgdHVybnMgZ3JlZW4g
dGhlIHRlc3QgaGFzIHBhc3NlZCwgb3RoZXJ3aXNlIGl0IGhhcyBmYWlsZWQuIjsKICAgICB9IGVs
c2UgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg2MCwgNjApOwpAQCAtMTcsNyAr
MTcsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgICAgICBpZiAoZnJhbWVEb2N1bWVudC5h
Y3RpdmVFbGVtZW50ICE9IHRleHRhcmVhKSB7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ291dHB1dCcpLnRleHRDb250ZW50ID0gIlBBU1NFRCI7CiAgICAgICAgIH0KLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICB9CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3Bs
dWdpbnMvbW91c2UtY2xpY2stcGx1Z2luLWNsZWFycy1zZWxlY3Rpb24uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL21vdXNlLWNsaWNrLXBsdWdpbi1jbGVhcnMtc2VsZWN0
aW9uLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbW91c2Ut
Y2xpY2stcGx1Z2luLWNsZWFycy1zZWxlY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3
ICs3LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTsK
ICAgICBpbnB1dEVsZW1lbnQuc2VsZWN0KCk7CiAKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgb3V0
cHV0LnRleHRDb250ZW50ID0gIlRlc3QgdGhhdCBjbGlja2luZyBvbiBhIHBsdWdpbiBjbGVhcnMg
dGhlIHNlbGVjdGlvbiBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudC4gQ2xpY2sgb24g
dGhlIHBsdWdpbjsgdGhlIHRleHQgaW4gdGhlIGlucHV0IGNvbnRyb2wgc2hvdWxkIG5vIGxvbmdl
ciBiZSBoaWdobGlnaHRlZC4gVGhlIHJlbmRlcnRyZWUgZm9yIHRoaXMgdGVzdCBzaG91bGQgbm90
IGNvbnRhaW4gYW55IHNlbGVjdGlvbiBpbmZvcm1hdGlvbi4gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDM1NSI7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oNjAsIDYwKTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMv
bW91c2UtZXZlbnRzLWZpeGVkcG9zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1
Z2lucy9tb3VzZS1ldmVudHMtZml4ZWRwb3MuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5
b3V0VGVzdHMvcGx1Z2lucy9tb3VzZS1ldmVudHMtZml4ZWRwb3MuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjQsMTIgKzI0LDEyIEBACiAgIHsKICAgICB3aW5kb3cuc2Nyb2xsQnkoNTAsIDUwKTsK
IAotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKCF3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJUaGlzIHRlc3QgZG9lcyBub3Qgd29yayBpbiBtYW51YWwgbW9k
ZS4iKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBwbGcu
d2luZG93ZWRQbHVnaW4gPSBmYWxzZTsKICAgICBwbGcuZXZlbnRMb2dnaW5nRW5hYmxlZCA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL21vdXNlLWV2ZW50cy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvbW91c2UtZXZlbnRzLmh0bWwJKHJldmlzaW9uIDEy
MDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbW91c2UtZXZlbnRzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTgsMTAgKzgsMTAgQEAgRmxhc2ggY2xpY2tzL2ludGVyYWN0aXZpdHkgbm90IHdv
cmtpbmcgcAogICAgIHBsZy53aW5kb3dlZFBsdWdpbiA9IGZhbHNlOwogICAgIHBsZy5ldmVudExv
Z2dpbmdFbmFibGVkID0gdHJ1ZTsKIAotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC53
cml0ZSgiVGhpcyB0ZXN0IGRvZXMgbm90IHdvcmsgaW4gbWFudWFsIG1vZGUuIik7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgCiAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDAsMCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwLDIw
KTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbW91c2UtbW92ZS1vdmVyLXBsdWdpbi1pbi1m
cmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvbW91c2UtbW92ZS1v
dmVyLXBsdWdpbi1pbi1mcmFtZS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0
cy9wbHVnaW5zL21vdXNlLW1vdmUtb3Zlci1wbHVnaW4taW4tZnJhbWUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNCwxMCArNCwxMCBAQAogPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3OTU2Ij5idWcgNDc5NTY8L2E+OgogQ3Jhc2gg
d2hlbiBtb3VzZSBpcyBvdmVyIHBsdWdpbiBpbnNpZGUgYSBmcmFtZS48L3A+CiA8c2NyaXB0Pgot
ICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhpcyB0ZXN0IGRvZXMgbm90
IHdvcmsgaW4gbWFudWFsIG1vZGUuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsMTApOwogICAgIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvcGx1Z2lucy9tdWx0aXBsZS1wbHVnaW5zLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9tdWx0aXBsZS1wbHVnaW5zLmh0bWwJKHJldmlzaW9uIDEy
MDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbXVsdGlwbGUtcGx1Z2lucy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMiw4ICsxMiw4IEBACiAgIH0KIAogICBmdW5jdGlvbiBydW50ZXN0KCkg
ewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBkb0dDKCk7CiAKSW5kZXg6IExheW91
dFRlc3RzL3BsdWdpbnMvbmVzdGVkLXBsdWdpbi1vYmplY3RzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGx1Z2lucy9uZXN0ZWQtcGx1Z2luLW9iamVjdHMuaHRtbAkocmV2aXNpb24g
MTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXN0ZWQtcGx1Z2luLW9iamVjdHMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtOSw4ICs5LDggQEAgZnVuY3Rpb24gbnBhcGlDYWxsYmFjayh4
KSB7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogCiAgICAgdmFyIHN1Y2Nlc3NDb3VudCA9IDA7CiAgICAgdmFyIHBsdWdpbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0UGx1Z2luIik7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5z
L25ldHNjYXBlLWRlc3Ryb3ktcGx1Z2luLXNjcmlwdC1vYmplY3RzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1kZXN0cm95LXBsdWdpbi1zY3JpcHQtb2Jq
ZWN0cy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNj
YXBlLWRlc3Ryb3ktcGx1Z2luLXNjcmlwdC1vYmplY3RzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIsOCArMiw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIAogICAgIHZhciBzdWNjZXNzQ291bnQgPSAwOwog
ICAgIHZhciBwbHVnaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFBsdWdpbiIpOwpJ
bmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1kb20tYWNjZXNzLWFuZC1yZWxvYWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLWRvbS1hY2Nl
c3MtYW5kLXJlbG9hZC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVn
aW5zL25ldHNjYXBlLWRvbS1hY2Nlc3MtYW5kLXJlbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNiwxMiArMTYsMTIgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgICAgICB3aW5kb3cu
c2Vzc2lvblN0b3JhZ2UubmV0c2NhcGVEb21BY2Nlc3NBbmRSZWxvYWRIYXNSZWxvYWRlZCA9IDE7
CiAgICAgfQogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgaWYgKGNh
bGxSZWxvYWQpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHdpbmRvdy5HQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwpAQCAtMzcsOSArMzcsOSBAQCBmdW5jdGlv
biBydW5UZXN0KCkKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJGQUlMRUQ7IFRoaXMgdGVzdCBpcyBv
bmx5IHZhbGlkIGluIER1bXBSZW5kZXJUcmVlLCBhbmQgb25seSB3aGVuIHRoZSBJbnNwZWN0b3Ig
aXMgZW5hYmxlZC4iOwogICAgICAgICB9Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9
CiAgICAgfQogfQpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tbWFw
LWRhdGEtdG8tc3JjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRz
Y2FwZS1wbHVnaW4tbWFwLWRhdGEtdG8tc3JjLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExh
eW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLW1hcC1kYXRhLXRvLXNyYy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIDxib2R5IHN0eWxlPSJtYXJn
aW46MHB4O292ZXJmbG93OmhpZGRlbiI+CiA8b2JqZWN0IG5hbWU9InRlc3RQbHVnaW4iIHR5cGU9
ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIGxvZ1NyYz0idHJ1ZSIgZGF0YT0i
YmxhaCI+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1wYWdlLWNh
Y2hlLXdvcmtzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2Fw
ZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlv
dXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1wYWdlLWNhY2hlLXdvcmtzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIDxodG1sPgogPHNjcmlwdD4KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VD
YWNoZVByZWZlcmVuY2VLZXkiLCAxKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2luc1ByZWZlcmVuY2VLZXki
LCAxKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOwor
ICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRQYWdlQ2FjaGVTdXBwb3J0
c1BsdWdpbnNQcmVmZXJlbmNlS2V5IiwgMSk7CiB9CiAKIHZhciBzYXZlZFRlc3RPYmplY3QgPSBu
dWxsOwpAQCAtMzcsOCArMzcsOCBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICBpZiAoIWhhc0hp
ZGRlbikKICAgICAgICAgc2V0VGltZW91dCgid2luZG93LmxvY2F0aW9uLmhyZWYgPSAncmVzb3Vy
Y2VzL2dvLWJhY2suaHRtbCciLCAwKTsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogICAgIAogfQpJbmRleDogTGF5b3V0VGVz
dHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcHJvcGVydHktYWNjZXNzLWV4Y2VwdGlvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXByb3Bl
cnR5LWFjY2Vzcy1leGNlcHRpb24uaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVz
dHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcHJvcGVydHktYWNjZXNzLWV4Y2VwdGlvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw4ICsxMCw4IEBAIGdldHRpbmcgaXQgaW4gdGhlIHNlY29u
ZmQgb25lKS48L2VtPgogPGRpdiBpZD0iZ2V0dGVyMyI+Tm8gZXhjZXB0aW9uIGNhdWdodCBvbiBn
ZXR0aW5nIHZpYSB0ZXN0R2V0QnJvd3NlclByb3BlcnR5LjwvZGl2PgogPGRpdiBpZD0ic2V0dGVy
MyI+Tm8gZXhjZXB0aW9uIGNhdWdodCBvbiBzZXR0aW5nIHZpYSB0ZXN0U2V0QnJvd3NlclByb3Bl
cnR5LjwvZGl2PgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAg
IHZhciBwbGcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgicGxnIilbMF07CiAKSW5kZXg6
IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXNldHdpbmRvdy1zaXplLTIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1zZXR3
aW5kb3ctc2l6ZS0yLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdp
bnMvbmV0c2NhcGUtcGx1Z2luLXNldHdpbmRvdy1zaXplLTIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw5ICsxLDkgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleShm
YWxzZSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFdpbmRvd0lzS2V5KGZhbHNlKTsK
ICAgICB9CiAgICAgCiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2Nh
cGUtcGx1Z2luLXNldHdpbmRvdy1zaXplLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tc2V0d2luZG93LXNpemUuaHRtbAkocmV2aXNpb24gMTIw
NDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tc2V0d2luZG93LXNp
emUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sPgogPGhlYWQ+CiA8
c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogPC9zY3JpcHQ+CiA8Ym9keSBz
dHlsZT0ibWFyZ2luOjBweDtvdmVyZmxvdzpoaWRkZW4iPgogPGVtYmVkIGlkPSJ0ZXN0UGx1Z2lu
IiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiBsb2dmaXJzdHNldHdp
bmRvdz0idHJ1ZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMjAwIj48L2VtYmVkPgpJbmRleDogTGF5
b3V0VGVzdHMvcGx1Z2lucy9uby1taW1lLXdpdGgtdmFsaWQtZXh0ZW5zaW9uLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uby1taW1lLXdpdGgtdmFsaWQtZXh0ZW5zaW9u
Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbm8tbWltZS13
aXRoLXZhbGlkLWV4dGVuc2lvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAog
PHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgfQogPC9zY3JpcHQ+CiA8cD4KQEAgLTE0LDYgKzE0LDYgQEAgYXR0
cmlidXRlLgogPCEtLSBFbWJlZCB0YWcgd2l0aCBtaXNzaW5nIHR5cGU9IiIgcGFyYW1ldGVyIC0t
PgogPGVtYmVkIGlkPSJwbHVnaW4iIG5hbWU9InBsdWdpbiIgc3JjPSJyZXNvdXJjZXMvdGVzdC50
ZXN0bmV0c2NhcGUiIGxvZ1NyYz0iMSI+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wb2JqZWN0LWpz
LXdyYXBwZXItZGVzdHJveWVkLWFmdGVyLXBsdWdpbi11bmxvYWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbHVnaW5zL25wb2JqZWN0LWpzLXdyYXBwZXItZGVzdHJveWVkLWFmdGVy
LXBsdWdpbi11bmxvYWQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1
Z2lucy9ucG9iamVjdC1qcy13cmFwcGVyLWRlc3Ryb3llZC1hZnRlci1wbHVnaW4tdW5sb2FkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsOSArMyw5IEBACiA8aGVhZD4KICAgICA8c2NyaXB0Pgog
ICAgICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAv
LyBBY2Nlc3MgYWxsIG9iamVjdHMvcHJvcGVydGllcyB0aGF0IHdlJ3JlIGdvaW5nIHRvIHVzZSBs
YXRlciBpbiB0aGUgdGVzdCBzbyB0aGF0IEpTCkBAIC0zNyw4ICszNyw4IEBACiAKICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1BB
U1NFRCcpKTsKIAotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIAogICAgICAgICBhZGRFdmVudExpc3RlbmVyKCds
b2FkJywgc3RhcnRUZXN0LCBmYWxzZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcC1z
ZXQtd2luZG93LWNhbGxlZC1kdXJpbmctZGVzdHJ1Y3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbHVnaW5zL25wcC1zZXQtd2luZG93LWNhbGxlZC1kdXJpbmctZGVzdHJ1Y3Rp
b24uaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHAtc2V0
LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTYsOCArNiw4IEBACiAgICAgPGVtYmVkIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qt
bmV0c2NhcGUiIHRlc3Q9Im5wcC1zZXQtd2luZG93LWNhbGxlZC1kdXJpbmctZGVzdHJ1Y3Rpb24i
PjwvZW1iZWQ+CiAgICAgPHA+VGhpcyB0ZXN0cyB3aGV0aGVyIGEgTlBQX1NldFdpbmRvdyBpcyBj
YWxsZWQgZHVyaW5nIHBsdWdpbiBkZXN0cnVjdGlvbi48L3A+CiAgICAgPHNjcmlwdD4KLSAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHZhciBlbWJl
ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpWzBdOwogICAgICAgICBl
bWJlZC5zZXRXaWxsQmVEZXN0cm95ZWQoKTsKICAgICAgICAgZW1iZWQucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChlbWJlZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL251bGwtbnBwLWdldHZh
bHVlLXBvaW50ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL251bGwt
bnBwLWdldHZhbHVlLXBvaW50ZXIuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVz
dHMvcGx1Z2lucy9udWxsLW5wcC1nZXR2YWx1ZS1wb2ludGVyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTgsOCArOCw4IEBACiAgICAgVGhpcyB0ZXN0cyB0aGF0IHdlIGRvbid0IGNyYXNoIHdoZW4g
dGhlIHBsdWdpbiBwYXNzZXMgMCBmb3IgaXRzIE5QUF9HZXRWYWx1ZSBwb2ludGVyLgogPC9kaXY+
CiA8c2NyaXB0PgotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9vYmplY3QtZW1iZWQtcGx1Z2luLXNjcmlw
dGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvb2JqZWN0LWVtYmVk
LXBsdWdpbi1zY3JpcHRpbmcuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cGx1Z2lucy9vYmplY3QtZW1iZWQtcGx1Z2luLXNjcmlwdGluZy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMCw4ICsxMCw4IEBAIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UpCiAKIGZ1bmN0aW9uIHRl
c3QoKSAKIHsgCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIH0KIAogICAg
IHByaW50KCJwbHVnaW4gPG9iamVjdD4gd2l0aCBuZXN0ZWQgcGx1Z2luIDxlbWJlZD46IHNob3Vs
ZCBoYXZlIGEgcGx1Z2luIGFuZCBkb2VzICIgKyAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215
TycpLnRlc3RDYWxsYmFjayA/ICIiIDogIm5vdCIpKTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdp
bnMvb2JqZWN0LW9uZm9jdXMtbXV0YXRpb24tY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbHVnaW5zL29iamVjdC1vbmZvY3VzLW11dGF0aW9uLWNyYXNoLmh0bWwJKHJldmlz
aW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvb2JqZWN0LW9uZm9jdXMtbXV0YXRp
b24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxNCArMiwxNCBAQAogPGh0bWw+CiA8
Ym9keT4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQog
CiBmdW5jdGlvbiBmaW5pc2goKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAK
IGZ1bmN0aW9uIGNyYXNoKCkgewpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9vcGVuLWFuZC1j
bG9zZS13aW5kb3ctd2l0aC1wbHVnaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bHVnaW5zL29wZW4tYW5kLWNsb3NlLXdpbmRvdy13aXRoLXBsdWdpbi5odG1sCShyZXZpc2lvbiAx
MjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL29wZW4tYW5kLWNsb3NlLXdpbmRvdy13aXRo
LXBsdWdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACiA8aHRtbD4KIDxz
Y3JpcHQ+Ci1pZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgIGFsZXJ0KCd0aGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGJ5IER1
bXBSZW5kZXJUcmVlJykKIH0gZWxzZSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYWxsQ2xvc2VPbldlYlZpZXdzKGZhbHNlKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShmYWxzZSk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5zZXRDYWxsQ2xvc2VPbldlYlZpZXdzKGZhbHNlKTsKKyAgICB0
ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJl
bWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoZmFsc2UpOwogICAgIHdpbmRvdy5vcGVuKCdyZXNv
dXJjZXMvb3Blbi1hbmQtY2xvc2Utd2luZG93LXdpdGgtcGx1Z2luLmh0bWwnKTsKIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhvZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvb3ZlcnJpZGUtbm9kZS1tZXRob2QuaHRtbAkocmV2
aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9vdmVycmlkZS1ub2RlLW1ldGhv
ZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDggKzUsOCBAQAogaXMgaW5zdGFudGlhdGVkIHdo
ZW4gYWNjZXNzaW5nIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgaXRzIG93bmVyIGVsZW1lbnQu
PC9wPgogPHA+U2hvdWxkIGFsZXJ0IFBBU1MuPC9wPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIAogICAgIGZ1bmN0aW9uIHBsdWdpbkNhbGxiYWNrKCkgeyBhbGVydCgi
UEFTUyIpIH0KIApJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9wYXNzLWRpZmZlcmVudC1ucHAt
c3RydWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9wYXNzLWRpZmZl
cmVudC1ucHAtc3RydWN0Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3Bs
dWdpbnMvcGFzcy1kaWZmZXJlbnQtbnBwLXN0cnVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MSw4ICsxMSw4IEBACiAgICAgVGhpcyB0ZXN0cyB0aGF0IG5vIGFzc2VydGlvbnMgZmlyZSB3aGVu
IGEgcGx1Z2luIHBhc3NlcyBhIGRpZmZlcmVudCBOUFAgc3RydWN0IHRvIG9uZSBvZiB0aGUgTlBO
KiBmdW5jdGlvbnMgKHNwZWNpZmljYWxseSwgTlBOX0dldFZhbHVlKS4KIDwvZGl2PgogPHNjcmlw
dD4KLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWJhY2stZm9yd2FyZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWJhY2st
Zm9yd2FyZC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL3Bs
dWdpbi1kb2N1bWVudC1iYWNrLWZvcndhcmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsx
LDggQEAKIDxodG1sPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiB9CiAKIHN0YXRlID0gImluaXRpYWwiOwpAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBu
ZXh0KCkgewogICAgICAgICBicmVhazsKICAgICBjYXNlICJtb3ZpbmctZm9yd2FyZCI6CiAgICAg
ICAgIHN0YXRlID0gImRvbmUiOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICBicmVhazsK
ICAgICBkZWZhdWx0OgogICAgICAgICBhbGVydCgnRkFJTCcpOwpJbmRleDogTGF5b3V0VGVzdHMv
cGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtbG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWxvYWQtcHJl
dmVudGVkLXVzZXJzY3JpcHQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtbG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAogPGh0bWw+DQogPGhlYWQ+DQogICAgIDxzY3Jp
cHQ+DQotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7DQotICAgICAg
ICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCi0gICAgICAg
ICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcignYmVmb3JlbG9hZCcsIGZ1bmN0aW9uKGV2ZW50KSB7IGlmIChldmVu
dC51cmwuaW5kZXhPZignc3dmJykgPj0gMCkgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfSwgdHJ1
ZSk7IiwgdHJ1ZSwgdHJ1ZSk7DQorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsNCisg
ICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQorICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIuYWRkVXNlclNjcmlwdCgiZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cignYmVmb3JlbG9hZCcsIGZ1bmN0aW9uKGV2ZW50KSB7IGlmIChldmVudC51cmwuaW5kZXhPZign
c3dmJykgPj0gMCkgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfSwgdHJ1ZSk7IiwgdHJ1ZSwgdHJ1
ZSk7DQogICAgICAgICB9DQogICAgIDwvc2NyaXB0Pg0KIDwvaGVhZD4NCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbHVnaW5zL3BsdWdpbi1kb2N1bWVudC13aWxsU2VuZFJlcXVlc3QtbnVsbC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LXdpbGxTZW5k
UmVxdWVzdC1udWxsLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdp
bnMvcGx1Z2luLWRvY3VtZW50LXdpbGxTZW5kUmVxdWVzdC1udWxsLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsOSArMSw5IEBACiA8aHRtbD4NCiA8aGVhZD4NCiAgICAgPHNjcmlwdD4gICAgICAg
IA0KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KLSAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCi0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCh0cnVlKTsNCisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgew0KKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOw0KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2lsbFNlbmRSZXF1ZXN0
UmV0dXJuc051bGwodHJ1ZSk7DQogICAgICAgICB9DQogICAgIDwvc2NyaXB0Pg0KIDwvaGVhZD4N
CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1pbml0aWF0ZS1wb3B1cC13aW5kb3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1pbml0aWF0ZS1w
b3B1cC13aW5kb3cuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lu
cy9wbHVnaW4taW5pdGlhdGUtcG9wdXAtd2luZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MjAgKzEsMjAgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKHRydWUpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVl
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVu
bmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5n
RW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1do
ZW5Db21wbGV0ZSh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAog
ZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICByZXR1cm47CiAgICAgLy8gUmVj
b3JkIGN1cnJlbnQgd2luZG93IGNvdW50LgotICAgIHdpbmRvdy53aW5kb3dDb3VudCA9IHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci53aW5kb3dDb3VudCgpOwotICAgIGNvbnNvbGUubG9nKCJ3
aW5kb3cgY291bnQ6ICIgKyB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2luZG93Q291bnQo
KSk7CisgICAgd2luZG93LndpbmRvd0NvdW50ID0gd2luZG93LnRlc3RSdW5uZXIud2luZG93Q291
bnQoKTsKKyAgICBjb25zb2xlLmxvZygid2luZG93IGNvdW50OiAiICsgd2luZG93LnRlc3RSdW5u
ZXIud2luZG93Q291bnQoKSk7CiAgICAgLy8gU2VuZCBhIG1vdXNlLWNsaWNrIGV2ZW50IHRvIHNl
dCB0aGUgaW5wdXQgZm9jdXMgdG8gdGhlIHRlc3QgcGx1Zy1pbi4KICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbygwLCAwKTsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyMCwgMjApOwpA
QCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBwb3B1cF9ieV9tb3VzZWRvd24oKSB7CiAgICAgLy8g
T3BlbiBhIG5ldyB3aW5kb3cuCiAgICAgd2luZG93Lm9wZW4oImRhdGE6dGV4dC9odG1sXCwgb3Bl
biBuZXcgd2luZG93IGJ5IG1vdXNlIGRvd24iLCAiX2JsYW5rIik7CiAgICAgLy8gQ2hlY2sgdGhl
IG5ldyBvcGVuZWQgd2luZG93IGFuZCBsb2dnaW5nIHRoZSByZXN1bHQuCi0gICAgY29uc29sZS5s
b2coIndpbmRvdyBjb3VudDogIiArIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53aW5kb3dD
b3VudCgpKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndpbmRvd0NvdW50
KCkgPT0gKHdpbmRvdy53aW5kb3dDb3VudCArIDEpKSB7CisgICAgY29uc29sZS5sb2coIndpbmRv
dyBjb3VudDogIiArIHdpbmRvdy50ZXN0UnVubmVyLndpbmRvd0NvdW50KCkpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lci53aW5kb3dDb3VudCgpID09ICh3aW5kb3cud2luZG93Q291bnQgKyAx
KSkgewogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW91c2Vkb3duX291dHB1dCIp
LmlubmVySFRNTCA9ICJQQVNTRUQiOwogICAgICAgICB3aW5kb3cud2luZG93Q291bnQrKzsKICAg
ICB9CkBAIC00OSw4ICs0OSw4IEBAIGZ1bmN0aW9uIHBvcHVwX2J5X2tleWRvd24oKSB7CiAgICAg
Ly8gT3BlbiBhIG5ldyB3aW5kb3cuCiAgICAgd2luZG93Lm9wZW4oImRhdGE6dGV4dC9odG1sXCwg
b3BlbiBuZXcgd2luZG93IGJ5IGtleSBkb3duIiwgIl9ibGFuayIpOwogICAgIC8vIENoZWNrIHRo
ZSBuZXcgb3BlbmVkIHdpbmRvdyBhbmQgbG9nZ2luZyB0aGUgcmVzdWx0LgotICAgIGNvbnNvbGUu
bG9nKCJ3aW5kb3cgY291bnQ6ICIgKyB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2luZG93
Q291bnQoKSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53aW5kb3dDb3Vu
dCgpID09ICh3aW5kb3cud2luZG93Q291bnQgKyAxKSkKKyAgICBjb25zb2xlLmxvZygid2luZG93
IGNvdW50OiAiICsgd2luZG93LnRlc3RSdW5uZXIud2luZG93Q291bnQoKSk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyLndpbmRvd0NvdW50KCkgPT0gKHdpbmRvdy53aW5kb3dDb3VudCArIDEp
KQogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgia2V5ZG93bl9vdXRwdXQiKS5pbm5l
ckhUTUwgPSAiUEFTU0VEIjsKICAgICAvLyBXYWl0IGZvciBwbHVnaW4gc3RvcHBpbmcgYW5kIGVu
ZGluZyB0aGlzIHRlc3QuCiAgICAgc2V0VGltZW91dChlbmRfdGVzdCwgMTAwKTsKQEAgLTYwLDcg
KzYwLDcgQEAgZnVuY3Rpb24gZW5kX3Rlc3QoKSB7CiAgICAgLy8gQ2hhbmdlIGZvY3VzIGJhY2sg
dG8gd2luZG93IHRvIHN0b3AgdGhlIHBsdWdpbiBldmVudCBsb2dnaW5nLgogICAgIHdpbmRvdy5m
b2N1cygpOwogICAgIC8vIENsb3NlIHRoZSB0ZXN0LgotICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkge2xheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTt9LCAxKTsKKyAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHt0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTt9LCAxKTsKIH0KIDwvc2Ny
aXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9wbHVnaW4tamF2YXNjcmlw
dC1hY2Nlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1q
YXZhc2NyaXB0LWFjY2Vzcy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9w
bHVnaW5zL3BsdWdpbi1qYXZhc2NyaXB0LWFjY2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01
LDggKzUsOCBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gt
amF2YXNjcmlwdCI+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpCiAKIG5hdmlnYXRvci5wbHVnaW5zLnJlZnJlc2goZmFs
c2UpOyAvLyBTdXBwb3NlZGx5IGhlbHBzIGlmIG5ldyBwbHVnLWlucyB3ZXJlIGFkZGVkLgogCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1yZW1vdmUtc3ViZnJhbWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1yZW1vdmUtc3ViZnJhbWUuaHRt
bAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9wbHVnaW4tcmVtb3Zl
LXN1YmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDEyICsxOCwxMiBAQCBmdW5jdGlv
biB0ZXN0KCkgewogfQogCiBmdW5jdGlvbiBkb25lKCkgewotICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQog
PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsgc2V0VGltZW91dCh0ZXN0LCAxMCkiPgorPGJvZHkgb25sb2FkPSJ0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsgc2V0VGltZW91dCh0ZXN0LCAxMCkiPgogPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0Mzci
PmJ1ZyAxNDQzNzwvYT46CiBSVMOJIHZpZGVvIGNyYXNoZXMgU2FmYXJpLjwvcD4KIDxwPk9ubHkg
d29ya3Mgd2l0aCBEdW1wUmVuZGVyVHJlZS48L3A+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5z
L3ByaXZhdGUtYnJvd3NpbmctbW9kZS0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGx1Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1vZGUtMi5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisr
KyBMYXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS0yLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTcsNyArNyw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpIAog
ewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKCF3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBvbmx5IHJ1biBm
cm9tIHdpdGhpbiBEdW1wUmVuZGVyVHJlZSBiZWNhdXNlIGl0IHJlcXVpcmVzIFRlc3ROZXRzY2Fw
ZVBsdWdpbi5cbiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjAsNyArMjAsNyBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgCiAgICAgc2hvdWxkQmUoInBsdWdpbjEucHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCIsICJmYWxzZSIpOwogCiAgICAgLy8gTm93IGVuYWJsZSBwcml2YXRlIGJyb3dzaW5n
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVl
KTsKKyAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAKICAg
ICBzaG91bGRCZSgicGx1Z2luMS5wcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgInRydWUiKTsKICAg
ICAKQEAgLTMwLDcgKzMwLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIAogICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQocGx1Z2luMik7CiAgICAgCiAgICAgc2hvdWxkQmUoInBsdWdpbjIucHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCIsICJ0cnVlIik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChmYWxzZSk7CisgICAgdGVzdFJ1bm5lci5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKTsKICAgICBzaG91bGRCZSgicGx1Z2luMS5wcml2YXRl
QnJvd3NpbmdFbmFibGVkIiwgImZhbHNlIik7CiAgICAgc2hvdWxkQmUoInBsdWdpbjIucHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCIsICJmYWxzZSIpOwogfQpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lu
cy9wcml2YXRlLWJyb3dzaW5nLW1vZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBM
YXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC03LDcgKzcsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRlc3QoKSAKIHsKLSAg
ICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICAgICAgZGVidWcoIlRoaXMgdGVzdCBjYW4gb25seSBydW4gZnJvbSB3
aXRoaW4gRHVtcFJlbmRlclRyZWUgYmVjYXVzZSBpdCByZXF1aXJlcyBUZXN0TmV0c2NhcGVQbHVn
aW4uXG4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rp
b24gcnVuVGVzdCgpIAogICAgIHNob3VsZEJlKCJwbHVnaW4xLmNhY2hlZFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQiLCAiZmFsc2UiKTsKIAogICAgIC8vIE5vdyBlbmFibGUgcHJpdmF0ZSBicm93c2lu
ZwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1
ZSk7CisgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogCiAg
ICAgc2hvdWxkQmUoInBsdWdpbjEucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsICJ0cnVlIik7CiAg
ICAgc2hvdWxkQmUoInBsdWdpbjEuY2FjaGVkUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsICJ0cnVl
Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3JlZW50cmFudC11cGRhdGUtd2lkZ2V0LXBv
c2l0aW9ucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcmVlbnRyYW50
LXVwZGF0ZS13aWRnZXQtcG9zaXRpb25zLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91
dFRlc3RzL3BsdWdpbnMvcmVlbnRyYW50LXVwZGF0ZS13aWRnZXQtcG9zaXRpb25zLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDkgKzEwLDkgQEAKICAgICAgICAgfQogICAgIDwvc3R5bGU+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgfQogICAgIC8vIFRoaXMgZ2V0cyBjYWxsZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSB0ZXN0
IHBsdWdpbi4KICAgICB2YXIgZG9pbmdUZXN0ID0gZmFsc2U7CkBAIC0yNSw4ICsyNSw4IEBACiAg
ICAgICAgIHZpY3RpbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHZpY3RpbSk7CiAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOwogCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQpJbmRleDog
TGF5b3V0VGVzdHMvcGx1Z2lucy9yZWZjb3VudC1sZWFrcy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsdWdpbnMvcmVmY291bnQtbGVha3MuaHRtbAkocmV2aXNpb24gMTIwNDExKQor
KysgTGF5b3V0VGVzdHMvcGx1Z2lucy9yZWZjb3VudC1sZWFrcy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMiw4ICsxMiw4IEBACiAgIH0KIAogICBmdW5jdGlvbiBydW50ZXN0KCkgewotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAKIAogICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3JlbG9hZHBsdWdp
bnMtYW5kLXBhZ2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9yZWxv
YWRwbHVnaW5zLWFuZC1wYWdlcy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0
cy9wbHVnaW5zL3JlbG9hZHBsdWdpbnMtYW5kLXBhZ2VzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE0LDIxICsxNCwyMSBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgCiAgICAgaWYgKGNhbGxSZWxvYWQpIHsKICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsZycpLnJlbG9h
ZFBsdWdpbnNBbmRQYWdlcygpOwogICAgICAgICB9IGNhdGNoIChleCkgewogICAgICAgICAgICAg
YWxlcnQoIkV4Y2VwdGlvbjogIiArIGV4LmRlc2NyaXB0aW9uICsgIi4gVGVzdCBwbHVnaW4gd2Fz
IG5vdCBmb3VuZCIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3JlcycpLmlubmVySFRNTD0iU1VDQ0VTUyI7Ci0gICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIDwvc2NyaXB0PgogPC9ib2R5
PgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9yZWxvYWRwbHVnaW5zLW5vLXBhZ2VzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9yZWxvYWRwbHVnaW5zLW5vLXBhZ2Vz
Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvcmVsb2FkcGx1
Z2lucy1uby1wYWdlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDggKzUsOCBAQAogPGRpdiBp
ZD0ncmVzJz5GQUlMVVJFPC9kaXY+CiA8c2NyaXB0PgogICAgIGFsZXJ0KCJQYWdlIHdhcyBsb2Fk
ZWQiKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHRyeSB7CiAgICAgICAg
IHBsZy5yZWxvYWRQbHVnaW5zTm9QYWdlcygpOwpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9y
ZXR1cm4tZXJyb3ItZnJvbS1uZXctc3RyZWFtLWNhbGxiYWNrLWluLWZ1bGwtZnJhbWUtcGx1Z2lu
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9yZXR1cm4tZXJyb3ItZnJv
bS1uZXctc3RyZWFtLWNhbGxiYWNrLWluLWZ1bGwtZnJhbWUtcGx1Z2luLmh0bWwJKHJldmlzaW9u
IDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvcmV0dXJuLWVycm9yLWZyb20tbmV3LXN0
cmVhbS1jYWxsYmFjay1pbi1mdWxsLWZyYW1lLXBsdWdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDcgKzEsNyBAQAogPGh0bWw+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4K
IDxkaXY+VGhpcyB0ZXN0cyB0aGF0IHdlIHdvbid0IGNyYXNoIGlmIGEgZnVsbC1mcmFtZSBwbHVn
aW4gcmV0dXJucyBhbiBlcnJvciBmcm9tIGl0cyBOUFBfTmV3U3RyZWFtIGNhbGxiYWNrPC9kaXY+
CiA8ZGl2PlNVQ0NFU1MgLSBEaWRuJ3QgY3Jhc2g8L2Rpdj4KSW5kZXg6IExheW91dFRlc3RzL3Bs
dWdpbnMvcmV0dXJuLWVycm9yLWZyb20tbmV3LXN0cmVhbS1kb2VzbnQtaW52b2tlLWRlc3Ryb3kt
c3RyZWFtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9yZXR1cm4tZXJy
b3ItZnJvbS1uZXctc3RyZWFtLWRvZXNudC1pbnZva2UtZGVzdHJveS1zdHJlYW0uaHRtbAkocmV2
aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9yZXR1cm4tZXJyb3ItZnJvbS1u
ZXctc3RyZWFtLWRvZXNudC1pbnZva2UtZGVzdHJveS1zdHJlYW0uaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsMTEgKzEwLDExIEBACiAgICAgICAgICAgICB2YXIgZGVzdHJveVN0cmVhbUNhbGxl
ZCA9IGZhbHNlOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBtYWluKCkgewotICAgICAgICAgICAg
ICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAg
aWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiVGhp
cyB0ZXN0IGNhbiBvbmx5IHJ1biBmcm9tIHdpdGhpbiBEdW1wUmVuZGVyVHJlZSwgYmVjYXVzZSBp
dCByZXF1aXJlcyBUZXN0TmV0c2NhcGVQbHVnaW4uXG4iKTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1haW4oKTsKQEAgLTMw
LDcgKzMwLDcgQEAKIAogICAgICAgICAgICAgICAgIGRlYnVnKCc8YnI+PHNwYW4gY2xhc3M9InBh
c3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7CiAKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgogCkluZGV4OiBMYXlv
dXRUZXN0cy9wbHVnaW5zL3JldHVybi1uZWdhdGl2ZS1vbmUtZnJvbS13cml0ZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcmV0dXJuLW5lZ2F0aXZlLW9uZS1mcm9tLXdy
aXRlLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvcmV0dXJu
LW5lZ2F0aXZlLW9uZS1mcm9tLXdyaXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDExICsx
MSwxMSBAQAogICAgICAgICAgICAgdmFyIGRlc3Ryb3lTdHJlYW1DYWxsZWQgPSBmYWxzZTsKIAog
ICAgICAgICAgICAgZnVuY3Rpb24gbWFpbigpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICAgICAgICAgICAgICAgICAgZGVidWcoIlRoaXMgdGVzdCBjYW4gb25s
eSBydW4gZnJvbSB3aXRoaW4gRHVtcFJlbmRlclRyZWUsIGJlY2F1c2UgaXQgcmVxdWlyZXMgVGVz
dE5ldHNjYXBlUGx1Z2luLlxuIik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtYWluKCk7CkBAIC0zMyw3ICszMyw3IEBACiAK
ICAgICAgICAgICAgICAgICBkZWJ1ZygnPGJyPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBM
RVRFPC9zcGFuPicpOwogCi0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
ICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lu
cy9yZXR1cm4tbnBvYmplY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5z
L3JldHVybi1ucG9iamVjdC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9w
bHVnaW5zL3JldHVybi1ucG9iamVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDggKzgsOCBA
QAogICB9CiAKICAgZnVuY3Rpb24gcnVudGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKIAogICAgIHZhciBvYmogPSBwbHVnLnRlc3RDYWxsYmFja1JldHVybigiY2FsbGJhY2si
KTsKICAgICBpZiAob2JqID09IHRlc3Rfb2JqZWN0KSB7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVn
aW5zL3NjcmlwdC1vYmplY3QtaW52b2tlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGx1Z2lucy9zY3JpcHQtb2JqZWN0LWludm9rZS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBM
YXlvdXRUZXN0cy9wbHVnaW5zL3NjcmlwdC1vYmplY3QtaW52b2tlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDggKzIxLDggQEAgZnVuY3Rpb24gbmV3X3NjcmlwdF9vYmplY3QoKSB7CiAKIGZ1
bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAg
dmFyIHBsdWdpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0UGx1Z2luIik7CiAgICAg
dmFyIHJldHVybmVkX29iamVjdCA9IHBsdWdpbi50ZXN0U2NyaXB0T2JqZWN0SW52b2tlKCJuZXdf
c2NyaXB0X29iamVjdCIsICJjcmVhdGVPYmplY3QiKTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdp
bnMvc2V0LXN0YXR1cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvc2V0
LXN0YXR1cy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL3Nl
dC1zdGF0dXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxlbWJlZCBuYW1l
PSJwbGciIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiPjwvZW1iZWQ+
CiA8cD5QQVNTIGlmIHN0YXR1cyBiYXIgc2F5cyAiUEFTUyIuPC9wPgogPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBTdGF0dXNDYWxsYmFja3MoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBTdGF0dXNDYWxsYmFja3MoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgfQogCiAgICAgcGxnLnNldFN0YXR1cygpOyAvLyBUcnkgc2VuZGluZyBh
IG51bGwgc3RyaW5nLCB3aGljaCB1c2VkIHRvIGNhdXNlIGEgY3Jhc2guCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbHVnaW5zL3VwZGF0ZS13aWRnZXRzLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGx1Z2lucy91cGRhdGUtd2lkZ2V0cy1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA0
MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL3VwZGF0ZS13aWRnZXRzLWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDkgKzEwLDkgQEAKICAgICAgICAgfQogICAgIDwvc3R5bGU+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgfQogCiAgICAgLy8gVGhpcyBnZXRzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIHRl
c3QgcGx1Z2luLgpAQCAtMjYsOCArMjYsOCBAQAogICAgICAgICB2aWN0aW0ucGFyZW50Tm9kZS5y
ZW1vdmVDaGlsZCh2aWN0aW0pOwogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKIAot
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgZG9p
bmdUZXN0ID0gZmFsc2U7CiAgICAgfQogICAgIApJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93
aW5kb3ctb3Blbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93
LW9wZW4uaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5k
b3ctb3Blbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDEwIEBACiA8aHRtbD4KIDxo
ZWFkPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAg
ICAgfQogICAgICAKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ds
ZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1
Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkK
KysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93bGVzc19wbHVnaW5fcGFpbnRfdGVzdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zLDkgKzMsOSBAQAogPGh0bWw+CiA8aGVhZD4KICAgPHNjcmlw
dD4NCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOw0KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsNCisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7DQogICAgIH0KIAogICAgIHZhciBwYWludENvdW50ID0gMDsNCkBAIC0xNCwx
MiArMTQsMTIgQEAKICAgICAgICAgdmFyIHBsdWdpbkRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwbHVnaW5EaXYiKTsNCiAgICAgICAgIC8vIENyZWF0ZSB0aGUgcGx1Z2luIGluIHRoZSBt
aWRkbGUgb2YgdGhlIHBhZ2UuDQogICAgICAgICBwbHVnaW5EaXYuaW5uZXJIVE1MID0gIjxlbWJl
ZCBpZD1cInRlc3RQbHVnaW5cIiB0eXBlPVwiYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRz
Y2FwZVwiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMjAwXCIgb25wYWludGV2ZW50PVwiZGlkUGFp
bnQoKVwiIHdpbmRvd2VkUGx1Z2luPVwiZmFsc2VcIj48L2VtYmVkPiI7DQotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsNCisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7DQogICAgICAgfQ0KIA0KICAgICBm
dW5jdGlvbiBub3RpZnlEb25lKCkgew0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc3VsdCcpLmlubmVySFRNTCA9ICJTVUNDRVNTIjsNCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsNCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOw0K
ICAgICB9DQogICAgICAgDQogICAgIGZ1bmN0aW9uIGRpZFBhaW50KCkgew0KSW5kZXg6IExheW91
dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2NvbnN0cnVjdC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2NvbnN0cnVjdC5odG1sCShyZXZpc2lvbiAxMjA0
MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9jb25zdHJ1Y3QuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5UZXN0KCkK
IHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgCiAgICAgdmFyIHN1Y2Nl
c3NDb3VudCA9IDA7CiAgICAgdmFyIHBsdWdpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0UGx1Z2luIik7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9kZWxldGUt
cGx1Z2luLXdpdGhpbi1nZXRQcm9wZXJ0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsdWdpbnMvbnBydW50aW1lL2RlbGV0ZS1wbHVnaW4td2l0aGluLWdldFByb3BlcnR5Lmh0bWwJ
KHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2RlbGV0
ZS1wbHVnaW4td2l0aGluLWdldFByb3BlcnR5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsOCAr
Myw4IEBACiA8ZW1iZWQgbmFtZT0icGxnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0
LW5ldHNjYXBlIj48L2VtYmVkPgogPHNjcmlwdD4KIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgIAogICAgIGZ1bmN0aW9uIGRlbGV0ZVBsdWdpbigpIHsKICAgICAgICAgZG9jdW1l
bnQuYm9keS5pbm5lckhUTUwgPSAiIgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRp
bWUvZGVsZXRlLXBsdWdpbi13aXRoaW4taGFzUHJvcGVydHktcmV0dXJuLWZhbHNlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvZGVsZXRlLXBsdWdpbi13
aXRoaW4taGFzUHJvcGVydHktcmV0dXJuLWZhbHNlLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysr
IExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2RlbGV0ZS1wbHVnaW4td2l0aGluLWhhc1By
b3BlcnR5LXJldHVybi1mYWxzZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAog
PGVtYmVkIG5hbWU9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2Fw
ZSI+PC9lbWJlZD4KIDxzY3JpcHQ+CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAKICAgICBmdW5jdGlvbiBkZWxldGVQbHVnaW4oKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHku
aW5uZXJIVE1MID0gIiIKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2RlbGV0
ZS1wbHVnaW4td2l0aGluLWhhc1Byb3BlcnR5LXJldHVybi10cnVlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvZGVsZXRlLXBsdWdpbi13aXRoaW4taGFz
UHJvcGVydHktcmV0dXJuLXRydWUuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVz
dHMvcGx1Z2lucy9ucHJ1bnRpbWUvZGVsZXRlLXBsdWdpbi13aXRoaW4taGFzUHJvcGVydHktcmV0
dXJuLXRydWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxlbWJlZCBuYW1l
PSJwbGciIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiPjwvZW1iZWQ+
CiA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgZnVu
Y3Rpb24gZGVsZXRlUGx1Z2luKCkgewogICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9
ICIiCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9kZWxldGUtcGx1Z2luLXdp
dGhpbi1pbnZva2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVu
dGltZS9kZWxldGUtcGx1Z2luLXdpdGhpbi1pbnZva2UuaHRtbAkocmV2aXNpb24gMTIwNDExKQor
KysgTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvZGVsZXRlLXBsdWdpbi13aXRoaW4taW52
b2tlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsOCArMyw4IEBACiA8ZW1iZWQgbmFtZT0icGxn
IiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIj48L2VtYmVkPgogPHNj
cmlwdD4KIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIAogICAgIGZ1bmN0aW9u
IGRlbGV0ZVBsdWdpbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiIgpJ
bmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvZGVsZXRlLXBsdWdpbi13aXRoaW4t
c2V0UHJvcGVydHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVu
dGltZS9kZWxldGUtcGx1Z2luLXdpdGhpbi1zZXRQcm9wZXJ0eS5odG1sCShyZXZpc2lvbiAxMjA0
MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9kZWxldGUtcGx1Z2luLXdpdGhp
bi1zZXRQcm9wZXJ0eS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPGVtYmVk
IG5hbWU9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSI+PC9l
bWJlZD4KIDxzY3JpcHQ+CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAKICAg
ICBmdW5jdGlvbiBkZWxldGVQbHVnaW4oKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJI
VE1MID0gIiIKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2VtYmVkLXByb3Bl
cnR5LWVxdWFsaXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1
bnRpbWUvZW1iZWQtcHJvcGVydHktZXF1YWxpdHkuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysg
TGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvZW1iZWQtcHJvcGVydHktZXF1YWxpdHkuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIDxlbWJlZCBpZD0icGx1Z2luIiB0eXBl
PSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIj4KIDwvZGl2PgogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgIAogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIHZh
ciBwbHVnaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGx1Z2luJyk7CkluZGV4OiBMYXlv
dXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9lbWJlZC1wcm9wZXJ0eS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2VtYmVkLXByb3BlcnR5Lmh0bWwJKHJl
dmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2VtYmVkLXBy
b3BlcnR5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiA8ZW1iZWQgaWQ9InRl
c3RDUGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIj4KIDwv
ZGl2PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKSW5kZXg6
IExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2VudW1lcmF0ZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2VudW1lcmF0ZS5odG1sCShyZXZpc2lv
biAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9lbnVtZXJhdGUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5U
ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHZhciBwbHVnaW4g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFBsdWdpbiIpOwogICAgIHZhciByZXN1bHQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9w
bHVnaW5zL25wcnVudGltZS9nZXQtaW50LWlkZW50aWZpZXItc3BlY2lhbC12YWx1ZXMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9nZXQtaW50LWlkZW50
aWZpZXItc3BlY2lhbC12YWx1ZXMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVz
dHMvcGx1Z2lucy9ucHJ1bnRpbWUvZ2V0LWludC1pZGVudGlmaWVyLXNwZWNpYWwtdmFsdWVzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsOCArOCw4IEBACiAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG1lc3NhZ2UgKyAiXG4iKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgICAgICB2YXIgcGx1Z2luID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBsZyIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVu
dGltZS9nZXQtcHJvcGVydHktcmV0dXJuLXZhbHVlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvZ2V0LXByb3BlcnR5LXJldHVybi12YWx1ZS5odG1sCShy
ZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9nZXQtcHJv
cGVydHktcmV0dXJuLXZhbHVlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8
c2NyaXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgICAgIAogICAgIHZhciBwbHVnaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdFBsdWdpbiIpOwogICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cmVzdWx0Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9pbnZva2UtYnJv
d3NlcmZ1bmNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRp
bWUvaW52b2tlLWJyb3dzZXJmdW5jcy5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRU
ZXN0cy9wbHVnaW5zL25wcnVudGltZS9pbnZva2UtYnJvd3NlcmZ1bmNzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTMsOCArMyw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gZG9UZXN0KCkKIHsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHZhciBwbHVnaW4gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdFBsdWdpbiIpOwogICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbnBy
dW50aW1lL2ludm9rZS1kZWZhdWx0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1
Z2lucy9ucHJ1bnRpbWUvaW52b2tlLWRlZmF1bHQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysg
TGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvaW52b2tlLWRlZmF1bHQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5UZXN0KCkKIHsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgCiAgICAgdmFyIHN1Y2Nlc3ND
b3VudCA9IDA7CiAgICAgdmFyIHBsdWdpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
UGx1Z2luIik7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9pbnZva2UtZmFp
bHVyZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2lu
dm9rZS1mYWlsdXJlLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdp
bnMvbnBydW50aW1lL2ludm9rZS1mYWlsdXJlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOCAr
Miw4IEBACiA8ZW1iZWQgbmFtZT0icGxnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0
LW5ldHNjYXBlIj48L2VtYmVkPgogPGRpdiBpZD0iY29uc29sZSI+RkFJTFVSRTogTm8gZXhjZXB0
aW9uIGNhdWdodC48L2Rpdj4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAKICAgICB0cnkgewogICAgICAgICBwbGcudGVzdEZhaWwoKTsKSW5kZXg6IExheW91dFRlc3Rz
L3BsdWdpbnMvbnBydW50aW1lL2ludm9rZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsdWdpbnMvbnBydW50aW1lL2ludm9rZS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlv
dXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9pbnZva2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Niw4ICs2LDggQEAgUkVHUkVTU0lPTjogRmxhc2ggY2FsbGJhY2sgdG8gSmF2YVNjcmlwdAogPGRp
diBpZD1yZXM+RkFJTFVSRTwvZGl2PgogPHNjcmlwdD4KIAotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIAogICAgIGZ1bmN0aW9uIE15Q2FsbGJhY2soKSB7CiAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdyZXMnKS5pbm5lckhUTUwgPSAnU1VDQ0VTUyc7CkluZGV4OiBM
YXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9ucC1kZWFsbG9jYXRlLWNhbGxlZC1iZWZvcmUt
bnAtc2h1dGRvd24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVu
dGltZS9ucC1kZWFsbG9jYXRlLWNhbGxlZC1iZWZvcmUtbnAtc2h1dGRvd24uaHRtbAkocmV2aXNp
b24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvbnAtZGVhbGxvY2F0
ZS1jYWxsZWQtYmVmb3JlLW5wLXNodXRkb3duLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyAr
MSw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKIAogICAgIHZhciB0ZXN0T2JqZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3BsdWdpbicpLnRlc3RPYmplY3Q7CiAKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbnBy
dW50aW1lL25wcnVudGltZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMv
bnBydW50aW1lL25wcnVudGltZS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0
cy9wbHVnaW5zL25wcnVudGltZS9ucHJ1bnRpbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSwx
MiArNSwxMiBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIG1haW4oKSAKIHsKLSAgICBpZiAoIXdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgZGVidWcoIlRoaXMgdGVzdCBjYW4gb25seSBydW4gZnJvbSB3aXRoaW4gRHVtcFJl
bmRlclRyZWUgYmVjYXVzZSBpdCByZXF1aXJlcyBUZXN0TmV0c2NhcGVQbHVnaW4uXG4iKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIG1haW4oKTsKIApA
QCAtNDcsNyArNDcsNyBAQCBmdW5jdGlvbiB0ZXN0TlBJbnZva2UoKQogICAgIHNob3VsZEJlKCJ0
eXBlb2Yob2JqZWN0QXJndW1lbnQpIiwgIidvYmplY3QnIik7CiAKICAgICBpc1N1Y2Nlc3NmdWxs
eVBhcnNlZCgpOyAgICAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHRoZSBOUFJ1bnRpbWUgaW1wbGVtZW50YXRpb24gd29ya3MgYXMgZXhwZWN0ZWQiKTsKSW5kZXg6
IExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL3BsdWdpbi1zY3JpcHRhYmxlLW9iamVjdC1p
bnZva2UtZGVmYXVsdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvbnBy
dW50aW1lL3BsdWdpbi1zY3JpcHRhYmxlLW9iamVjdC1pbnZva2UtZGVmYXVsdC5odG1sCShyZXZp
c2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9wbHVnaW4tc2Ny
aXB0YWJsZS1vYmplY3QtaW52b2tlLWRlZmF1bHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw4
ICs4LDggQEAgZnVuY3Rpb24gZG9UZXN0KCkKIHsKICAgICBkZXNjcmlwdGlvbignVGhpcyBwYWdl
IHRlc3RzIGludm9raW5nIGFzIGZ1bmN0aW9ucyBKYXZhU2NyaXB0IG9iamVjdHMgdGhhdCBhcmUg
cHJvdmlkZWQgYnkgcGx1Z2lucy4nKQogICAgIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogCiAgICAgcGx1Z2luV2l0aEludm9rZURlZmF1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGx1Z2luLXdpdGgtaW52b2tlLWRlZmF1bHQnKTsKICAgICAKSW5kZXg6IExheW91dFRlc3Rz
L3BsdWdpbnMvbnBydW50aW1lL3JvdW5kLXRyaXAtbnBvYmplY3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9yb3VuZC10cmlwLW5wb2JqZWN0Lmh0bWwJ
KHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL3JvdW5k
LXRyaXAtbnBvYmplY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAgQ3Jhc2gg
d2hlbiBwYXNzaW5nIGFuIG9iamVjdCByZXR1cm5lZCBmcgogPHA+UEFTUyBpZiBubyBjcmFzaC48
L3A+CiA8ZW1iZWQgaWQ9InBsdWctaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qt
bmV0c2NhcGUiIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1iZWQ+CiA8c2NyaXB0PgotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgdmFyIHBsdWdJbiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJwbHVnLWluIik7CiAKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbnBydW50
aW1lL3NldC1wcm9wZXJ0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMv
bnBydW50aW1lL3NldC1wcm9wZXJ0eS5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRU
ZXN0cy9wbHVnaW5zL25wcnVudGltZS9zZXQtcHJvcGVydHkuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMyw4ICszLDggQEAKIFJFR1JFU1NJT04gKHI0ODQ5Mik6IEdtYWlsIHZvaWNlIGFuZCB2aWRl
byBjaGF0IGRvZXNuJ3Qgd29yazwvaT4uPC9wPgogPHAgaWQ9InJlc3VsdCI+RkFJTDogVGV4dCBk
aWQgbm90IHJ1bjwvcD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAK
ICAgICBwbGcuZXZlbnRMb2dnaW5nRW5hYmxlZCA9IHRydWU7CiAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9IHBsZy5ldmVudExvZ2dpbmdFbmFibGVkCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS90aHJvdy1leGNlcHRpb24uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS90aHJvdy1leGNlcHRp
b24uaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRp
bWUvdGhyb3ctZXhjZXB0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8
c2NyaXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAKICAgICB2YXIgcGx1Z2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RQbHVn
aW4iKTsKICAgICB2YXIgcmVzdWx0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQx
Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9nZXR1cmxub3RpZnktb24t
ZGVzdHJveS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcmVzb3VyY2Vz
L2dldHVybG5vdGlmeS1vbi1kZXN0cm95Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91
dFRlc3RzL3BsdWdpbnMvcmVzb3VyY2VzL2dldHVybG5vdGlmeS1vbi1kZXN0cm95Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBACiAgICAgdmFyIHBsdWdpbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0UGx1Z2luJyk7CiAgICAgcGx1Z2luLmxvZ0Rlc3Ryb3kgPSB0cnVl
OwogCi0gICAgd2luZG93Lm9wZW5lci5zZXRUaW1lb3V0KCdzZXRUaW1lb3V0KCJsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCkiLCA1MCknLCAwKTsKKyAgICB3aW5kb3cub3BlbmVyLnNl
dFRpbWVvdXQoJ3NldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgNTApJywgMCk7
CiAgICAgd2luZG93LmNsb3NlKCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRl
c3RzL3BsdWdpbnMvcmVzb3VyY2VzL2dvLWJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9nby1iYWNrLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysr
IExheW91dFRlc3RzL3BsdWdpbnMvcmVzb3VyY2VzL2dvLWJhY2suaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtOCw3ICs4LDcgQEAgZnVuY3Rpb24gbG9hZGVkKCkKIDxzY3JpcHQ+CiBpZiAoaGlzdG9y
eS5sZW5ndGggPT0gMCkgewogICAgIGRvY3VtZW50LmlubmVySFRNTCArPSAiPGJyPiBCdXQgaXQg
d29uJ3Qgd29yayBiZWNhdXNlIHRoZXJlIGlzIG5vIGJhY2sgaGlzdG9yeSEiOwotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVn
aW5zL3Jlc291cmNlcy9vcGVuLWFuZC1jbG9zZS13aW5kb3ctd2l0aC1wbHVnaW4uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9vcGVuLWFuZC1jbG9zZS13
aW5kb3ctd2l0aC1wbHVnaW4uaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cGx1Z2lucy9yZXNvdXJjZXMvb3Blbi1hbmQtY2xvc2Utd2luZG93LXdpdGgtcGx1Z2luLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
dmFyIHBsdWdpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0UGx1Z2luJyk7CiAgICAg
cGx1Z2luLmxvZ0Rlc3Ryb3kgPSB0cnVlOwogCi0gICAgd2luZG93Lm9wZW5lci5zZXRUaW1lb3V0
KCdzZXRUaW1lb3V0KCJsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkiLDUwKScsIDAp
OworICAgIHdpbmRvdy5vcGVuZXIuc2V0VGltZW91dCgnc2V0VGltZW91dCgidGVzdFJ1bm5lci5u
b3RpZnlEb25lKCkiLDUwKScsIDApOwogICAgIHdpbmRvdy5jbG9zZSgpOwogfQogCkluZGV4OiBM
YXlvdXRUZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9yZXNpemUtZnJvbS1wbHVnaW4tZnJhbWUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9yZXNpemUtZnJv
bS1wbHVnaW4tZnJhbWUuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcGx1
Z2lucy9yZXNvdXJjZXMvcmVzaXplLWZyb20tcGx1Z2luLWZyYW1lLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQsOSArNCw5IEBACiA8cD5UZXN0IGZvciBOUFBfU2V0V2luZG93IGNhbGxzIHNlbnQg
d2hpbGUgYSBwbHVnLWluIHJlc2l6ZXMgaXRzZWxmLjwvcD4KIDxwcmUgaWQ9cmVzdWx0PjwvcHJl
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0Fz
VGV4dCgpOwogfQogCiBmdW5jdGlvbiByZXNpemVQbHVnaW4od2lkdGgsIGhlaWdodCkKSW5kZXg6
IExheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWZhaWwtcmVzcG9uc2VzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbG9jay1mYWlsLXJlc3Bv
bnNlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3BvaW50
ZXItbG9jay9sb2NrLWZhaWwtcmVzcG9uc2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMyw5ICszLDkgQEAgVGVzdCBhc3luY2hyb25vdXMgcmVzdWx0cyBvZiBjYWxsaW5nIGxvYwog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyIGlzIGRlZmluZWQuCi1QQVNTIExvY2sgZmFpbGVkIChhZnRlciB3ZSBjYWxsZWQgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHkpCi1Q
QVNTIExvY2sgZmFpbGVkIChhZnRlciB3ZSBjYWxsZWQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
UG9pbnRlckxvY2tXaWxsRmFpbEFzeW5jaHJvbm91c2x5KQorUEFTUyB3aW5kb3cudGVzdFJ1bm5l
ciBpcyBkZWZpbmVkLgorUEFTUyBMb2NrIGZhaWxlZCAoYWZ0ZXIgd2UgY2FsbGVkIHRlc3RSdW5u
ZXIuc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHkpCitQQVNTIExvY2sgZmFpbGVk
IChhZnRlciB3ZSBjYWxsZWQgdGVzdFJ1bm5lci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsQXN5bmNo
cm9ub3VzbHkpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKSW5kZXg6IExheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWZhaWwtcmVzcG9uc2VzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stZmFpbC1yZXNw
b25zZXMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2Nr
L2xvY2stZmFpbC1yZXNwb25zZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAK
IDxzY3JpcHQ+CiAgICAgZGVzY3JpcHRpb24oIlRlc3QgYXN5bmNocm9ub3VzIHJlc3VsdHMgb2Yg
Y2FsbGluZyBsb2NrLiIpCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotICAgIHNo
b3VsZEJlRGVmaW5lZCgid2luZG93LmxheW91dFRlc3RDb250cm9sbGVyIik7CisgICAgc2hvdWxk
QmVEZWZpbmVkKCJ3aW5kb3cudGVzdFJ1bm5lciIpOwogCiAgICAgY3VycmVudFN0ZXAgPSAwOwog
ICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAoKSB7CkBAIC0xNSwyNiArMTUsMjYgQEAKICAgICB9CiAg
ICAgdG9kbyA9IFsKICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHkoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHkoKTsK
ICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRQb2ludGVyLmxvY2soZG9jdW1lbnQuYm9keSwK
ICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkxvY2sgc3VjY2VlZGVkIHVuZXhwZWN0ZWRseS4iKTsKICAgICAgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkxvY2sgZmFpbGVk
IChhZnRlciB3ZSBjYWxsZWQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UG9pbnRlckxvY2tXaWxs
RmFpbFN5bmNocm9ub3VzbHkpIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkxv
Y2sgZmFpbGVkIChhZnRlciB3ZSBjYWxsZWQgdGVzdFJ1bm5lci5zZXRQb2ludGVyTG9ja1dpbGxG
YWlsU3luY2hyb25vdXNseSkiKTsKICAgICAgICAgICAgICAgICAgICAgZG9OZXh0U3RlcCgpOwog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9LAogICAgICAgICBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsQXN5
bmNocm9ub3VzbHkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9pbnRlckxvY2tXaWxs
RmFpbEFzeW5jaHJvbm91c2x5KCk7CiAgICAgICAgICAgICBuYXZpZ2F0b3Iud2Via2l0UG9pbnRl
ci5sb2NrKGRvY3VtZW50LmJvZHksCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NrIHN1Y2NlZWRlZCB1bmV4cGVjdGVkbHku
Iik7CiAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJMb2NrIGZhaWxlZCAoYWZ0ZXIgd2UgY2FsbGVkIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFBvaW50ZXJMb2NrV2lsbEZhaWxBc3luY2hyb25vdXNseSkiKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiTG9jayBmYWlsZWQgKGFmdGVyIHdlIGNhbGxlZCB0ZXN0UnVu
bmVyLnNldFBvaW50ZXJMb2NrV2lsbEZhaWxBc3luY2hyb25vdXNseSkiKTsKICAgICAgICAgICAg
ICAgICAgICAgZG9OZXh0U3RlcCgpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9LApJ
bmRleDogTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXItbG9jay1hcGkuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlci1sb2NrLWFwaS5odG1s
CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlci1s
b2NrLWFwaS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgY3VycmVu
dFN0ZXAgPSAwOwogICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAobWFudWFsKQogICAgIHsKLSAgICAg
ICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgIW1hbnVhbCkKKyAgICAgICAg
aWYgKCF3aW5kb3cudGVzdFJ1bm5lciAmJiAhbWFudWFsKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBpZiAoY3VycmVudFN0ZXAgPCB0b2RvLmxlbmd0aCkKICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24gKCkgeyB0b2RvW2N1cnJlbnRTdGVwKytdKCk7IH0sIDApOwpJbmRleDog
TGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrY2hhbmdlLXBvaW50ZXJsb2NrZXJy
b3ItZXZlbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wb2ludGVy
LWxvY2svcG9pbnRlcmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRl
cmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0yOCwxMCArMjgsMTAgQEAgUEFTUyBvbndlYmtpdHBvaW50ZXJsb2NrY2hhbmdl
IHJlY2VpdmVkIAogICAgICBVbmxvY2sgdGFyZ2V0SWZyYW1lMiAoaGFuZGxlciBmb3IgaWZyYW1l
MSkuCiAgICAgIFVubG9jayB0YXJnZXRJZnJhbWUyIChoYW5kbGVyIGZvciBpZnJhbWUyKS4KIFBB
U1Mgb253ZWJraXRwb2ludGVybG9ja2NoYW5nZSByZWNlaXZlZCBhZnRlcjogVW5sb2NrIHRhcmdl
dElmcmFtZTIgKGhhbmRsZXIgZm9yIGlmcmFtZTIpLgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsU3luY2hyb25vdXNseSBpcyBkZWZpbmVkLgorUEFTUyB0
ZXN0UnVubmVyLnNldFBvaW50ZXJMb2NrV2lsbEZhaWxTeW5jaHJvbm91c2x5IGlzIGRlZmluZWQu
CiAgICAgIExvY2sgd2l0aCBzeW5jaHJvbm91cyBmYWlsdXJlLgogUEFTUyBvbndlYmtpdHBvaW50
ZXJsb2NrZXJyb3IgcmVjZWl2ZWQgYWZ0ZXI6IExvY2sgd2l0aCBzeW5jaHJvbm91cyBmYWlsdXJl
LgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsQXN5bmNo
cm9ub3VzbHkgaXMgZGVmaW5lZC4KK1BBU1MgdGVzdFJ1bm5lci5zZXRQb2ludGVyTG9ja1dpbGxG
YWlsQXN5bmNocm9ub3VzbHkgaXMgZGVmaW5lZC4KICAgICAgTG9jayB3aXRoIGFzeW5jaHJvbm91
cyBmYWlsdXJlLgogUEFTUyBvbndlYmtpdHBvaW50ZXJsb2NrZXJyb3IgcmVjZWl2ZWQgYWZ0ZXI6
IExvY2sgd2l0aCBhc3luY2hyb25vdXMgZmFpbHVyZS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKSW5kZXg6IExheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2NoYW5n
ZS1wb2ludGVybG9ja2Vycm9yLWV2ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BvaW50ZXItbG9jay9wb2ludGVybG9ja2NoYW5nZS1wb2ludGVybG9ja2Vycm9yLWV2ZW50cy5o
dG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRl
cmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNyArNjEsNyBAQAogICAgIGN1cnJlbnRTdGVwID0gMDsKICAgICBmdW5jdGlvbiBkb05l
eHRTdGVwKG1hbnVhbCkKICAgICB7Ci0gICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyICYmICFtYW51YWwpCisgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgJiYgIW1h
bnVhbCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9k
by5sZW5ndGgpCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJy
ZW50U3RlcCsrXSgpOyB9LCAwKTsKQEAgLTEzMSwxNCArMTMxLDE0IEBACiAgICAgICAgICAgICBu
YXZpZ2F0b3Iud2Via2l0UG9pbnRlci51bmxvY2soKTsKICAgICAgICAgfSwKICAgICAgICAgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgc2hvdWxkQmVEZWZpbmVkKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsU3luY2hyb25vdXNseSIpOwotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHko
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRGVmaW5lZCgidGVzdFJ1bm5lci5zZXRQb2ludGVyTG9j
a1dpbGxGYWlsU3luY2hyb25vdXNseSIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb2lu
dGVyTG9ja1dpbGxGYWlsU3luY2hyb25vdXNseSgpOwogICAgICAgICAgICAgZXhwZWN0T25seUVy
cm9yRXZlbnQoIkxvY2sgd2l0aCBzeW5jaHJvbm91cyBmYWlsdXJlLiIpOwogICAgICAgICAgICAg
bmF2aWdhdG9yLndlYmtpdFBvaW50ZXIubG9jayh0YXJnZXREaXYxKTsKICAgICAgICAgfSwKICAg
ICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgc2hvdWxkQmVEZWZpbmVkKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsQXN5bmNocm9ub3VzbHkiKTsKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFBvaW50ZXJMb2NrV2lsbEZhaWxBc3lu
Y2hyb25vdXNseSgpOworICAgICAgICAgICAgc2hvdWxkQmVEZWZpbmVkKCJ0ZXN0UnVubmVyLnNl
dFBvaW50ZXJMb2NrV2lsbEZhaWxBc3luY2hyb25vdXNseSIpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsQXN5bmNocm9ub3VzbHkoKTsKICAgICAgICAgICAg
IGV4cGVjdE9ubHlFcnJvckV2ZW50KCJMb2NrIHdpdGggYXN5bmNocm9ub3VzIGZhaWx1cmUuIik7
CiAgICAgICAgICAgICBuYXZpZ2F0b3Iud2Via2l0UG9pbnRlci5sb2NrKHRhcmdldERpdjEpOwog
ICAgICAgICB9LApJbmRleDogTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9z
dC1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcG9pbnRlci1s
b2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEyMDQxMSkK
KysrIExheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2xvc3QtZXZlbnQtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0IHRoYXQgcG9pbnRlcmxv
Y2tsb3N0IGV2ZW50IGlzIGRpc3BhCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFT
UyB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgaXMgZGVmaW5lZC4KK1BBU1Mgd2luZG93LnRl
c3RSdW5uZXIgaXMgZGVmaW5lZC4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdFBvaW50ZXIuaXNMb2Nr
ZWQgaXMgdHJ1ZQogUEFTUyBkb2N1bWVudC53ZWJraXRQb2ludGVyTG9ja0VsZW1lbnQgaXMgdGFy
Z2V0ZGl2CiBKYXZhU2NyaXB0IGluaXRpYXRlZCB1bmxvY2suCkluZGV4OiBMYXlvdXRUZXN0cy9w
b2ludGVyLWxvY2svcG9pbnRlcmxvY2tsb3N0LWV2ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC5odG1sCShyZXZpc2lv
biAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tsb3N0LWV2
ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAKIAogICAgIGRlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgcG9pbnRlcmxvY2tsb3N0IGV2ZW50IGlzIGRpc3BhdGNoZWQuIikKICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0gICAgc2hvdWxkQmVEZWZpbmVkKCJ3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIiKTsKKyAgICBzaG91bGRCZURlZmluZWQoIndpbmRvdy50
ZXN0UnVubmVyIik7CiAKICAgICB0YXJnZXRkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0Iik7CiAKQEAgLTkyLDcgKzkyLDcgQEAKICAgICAgICAgICAgIGRlYnVnKCJIb3N0IGlu
aXRpYXRlZCB1bmxvY2suIikKICAgICAgICAgICAgIGxvY2tjaGFuZ2VUb1VubG9ja2VkUmVjZWlw
dHMgPSAwOwogICAgICAgICAgICAgbG9ja2xvc3RyZWNlaXB0cyA9IDA7Ci0gICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kaWRMb3NlUG9pbnRlckxvY2soKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlkTG9zZVBvaW50ZXJMb2NrKCk7CiAgICAgICAgIH0sCiAgICAgICAgIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIC8vIGxvY2tsb3N0SGFuZGxlciB3aWxsIGNhdGNoIHVubG9j
a3MgYW5kIGNhbGwgZG9OZXh0U3RlcCB0byBicmluZyB1cyBoZXJlLgpJbmRleDogTGF5b3V0VGVz
dHMvcHJpbnRpbmcvY29tcG9zaXRpbmctbGF5ZXItcHJpbnRpbmcuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wcmludGluZy9jb21wb3NpdGluZy1sYXllci1wcmludGluZy5odG1sCShy
ZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9jb21wb3NpdGluZy1sYXll
ci1wcmludGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw4ICsxMiw4IEBACiAgICAgfQog
ICA8L3N0eWxlPgogICA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcmludGluZygpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuc2V0UHJpbnRpbmcoKTsKICAgPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL2lmcmFt
ZS1wcmludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3ByaW50aW5nL2lmcmFtZS1w
cmludC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9pZnJh
bWUtcHJpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPHNj
cmlwdD4KLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRQcmludGluZygpOworICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5zZXRQcmludGluZygpOwogPC9zY3JpcHQ+CiA8Ym9keT4KICAgPGlmcmFtZSBz
cmM9Ii4vcmVzb3VyY2VzL2lmcmFtZS1zdWJmcmFtZS5odG1sIiBmcmFtZWJvcmRlcj0iMSIgaGVp
Z2h0PSIxMDAiPjwvaWZyYW1lPgpJbmRleDogTGF5b3V0VGVzdHMvcHJpbnRpbmcvbWVkaWEtcXVl
cmllcy1wcmludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3ByaW50aW5nL21lZGlh
LXF1ZXJpZXMtcHJpbnQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJp
bnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw4ICsx
NSw4IEBAIGRpdiB7CiB9CiA8L3N0eWxlPgogPHNjcmlwdD4KLSAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcmludGluZygpOwor
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRQcmludGluZygpOwog
PC9zY3JpcHQ+CiA8Ym9keT4KICAgPGRpdj48L2Rpdj4KSW5kZXg6IExheW91dFRlc3RzL3ByaW50
aW5nL251bWJlck9mUGFnZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3ByaW50aW5nL251bWJlck9mUGFnZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjA0MTEpCisr
KyBMYXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2VzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLVRlc3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLm51
bWJlck9mUGFnZXMoKQorVGVzdCBmb3IgdGVzdFJ1bm5lci5udW1iZXJPZlBhZ2VzKCkKIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdl
LWNvdW50LWxheW91dC1vdmVyZmxvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3By
aW50aW5nL3BhZ2UtY291bnQtbGF5b3V0LW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkK
KysrIExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtY291bnQtbGF5b3V0LW92ZXJmbG93Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEzLDIwICsxMywyMCBAQCBwIHsKIAogZnVuY3Rpb24gcnVuVGVz
dCgpCiB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3
aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHZh
ciBsaW5lcyA9IFsgJ2xpbmU8YnI+JyBdOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNzsgaSsr
KQogICAgICAgICBsaW5lcyA9IGxpbmVzLmNvbmNhdChsaW5lcyk7CiAgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSAnPHA+JyArIGxpbmVzLmpvaW4oJycpICsgJzwvcD4nOwotICAgIGRvY3Vt
ZW50LmJvZHkudGV4dENvbnRlbnQgPSAnV2hlbiBwcmludGluZywgbGF5b3V0IG92ZXJmbG93IG11
c3QgYmUgY2xlYXJlZCBhZnRlciBjdXJyZW50IGRvY3VtZW50IHNpemUgaXMgcXVlcmllZDogJyAr
ICAobGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdlcygpID4gMSA/ICdQQVNTJyA6ICdG
QUlMJyk7CisgICAgZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCA9ICdXaGVuIHByaW50aW5nLCBs
YXlvdXQgb3ZlcmZsb3cgbXVzdCBiZSBjbGVhcmVkIGFmdGVyIGN1cnJlbnQgZG9jdW1lbnQgc2l6
ZSBpcyBxdWVyaWVkOiAnICsgICh0ZXN0UnVubmVyLm51bWJlck9mUGFnZXMoKSA+IDEgPyAnUEFT
UycgOiAnRkFJTCcpOwogfQogCiA8L3NjcmlwdD4KIDxoZWFkPgogPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotVGhpcyB0ZXN0IG5lZWRzIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB0byBy
dW4uCitUaGlzIHRlc3QgbmVlZHMgd2luZG93LnRlc3RSdW5uZXIgdG8gcnVuLgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1jb3VudC1yZWxheW91dC1z
aHJpbmsuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWNvdW50
LXJlbGF5b3V0LXNocmluay5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9w
cmludGluZy9wYWdlLWNvdW50LXJlbGF5b3V0LXNocmluay5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC05LDE1ICs5LDE1IEBACiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICghd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIHZhciBibG9jayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0Jyk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykKICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChibG9jay5jbG9uZU5vZGUodHJ1ZSkpOwogCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIHZhciBwYWdlcyA9IGxheW91dFRlc3RD
b250cm9sbGVyLm51bWJlck9mUGFnZXMoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICB2YXIgcGFnZXMgPSB0ZXN0UnVubmVyLm51bWJlck9mUGFnZXMoKTsKICAgICBkb2N1bWVu
dC5ib2R5LnRleHRDb250ZW50ID0gJ0RvY3VtZW50IGhhcyAnICsgcGFnZXMgKyAnIHBhZ2VzLic7
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtY291bnQtd2l0aC1vbmUtd29y
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtY291bnQtd2l0
aC1vbmUtd29yZC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGlu
Zy9wYWdlLWNvdW50LXdpdGgtb25lLXdvcmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0
LDggQEAKIHRlc3QKIDwvcHJlPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIHZh
ciBtc2cgPSAnQSBwYWdlIHdpdGggb25seSBvbmUgbGluZSBzaG91bGQgYmUgcHJpbnRlZCBpbiBv
bmUgcGFnZS5cbic7CiAgICAgdmFyIHBhc3MgPSB0cnVlOwpAQCAtMTMsNyArMTMsNyBAQCBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgLy8gVGVzdCB0aGUgcmFuZ2UgYXJv
dW5kIEE0IHBvcnRyYWl0IHBhcGVyIHNpemUKICAgICBmb3IgKHZhciBpID0gNTMwOyBpIDwgNTYw
OyBpKyspIHsKICAgICAgICAgZm9yICh2YXIgaiA9IDczMDsgaiA8IDc2MDsgaisrKSB7Ci0gICAg
ICAgICAgICB2YXIgbnVtYmVyT2ZQYWdlcyA9IGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9m
UGFnZXMoaSwgaik7CisgICAgICAgICAgICB2YXIgbnVtYmVyT2ZQYWdlcyA9IHRlc3RSdW5uZXIu
bnVtYmVyT2ZQYWdlcyhpLCBqKTsKIAogICAgICAgICAgICAgaWYgKG51bWJlck9mUGFnZXMgIT0g
MSkgewogICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKSW5kZXg6IExheW91dFRlc3RzL3By
aW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEtZGlzcGxheS1ub25lLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS1kaXNwbGF5LW5vbmUuaHRtbAko
cmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0
YS1kaXNwbGF5LW5vbmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsMTEgKzE4LDExIEBAIGZ1
bmN0aW9uIHRlc3RNYW51YWxseSgpIHsKICAgICB3aW5kb3cucHJpbnQoKTsKIH0KIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogCiAgICAgLy8gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBmb2xsb3dpbmcgbGlu
ZSBkb2Vzbid0IGNhdXNlIGEgY3Jhc2guCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpOworICAgIHRlc3RS
dW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQp
OwogCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVySFRNTCA9ICJQ
QVNTIjsKIH0KSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtZm9ybWF0
LWRhdGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmlu
dGluZy9wYWdlLWZvcm1hdC1kYXRhLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTUs
NjggKzE1LDY4IEBAIFRlc3QgdmlzaWJpbGl0eTogdmlzaWJsZQogUEFTUyBpbnRlcm5hbHMuaXNQ
YWdlQm94VmlzaWJsZShkb2N1bWVudCwgMCkgaXMgdHJ1ZQogCiBUZXN0IGRlZmF1bHQgcGFnZSBz
aXplCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwg
MiwgMywgNCkKK1BBU1MgdGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMs
IDQpCiBUZXN0IGF1dG8gcGFnZSBzaXplCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMCwg
MjAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKK1BBU1MgdGVzdFJ1bm5lci5wYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAsIDIwMCkn
ICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGxhbmRzY2FwZQotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkgaXMgJygyMDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCi1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDIwMCwgMTAwLCAx
LCAyLCAzLCA0KSBpcyAnKDIwMCwgMTAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKK1BBU1Mg
dGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkgaXMgJygyMDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCitQQVNTIHRlc3RS
dW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMjAwLCAxMDAsIDEsIDIsIDMsIDQp
IGlzICcoMjAwLCAxMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBwb3J0cmFpdAot
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMs
IDQpCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KDAsIDIwMCwgMTAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwg
MiwgMywgNCkKK1BBU1MgdGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAx
MDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMs
IDQpCitQQVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMjAwLCAx
MDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwLCAyMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQog
VGVzdCBhNQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBp
eGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1TaXplKDE0OCwgMjEwKSArIHB4TWFy
Z2lucygxLCAyLCAzLCA0KQorUEFTUyB0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMTQ4LCAyMTApICsgcHhNYXJn
aW5zKDEsIDIsIDMsIDQpCiBUZXN0IGE1IGxhbmRzY2FwZQotUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkg
aXMgbW1TaXplKDIxMCwgMTQ4KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyB0ZXN0UnVu
bmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBp
cyBtbVNpemUoMjEwLCAxNDgpICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IHBvcnRyYWl0
IGE0Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMjEwLCAyOTcpICsgcHhNYXJnaW5z
KDEsIDIsIDMsIDQpCitQQVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyMTAsIDI5NykgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkKIFRlc3QgYTMKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyOTcs
IDQyMCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKK1BBU1MgdGVzdFJ1bm5lci5wYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1TaXplKDI5Nywg
NDIwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBiNQotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywg
NCkgaXMgbW1TaXplKDE3NiwgMjUwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyB0ZXN0
UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0
KSBpcyBtbVNpemUoMTc2LCAyNTApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGI0Ci1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEw
MCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMjUwLCAzNTMpICsgcHhNYXJnaW5zKDEsIDIs
IDMsIDQpCitQQVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAw
LCAyMDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyNTAsIDM1MykgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkKIFRlc3QgbGV0dGVyCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBpbmNoU2l6ZSg4LjUs
IDExKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyB0ZXN0UnVubmVyLnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBpbmNoU2l6ZSg4LjUs
IDExKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQogVGVzdCBsZWdhbAotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkgaXMgaW5jaFNpemUoOC41LCAxNCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKK1BBU1Mg
dGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkgaXMgaW5jaFNpemUoOC41LCAxNCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3Qg
bGVkZ2VyCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBpbmNoU2l6ZSgxMSwgMTcpICsgcHhNYXJn
aW5zKDEsIDIsIDMsIDQpCitQQVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhl
bHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzIGluY2hTaXplKDExLCAxNykgKyBweE1hcmdp
bnMoMSwgMiwgMywgNCkKIFRlc3QgMTBjbQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdl
U2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgbW1TaXpl
KDEwMCwgMTAwKSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyB0ZXN0UnVubmVyLnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUo
MTAwLCAxMDApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IDIwY20geCAzMGNtCi1QQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwg
MjAwLCAxLCAyLCAzLCA0KSBpcyBtbVNpemUoMjAwLCAzMDApICsgcHhNYXJnaW5zKDEsIDIsIDMs
IDQpCitQQVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAy
MDAsIDEsIDIsIDMsIDQpIGlzIG1tU2l6ZSgyMDAsIDMwMCkgKyBweE1hcmdpbnMoMSwgMiwgMywg
NCkKIFRlc3QgMTAwMDBweCAyMDAwMHB4Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAw
LCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCitQQVNTIHRlc3RSdW5uZXIucGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAs
IDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRlc3QgaW52YWxpZCBwYWdlIHNpemU6
IC0xMGNtCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJn
aW5zKDEsIDIsIDMsIDQpCitQQVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhl
bHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdp
bnMoMSwgMiwgMywgNCkKIFRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGE0IGE0Ci1QQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCitQ
QVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkKIFRl
c3QgaW52YWxpZCBwYWdlIHNpemU6IGxhbmRzY2FwZSBwb3J0cmFpdAotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyB0
ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAz
LCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGlu
dmFsaWQgcGFnZSBzaXplOiAxMGNtIGxldHRlcgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygx
MDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyB0ZXN0UnVubmVyLnBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEw
MDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGludmFsaWQgcGFnZSBz
aXplOiAxMGNtIDEwY20gMTBjbQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwgMjAw
MDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KQorUEFTUyB0ZXN0UnVubmVyLnBhZ2VTaXplQW5k
TWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAw
MCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpCiBUZXN0IGludmFsaWQgcGFnZSBzaXplOiBlbXB0
eQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygw
LCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygx
LCAyLCAzLCA0KQorUEFTUyB0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAs
IDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEs
IDIsIDMsIDQpCiAKIFRlc3QgMHB4IG1hcmdpbnMKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICco
MTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMCwgMCwgMCwgMCkKK1BBU1MgdGVzdFJ1bm5lci5w
YWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygx
MDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygwLCAwLCAwLCAwKQogVGVzdCBub24temVybyBtYXJn
aW5zCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
KDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5z
KDEwLCAyMCwgNDAsIDgwKQorUEFTUyB0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSBpcyAnKDEwMDAwLCAyMDAwMCknICsgcHhNYXJn
aW5zKDEwLCAyMCwgNDAsIDgwKQogVGVzdCBwZXJjZW50YWdlIG1hcmdpbgotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCAx
MDApCitQQVNTIHRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAy
MDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoODAwLCA0MDAs
IDIwMCwgMTAwKQogVGVzdCBtYXJnaW46IGF1dG8gNCUgMiUgMSUKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMs
IDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgNDAwLCAyMDAsIDEwMCkKK1BB
U1MgdGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwg
MiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCA0MDAsIDIwMCwgMTAw
KQogVGVzdCBtYXJnaW46IDglIGF1dG8gMiUgMSUKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICco
MTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoODAwLCAyLCAyMDAsIDEwMCkKK1BBU1MgdGVzdFJ1
bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkg
aXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDIsIDIwMCwgMTAwKQogVGVzdCBt
YXJnaW46IDglIDQlIGF1dG8gMSUKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIw
MDAwKScgKyBweE1hcmdpbnMoODAwLCA0MDAsIDMsIDEwMCkKK1BBU1MgdGVzdFJ1bm5lci5wYWdl
U2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAw
MCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDQwMCwgMywgMTAwKQogVGVzdCBtYXJnaW46IDgl
IDQlIDIlIGF1dG8KLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5z
SW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBw
eE1hcmdpbnMoODAwLCA0MDAsIDIwMCwgNCkKK1BBU1MgdGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1h
cmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDAp
JyArIHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCA0KQogVGVzdCB2aXNpYmlsaXR5OiBoaWRkZW4K
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwg
MTAwLCAyMDAsIDEsIDIsIDMsIDQpIGlzICcoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoODAw
LCA0MDAsIDIwMCwgNCkKK1BBU1MgdGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkgaXMgJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lu
cyg4MDAsIDQwMCwgMjAwLCA0KQogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
SW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWZvcm1hdC1kYXRhLmh0bWwJKHJldmlz
aW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsOCBAQAogICAgICAgICByZXR1cm4gIiAiICsg
dG9wICsgIiAiICsgcmlnaHQgKyAiICIgKyBib3R0b20gKyAiICIgKyBsZWZ0OwogICAgIH0KIAot
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgICAgICAvLyBQYWdlIGJveCB2
aXNpYmlsaXR5IHRlc3RzLgogCkBAIC02Miw5MyArNjIsOTMgQEAKICAgICAgICAgLy8gUGFnZSBz
aXplIHRlc3RzCiAKICAgICAgICAgZGVidWcoIlRlc3QgZGVmYXVsdCBwYWdlIHNpemUiKTsKLSAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMCwgMjAwKScgKyBweE1hcmdp
bnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwLCAyMDAp
JyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGF1dG8g
cGFnZSBzaXplIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTphdXRvO30iKTsK
LSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMCwgMjAwKScgKyBweE1h
cmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwLCAy
MDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IGxh
bmRzY2FwZSIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6bGFuZHNjYXBlO30i
KTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDIwMCwgMTAwKScgKyBw
eE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDIwMCwgMTAwLCAxLCAyLCAzLCA0
KSIsICInKDIwMCwgMTAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAgc2hv
dWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAs
IDEsIDIsIDMsIDQpIiwgIicoMjAwLCAxMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwor
ICAgICAgICBzaG91bGRCZSgidGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygw
LCAyMDAsIDEwMCwgMSwgMiwgMywgNCkiLCAiJygyMDAsIDEwMCknICsgcHhNYXJnaW5zKDEsIDIs
IDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgcG9ydHJhaXQiKTsKICAgICAgICAgYXBw
ZW5kU3R5bGUoIkBwYWdlIHtzaXplOnBvcnRyYWl0O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAw
LCAxLCAyLCAzLCA0KSIsICInKDEwMCwgMjAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsK
LSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDIwMCwgMTAwLCAxLCAyLCAzLCA0KSIsICInKDEwMCwgMjAwKScgKyBweE1h
cmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNp
emVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwLCAy
MDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOworICAgICAgICBzaG91bGRCZSgidGVzdFJ1
bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAyMDAsIDEwMCwgMSwgMiwgMywgNCki
LCAiJygxMDAsIDIwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVi
dWcoIlRlc3QgYTUiKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmE1O30iKTsK
LSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUoMTQ4LCAyMTApICsg
cHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CisgICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLnBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNp
emUoMTQ4LCAyMTApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWco
IlRlc3QgYTUgbGFuZHNjYXBlIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTph
NSBsYW5kc2NhcGU7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1t
U2l6ZSgyMTAsIDE0OCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAgc2hvdWxk
QmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIiwgIm1tU2l6ZSgyMTAsIDE0OCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsK
IAogICAgICAgICBkZWJ1ZygiVGVzdCBwb3J0cmFpdCBhNCIpOwogICAgICAgICBhcHBlbmRTdHls
ZSgiQHBhZ2Uge3NpemU6cG9ydHJhaXQgYTQ7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIiwgIm1tU2l6ZSgyMTAsIDI5NykgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsK
KyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgyMTAsIDI5NykgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBhMyIpOwogICAgICAgICBhcHBl
bmRTdHlsZSgiQHBhZ2Uge3NpemU6YTM7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIs
IDMsIDQpIiwgIm1tU2l6ZSgyOTcsIDQyMCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwg
MTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgyOTcsIDQyMCkgKyBweE1hcmdpbnMoMSwg
MiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBiNSIpOwogICAgICAgICBhcHBlbmRT
dHlsZSgiQHBhZ2Uge3NpemU6YjU7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMs
IDQpIiwgIm1tU2l6ZSgxNzYsIDI1MCkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAg
ICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAw
LCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgxNzYsIDI1MCkgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBiNCIpOwogICAgICAgICBhcHBlbmRTdHls
ZSgiQHBhZ2Uge3NpemU6YjQ7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQp
IiwgIm1tU2l6ZSgyNTAsIDM1MykgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAg
c2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAy
MDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgyNTAsIDM1MykgKyBweE1hcmdpbnMoMSwgMiwgMywg
NCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBsZXR0ZXIiKTsKICAgICAgICAgYXBwZW5kU3R5
bGUoIkBwYWdlIHtzaXplOmxldHRlcjt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwg
MywgNCkiLCAiaW5jaFNpemUoOC41LCAxMSkgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwg
MTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgImluY2hTaXplKDguNSwgMTEpICsgcHhNYXJnaW5zKDEs
IDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgbGVnYWwiKTsKICAgICAgICAgYXBw
ZW5kU3R5bGUoIkBwYWdlIHtzaXplOmxlZ2FsO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAx
LCAyLCAzLCA0KSIsICJpbmNoU2l6ZSg4LjUsIDE0KSArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIp
OworICAgICAgICBzaG91bGRCZSgidGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiaW5jaFNpemUoOC41LCAxNCkgKyBweE1hcmdp
bnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBsZWRnZXIiKTsKICAgICAg
ICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmxlZGdlcjt9Iik7Ci0gICAgICAgIHNob3VsZEJl
KCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAs
IDIwMCwgMSwgMiwgMywgNCkiLCAiaW5jaFNpemUoMTEsIDE3KSArIHB4TWFyZ2lucygxLCAyLCAz
LCA0KSIpOworICAgICAgICBzaG91bGRCZSgidGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiaW5jaFNpemUoMTEsIDE3KSArIHB4
TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJUZXN0IDEwY20iKTsKICAg
ICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOjEwY207fSIpOwotICAgICAgICBzaG91bGRC
ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAw
LCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgxMDAsIDEwMCkgKyBweE1hcmdpbnMoMSwgMiwg
MywgNCkiKTsKKyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5z
SW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIm1tU2l6ZSgxMDAsIDEwMCkgKyBw
eE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCAyMGNtIHggMzBj
bSIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge3NpemU6MjBjbSAzMGNtO30iKTsKLSAg
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUoMjAwLCAzMDApICsgcHhN
YXJnaW5zKDEsIDIsIDMsIDQpIik7CisgICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICJtbVNpemUo
MjAwLCAzMDApICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRl
c3QgMTAwMDBweCAyMDAwMHB4Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTox
MDAwMHB4IDIwMDAwcHg7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwg
IicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsKKyAgICAgICAgc2hv
dWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAs
IDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCki
KTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTogLTEwY20iKTsKICAg
ICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOi0xMGNtO30iKTsKLSAgICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEw
MCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIs
IDMsIDQpIik7CisgICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsg
cHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBw
YWdlIHNpemU6IGE0IGE0Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTphNCBh
NDt9Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAw
MDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOworICAgICAgICBzaG91bGRCZSgidGVzdFJ1
bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCki
LCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAg
IGRlYnVnKCJUZXN0IGludmFsaWQgcGFnZSBzaXplOiBsYW5kc2NhcGUgcG9ydHJhaXQiKTsKICAg
ICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOmxhbmRzY2FwZSBwb3J0cmFpdDt9Iik7Ci0g
ICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4
TWFyZ2lucygxLCAyLCAzLCA0KSIpOworICAgICAgICBzaG91bGRCZSgidGVzdFJ1bm5lci5wYWdl
U2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAw
MCwgMjAwMDApJyArIHB4TWFyZ2lucygxLCAyLCAzLCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCJU
ZXN0IGludmFsaWQgcGFnZSBzaXplOiAxMGNtIGxldHRlciIpOwogICAgICAgICBhcHBlbmRTdHls
ZSgiQHBhZ2Uge3NpemU6MTBjbSBsZXR0ZXI7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsK
KyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiVGVzdCBpbnZhbGlkIHBhZ2Ugc2l6ZTog
MTBjbSAxMGNtIDEwY20iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHtzaXplOjEwY20g
MTBjbSAxMGNtO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEw
MDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CisgICAgICAgIHNob3VsZEJl
KCJ0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAy
LCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDIsIDMsIDQpIik7CiAK
ICAgICAgICAgZGVidWcoIlRlc3QgaW52YWxpZCBwYWdlIHNpemU6IGVtcHR5Iik7CiAgICAgICAg
IGFwcGVuZFN0eWxlKCJAcGFnZSB7c2l6ZTo7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAsIDEs
IDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoMSwgMiwgMywgNCkiKTsK
KyAgICAgICAgc2hvdWxkQmUoInRlc3RSdW5uZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMo
MCwgMTAwLCAyMDAsIDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMo
MSwgMiwgMywgNCkiKTsKIAogICAgICAgICBkZWJ1ZygiIik7CiAKQEAgLTE1Niw0MCArMTU2LDQw
IEBACiAKICAgICAgICAgZGVidWcoIlRlc3QgMHB4IG1hcmdpbnMiKTsKICAgICAgICAgYXBwZW5k
U3R5bGUoIkBwYWdlIHttYXJnaW46MHB4O30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRl
c3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAy
LCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDAsIDAsIDAsIDApIik7Cisg
ICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAs
IDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDAs
IDAsIDAsIDApIik7CiAKICAgICAgICAgZGVidWcoIlRlc3Qgbm9uLXplcm8gbWFyZ2lucyIpOwog
ICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2Uge21hcmdpbjoxMHB4IDIwcHggNDBweCA4MHB4O30i
KTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCkn
ICsgcHhNYXJnaW5zKDEwLCAyMCwgNDAsIDgwKSIpOworICAgICAgICBzaG91bGRCZSgidGVzdFJ1
bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCki
LCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucygxMCwgMjAsIDQwLCA4MCkiKTsKIAogICAg
ICAgICBkZWJ1ZygiVGVzdCBwZXJjZW50YWdlIG1hcmdpbiIpOwogICAgICAgICBhcHBlbmRTdHls
ZSgiQHBhZ2Uge21hcmdpbjogOCUgNCUgMiUgMSU7fSIpOwotICAgICAgICBzaG91bGRCZSgibGF5
b3V0VGVzdENvbnRyb2xsZXIucGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoMCwgMTAwLCAyMDAs
IDEsIDIsIDMsIDQpIiwgIicoMTAwMDAsIDIwMDAwKScgKyBweE1hcmdpbnMoODAwLCA0MDAsIDIw
MCwgMTAwKSIpOworICAgICAgICBzaG91bGRCZSgidGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyAr
IHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCAxMDApIik7CiAKICAgICAgICAgZGVidWcoIlRlc3Qg
bWFyZ2luOiBhdXRvIDQlIDIlIDElIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFy
Z2luOiBhdXRvIDQlIDIlIDElO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0
KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEsIDQwMCwgMjAwLCAxMDApIik7Cisg
ICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAs
IDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDEs
IDQwMCwgMjAwLCAxMDApIik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgbWFyZ2luOiA4JSBhdXRv
IDIlIDElIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOiA4JSBhdXRvIDIl
IDElO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXpl
QW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAy
MDAwMCknICsgcHhNYXJnaW5zKDgwMCwgMiwgMjAwLCAxMDApIik7CisgICAgICAgIHNob3VsZEJl
KCJ0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAy
LCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDgwMCwgMiwgMjAwLCAxMDAp
Iik7CiAKICAgICAgICAgZGVidWcoIlRlc3QgbWFyZ2luOiA4JSA0JSBhdXRvIDElIik7CiAgICAg
ICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7bWFyZ2luOiA4JSA0JSBhdXRvIDElO30iKTsKLSAgICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJn
aW5zKDgwMCwgNDAwLCAzLCAxMDApIik7CisgICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLnBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEw
MDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDgwMCwgNDAwLCAzLCAxMDApIik7CiAKICAgICAgICAg
ZGVidWcoIlRlc3QgbWFyZ2luOiA4JSA0JSAyJSBhdXRvIik7CiAgICAgICAgIGFwcGVuZFN0eWxl
KCJAcGFnZSB7bWFyZ2luOiA4JSA0JSAyJSBhdXRvO30iKTsKLSAgICAgICAgc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKDAsIDEwMCwgMjAw
LCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsgcHhNYXJnaW5zKDgwMCwgNDAwLCAy
MDAsIDQpIik7CisgICAgICAgIHNob3VsZEJlKCJ0ZXN0UnVubmVyLnBhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzKDAsIDEwMCwgMjAwLCAxLCAyLCAzLCA0KSIsICInKDEwMDAwLCAyMDAwMCknICsg
cHhNYXJnaW5zKDgwMCwgNDAwLCAyMDAsIDQpIik7CiAKICAgICAgICAgZGVidWcoIlRlc3Qgdmlz
aWJpbGl0eTogaGlkZGVuIik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7dmlzaWJpbGl0
eTpoaWRkZW59Iik7Ci0gICAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdl
U2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwgMSwgMiwgMywgNCkiLCAiJygxMDAw
MCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAwLCA0KSIpOworICAgICAgICBzaG91
bGRCZSgidGVzdFJ1bm5lci5wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscygwLCAxMDAsIDIwMCwg
MSwgMiwgMywgNCkiLCAiJygxMDAwMCwgMjAwMDApJyArIHB4TWFyZ2lucyg4MDAsIDQwMCwgMjAw
LCA0KSIpOwogCiAgICAgICAgIGRlYnVnKCIiKTsKIAogICAgIH0gZWxzZSB7Ci0gICAgICAgIHRl
c3RGYWlsZWQoIlRoaXMgdGVzdCBjYW4gYmUgcnVuIG9ubHkgd2l0aCB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIiKTsKKyAgICAgICAgdGVzdEZhaWxlZCgiVGhpcyB0ZXN0IGNhbiBiZSBydW4g
b25seSB3aXRoIHdpbmRvdy50ZXN0UnVubmVyIik7CiAgICAgfQogPC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVsZS1jc3MtdGV4dC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVsZS1jc3MtdGV4dC5odG1sCShyZXZp
c2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtY3NzLXRleHQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtOTcsOCArOTcsOCBAQCBwIHsKIDwvc3R5bGU+CiA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBw
cmludChzdHIpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtaW4tbWVk
aWEtcXVlcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1
bGUtaW4tbWVkaWEtcXVlcnkuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cHJpbnRpbmcvcGFnZS1ydWxlLWluLW1lZGlhLXF1ZXJ5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE2LDggKzE2LDggQEAgZGl2IHsKIH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcmludGlu
ZygpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0UHJpbnRpbmco
KTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGlu
Zy9wYWdlLXJ1bGUtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNTUgKzQsNTUgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiAKIERlZmF1bHQgbWFyZ2luIGlzIGF1dG8uCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAwKSBp
cyAiYXV0byIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4t
bGVmdCcsIDEpIGlzICJhdXRvIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVy
dHkoJ21hcmdpbi1sZWZ0JywgMikgaXMgImF1dG8iCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSBpcyAiYXV0byIKLVBBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICJhdXRvIgorUEFT
UyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAwKSBpcyAiYXV0byIKK1BB
U1MgdGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMSkgaXMgImF1dG8iCitQ
QVNTIHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIGlzICJhdXRvIgor
UEFTUyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSBpcyAiYXV0byIK
K1BBU1MgdGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgNCkgaXMgImF1dG8i
CiBTZXQgbWFyZ2luIHRvIDIwMHB4IHZpYSB1c2VyIHN0eWxlIHNoZWV0LgotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMCkgaXMgIjIwMCIKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIGlz
ICIyMDAiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxl
ZnQnLCAyKSBpcyAiMjAwIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHko
J21hcmdpbi1sZWZ0JywgMykgaXMgIjIwMCIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICIyMDAiCitQQVNTIHRlc3RSdW5uZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIGlzICIyMDAiCitQQVNTIHRlc3RSdW5uZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIGlzICIyMDAiCitQQVNTIHRlc3RSdW5uZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIGlzICIyMDAiCitQQVNTIHRlc3RSdW5uZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIGlzICIyMDAiCitQQVNTIHRlc3RSdW5uZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICIyMDAiCiBTZXQgbWFyZ2luIHRvIDEwMHB4
LgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0Jywg
MCkgaXMgIjEwMCIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJn
aW4tbGVmdCcsIDEpIGlzICIxMDAiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9w
ZXJ0eSgnbWFyZ2luLWxlZnQnLCAyKSBpcyAiMTAwIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMykgaXMgIjEwMCIKLVBBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICIxMDAiCitQQVNT
IHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIGlzICIxMDAiCitQQVNT
IHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIGlzICIxMDAiCitQQVNT
IHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIGlzICIxMDAiCitQQVNT
IHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIGlzICIxMDAiCitQQVNT
IHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICIxMDAiCiBTZXQg
bWFyZ2luIGZvciByaWdodCBwYWdlcyB0byA1MHB4LiBUaGUgZmlyc3QgcGFnZSBpcyBhIHJpZ2h0
IHBhZ2UuCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxl
ZnQnLCAwKSBpcyAiNTAiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgn
bWFyZ2luLWxlZnQnLCAxKSBpcyAiMTAwIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdl
UHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikgaXMgIjUwIgotUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMykgaXMgIjEwMCIKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICI1MCIKK1BB
U1MgdGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMCkgaXMgIjUwIgorUEFT
UyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAxKSBpcyAiMTAwIgorUEFT
UyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAyKSBpcyAiNTAiCitQQVNT
IHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIGlzICIxMDAiCitQQVNT
IHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICI1MCIKIFNldCBt
YXJnaW4gZm9yIGxlZnQgcGFnZXMgdG8gNzVweC4KLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIGlzICI1MCIKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIGlzICI3NSIKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIGlzICI1MCIK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMp
IGlzICI3NSIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4t
bGVmdCcsIDQpIGlzICI1MCIKK1BBU1MgdGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1s
ZWZ0JywgMCkgaXMgIjUwIgorUEFTUyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxl
ZnQnLCAxKSBpcyAiNzUiCitQQVNTIHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVm
dCcsIDIpIGlzICI1MCIKK1BBU1MgdGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0
JywgMykgaXMgIjc1IgorUEFTUyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQn
LCA0KSBpcyAiNTAiCiBTZXQgbWFyZ2luIGZvciB0aGUgZmlyc3QgcGFnZSB0byAxMjVweC4KLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIGlz
ICIxMjUiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxl
ZnQnLCAxKSBpcyAiNzUiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgn
bWFyZ2luLWxlZnQnLCAyKSBpcyAiNTAiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQ
cm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSBpcyAiNzUiCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCA0KSBpcyAiNTAiCitQQVNTIHRlc3RSdW5u
ZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIGlzICIxMjUiCitQQVNTIHRlc3RSdW5u
ZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIGlzICI3NSIKK1BBU1MgdGVzdFJ1bm5l
ci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikgaXMgIjUwIgorUEFTUyB0ZXN0UnVubmVy
LnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSBpcyAiNzUiCitQQVNTIHRlc3RSdW5uZXIu
cGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICI1MCIKIENoYW5nZSB0aGUgZG9jdW1l
bnQgZGlyZWN0aW9uIHRvIFJUTC4gVGhpcyBtYWtlcyB0aGUgZmlyc3QgcGFnZSBhIGxlZnQgcGFn
ZS4KLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcs
IDApIGlzICIxMjUiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFy
Z2luLWxlZnQnLCAxKSBpcyAiNTAiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9w
ZXJ0eSgnbWFyZ2luLWxlZnQnLCAyKSBpcyAiNzUiCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSBpcyAiNTAiCi1QQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCA0KSBpcyAiNzUiCitQQVNTIHRl
c3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIGlzICIxMjUiCitQQVNTIHRl
c3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIGlzICI1MCIKK1BBU1MgdGVz
dFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikgaXMgIjc1IgorUEFTUyB0ZXN0
UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSBpcyAiNTAiCitQQVNTIHRlc3RS
dW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIGlzICI3NSIKIENoZWNrIGZvbnQg
dXBkYXRlIGFuZCBsaW5lIGhlaWdodCBvdmVycmlkZS4KLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVByb3BlcnR5KCdsaW5lLWhlaWdodCcsIDApIGlzICIxODAiCi1QQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnZm9udC1mYW1pbHknLCAwKSBpcyAiQXJpYWwiCi1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnZm9udC1zaXplJywgMCkgaXMg
IjMwIgorUEFTUyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbGluZS1oZWlnaHQnLCAwKSBpcyAi
MTgwIgorUEFTUyB0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnZm9udC1mYW1pbHknLCAwKSBpcyAi
QXJpYWwiCitQQVNTIHRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdmb250LXNpemUnLCAwKSBpcyAi
MzAiCiBDaGVjayBAbWVkaWEgcnVsZXMuCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQ
cm9wZXJ0eSgnc2l6ZScsIDApIGlzICIxMDAgMjAwIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlUHJvcGVydHkoJ3NpemUnLCAwKSBpcyAiMTUwIDI1MCIKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZVByb3BlcnR5KCdzaXplJywgMCkgaXMgIjE1MCAyNTAiCitQQVNTIHRlc3RS
dW5uZXIucGFnZVByb3BlcnR5KCdzaXplJywgMCkgaXMgIjEwMCAyMDAiCitQQVNTIHRlc3RSdW5u
ZXIucGFnZVByb3BlcnR5KCdzaXplJywgMCkgaXMgIjE1MCAyNTAiCitQQVNTIHRlc3RSdW5uZXIu
cGFnZVByb3BlcnR5KCdzaXplJywgMCkgaXMgIjE1MCAyNTAiCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5n
L3BhZ2UtcnVsZS1zZWxlY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmlu
dGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91
dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVsZS1zZWxlY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTYsODQgKzE2LDg0IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFk
X2VsZW1lbnQiKS5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpOwogICAgIH0KIAotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgICAgICBkZWJ1ZygiRGVmYXVsdCBtYXJnaW4g
aXMgYXV0by4iKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMCkiLCAiYXV0byIpOwotICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0
eSgnbWFyZ2luLWxlZnQnLCAxKSIsICJhdXRvIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIp
IiwgImF1dG8iKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMykiLCAiYXV0byIpOwotICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0
eSgnbWFyZ2luLWxlZnQnLCA0KSIsICJhdXRvIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMCkiLCAiYXV0byIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RSdW5uZXIucGFnZVByb3BlcnR5
KCdtYXJnaW4tbGVmdCcsIDEpIiwgImF1dG8iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAyKSIsICJhdXRvIik7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHko
J21hcmdpbi1sZWZ0JywgMykiLCAiYXV0byIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIiwgImF1dG8iKTsK
IAogICAgICAgICBkZWJ1ZygiU2V0IG1hcmdpbiB0byAyMDBweCB2aWEgdXNlciBzdHlsZSBzaGVl
dC4iKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclN0eWxlU2hlZXQoIkBw
YWdlIHsgbWFyZ2luOjIwMHB4OyB9IiwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDAp
IiwgIjIwMCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250
cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAxKSIsICIyMDAiKTsKLSAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHko
J21hcmdpbi1sZWZ0JywgMikiLCAiMjAwIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIiwg
IjIwMCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9s
bGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCA0KSIsICIyMDAiKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5hZGRVc2VyU3R5bGVTaGVldCgiQHBhZ2UgeyBtYXJnaW46MjAwcHg7IH0iLCB0cnVl
KTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0
eSgnbWFyZ2luLWxlZnQnLCAwKSIsICIyMDAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAxKSIsICIyMDAiKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgn
bWFyZ2luLWxlZnQnLCAyKSIsICIyMDAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSIsICIyMDAiKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFy
Z2luLWxlZnQnLCA0KSIsICIyMDAiKTsKIAogICAgICAgICBkZWJ1ZygiU2V0IG1hcmdpbiB0byAx
MDBweC4iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHsgbWFyZ2luOjEwMHB4OyB9Iik7
Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIiwgIjEwMCIpOwotICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxl
ZnQnLCAxKSIsICIxMDAiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikiLCAiMTAwIik7Ci0g
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVBy
b3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIiwgIjEwMCIpOwotICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQn
LCA0KSIsICIxMDAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVy
LnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAwKSIsICIxMDAiKTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAx
KSIsICIxMDAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBh
Z2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAyKSIsICIxMDAiKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAzKSIs
ICIxMDAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQ
cm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCA0KSIsICIxMDAiKTsKIAogICAgICAgICBkZWJ1ZygiU2V0
IG1hcmdpbiBmb3IgcmlnaHQgcGFnZXMgdG8gNTBweC4gVGhlIGZpcnN0IHBhZ2UgaXMgYSByaWdo
dCBwYWdlLiIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luOjUw
cHg7IH0iKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMCkiLCAiNTAiKTsKLSAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21h
cmdpbi1sZWZ0JywgMSkiLCAiMTAwIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIiwgIjUw
Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIiwgIjEwMCIpOwotICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2lu
LWxlZnQnLCA0KSIsICI1MCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RS
dW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDApIiwgIjUwIik7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0
JywgMSkiLCAiMTAwIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5l
ci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikiLCAiNTAiKTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAz
KSIsICIxMDAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBh
Z2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCA0KSIsICI1MCIpOwogCiAgICAgICAgIGRlYnVnKCJT
ZXQgbWFyZ2luIGZvciBsZWZ0IHBhZ2VzIHRvIDc1cHguIik7CiAgICAgICAgIGFwcGVuZFN0eWxl
KCJAcGFnZSA6bGVmdCB7IG1hcmdpbjo3NXB4OyB9Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcs
IDApIiwgIjUwIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIiwgIjc1Iik7Ci0gICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5
KCdtYXJnaW4tbGVmdCcsIDIpIiwgIjUwIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIiwg
Ijc1Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIiwgIjUwIik7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0Jywg
MCkiLCAiNTAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBh
Z2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAxKSIsICI3NSIpOworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIiwg
IjUwIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJv
cGVydHkoJ21hcmdpbi1sZWZ0JywgMykiLCAiNzUiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCA0KSIsICI1MCIp
OwogCiAgICAgICAgIGRlYnVnKCJTZXQgbWFyZ2luIGZvciB0aGUgZmlyc3QgcGFnZSB0byAxMjVw
eC4iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIDpmaXJzdCB7IG1hcmdpbjoxMjVweDsg
fSIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVy
LnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAwKSIsICIxMjUiKTsKLSAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdp
bi1sZWZ0JywgMSkiLCAiNzUiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMikiLCAiNTAiKTsK
LSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdl
UHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMykiLCAiNzUiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0
JywgNCkiLCAiNTAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVy
LnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAwKSIsICIxMjUiKTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAx
KSIsICI3NSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RSdW5uZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDIpIiwgIjUwIik7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMykiLCAi
NzUiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9w
ZXJ0eSgnbWFyZ2luLWxlZnQnLCA0KSIsICI1MCIpOwogCiAgICAgICAgIGRlYnVnKCJDaGFuZ2Ug
dGhlIGRvY3VtZW50IGRpcmVjdGlvbiB0byBSVEwuIFRoaXMgbWFrZXMgdGhlIGZpcnN0IHBhZ2Ug
YSBsZWZ0IHBhZ2UuIik7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJodG1sX2Vs
ZW1lbnQiKS5zZXRBdHRyaWJ1dGUoImRpciIsICJydGwiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0
JywgMCkiLCAiMTI1Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDEpIiwgIjUwIik7Ci0gICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3Bl
cnR5KCdtYXJnaW4tbGVmdCcsIDIpIiwgIjc1Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMp
IiwgIjUwIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRy
b2xsZXIucGFnZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDQpIiwgIjc1Iik7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0
JywgMCkiLCAiMTI1Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5l
ci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgMSkiLCAiNTAiKTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCAy
KSIsICI3NSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RSdW5uZXIucGFn
ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcsIDMpIiwgIjUwIik7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ21hcmdpbi1sZWZ0JywgNCkiLCAi
NzUiKTsKIAogICAgICAgICBkZWJ1ZygiQ2hlY2sgZm9udCB1cGRhdGUgYW5kIGxpbmUgaGVpZ2h0
IG92ZXJyaWRlLiIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2UgeyBsaW5lLWhlaWdodDox
ZW07IH0iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHsgZm9udC1mYW1pbHk6RnV0dXJh
OyB9Iik7CiAgICAgICAgIGFwcGVuZFN0eWxlKCJAcGFnZSB7IGZvbnQ6MTVweC82ZW0gQXJpYWw7
IH0iKTsKICAgICAgICAgYXBwZW5kU3R5bGUoIkBwYWdlIHsgem9vbToyMDAlOyB9Iik7Ci0gICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3Bl
cnR5KCdsaW5lLWhlaWdodCcsIDApIiwgIjE4MCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnZm9udC1mYW1pbHknLCAw
KSIsICJBcmlhbCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RD
b250cm9sbGVyLnBhZ2VQcm9wZXJ0eSgnZm9udC1zaXplJywgMCkiLCAiMzAiKTsKKyAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVubmVyLnBhZ2VQcm9wZXJ0eSgnbGluZS1oZWln
aHQnLCAwKSIsICIxODAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0UnVu
bmVyLnBhZ2VQcm9wZXJ0eSgnZm9udC1mYW1pbHknLCAwKSIsICJBcmlhbCIpOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RSdW5uZXIucGFnZVByb3BlcnR5KCdmb250LXNpemUn
LCAwKSIsICIzMCIpOwogICAgICAgICBhcHBlbmRTdHlsZSgiQHBhZ2UgeyB6b29tOjEwMCU7IH0i
KTsKIAogICAgICAgICBkZWJ1ZygiQ2hlY2sgQG1lZGlhIHJ1bGVzLiIpOwogICAgICAgICBhcHBl
bmRTdHlsZSgiQHBhZ2UgeyBzaXplOjEwMHB4IDIwMHB4OyB9Iik7Ci0gICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5KCdzaXplJywg
MCkiLCAiMTAwIDIwMCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RSdW5u
ZXIucGFnZVByb3BlcnR5KCdzaXplJywgMCkiLCAiMTAwIDIwMCIpOwogICAgICAgICBhcHBlbmRT
dHlsZSgiQG1lZGlhIHByaW50IHsgQHBhZ2UgeyBzaXplOjE1MHB4IDI1MHB4OyB9IH0iKTsKLSAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJv
cGVydHkoJ3NpemUnLCAwKSIsICIxNTAgMjUwIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ3NpemUnLCAwKSIsICIxNTAgMjUwIik7CiAg
ICAgICAgIGFwcGVuZFN0eWxlKCJAbWVkaWEgc2NyZWVuIHsgQHBhZ2UgeyBzaXplOjMwMHB4IDUw
MHB4OyB9IH0iKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYWdlUHJvcGVydHkoJ3NpemUnLCAwKSIsICIxNTAgMjUwIik7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5wYWdlUHJvcGVydHkoJ3NpemUnLCAwKSIs
ICIxNTAgMjUwIik7CiAKICAgICB9IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVkKCJUaGlzIHRl
c3QgY2FuIGJlIHJ1biBvbmx5IHdpdGggd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyIik7Cisg
ICAgICAgIHRlc3RGYWlsZWQoIlRoaXMgdGVzdCBjYW4gYmUgcnVuIG9ubHkgd2l0aCB3aW5kb3cu
dGVzdFJ1bm5lciIpOwogICAgIH0KIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9w
cmludGluZy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlTnVtZXJG
b3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBA
Ci1UZXN0IGZvciBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQo
KQorVGVzdCBmb3IgdGVzdFJ1bm5lci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoKQogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3ByaW50
LWNsb3NlLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvcHJp
bnQtY2xvc2UtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJp
bnRpbmcvcHJpbnQtY2xvc2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOCArMSwx
OCBAQAogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAvLyBEdW1wUmVuZGVyVHJlZSBy
ZXF1aXJlcyB3YWl0VW50aWxEb25lIGZvciB0aGlzIHRlc3QgZXZlbiB0aG91Z2ggaXQncyBub3Qg
bmVlZGVkLgotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5X
aW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29t
cGxldGUodHJ1ZSk7CiB9CiB2YXIgdyA9IHdpbmRvdy5vcGVuKCJkYXRhOnRleHQvaHRtbCxmb28i
KTsKIHcucHJpbnQoKTsKIHcuY2xvc2UoKTsKIAogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkg
ewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiBUaGlzIHRlc3Qg
cGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9w
c2V1ZG8tY2xhc3Mtb3V0c2lkZS1wYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cHJpbnRpbmcvcHNldWRvLWNsYXNzLW91dHNpZGUtcGFnZS5odG1sCShyZXZpc2lvbiAxMjA0MTEp
CisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9wc2V1ZG8tY2xhc3Mtb3V0c2lkZS1wYWdlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDggQEAKICAgICB9CiA8L3N0eWxlPgogPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIHsKSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3JldHVybi1mcm9tLXByaW50aW5nLW1v
ZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9yZXR1cm4tZnJvbS1w
cmludGluZy1tb2RlLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3ByaW50
aW5nL3JldHVybi1mcm9tLXByaW50aW5nLW1vZGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw4
ICs3LDggQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIGZ1bmN0aW9uIHRlc3Qo
KQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgndGVzdDEnKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIucGFnZU51bWJlckZvckVs
ZW1lbnRCeUlkKCd0ZXN0MScpOwogfQogPC9zY3JpcHQ+CiA8aGVhZD4KSW5kZXg6IExheW91dFRl
c3RzL3ByaW50aW5nL3NldFByaW50aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cHJpbnRpbmcvc2V0UHJpbnRpbmcuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVz
dHMvcHJpbnRpbmcvc2V0UHJpbnRpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDgg
QEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcmludGluZygpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0UHJpbnRpbmcoKTsKIDwvc2NyaXB0Pgog
PC9oZWFkPgogCkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9zaW11bHRhbmVvdXMtcG9zaXRp
b24tZmxvYXQtY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcv
c2ltdWx0YW5lb3VzLXBvc2l0aW9uLWZsb2F0LWNoYW5nZS5odG1sCShyZXZpc2lvbiAxMjA0MTEp
CisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9zaW11bHRhbmVvdXMtcG9zaXRpb24tZmxvYXQtY2hh
bmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDggKzEzLDggQEAKICAgICA8L2Rpdj4KICAg
ICA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDsKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpbnRpbmcoKTsK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFByaW50aW5nKCk7CiBk
b2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3Rz
L3ByaW50aW5nL3NpbmdsZS1saW5lLW11c3Qtbm90LWJlLXNwbGl0LWludG8tdHdvLXBhZ2VzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2luZ2xlLWxpbmUtbXVzdC1u
b3QtYmUtc3BsaXQtaW50by10d28tcGFnZXMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5
b3V0VGVzdHMvcHJpbnRpbmcvc2luZ2xlLWxpbmUtbXVzdC1ub3QtYmUtc3BsaXQtaW50by10d28t
cGFnZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsOCArMjIsOCBAQCBJZiBubyBsaW5lcyBh
cmUgc3BsaXQgaW50byB0d28gcGFnZXMsIHRoCiA8cD5PdmVyZmxvd2VkIGxpbmVzOjwvcD4KIDxw
cmUgaWQ9Im92ZXJmbG93ZWRMaW5lcyI+PC9wcmU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAK
IHZhciBzdHIgPSAiIjsKIGZvciAodmFyIGkgPSAwOyBpIDwgNDAwOyBpKyspIHsKSW5kZXg6IExh
eW91dFRlc3RzL3ByaW50aW5nL3dpZHRoLW92ZXJmbG93Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcHJpbnRpbmcvd2lkdGgtb3ZlcmZsb3cuaHRtbAkocmV2aXNpb24gMTIwNDExKQor
KysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvd2lkdGgtb3ZlcmZsb3cuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjEsOCArMjEsOCBAQCBJZiB0aGUgcmlnaHQgc2lkZSBvZiBhbnkgbGluZXMgaXMgcHJp
bnRlCiA8ZGl2IGlkPSJyZXN1bHQiPgogPC9kaXY+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcmludGluZygp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0UHJpbnRpbmcoKTsK
IAogdmFyIHRlc3RDYXNlcyA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7CiB2YXIgcmVz
dWx0ID0gIiI7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy96b29tZWQtZG9jdW1lbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy96b29tZWQtZG9jdW1lbnQuaHRt
bAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvem9vbWVkLWRvY3Vt
ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiB0ZXN0CiA8L3ByZT4KIDxz
Y3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICB2YXIgbXNnID0gJ0RvY3VtZW50IHpvb20g
c2hvdWxkIG5vdCBhcHBseSB3aGVuIHByaW50aW5nLic7CiAgICAgdmFyIHBhc3MgPSB0cnVlOwpA
QCAtMTMsNyArMTMsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAg
Ly8gRGV0ZXJtaW5lIG1pbml1bSBwYWdlIHNpemUgaGVpZ2h0IHdoZXJlIHRleHQgZml0cyBvbiBh
IHNpbmdsZSBwYWdlLgogICAgIHZhciBoZWlnaHQ7CiAgICAgZm9yICh2YXIgaSA9IDEwOyBpIDwg
MTAwOyBpICs9IDUpIHsKLSAgICAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9m
UGFnZXMoMTAwLCBpKSA9PSAxKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLm51bWJlck9mUGFn
ZXMoMTAwLCBpKSA9PSAxKSB7CiAgICAgICAgICAgICBoZWlnaHQgPSBpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTIxLDcgKzIxLDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogICAgIAogICAgIC8vIFpvb20gaW4gYW5kIHZlcmlmeSB0aGF0IHBhZ2Ug
Y291bnQgZG9lcyBub3QgY2hhbmdlLgogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykg
ewotICAgICAgICB2YXIgbnVtYmVyT2ZQYWdlcyA9IGxheW91dFRlc3RDb250cm9sbGVyLm51bWJl
ck9mUGFnZXMoMTAwLCBoZWlnaHQpOworICAgICAgICB2YXIgbnVtYmVyT2ZQYWdlcyA9IHRlc3RS
dW5uZXIubnVtYmVyT2ZQYWdlcygxMDAsIGhlaWdodCk7CiAgICAgICAgIGlmIChudW1iZXJPZlBh
Z2VzICE9IDEpIHsKICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKICAgICAgICAgICAgIG1zZyAr
PSAnR290ICcgKyBudW1iZXJPZlBhZ2VzICsgJyBwYWdlcywgZXhwZWN0ZWQgMSBwYWdlLlxuJzsK
SW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL2NzczIuMS9SRUFETUUudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3ByaW50aW5nL2NzczIuMS9SRUFETUUudHh0CShyZXZpc2lvbiAxMjA0
MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvUkVBRE1FLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtOSw5ICs5LDkgQEAgV2UgbmVlZCB0aGUgZm9sbG93aW5nIG1vZGlmaWNhdGlvbnMg
dG8gYQogCiAtIEVsaW1pbmF0ZSB0YWJzLgogLSBBZGQgZHVtcEFzVGV4dCgpIGNhbGwuCi0tIEFk
ZCB0ZXN0KCkgZnVuY3Rpb24gYW5kIGltcGxlbWVudCBpdCB1c2luZyBsYXlvdXRUZXN0Q29udHJv
bGxlciBmdW5jdGlvbnMuCistIEFkZCB0ZXN0KCkgZnVuY3Rpb24gYW5kIGltcGxlbWVudCBpdCB1
c2luZyB0ZXN0UnVubmVyIGZ1bmN0aW9ucy4KIC0gQ2FsbCB0ZXN0KCkgZnVuY3Rpb24gdXNpbmcg
cnVuUHJpbnRpbnRUZXN0KHRlc3QpIGZyb20gYm9keSdzIG9ubG9hZC4KIC0gQWRkIGlkIGF0dHJp
YnV0ZXMgZm9yIGVsZW1lbnRzIGluIHF1ZXN0aW9uLgogCiBGSVhNRTogcGFnZS1tYXJnaW4tKiBh
cmVuJ3QgYWRkZWQgeWV0LiBXZSBtYXkgbmVlZAotICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
IEFQSXMgdG8gdGVzdCBtYXJnaW5zLgorICAgICAgIHRlc3RSdW5uZXIgQVBJcyB0byB0ZXN0IG1h
cmdpbnMuCkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1hZnRl
ci0wMDAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFn
ZS1icmVhay1hZnRlci0wMDAuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
cHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDAwLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTE4LDggKzE4LDggQEAKIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcGFnZWQtbWVkaWEt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CkluZGV4OiBMYXlvdXRUZXN0
cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1hZnRlci0wMDEuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1hZnRlci0wMDEuaHRtbAko
cmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJl
YWstYWZ0ZXItMDAxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDggKzE3LDggQEAKIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBmdW5jdGlv
biB0ZXN0KCkKICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1i
cmVhay1hZnRlci0wMDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9j
c3MyLjEvcGFnZS1icmVhay1hZnRlci0wMDIuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5
b3V0VGVzdHMvcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDAyLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTE3LDggKzE3LDggQEAKIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcGFn
ZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CkluZGV4OiBM
YXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1hZnRlci0wMDMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1hZnRlci0w
MDMuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvY3NzMi4x
L3BhZ2UtYnJlYWstYWZ0ZXItMDAzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDggKzE4LDgg
QEAKIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAg
ICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9jc3My
LjEvcGFnZS1icmVhay1hZnRlci0wMDQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
cmludGluZy9jc3MyLjEvcGFnZS1icmVhay1hZnRlci0wMDQuaHRtbAkocmV2aXNpb24gMTIwNDEx
KQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYWZ0ZXItMDA0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAKIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7
CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1iZWZvcmUtMDAw
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJl
YWstYmVmb3JlLTAwMC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmlu
dGluZy9jc3MyLjEvcGFnZS1icmVhay1iZWZvcmUtMDAwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE5LDggKzE5LDggQEAKIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9w
cmludGluZy9jc3MyLjEvcGFnZS1icmVhay1iZWZvcmUtMDAxLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstYmVmb3JlLTAwMS5odG1sCShy
ZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVh
ay1iZWZvcmUtMDAxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDggKzE5LDggQEAKIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBmdW5jdGlv
biB0ZXN0KCkKICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1i
cmVhay1iZWZvcmUtMDAyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcv
Y3NzMi4xL3BhZ2UtYnJlYWstYmVmb3JlLTAwMi5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBM
YXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1iZWZvcmUtMDAyLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE5LDggKzE5LDggQEAKIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
cGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CkluZGV4
OiBMYXlvdXRUZXN0cy9wcmludGluZy9jc3MyLjEvcGFnZS1icmVhay1pbnNpZGUtMDAwLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvY3NzMi4xL3BhZ2UtYnJlYWstaW5z
aWRlLTAwMC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9j
c3MyLjEvcGFnZS1icmVhay1pbnNpZGUtMDAwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDgg
KzMxLDggQEAKIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGls
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGlu
Zy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wcmludGluZy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcwkocmV2
aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvcmVzb3VyY2VzL3BhZ2VkLW1l
ZGlhLXRlc3QtdXRpbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rp
b24gYXBwZW5kUmVzdWx0KHJlc3VsdCkKIAogZnVuY3Rpb24gcGFnZU51bWJlckZvckVsZW1lbnRT
aG91bGRCZShpZCwgZXhwZWN0ZWRQYWdlTnVtYmVyKQogewotICAgIHZhciBhY3R1YWxQYWdlTnVt
YmVyID0gbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKGlkKTsK
KyAgICB2YXIgYWN0dWFsUGFnZU51bWJlciA9IHRlc3RSdW5uZXIucGFnZU51bWJlckZvckVsZW1l
bnRCeUlkKGlkKTsKICAgICBpZiAoYWN0dWFsUGFnZU51bWJlciA9PSBleHBlY3RlZFBhZ2VOdW1i
ZXIpCiAgICAgICAgIGFwcGVuZFJlc3VsdCgnUEFTUzogcGFnZSBudW1iZXIgb2YgIicgKyBpZCAr
ICciIGlzICcgKyBhY3R1YWxQYWdlTnVtYmVyKTsKICAgICBlbHNlIHsKQEAgLTI2LDkgKzI2LDkg
QEAgZnVuY3Rpb24gbnVtYmVyT2ZQYWdlc1Nob3VsZEJlKGV4cGVjdGVkTgogICAgIC8vIHBhZ2VX
aWR0aEluUGl4ZWxzIGFuZCBwYWdlSGVpZ2h0SW5QaXhlbHMgY2FuIGJlIG9taXR0ZWQuIElmIG9t
aXR0ZWQsIDgwMHg2MDAgaXMgdXNlZC4KICAgICB2YXIgYWN0dWFsTnVtYmVyT2ZQYWdlczsKICAg
ICBpZiAocGFnZVdpZHRoSW5QaXhlbHMgJiYgcGFnZUhlaWdodEluUGl4ZWxzKQotICAgICAgICBh
Y3R1YWxOdW1iZXJPZlBhZ2VzID0gbGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdlcyhw
YWdlV2lkdGhJblBpeGVscywgcGFnZUhlaWdodEluUGl4ZWxzKTsKKyAgICAgICAgYWN0dWFsTnVt
YmVyT2ZQYWdlcyA9IHRlc3RSdW5uZXIubnVtYmVyT2ZQYWdlcyhwYWdlV2lkdGhJblBpeGVscywg
cGFnZUhlaWdodEluUGl4ZWxzKTsKICAgICBlbHNlCi0gICAgICAgIGFjdHVhbE51bWJlck9mUGFn
ZXMgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5udW1iZXJPZlBhZ2VzKCk7CisgICAgICAgIGFjdHVh
bE51bWJlck9mUGFnZXMgPSB0ZXN0UnVubmVyLm51bWJlck9mUGFnZXMoKTsKIAogICAgIGlmIChh
Y3R1YWxOdW1iZXJPZlBhZ2VzID09IGV4cGVjdGVkTnVtYmVyT2ZQYWdlcykKICAgICAgICAgYXBw
ZW5kUmVzdWx0KCdQQVNTOiBudW1iZXIgb2YgcGFnZXMgaXMgJyArIGFjdHVhbE51bWJlck9mUGFn
ZXMpOwpAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiBudW1iZXJPZlBhZ2VzU2hvdWxkQmUoZXhw
ZWN0ZWROCiAKIGZ1bmN0aW9uIHJ1blByaW50aW5nVGVzdCh0ZXN0RnVuY3Rpb24pCiB7Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgdGVzdEZ1bmN0aW9uKCk7CiAgICAg
ICAgIH0gY2F0Y2ggKGVycikgewpAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiBydW5QcmludGlu
Z1Rlc3QodGVzdEZ1bmN0aW9uKQogICAgICAgICBpZiAoIV9lcnJvcmVkKQogICAgICAgICAgICAg
X3Jlc3VsdHMgKz0gJzxicj5BbGwgdGVzdHMgcGFzc2VkJzsKICAgICB9IGVsc2UgewotICAgICAg
ICBfcmVzdWx0cyArPSAnVGhpcyB0ZXN0IHJlcXVpcmVzIGxheW91dFRlc3RDb250cm9sbGVyLiBZ
b3UgY2FuIHRlc3QgdGhpcyBtYW51YWxseSB3aXRoIHRoZSBhYm92ZSBkZXNjcmlwdGlvbi4nOwor
ICAgICAgICBfcmVzdWx0cyArPSAnVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIuIFlvdSBj
YW4gdGVzdCB0aGlzIG1hbnVhbGx5IHdpdGggdGhlIGFib3ZlIGRlc2NyaXB0aW9uLic7CiAgICAg
fQogCiAgICAgdmFyIHJlc3VsdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvbnVtYmVyT2ZQYWdlcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvbnVtYmVy
T2ZQYWdlcy5qcwkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2Ny
aXB0LXRlc3RzL251bWJlck9mUGFnZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBA
Ci1kZXNjcmlwdGlvbigiVGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdl
cygpIik7CitkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGVzdFJ1bm5lci5udW1iZXJPZlBhZ2VzKCki
KTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9zY3Jp
cHQtdGVzdHMvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2VOdW1lckZvckVsZW1lbnRCeUlkLmpzCShy
ZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvcGFn
ZU51bWVyRm9yRWxlbWVudEJ5SWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi1k
ZXNjcmlwdGlvbigiVGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVs
ZW1lbnRCeUlkKCkiKTsKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0ZXN0UnVubmVyLnBhZ2VOdW1i
ZXJGb3JFbGVtZW50QnlJZCgpIik7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpJbmRleDogTGF5b3V0
VGVzdHMvc2Nyb2xsYmFycy9oaWRkZW4taWZyYW1lLXNjcm9sbGJhci1jcmFzaDIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL2hpZGRlbi1pZnJhbWUtc2Nyb2xsYmFy
LWNyYXNoMi5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJz
L2hpZGRlbi1pZnJhbWUtc2Nyb2xsYmFyLWNyYXNoMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
Niw5ICsxNiw5IEBAIGZ1bmN0aW9uIGxvYWQoKQogICAgIGltZy5zcmMgPSAicmVzaXplci5wbmci
OwogfQogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogfQogPC9zY3JpcHQ+
CiAKSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGJhcnMvaGlkZGVuLWlmcmFtZS1zY3JvbGxiYXIt
Y3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL2hpZGRlbi1p
ZnJhbWUtc2Nyb2xsYmFyLWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRl
c3RzL3Njcm9sbGJhcnMvaGlkZGVuLWlmcmFtZS1zY3JvbGxiYXItY3Jhc2guaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYsMTQgKzE2LDE0IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIj9kb25lIikgewogICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJQQVNTRUQiKSk7Ci0g
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgIH0KIAogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL2hpZGRlbi1zY3JvbGxiYXItcHJldmVudHMtbGF5
b3V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9oaWRkZW4tc2Ny
b2xsYmFyLXByZXZlbnRzLWxheW91dC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRU
ZXN0cy9zY3JvbGxiYXJzL2hpZGRlbi1zY3JvbGxiYXItcHJldmVudHMtbGF5b3V0Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDggQEAKICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+
CiAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKSW5kZXg6IExheW91dFRl
c3RzL3Njcm9sbGJhcnMvb3ZlcmZsb3ctY3VzdG9tLXNjcm9sbGJhci1jcmFzaC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvb3ZlcmZsb3ctY3VzdG9tLXNjcm9sbGJh
ci1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJz
L292ZXJmbG93LWN1c3RvbS1zY3JvbGxiYXItY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTAxLDggKzEwMSw4IEBAIGJvZHkgewogICB9CiAgIAogICBmdW5jdGlvbiBkb1Rlc3QoKSB7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zY3JvbGxiYXJzL3Njcm9sbC1ydGwtb3ItYnQtbGF5ZXIuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbC1ydGwtb3ItYnQtbGF5ZXIuaHRtbAkocmV2
aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGwtcnRsLW9yLWJ0
LWxheWVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDggQEAgZnVuY3Rpb24gY2Vu
dGVyTW91c2VPbihlbGVtZW50SWQpCiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRv
dy5ldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5KSB7CiAgICAgICAgIGxvZygiVGhpcyB0ZXN0IHJl
cXVpcmVzIER1bXBSZW5kZXJUcmVlIHdpdGggZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeS4iKTsK
SW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYWJsZS1pZnJhbWUtcmVtb3ZlLWNy
YXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxhYmxl
LWlmcmFtZS1yZW1vdmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVz
dHMvc2Nyb2xsYmFycy9zY3JvbGxhYmxlLWlmcmFtZS1yZW1vdmUtY3Jhc2guaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNyArMSwxNyBAQAogPGh0bWw+DQogPHNjcmlwdD4NCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQ0KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikNCiB7DQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOw0KKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7DQogfQ0KIA0KIGZ1bmN0aW9uIHNjcm9sbEV2
ZW50RmlyZWQoKQ0KIHsNCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgPSAiU2Nyb2xsZWQgYnkgSmF2YVNjcmlwdCBzY3JvbGxUbygpOiBQQVNTIjsNCiAg
DQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikN
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOw0KIH0NCiANCiBmdW5jdGlvbiBydW5U
ZXN0KCkNCkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1jbGljay1kb2Vz
LW5vdC1ibHVyLWNvbnRlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxi
YXJzL3Njcm9sbGJhci1jbGljay1kb2VzLW5vdC1ibHVyLWNvbnRlbnQuaHRtbAkocmV2aXNpb24g
MTIwNDExKQorKysgTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItY2xpY2stZG9lcy1u
b3QtYmx1ci1jb250ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8aHRt
bD4KICAgPGhlYWQ+CiAgICAgPHNjcmlwdD4KLSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgfQogCiAgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkKQEAgLTI0LDggKzI0LDggQEAKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSAiRkFJTCI7
CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICAgICAgfQogCiAgICAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKSW5kZXg6IExheW91
dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1jcmFzaC1vbi1yZWZyZXNo
Lmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xs
YmFyLWNyYXNoLW9uLXJlZnJlc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAK
IDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKICAgICB3aW5kb3cuZnJhbWVzLm15ZnJhbWUubG9jYXRpb24ucmVsb2FkKHRydWUpOwog
fQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1kcmFn
LXRodW1iLXdpdGgtbGFyZ2UtY29udGVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWRyYWctdGh1bWItd2l0aC1sYXJnZS1jb250ZW50Lmh0bWwJ
KHJldmlzaW9uIDEyMDQxMSkKKysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWRy
YWctdGh1bWItd2l0aC1sYXJnZS1jb250ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDgg
KzM1LDggQEAKICAgICAgICAgPC9kaXY+CiAgICAgICAgIDxwIGlkPSJyZXN1bHQiPlRlc3QgZGlk
IG5vdCBydW4uPC9wPgogICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB2YXIgY29u
dGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwogICAgICAgICAg
ICAgY29udGFpbmVyLnNjcm9sbExlZnQgPSAyOwogICAgICAgICAgICAgLy8gRHJhZyBzY3JvbGxi
YXIgdGh1bWJlciB0byBsZWZ0IG1vc3Q6CkBAIC00Niw3ICs0Niw3IEBACiAgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMCwgMTQ1KTsKICAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5l
clRleHQgPSBjb250YWluZXIuc2Nyb2xsTGVmdCA9PSAwID8gIlBBU1MiIDogIkZBSUwiOwogICAg
ICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxiYXJz
L3Njcm9sbGJhci1ncmFkaWVudC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWdyYWRpZW50LWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDQx
MSkKKysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWdyYWRpZW50LWNyYXNoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDggKzEwLDggQEAKIAogPGJvZHk+CiA8c2NyaXB0Pgot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpJbmRleDogTGF5b3V0VGVzdHMvc2Ny
b2xsYmFycy9zY3JvbGxiYXItaWZyYW1lLWNsaWNrLWRvZXMtbm90LWJsdXItY29udGVudC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWlmcmFtZS1j
bGljay1kb2VzLW5vdC1ibHVyLWNvbnRlbnQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5
b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItaWZyYW1lLWNsaWNrLWRvZXMtbm90LWJsdXIt
Y29udGVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAogPGh0bWw+CiAgIDxo
ZWFkPgogICAgIDxzY3JpcHQ+Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgIH0KIAogICAgICAgZnVuY3Rpb24gcnVu
VGVzdCgpCkBAIC0zNCw4ICszNCw4IEBACiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gIkZBSUwiOwogCi0gICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
IH0KIAogICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxi
YXItaW5pdGlhbC1wb3NpdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9s
bGJhcnMvc2Nyb2xsYmFyLWluaXRpYWwtcG9zaXRpb24uaHRtbAkocmV2aXNpb24gMTIwNDExKQor
KysgTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItaW5pdGlhbC1wb3NpdGlvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogICAgIDxoZWFkPgogICAgICAgICA8dGl0
bGU+QnVnIDM5Mjg0IHRlc3QgY2FzZTwvdGl0bGU+CiAgICAgICAgIDxzY3JpcHQ+Ci0gICAgICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAg
fQogICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KQEAg
LTU4LDggKzU4LDggQEAKICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygy
NTAsIDI1MCk7CiAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDUw
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIDwvc2NyaXB0Pgog
ICAgIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xs
YmFyLW1pZGRsZWNsaWNrLW5vcGFzdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
Y3JvbGxiYXJzL3Njcm9sbGJhci1taWRkbGVjbGljay1ub3Bhc3RlLmh0bWwJKHJldmlzaW9uIDEy
MDQxMSkKKysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLW1pZGRsZWNsaWNrLW5v
cGFzdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw5ICsyLDkgQEAKIDxib2R5IG9ucGFzdGU9
InBhc3RlQ291bnQrKzsiPgogPHNjcmlwdD4KIHZhciBwYXN0ZUNvdW50ID0gMDsKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiA8L3NjcmlwdD4KIApAQCAtMzAsOCArMzAs
OCBAQCBmdW5jdGlvbiBmaW5pc2hlZCgpCiAgICAgfSBlbHNlIHsKICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSAiRkFJTCI7CiAgICAgfQotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIH0KIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItbWlzcy1tb3Vz
ZW1vdmUtZGlzYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxiYXJz
L3Njcm9sbGJhci1taXNzLW1vdXNlbW92ZS1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAxMjA0MTEp
CisrKyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1taXNzLW1vdXNlbW92ZS1kaXNh
YmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAogPGh0bWw+CiA8Ym9keSBz
dHlsZT0ibWFyZ2luOjAiPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiB9CiA8L3NjcmlwdD4KIDxmb3JtIG5hbWU9ImZvcm0xIj4gCkBAIC0xMzksNyArMTM5
LDcgQEAgZnVuY3Rpb24gZmluaXNoZWQoKQogewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuaW5uZXJIVE1MCiAgICAgICAgID0gIlRleHQgaXMgXCIiICsgZG9jdW1lbnQu
Zm9ybTEudGV4dDEudmFsdWUgKyAiXCIiOwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQog
PC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJh
ci1taXNzLW1vdXNlbW92ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJh
cnMvc2Nyb2xsYmFyLW1pc3MtbW91c2Vtb3ZlLmh0bWwJKHJldmlzaW9uIDEyMDQxMSkKKysrIExh
eW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLW1pc3MtbW91c2Vtb3ZlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8aHRtbD4KIDxib2R5IHN0eWxlPSJtYXJnaW46MCI+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIDwvc2Ny
aXB0PgogPGRpdiBpZD0ib3ZlcmZsb3ciIHN0eWxlPSJib3JkZXI6MnB4IHNvbGlkIGJsYWNrO292
ZXJmbG93OmF1dG87aGVpZ2h0OjQwMHB4O3dpZHRoOjQwMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsi
PgpAQCAtMzAsNyArMzAsNyBAQCBmdW5jdGlvbiBmaW5pc2hlZCgpCiB7CiAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwKICAgICAgICAgPSAiU2Nyb2xsIG9m
ZnNldCBpcyAiICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJmbG93Jykuc2Nyb2xsVG9w
OwotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgd2lu
ZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4
OiBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1vd25pbmctcmVuZGVyZXItY3Jhc2gu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1vd25p
bmctcmVuZGVyZXItY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMv
c2Nyb2xsYmFycy9zY3JvbGxiYXItb3duaW5nLXJlbmRlcmVyLWNyYXNoLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsOSArNCw5IEBACiA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgaGVpZ2h0OiA1MDAw
MDsgfQogIDwvc3R5bGU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKQEAgLTI0LDggKzI0LDggQEAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKIGZ1bmN0aW9uIGZpbmlzaCgpIHsKICAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKQogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIHNldFRpbWVvdXQoImlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDAsIDApOyIsIDApOwpJbmRleDogTGF5
b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItcGFydC1jcmVhdGVkLXdpdGgtbm8tcGFyZW50
LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxi
YXItcGFydC1jcmVhdGVkLXdpdGgtbm8tcGFyZW50LWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDQx
MSkKKysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBhcnQtY3JlYXRlZC13aXRo
LW5vLXBhcmVudC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw4ICsxNSw4IEBAIGJv
ZHkNCiB9DQogPC9zdHlsZT4NCiA8c2NyaXB0Pg0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpDQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpDQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KIA0KIGZ1bmN0
aW9uIHNob3dTY3JvbGxlcigpDQogew0KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Ny
b2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCShyZXZp
c2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1wZXJjZW50
LXBhZGRpbmctY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxMCArOCwxMCBAQAogPC9z
dHlsZT4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CiAgICAgfQogfTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsYmFy
cy9zY3JvbGxiYXItc2Nyb2xsYmFycGFydHMtcmVwYWludC1jcmFzaC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXNjcm9sbGJhcnBhcnRzLXJlcGFp
bnQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvc2Nyb2xsYmFy
cy9zY3JvbGxiYXItc2Nyb2xsYmFycGFydHMtcmVwYWludC1jcmFzaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC03LDggKzcsOCBAQCBib2R5Ojotd2Via2l0LXNjcm9sbGJhciB7CiB9CiA8L3N0eWxl
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBzdHls
ZT0iLXdlYmtpdC1hbmltYXRpb246IG1vdmUgMTI0OTAwODA5OXMgNDcxOTc2NDI4cyBsaW5lYXIg
YmFja3dhcmRzOyBib3JkZXItYm90dG9tOiBzb2xpZCBtaW50Y3JlYW0gMjE0ZW07Ij4KSW5kZXg6
IExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsZXZlbnQtaWZyYW1lLW5vLXNjcm9sbGluZy13
aGVlbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsZXZl
bnQtaWZyYW1lLW5vLXNjcm9sbGluZy13aGVlbC5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBM
YXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1zY3JvbGxpbmctd2hl
ZWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMSArMSwyMSBAQAogPGh0bWw+CiAgICAgPGhl
YWQ+CiAgICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZnVuY3Rpb24gdGlt
ZW91dEZpcmVkKCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICJOb3Qgc2Nyb2xsZWQgYnkgV2hlZWxF
dmVudDogU1VDQ0VTUyI7Ci0gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGZ1bmN0aW9uIHNjcm9sbEV2ZW50RmlyZWQoKQogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xl
JykuaW5uZXJIVE1MID0gIlNjcm9sbGVkIGJ5IFdoZWVsRXZlbnQ6IEZBSUxFRCAoU2hvdWxkIG5v
dCBiZSBzY3JvbGxlZCkuIjsKLSAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgICAgICB7
CkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1zY3Jv
bGxpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGV2
ZW50LWlmcmFtZS1uby1zY3JvbGxpbmcuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0
VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxldmVudC1pZnJhbWUtbm8tc2Nyb2xsaW5nLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjEgKzEsMjEgQEAKIDxodG1sPgogICAgIDxoZWFkPgogICAgICAg
ICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZ1bmN0aW9uIHRpbWVvdXRGaXJlZCgp
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgPSAiU2Nyb2xsZWQgYnkgSmF2YVNjcmlwdCBzY3JvbGxUbygp
OiBGQUlMRUQiOwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBmdW5jdGlvbiBzY3JvbGxFdmVudEZpcmVkKCkKICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCA9ICJTY3JvbGxlZCBieSBKYXZhU2NyaXB0IHNjcm9sbFRvKCk6IFBBU1MiOwotICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAg
ICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgICAgIHsKSW5kZXg6IExheW91dFRlc3RzL3Nj
cm9sbGJhcnMvcmVzb3VyY2VzL2hpZGRlbi1pZnJhbWUtc2Nyb2xsYmFyLWNyYXNoMi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvcmVzb3VyY2VzL2hpZGRlbi1pZnJh
bWUtc2Nyb2xsYmFyLWNyYXNoMi5odG1sCShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0
cy9zY3JvbGxiYXJzL3Jlc291cmNlcy9oaWRkZW4taWZyYW1lLXNjcm9sbGJhci1jcmFzaDIuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsOCBAQCBmdW5jdGlvbiBwYXNzKCkKICAgICB2
YXIgd2luID0gd2luZG93LnBhcmVudDsKICAgICB3aW4uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImlmcmFtZSIpLnN0eWxlLmRpc3BsYXkgPSAiIjsKICAgICB3aW4uZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUEFTU0VEIikpOwotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9zZWN1cml0eS9hdXRvY29tcGxldGUtY2xlYXJlZC1vbi1iYWNrLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvYXV0b2NvbXBsZXRlLWNsZWFyZWQtb24tYmFjay5odG1s
CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9hdXRvY29tcGxldGUt
Y2xlYXJlZC1vbi1iYWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOSArMiw5IEBACiA8aGVh
ZD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAK
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQpAQCAtMjksOCArMjksOCBAQCBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICBsb2coIklucHV0IHZhbHVlIDEgLSAiICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImZpcnN0SW5wdXQiKS52YWx1ZSk7CiAgICAgbG9nKCJJbnB1dCB2YWx1ZSAyIC0gIiArIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRJbnB1dCIpLnZhbHVlKTsKICAgICAKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9z
ZWN1cml0eS9ibG9jay10ZXN0LW5vLXBvcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zZWN1cml0eS9ibG9jay10ZXN0LW5vLXBvcnQuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysg
TGF5b3V0VGVzdHMvc2VjdXJpdHkvYmxvY2stdGVzdC1uby1wb3J0Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMsMTUgKzMsMTUgQEAKICAgICB2YXIgYmFzZVVSTCA9ICIyNTUuMjU1LjI1NS4yNTUi
OwogICAgIHZhciBjdXJyZW50UG9ydCA9IDA7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNr
cygpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gZmluaXNoVGVzdGluZygpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgc2V0VGltZW91dCgibGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpIiwgMCk7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDApOwogICAgICAgICB9
CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9ibG9jay10ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvYmxvY2stdGVzdC5odG1s
CShyZXZpc2lvbiAxMjA0MTEpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9ibG9jay10ZXN0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE2LDkgKzE2LDkgQEAKICAgICB2YXIgYmFzZVVSTCA9ICIy
NTUuMjU1LjI1NS4yNTUiOwogICAgIHZhciBjdXJyZW50UG9ydCA9IDA7CiAKLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291
cmNlTG9hZENhbGxiYWNrcygpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gbmV4dEJsb2NrZWRQ
b3J0VGVzdCgpIHsKQEAgLTYyLDkgKzYyLDkgQEAKICAgICB9CiAKICAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0aW5nKCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAg
ICAgICBzZXRUaW1lb3V0KCJsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkiLCAwKTsg
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKSIsIDApOyAKICAgICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvc2VjdXJpdHkvc2V0LWZvcm0tYXV0b2NvbXBsZXRlLWF0dHJpYnV0ZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L3NldC1mb3JtLWF1dG9jb21wbGV0ZS1hdHRy
aWJ1dGUuaHRtbAkocmV2aXNpb24gMTIwNDExKQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvc2V0
LWZvcm0tYXV0b2NvbXBsZXRlLWF0dHJpYnV0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDgg
KzIsOCBAQAogPGhlYWQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpCiB7ICAgIApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkK
IAogZnVuY3Rpb24gbG9nQXV0b0NvbXBsZXRlQVBJUmVzdWx0KCkKIHsKLSAgICBpZiAobGF5b3V0
VGVzdENvbnRyb2xsZXIuZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkKCJh
dXRvSW5wdXQiKSkKKyAgICBpZiAodGVzdFJ1bm5lci5lbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZv
ckVsZW1lbnRXaXRoSWQoImF1dG9JbnB1dCIpKQogICAgICAgICBsb2coIkVsZW1lbnQgZG9lcyBh
dXRvY29tcGxldGUiKTsKICAgICBlbHNlCiAgICAgICAgIGxvZygiRWxlbWVudCBkb2VzICpub3Qq
IGF1dG9jb21wbGV0ZSIpOwpAQCAtMjIsNyArMjIsNyBAQCBmdW5jdGlvbiBsb2dBdXRvQ29tcGxl
dGVBUElSZXN1bHQoKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAoIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgICAgYWxlcnQoIlRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gRHVtcFJlbmRlclRyZWUi
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
</data>
<flag name="review"
          id="155309"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>