<?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>171641</bug_id>
          
          <creation_ts>2017-05-03 18:03:18 -0700</creation_ts>
          <short_desc>Rename testRunner.display() to testRunner.displayAndTrackRepaints()</short_desc>
          <delta_ts>2017-05-04 14:46: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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>171634</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1304442</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-03 18:03:18 -0700</bug_when>
    <thetext>The plan is to add back the TestRunner.display() which does the display only with the track repaints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304455</commentid>
    <comment_count>1</comment_count>
      <attachid>308999</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-03 18:28:04 -0700</bug_when>
    <thetext>Created attachment 308999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304463</commentid>
    <comment_count>2</comment_count>
      <attachid>309000</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-03 18:42:25 -0700</bug_when>
    <thetext>Created attachment 309000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304628</commentid>
    <comment_count>3</comment_count>
      <attachid>309047</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-04 08:29:40 -0700</bug_when>
    <thetext>Created attachment 309047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304632</commentid>
    <comment_count>4</comment_count>
      <attachid>309048</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-04 08:36:09 -0700</bug_when>
    <thetext>Created attachment 309048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304642</commentid>
    <comment_count>5</comment_count>
      <attachid>309052</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-04 08:53:36 -0700</bug_when>
    <thetext>Created attachment 309052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304650</commentid>
    <comment_count>6</comment_count>
      <attachid>309053</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-04 09:10:47 -0700</bug_when>
    <thetext>Created attachment 309053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304654</commentid>
    <comment_count>7</comment_count>
      <attachid>309054</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-04 09:14:00 -0700</bug_when>
    <thetext>Created attachment 309054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304706</commentid>
    <comment_count>8</comment_count>
      <attachid>309067</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-04 11:17:47 -0700</bug_when>
    <thetext>Created attachment 309067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304822</commentid>
    <comment_count>9</comment_count>
      <attachid>309067</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-04 14:02:42 -0700</bug_when>
    <thetext>Comment on attachment 309067
Patch

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

&gt; Tools/DumpRenderTree/TestRunner.h:-73
&gt; -    void displayInvalidatedRegion();

What happened to displayInvalidatedRegion()? Is it unused?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304829</commentid>
    <comment_count>10</comment_count>
      <attachid>309067</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-04 14:17:14 -0700</bug_when>
    <thetext>Comment on attachment 309067
Patch

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

&gt;&gt; Tools/DumpRenderTree/TestRunner.h:-73
&gt;&gt; -    void displayInvalidatedRegion();
&gt; 
&gt; What happened to displayInvalidatedRegion()? Is it unused?

This function is weird. Its callback displayInvalidatedRegionCallback() is just a copy of displayCallback() and this is the case since it was initially created in https://trac.webkit.org/changeset/78010/webkit. 

It is used in two tests and both of them do not work reliably on all platforms:

(1) compositing/plugins/invalidate_rect.html:
    LayoutTests//platform/mac/TestExpectations:webkit.org/b/114321 compositing/plugins/invalidate_rect.html [ Failure Pass ]
    LayoutTests//platform/wk2/TestExpectations:compositing/plugins/invalidate_rect.html

(2) plugins/windowless_plugin_paint_test.html
    LayoutTests//platform/win/TestExpectations:webkit.org/b/57693 plugins/windowless_plugin_paint_test.html [ Skip ]
    LayoutTests//platform/wk2/TestExpectations:plugins/windowless_plugin_paint_test.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304846</commentid>
    <comment_count>11</comment_count>
      <attachid>309067</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 14:46:44 -0700</bug_when>
    <thetext>Comment on attachment 309067
Patch

Clearing flags on attachment: 309067

Committed r216211: &lt;http://trac.webkit.org/changeset/216211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304847</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 14:46:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308999</attachid>
            <date>2017-05-03 18:28:04 -0700</date>
            <delta_ts>2017-05-03 18:42:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170503182803.patch</filename>
            <type>text/plain</type>
            <size>121291</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0aGUgdHJhY2sgcmVwYWludHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoZGlzcGxheUFuZFRyYWNrUmVwYWludHNDYWxsYmFjayk6CisgICAgICAgIChUZXN0
UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAoZGlzcGxheUNhbGxiYWNrKTogRGVs
ZXRlZC4KKyAgICAgICAgKGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZGlzcGxheVdlYlZp
ZXcpOgorICAgICAgICAoZGlzcGxheUFuZFRyYWNrUmVwYWludHNXZWJWaWV3KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmRpc3Bs
YXkpOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKwogMjAxNy0wNS0wMyAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIxNjE2MCBhbmQgcjIxNjE2MS4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuaAkocmV2aXNpb24gMjE2MTU0KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBleHRl
cm4gUmVmUHRyPFRlc3RSdW5uZXI+IGdUZXN0UnVubmVyOwogCiB2b2lkIGR1bXAoKTsKIHZvaWQg
ZGlzcGxheVdlYlZpZXcoKTsKK3ZvaWQgZGlzcGxheUFuZFRyYWNrUmVwYWludHNXZWJWaWV3KCk7
CiAKIHN0cnVjdCBUZXN0Q29tbWFuZCB7CiAgICAgc3RkOjpzdHJpbmcgcGF0aE9yVVJMOwpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9uIDIxNjE1NCkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTQs
MjIgKzUxNCwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxCiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNW
YWx1ZVJlZiBkaXNwbGF5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3Rh
dGljIEpTVmFsdWVSZWYgZGlzcGxheUFuZFRyYWNrUmVwYWludHNDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVtZW50
YXRpb24KICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5l
cio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+ZGlz
cGxheSgpOwotCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQot
Ci1zdGF0aWMgSlNWYWx1ZVJlZiBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb25DYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1w
bGVtZW50YXRpb24KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVz
dFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgLy8gVGVzdFJ1
bm5lcjo6ZGlzcGxheSgpIG9ubHkgcmVuZGVycyB0aGUgaW52YWxpZGF0ZWQgcmVnaW9uIHNvCi0g
ICAgLy8gd2UgY2FuIGp1c3QgdXNlIHRoYXQuCi0gICAgY29udHJvbGxlci0+ZGlzcGxheSgpOwor
ICAgIGNvbnRyb2xsZXItPmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CkBAIC0yMTExLDggKzIxMDAsNyBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jCiAgICAgICAgIHsgImRlY29k
ZUhvc3ROYW1lIiwgZGVjb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJk
aXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhIiwgZGlzYWxsb3dJbmNyZWFz
ZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRp
c3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cyIsIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0c0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgImRpc3BsYXkiLCBkaXNwbGF5Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKLSAgICAgICAgeyAiZGlzcGxheUludmFsaWRhdGVkUmVnaW9uIiwgZGlzcGxheUludmFs
aWRhdGVkUmVnaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiZGlzcGxheUFuZFRyYWNr
UmVwYWludHMiLCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MiLCBkdW1wQXBwbGlj
YXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
ZHVtcEFzVGV4dCIsIGR1bXBBc1RleHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1w
QmFja0ZvcndhcmRMaXN0IiwgZHVtcEJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyMTYxNTQpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5
LDcgQEAgcHVibGljOgogICAgIEpTU3RyaW5nUmVmIGNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJp
bmdSZWYgbmFtZSk7CiAgICAgSlNTdHJpbmdSZWYgY29weUVuY29kZWRIb3N0TmFtZShKU1N0cmlu
Z1JlZiBuYW1lKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwotICAg
IHZvaWQgZGlzcGxheSgpOwotICAgIHZvaWQgZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7Cisg
ICAgdm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQo
SlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUpOwogICAgIGJvb2wgZmluZFN0cmlu
ZyhKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkpOwog
ICAgIHZvaWQgZ29CYWNrKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAyMTYxNTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwOTgsMTAgKzIwOTgsNiBA
QCB2b2lkIGRpc3BsYXlXZWJWaWV3KCkKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIFdlYlZpZXcg
KndlYlZpZXcgPSBbbWFpbkZyYW1lIHdlYlZpZXddOwogICAgIFt3ZWJWaWV3IGRpc3BsYXldOwot
Ci0gICAgLy8gRklYTUU6IFRyYWNraW5nIHJlcGFpbnRzIGlzIG5vdCBzcGVjaWZpYyB0byBNYWMu
IFdlIHNob3VsZCBlbmFibGUgc3VjaCBzdXBwb3J0IG9uIGlPUy4KLSAgICBbd2ViVmlldyBzZXRU
cmFja3NSZXBhaW50czpZRVNdOwotICAgIFt3ZWJWaWV3IHJlc2V0VHJhY2tlZFJlcGFpbnRzXTsK
ICNlbHNlCiAgICAgW2dEcnRXaW5kb3cgbGF5b3V0VGlsZXNOb3ddOwogICAgIFtnRHJ0V2luZG93
IHNldE5lZWRzRGlzcGxheUluUmVjdDpbZ0RydFdpbmRvdyBmcmFtZV1dOwpAQCAtMjEwOSw2ICsy
MTA1LDE3IEBAIHZvaWQgZGlzcGxheVdlYlZpZXcoKQogI2VuZGlmCiB9CiAKK3ZvaWQgZGlzcGxh
eUFuZFRyYWNrUmVwYWludHNXZWJWaWV3KCkKK3sKKyAgICBkaXNwbGF5V2ViVmlldygpOworI2lm
ICFQTEFURk9STShJT1MpCisgICAgLy8gRklYTUU6IFRyYWNraW5nIHJlcGFpbnRzIGlzIG5vdCBz
cGVjaWZpYyB0byBNYWMuIFdlIHNob3VsZCBlbmFibGUgc3VjaCBzdXBwb3J0IG9uIGlPUy4KKyAg
ICBXZWJWaWV3ICp3ZWJWaWV3ID0gW21haW5GcmFtZSB3ZWJWaWV3XTsKKyAgICBbd2ViVmlldyBz
ZXRUcmFja3NSZXBhaW50czpZRVNdOworICAgIFt3ZWJWaWV3IHJlc2V0VHJhY2tlZFJlcGFpbnRz
XTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKElPUykKIEBpbXBsZW1lbnRhdGlvbiBEdW1w
UmVuZGVyVHJlZUV2ZW50CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVu
bmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVu
bmVyTWFjLm1tCShyZXZpc2lvbiAyMTYxNTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUwLDkgKzI1MCw5IEBAIEpTU3Ry
aW5nUmVmIFRlc3RSdW5uZXI6OmNvcHlFbmNvZGVkSG9zdE4KICAgICByZXR1cm4gSlNTdHJpbmdD
cmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKVtuYW1lTlMgX3dlYl9lbmNvZGVIb3N0TmFt
ZV0pOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXkoKQordm9pZCBUZXN0UnVubmVyOjpk
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCiB7Ci0gICAgZGlzcGxheVdlYlZpZXcoKTsKKyAgICBk
aXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcoKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpr
ZWVwV2ViSGlzdG9yeSgpCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5l
cldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5u
ZXJXaW4uY3BwCShyZXZpc2lvbiAyMTYxNTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdFJ1bm5lcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU1N0
cmluZ1JlZiBUZXN0UnVubmVyOjpjb3B5RW5jb2RlZEhvc3ROCiAgICAgcmV0dXJuIDA7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCkKIHsKICAgICBkaXNwbGF5V2ViVmlldygpOwogfQpJbmRleDogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CShyZXZpc2lvbiAyMTYxNTQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDcgQEAgSlND
bGFzc1JlZiBUZXN0UnVubmVyOjp3cmFwcGVyQ2xhc3MoKQogICAgIHJldHVybiBKU1Rlc3RSdW5u
ZXI6OnRlc3RSdW5uZXJDbGFzcygpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXkoKQor
dm9pZCBUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCiB7CiAgICAgV0tCdW5k
bGVQYWdlUmVmIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCk7CiAgICAgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KHBhZ2UpOwpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHJldmlz
aW9uIDIxNjE1NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsOCArMTQwLDggQEAgcHVibGljOgogICAg
IC8vIFJlcGFpbnQgdGVzdGluZy4KICAgICB2b2lkIHRlc3RSZXBhaW50KCkgeyBtX3Rlc3RSZXBh
aW50ID0gdHJ1ZTsgfQogICAgIHZvaWQgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KCkgeyBtX3Rl
c3RSZXBhaW50U3dlZXBIb3Jpem9udGFsbHkgPSB0cnVlOyB9Ci0gICAgdm9pZCBkaXNwbGF5KCk7
Ci0gICAgCisgICAgdm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOworCiAgICAgLy8gVXNl
ckNvbnRlbnQgdGVzdGluZy4KICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291
cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKTsKICAgICB2b2lkIGFkZFVzZXJT
dHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpOwpJbmRleDogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCShyZXZpc2lvbiAyMTYxNTQpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICAvLyBS
ZXBhaW50IHRlc3RpbmcuCiAgICAgdm9pZCB0ZXN0UmVwYWludCgpOwogICAgIHZvaWQgcmVwYWlu
dFN3ZWVwSG9yaXpvbnRhbGx5KCk7Ci0gICAgdm9pZCBkaXNwbGF5KCk7CisgICAgdm9pZCBkaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgLy8gUHJpbnRpbmcKICAgICBib29sZWFuIGlz
UGFnZUJveFZpc2libGUobG9uZyBwYWdlSW5kZXgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE2MTU0
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTgw
IEBACisyMDE3LTA1LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVuYW1lIHRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lIEFsbCB0aGUgY2FsbHMgdG8gdGVzdFJ1bm5lci5kaXNw
bGF5KCkgdG8gdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCisgICAgICAgIEdl
dCByaWQgb2YgdGVzdFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKSBzaW5jZSBpdCBp
cyBqdXN0IGNvcHkKKyAgICAgICAgb2YgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvY2xpcC1jaGFuZ2UuaHRtbDoKKyAgICAgICAg
KiBjb21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMtdHJhbnNmb3Jt
ZWQtb3ZlcmZsb3cuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1j
b21wb3NpdGVkLW5lc3RlZC1pZnJhbWVzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9iZWNvbWUtb3ZlcmxhcHBlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFt
ZTIuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRp
bmctaWZyYW1lMy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvZW50ZXItY29t
cG9zaXRpbmctaWZyYW1lLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJh
bWUtY29udGVudC1mbGlwcGluZy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMv
aWZyYW1lLXJlc2l6ZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1l
LXNpemUtdG8temVyby5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1l
LXNyYy1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJs
ZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVz
L2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2xlYXZlLWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNv
bXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1uZXN0ZWQtaWZyYW1lcy5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0
aW9uLXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJj
ZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmctaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1nYWlucy1zY3JvbGxiYXJzLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxi
YXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91
dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1jb250ZW50cy5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1sYXllcnMuaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9wYWludC1uZWctei1vcmRlci1kZXNjZW5kYW50
cy1pbnRvLXNjcm9sbGluZy1jb250ZW50cy1sYXllci5odG1sOgorICAgICAgICAqIGNvbXBvc2l0
aW5nL292ZXJmbG93L3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQt
dGV4dC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRp
bmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLWV4cGVjdGVkLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9z
aXRpbmctY2hhbmdlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0
LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQuaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9wbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS13aXRoLWZp
eGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9y
ZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmctaWZyYW1lLXNjcm9sbC1yZXBhaW50Lmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS13
aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sOgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvcGFnZS1zY2FsZS1yZXBhaW50Lmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9yZXF1aXJlcy1iYWNraW5nLXJlcGFpbnQuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2Uu
aHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9ydGwvcnRsLW92ZXJmbG93LWludmFsaWRhdGlv
bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQt
Y29udGVudC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJl
c2l6ZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXdpdGgtaW52YWxpZC1zb3Vy
Y2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZXBhaW50Lmh0bWw6
CisgICAgICAgICogY3NzMy9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0
bWw6CisgICAgICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbDoK
KyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1kdXJpbmctcmVzaXplLW5vLWZsZXguaHRt
bDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWw6CisgICAg
ICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBkaXNwbGF5bGlzdHMv
Y2FudmFzLWRpc3BsYXktbGlzdC5odG1sOgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9yZXNvdXJj
ZXMvZHVtcC10YXJnZXQtZGlzcGxheS1saXN0LmpzOgorICAgICAgICAoZG9UZXN0KToKKyAgICAg
ICAgKiBkaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzOgor
ICAgICAgICAoZG9UZXN0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sOgorICAgICAgICAq
IGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1s
OgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFt
ZS5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWlmcmFtZTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzOgorICAgICAg
ICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
aXNhYmxlZC5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtcHJlZml4LmpzOgorICAgICAgICAod2luZG93LndlYmtpdFJlcXVl
c3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICh3aW5kb3cudGVzdFJ1bm5lci53aW5kb3cuc2V0
VGltZW91dCk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5qczoKKyAgICAgICAgKHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanM6CisgICAgICAgICh3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKHdpbmRvdy50ZXN0UnVubmVyLndp
bmRvdy5zZXRUaW1lb3V0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qczoKKyAgICAgICAgKiBmYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxi
YWNrLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS5qczoKKyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJh
Y2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1s
OgorICAgICAgICAqIGZhc3QvYmFja2dyb3VuZHMvc29saWQtY29sb3ItY29udGV4dC1yZXN0b3Jl
Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWFzLWltYWdlLWluY3JlbWVudGFs
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwt
cmVwYWludC0yLmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFs
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVy
LXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3VyY2VzL3JlcGFpbnQuanM6
CisgICAgICAgIChydW5SZXBhaW50VGVzdCk6CisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0
LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qczoKKyAgICAgICAg
KFRlc3RDb250cm9sbGVyUGFpbnQpOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZh
cy10ZXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBk
YXRlLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9yZWxhdGl2ZS1wb3NpdGlvbmVkLWJsb2NrLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93ZWItdGltaW5nLW1pbmltYWwtcGVyZm9ybWFu
Y2Utbm93Lmh0bWw6CisgICAgICAgICogZmFzdC9keW5hbWljL2NvbnRhaW5pbmctYmxvY2stY2hh
bmdlLmh0bWw6CisgICAgICAgICogZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0
ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJl
LWNhbmNlbC5qczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0
dXJlLWZsaW5nLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbDoK
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZnJhbWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWw6CisgICAgICAgICogZmFz
dC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWw6CisgICAgICAgICogZmFzdC9pbWFn
ZXMvYW5pbWF0ZWQtYmFja2dyb3VuZC1pbWFnZS1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3Qv
bGF5ZXJzL2FkZC1sYXllci13aXRoLW5lc3RlZC1zdGFja2luZy5odG1sOgorICAgICAgICAqIGZh
c3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWw6CisgICAgICAgICogZmFz
dC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNoYW5nZS5odG1sOgorICAgICAgICAq
IGZhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sOgorICAgICAgICAqIGZhc3QvbGF5ZXJz
L25lc3RlZC1sYXllcnMtMi5odG1sOgorICAgICAgICAqIGZhc3QvbGF5ZXJzL25lc3RlZC1sYXll
cnMtMy5odG1sOgorICAgICAgICAqIGZhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtNC5odG1sOgor
ICAgICAgICAqIGZhc3QvbGF5ZXJzL3JlbW92ZS1sYXllci13aXRoLW5lc3RlZC1zdGFja2luZy5o
dG1sOgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlZmxlY3Rpb25zL2lubGluZS1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5k
LWhlaWdodC1jaGFuZ2VzLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxk
LW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLWNo
aWxkLW9mLWZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L2ZpeGVkLWNoaWxkLW9mLXRyYW5zZm9ybWVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1l
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdw
b3J0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8t
cmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9vdmVyZmxvdy1oaWRkZW4taW4t
b3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jl
bmRlcmVyLWRlc3RydWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvcmVwYWludC1kdXJpbmctc2Nyb2xsLXdpdGgtem9vbS5odG1s
OgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXNvdXJjZXMvZml4ZWQtbW92ZS1hZnRlci1rZXli
b2FyZC1zY3JvbGwtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNl
cy9pZnJhbWUtc2Nyb2xsLXJlcGFpbnQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanM6CisgICAgICAgIChiZWdpblRl
c3QpOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qczoKKyAgICAg
ICAgKHJ1blJlcGFpbnRUZXN0KToKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZs
b3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWw6CisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWw6CisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sOgor
ICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwtcmVtb3Zl
Lmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXIt
Y29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAg
ICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9y
ZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9j
YWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sOgor
ICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xn
cm91cC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sZ3JvdXAtYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAg
ICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXIt
Y29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2Utcm93LWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9y
ZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXItY29sb3IuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUt
Ym9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2lu
Zy9jYWNoZWQtY2hhbmdlLXRib2R5LWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3Qv
dGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWw6CisgICAgICAg
ICogZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbDoKKyAgICAg
ICAgKiBtZWRpYS9hdWRpby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogbWVkaWEvbWVkaWEtZG9j
dW1lbnQtYXVkaW8tcmVwYWludC5odG1sOgorICAgICAgICAqIHBsdWdpbnMvd2luZG93bGVzc19w
bHVnaW5fcGFpbnRfdGVzdC5odG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLXBl
cmNlbnQtcGFkZGluZy1jcmFzaC5odG1sOgorICAgICAgICAqIHN2Zy9jdXN0b20vbm9uLXNjYWxp
bmctc3Ryb2tlLXVwZGF0ZS5zdmc6CisgICAgICAgICogc3ZnL2N1c3RvbS9zdGFsZS1yZXNvdXJj
ZS1kYXRhLWNyYXNoLnN2ZzoKKwogMjAxNy0wNS0wMyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFk
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9z
bGlkZXIvc2xpZGVyLXN0eWxlcy5odG1sIGFzIGZsYWt5IG9uIG1hYy13azEuCkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDcgKzI2LDcgQEAKICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAg
ICBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAvLyBUaGUgY2hhbmdlIGluIGNsaXAgc3R5bGUgc2hvdWxk
IGJlIHJlZmxlY3RlZCBpbW1lZGlhdGVseSBpbiB0aGUgc2l6ZQogICAgICAgLy8gb2YgdGhlIGNv
bXBvc2l0ZWQgY2xpcHBlciBsYXllci4gQWZ0ZXIgY2hhbmdpbmcgdGhlIGNsaXAsIGl0IHNob3Vs
ZAogICAgICAgLy8gZW50aXJlbHkgY292ZXIgdGhlIGluZGljYXRvci4KSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBv
c2l0ZWQtY29udGVudC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9zY3JvbGwtcGFpbnRlZC1jb21wb3NpdGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgICAgICAgICAvLyBGb3JjZSBhIHBhaW50IHNvIHRoYXQgdGhlIGNvbnRlbnQgd2ls
bCBiZSBwYWludGVkIGF0IHRoZSBjdXJyZW50IHNjcm9sbCBvZmZzZXQgKDB4MCkKICAgICAgICAg
ICAgIC8vIGJlZm9yZSB3ZSBzY3JvbGwuCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgfQogICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMzAwLCAwKTsKICAgICA8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJp
bGl0eS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92
aWRlby1wYWdlLXZpc2liaWxpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBA
QAogICAgIHZpZGVvLnNyYyA9ICdyZXNvdXJjZXMvdmlkZW8uJyArICh2aWRlby5jYW5QbGF5VHlw
ZSgndmlkZW8vb2dnJykgPyAnb2d2JyA6ICdtcDQnKTsKICAgICB2aWRlby5hZGRFdmVudExpc3Rl
bmVyKCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewogICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFn
ZVZpc2liaWxpdHkoImhpZGRlbiIpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0
UnVubmVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
b3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAkocmV2aXNp
b24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3Vu
ZC1vZmZzZXQtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAKICAg
ICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
cmV0Y2giKS5zdHlsZS5sZWZ0ID0gIi0xMDBweCI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJm
bG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
bGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDIx
NjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJv
dW5kcy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1
Nyw3IEBACiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8v
IFdlIG5lZWQgdG8gY2FsbCBkaXNwbGF5KCkgaGVyZSB0byBzeW5jIHRoZSBjb21wb3NpdG9yIHN0
YXRlIGFuZCBhdm9pZCBhIHJhY2UgY29uZGl0aW9uLgotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93
LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1jb21wb3NpdGVkLW5lc3Rl
ZC1pZnJhbWVzLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NO
YW1lID0gJ2NvbXBvc2l0ZWQnOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L2JlY29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHJldmlz
aW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92
ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ292ZXJsYXknKS5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnOwogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7IC8vIFBhaW50aW5nIGhhcyB0byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAu
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAv
LyBQYWludGluZyBoYXMgdG8gaGFwcGVuIHRvIGRldGVjdCBvdmVybGFwLgogICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cu
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lMi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3Np
dGluZy1pZnJhbWUyLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jbGFzc05hbWUgPSAn
Y29tcG9zaXRlZCc7CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29u
bmVjdC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkocmV2
aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0
LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBA
QAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaWZyYW1lJykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogCkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5l
Y3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFt
ZS1kZWxheWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5j
dGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2JveCcpLmNsYXNzTmFtZSA9ICdjb21wb3NpdGVkJzsKICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5l
Y3QtY29tcG9zaXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lv
biAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3Vt
ZW50LmJvZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KIAogICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xh
eWVycycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3Vt
ZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvZW50ZXItY29tcG9z
aXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTU0KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJh
bWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJv
ZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
ICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNv
bnRlbnQtZmxpcHBpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBp
bmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgIGZ1bmN0aW9uIGRv
VGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY2xhc3NO
YW1lID0gJ2NvbXBvc2l0ZWQnOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1yZXNpemUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMzgsMTEgKzM4LDExIEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNv
biB0aGlzIGRlbGF5IGlzIHJlcXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQg
dGhlIGRpc3BsYXkuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50LWlmcmFtZScp
LmNsYXNzTmFtZSA9ICdiaWdnZXInOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50
ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAko
cmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJh
bWUtc2l6ZS10by16ZXJvLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAg
ICAgICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtp
dCB0byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICB2YXIgaGFk
TGF5ZXJzID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAg
LTQ4LDcgKzQ4LDcgQEAKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAK
LSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgdmFy
IGhhdmVMYXllcnMgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCkg
IT0gIiI7CiAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKICAgICAgICAgICAgICAgICBpZiAo
aGFkTGF5ZXJzICYmICFoYXZlTGF5ZXJzKQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNyYy1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2
MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5n
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgICAgICB2YXIg
aGFkTGF5ZXJzQmVmb3JlID0gZmFsc2U7CiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJzQWZ0ZXIg
PSBmYWxzZTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFw
IHRlc3RpbmcuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRlc3RpbmcuCiAgICAgICAgICAg
ICAgICAgaGFkTGF5ZXJzQmVmb3JlID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQo
ZG9jdW1lbnQpICE9ICIiOwogICAgICAgICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQt
aWZyYW1lLWhpZGUuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1oaWRlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNzc1RleHQgPSAiZGlz
cGxheTpub25lOyI7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJz
JykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQp
OwogICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNo
b3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lu
dmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxl
LmNzc1RleHQgPSAiIjsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXll
cnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCk7CiAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1l
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2
ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lk
dGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3
aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLWlmcmFtZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1p
ZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgICAgLy8gZm9yIG92ZXJsYXAgdGVzdGluZyB0byBr
aWNrIGluLgogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJz
JykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQp
OwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAg
fQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3Zl
cmxhcHBlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw3ICszMyw3IEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGlzIGRlbGF5IGlz
IHJlcXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhlIGRpc3BsYXkuCiAg
ICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVk
LWlmcmFtZXMuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAwKTsKICAg
ICAgICAgICAvLyBGb3JjZSBhIHBhaW50LCBhbmQgZ2l2ZSBsYXllcnMgYSBjaGFuY2UgdG8gdXBk
YXRlLgogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMu
bGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmct
c2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJib3RoIikuY29udGVudERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFk
ZCgidGFsbCIpOyAvLyB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVl
KTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwg
b3ZlcmZsb3cgY29udHJvbHMgdmlzaWJsZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xz
IHZpc2libGUuCiAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9IGVsc2UKICAgICAgICAgd2lu
ZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgNTAwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAkocmV2aXNp
b24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmct
aWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8g
Rm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qg
c2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncGFyZW50LWlmcmFtZScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oODAsIDgwKTsK
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpJbmRleDogTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNl
cy9maXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJm
cmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAy
MDAwKTsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxODAwKTsKICAgICB9CiAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXRy
YW5zZm9ybWVkLXN1YmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJh
bWUuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAg
ICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
CiAgICAgICAvLyBBbnkgc2Nyb2xsIHNob3VsZCBrZWVwIHRoZSBmaXhlZC1wb3NpdGlvbiBlbGVt
ZW50IHdoZXJlIGl0IGlzLgogICAgICAgLy8gSWYgaXQgc3R1dHRlcnMgb3IgZGlzYXBwZWFycyBp
bmNvcnJlY3RseSwgdGhlbiB0aGUgcmVkIGJhY2tncm91bmQgd2lsbCBiZSByZXZlYWxlZC4KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5k
Y2hpbGQtaW5uZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwJKHJldmlzaW9uIDIx
NjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9s
bGdyYW5kY2hpbGQtaW5uZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAog
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgLy8gU2Nyb2xsIHJlZCBib3ggb2ZmIHNjcmVl
biBhbmQgc2Nyb2xsIGdyZWVuIGJveCBpbnRvIHNhbWUgcGxhY2UuCiAgICAgICB3aW5kb3cuc2Ny
b2xsVG8oMCwgNDAwKTsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKSW5kZXg6IExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQt
Z2FpbnMtc2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5zLXNjcm9sbGJhcnMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNDksMTQgKzQ5LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvdGgiKS5jbGFzc0xpc3QuYWRkKCJ0YWxsIik7IC8v
IHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMKICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29ybmVyIikuY2xhc3NMaXN0LmFkZCgicmVzaXplV2lkZ2V0Iik7IC8vIGJvdHRv
bSBkaXYgZ2V0cyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3Vy
ZSBjb21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRv
IGRhdGUuCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5l
clRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAg
fQogfQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0
ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBj
b250cm9scworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9y
Y2UgY29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5l
ZWRzIGFueSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3Jv
bGxiYXJzLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L2NvbnRlbnQtbG9zZXMtc2Nyb2xsYmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00OSwxNCArNDksMTQgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYm90aCIpLmNsYXNzTGlzdC5yZW1vdmUoInRhbGwiKTsgLy8gdmVydGlj
YWwgYW5kIGhvcml6b250YWwgc2Nyb2xsYmFycwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb3JuZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJyZXNpemVXaWRnZXQiKTsgLy8gYm90dG9tIGRp
diBsb3NlcyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBj
b21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRh
dGUuCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRl
eHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQog
fQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0
byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250
cm9scworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2Ug
Y29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRz
IGFueSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9s
bGluZy1jb250ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L292ZXJmbG93L2RvLW5vdC1wYWludC1vdXRsaW5lLWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmct
Y29udGVudHMuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGlu
Zy1jb250ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICB0
ZXh0YXJlYS5mb2N1cygpOwogICAgICAgdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJl
YS5zZWxlY3Rpb25FbmQgPSAwOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRU
ZXN0LCAxMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZs
b3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1sYXllcnMuaHRtbAko
cmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3Zl
cmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3
IEBAIHJlc2l6ZTogYm90aDsKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8g
RW5zdXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRW5zdXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0
byBkYXRlLgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRl
eHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiB9CiA8L3Nj
cmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16
LW9yZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXot
b3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAkocmV2
aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQt
bmVnLXotb3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgdGV4dGFyZWEuc2Nyb2xs
VG9wID0gNDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHdpbmRvdy50
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgfQogCiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKQEAgLTQ1LDcgKzQ1LDcgQEAKICAgICAgIHRl
eHRhcmVhLmZvY3VzKCk7CiAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVh
LnNlbGVjdGlvbkVuZCA9IDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRl
c3QsIDEwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxv
dy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xs
YmFycy5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9v
dmVyZmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTYxLDcgKzYxLDcgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRy
b2xzIHZpc2libGUuCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAv
LyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2libGUuCiAgICAgZmlu
aXNoVGVzdCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1j
b21wb3NpdGluZy1hZGQtdGV4dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10
ZXh0LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBD
aGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2Rp
cmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBv
c2l0aW5nLWFkZC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAg
ICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4
OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3Np
dGluZy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0
dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLWV4cGVjdGVkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxh
eWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICAgICAgYmcuaW5uZXJIVE1MID0gIjxzcGFuIHN0eWxlPVwib3BhY2l0eTowXCI+MTIzPC9z
cGFuPiI7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Bh
dHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBv
c2l0aW5nLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUg
bGF5ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgICBiZy5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCiAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmct
bG9hZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRtbAko
cmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGly
ZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNSw3ICsxNSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJl
Y29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAg
ICB2YXIgaW1nID0gbmV3IEltYWdlOwogICAgICAgICAgIGltZy5vbmxvYWQgPSBvbkJhY2tncm91
bmRJbWFnZUxvYWQ7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJl
Y3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC5o
dG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJu
cy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE1LDcgKzE1LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21l
IGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAgIHZh
ciBpbWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAgaW1nLm9ubG9hZCA9IG9uQmFja2dyb3VuZElt
YWdlTG9hZDsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0
ZV9yZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lu
cy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTcsMTAgKzE3LDEwIEBACiAKICAgICBmdW5jdGlvbiBvbkxvYWQoKQogICAgIHsKLSAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgcGFpbnRDb3VudCA9IDA7CiAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdFBsdWdpbicpLmludmFsaWRhdGVSZWN0KDAsIDAsIDIwMCwgMjAwKTsKLSAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICBpZiAocGFpbnRDb3VudCA+IDAp
CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
ICJTVUNDRVNTIjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50
L25ld2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLW9uLXNjcm9sbC5odG1sCShy
ZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5
LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYzLDExICs2Mywx
MSBAQAogCiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDMwOwogICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAg
ICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDUwOwpJbmRleDogTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHkt
Y29tcG9zaXRlZC1yZXBhaW50LXJlY3QuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBACiAgICAgICAgIC8vIEZvcmNlIER1
bXBSZW5kZXJUcmVlIHRvIGRvIGEgbGF5b3V0IGFuZCByZXBhaW50IGhlcmUsIHRoaXMgaXMgd2hl
cmUgdGhlIHJlcGFpbnRSZWN0CiAgICAgICAgIC8vIGdvZXMgd3JvbmcgYmVjYXVzZSBpdCBkb2Vz
IG5vdCBnZXQgdXBkYXRlZCBmb3IgYSBuZXdseSBjb21wb3NpdGVkIGVsZW1lbnQuCiAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAg
ICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgLy8gU2Ny
b2xsaW5nIGEgbGl0dGxlIHdpbGwgZGVtb25zdHJhdGUgd2hldGhlciB0aGUgcmVwYWludCByZWN0
IGlzIGNvcnJlY3Qgb3Igbm90LgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWlu
dC9wYWdlLXNjYWxlLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxNTQp
CisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvcmVwYWludC9yZXF1aXJlcy1iYWNraW5nLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWlu
dC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBh
aW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3
ICs0Myw3IEBACiAgICAgICAgICAgICBvdmVyZmxvdy5zY3JvbGxUb3AgPSA1MDsKIAogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3cuc2Nyb2xsVG9wID0gNzU7CkluZGV4
OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2Uu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5z
Zm9ybS1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVwYWludC90cmFuc2Zvcm0tc3R5bGUtY2hhbmdlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIH0KIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZvcmNlIG9uZSBj
b21wb3NpdGUgd2l0aCBwcmVzZXJ2ZS0zZAorICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsgLy8gRm9yY2Ugb25lIGNvbXBvc2l0ZSB3aXRoIHByZXNlcnZlLTNkCiAgICAg
dGVzdCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQodGVzdCwgMCk7CkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUt
d2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXdp
dGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJh
bWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgewog
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8g
Rmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KICAgICAgICAgICAgIAogICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMv
Y29tcG9zaXRpbmctaWZyYW1lLXNjcm9sbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1p
ZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGbHVzaCBwZW5kaW5nIGNv
bXBvc2l0aW5nIHJlcGFpbnRzLgogCiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
ICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygp
OwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0
aW5nLWlmcmFtZS13aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRp
bmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lv
biAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29t
cG9zaXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGlu
ZyByZXBhaW50cy4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9ydGwvcnRsLW92ZXJmbG93LWludmFsaWRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJ
KHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3Zl
cmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAK
IDxzY3JpcHQ+CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewogICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGVz
dCBwYXNzZXMgaWYgdGhpcyBlbGVtZW50IGlzIHJlcGFpbnRlZCBjb3JyZWN0bHksIGV2ZW4KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVy
LXJlc2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy90aWxpbmcvaHVnZS1sYXllci1yZXNpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyAr
NTMsNyBAQAogICAgICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgYW5kIGEgcGFpbnQgdG8gbWFr
ZSBzdXJlIHRoZSBjb21wb3NpdGluZyBsYXllcnMKICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB1
cGRhdGVkLgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlUHJlZml4ICsg
d2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291
cmNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlk
ZW8td2l0aC1pbnZhbGlkLXNvdXJjZS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsNCiAgICAgdi5h
cHBlbmRDaGlsZChzcmMpOw0KICAgICBzcmMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5j
dGlvbigpIHsNCiAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQotICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7DQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOw0KICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBjcmFzaCBoZXJl
LCB5YXkhICBUZXN0IGlzIGEgc3VjY2Vzcw0KICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MiKSk7DQogICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7DQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
d2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3dlYmdsL3dlYmdsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIGluaXQoKQogICBnbC5jbGVhckNvbG9yKDEs
IDAsIDAsIDEpOyAvLyByZWQKICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICBkcmF3R3JlZW4oKTsKICAgfSBlbHNlCkBAIC00Niw4
ICs0Niw4IEBAIGZ1bmN0aW9uIGRyYXdHcmVlbigpCiAgIGdsLmNsZWFyQ29sb3IoMCwgMSwgMCwg
MSk7IC8vIGdyZWVuCiAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwogICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwotICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgIH0g
ZWxzZQogICAgICAgd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY2FudmFzJykuY2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVyJyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlk
YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlw
bGUtZmlsdGVycy1pbnZhbGlkYXRpb24uaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCgp
IHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KHRydWUpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICBjaGFuZ2VCYWNrZ3JvdW5kKCk7CiB9IGVsc2UgCiAg
ICAgd2luZG93LnNldFRpbWVvdXQoY2hhbmdlQmFja2dyb3VuZCwgMjUwKTsKSW5kZXg6IExheW91
dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRt
bAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQt
Y29sdW1uLXJldmVyc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKICAg
ICAgICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZsZXggaXRlbXMgdGhhdCBhcmUg
bW92ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQgIgpJbmRleDogTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1u
by1mbGV4Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2NzczMvZmxleGJv
eC9yZXBhaW50LWR1cmluZy1yZXNpemUtbm8tZmxleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw3ICszNyw3IEBAIGZ1bmN0aW9uIHJlc2l6ZUZsZXhJdGVtKCkgewogd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKAogICAgICAgICAgICAgIlRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gY2hhbmdpbmcg
dGhlIHNpemUgb2Ygb25lIGZsZXggaXRlbSBjaGFuZ2VzIHRoZSAiCkluZGV4OiBMYXlvdXRUZXN0
cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sCShyZXZpc2lvbiAy
MTYxNTQpCisrKyBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAg
ICB9CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2NzczMv
ZmxleGJveC9yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L3JlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvY3NzMy9m
bGV4Ym94L3JlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KICAgICB3aW5kb3cuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsK
SW5kZXg6IExheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxp
c3QuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2Nh
bnZhcy1kaXNwbGF5LWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAog
ICAgICAgICAgICAgZHJhd0NhbnZhcygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnb3V0cHV0JykudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMucmVwbGF5RGlzcGxheUxp
c3RGb3JFbGVtZW50KGNhbnZhcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVz
b3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwko
cmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9k
dW1wLXRhcmdldC1kaXNwbGF5LWxpc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcg
QEAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldEVsZW1lbnRVc2VzRGlz
cGxheUxpc3REcmF3aW5nKHRhcmdldERpdiwgdHJ1ZSk7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICAgICAgdmFyIGRpc3BsYXlMaXN0ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9y
RWxlbWVudCh0YXJnZXREaXYpOwpJbmRleDogTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291
cmNlcy9kdW1wLXRhcmdldC1yZXBsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCShyZXZp
c2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAt
dGFyZ2V0LXJlcGxheS1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1
bmN0aW9uIGRvVGVzdCgpCiAgICAgfQogICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
ICAgIHZhciBkaXNwbGF5TGlzdCA9IGludGVybmFscy5kaXNwbGF5TGlzdEZvckVsZW1lbnQodGFy
Z2V0RGl2KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5o
dG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTIsNyArMTIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgICAgICB9LCA1MCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxl
bWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIHdpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3
aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsK
ICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2
aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1
LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKQogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoZnVuY3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5
KTsKICAgICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeycgKwotICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOycgKworICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsnICsKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuY2xvc2UoKTsnICsK
ICAgICAgICAgICAgICAgJ30gZWxzZSB7JysKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuc2V0
VGltZW91dCh3aW5kb3cuY2xvc2UsIDEwKTsnKwpAQCAtMjMsNyArMjMsNyBAQCBvbmxvYWQgPSBm
dW5jdGlvbigpCiAgICAgc2hvd01vZGFsRGlhbG9nKCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0Picg
KyBzcmMgKyAnPC8nICsgJ3NjcmlwdD4nKTsKICAgICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2Rh
bCBkaWFsb2cnKTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCShy
ZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcg
QEAKICAgICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5KCkKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRvQ2hlY2tSZXN1bHQoKQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1l
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvRGlzcGxh
eSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIH0KICAgICAKICAgICAgICAg
ZnVuY3Rpb24gZG9DaGVja1Jlc3VsdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNh
bmNlbDIuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgc2Vjb25kQ2FsbGJhY2tJ
ZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aQogfSwgZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVG
YWxzZSgiY2FsbGJhY2tGaXJlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtY2FuY2VsLmpzCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2Vs
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB2YXIgaWQgPSB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1CiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewogICAgIHNob3VsZEJlRmFsc2UoImNhbGxiYWNrRmlyZWQiKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
aXNhYmxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDIx
NjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcg
QEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogfSk7CiAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tJbnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtcHJl
Zml4LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanMJKHJldmlzaW9uIDIxNjE1NCkK
KysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1wcmVmaXguanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwxMiBAQCB3
aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiAKICAgICBidXN5V2FpdCgx
MCk7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGlt
ZS11bml0LmpzCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMCwxMiArMjAsMTIgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdGlvbih0aQogICAgICAgICB9KTsKIAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9LCAxKTsKIH0pOwogCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIp
CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1w
cy1hZHZhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJ
KHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDExICsyMSwxMSBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGZ1bmN0aW9uKHRpCiAgICAgfSk7CiAgICAgYnVzeVdhaXQoMTApOwogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0pOwogCiAKIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICB9KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGlt
ZXN0YW1wcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpCiB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAyMTYxNTQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTAg
QEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogCiAvLyBUaGlzIHNo
b3VsZCBmaXJlIHRoZSB0aHJlZSBhbHJlYWR5IHJlZ2lzdGVyZWQgY2FsbGJhY2tzLCBidXQgbm90
IHRoZSBvbmUgZHluYW1pY2FsbHkgcmVnaXN0ZXJlZC4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAvLyBUaGlzIHNob3VsZCBmaXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3Rl
cmVkIGNhbGxiYWNrLgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwkocmV2aXNpb24gMjE2MTU0KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiB9LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRC
ZVRydWUoImNhbGxiYWNrSW52b2tlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3Jv
dW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFj
a2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTU0
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNo
aWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsy
NSw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xv
ciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29s
b3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3Jv
dW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1j
aGlsZC1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQu
Ym9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFy
IGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNo
aWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBj
aGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJl
c3RvcmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3Nv
bGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgPC9kaXY+CiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldCwgMSk7CiAgICAgPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1hZ2UtaW5jcmVtZW50YWwt
cmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBh
aW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgIGNhbnZhc0Nv
bnRleHQgPSBkb2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJzcXVhcmVzIiwgMzAw
LCAzMDApOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICByZXBhaW50VGVz
dCgpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZSB7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0y
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3Jl
bWVudGFsLXJlcGFpbnQtMi5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDcgKzIxLDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQu
aHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWluY3JlbWVudGFsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBA
QAogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogICAgICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTU0
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHJlc2l6ZSgpIHsK
IH0KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdl
IGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZhcy4KKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1h
bCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3Ig
dGhlIGNhbnZhcy4KICAgICByZXNpemUoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0
KHJlc2l6ZSwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVw
YWludC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMv
cmVwYWludC5qcwkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
cmVzb3VyY2VzL3JlcGFpbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGZ1bmN0
aW9uIHJ1blJlcGFpbnRUZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2V0VGltZW91dChyZXBh
aW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0
cy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGlu
Z0VuYWJsZWQtcmVwYWludC5qcwkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWlu
dC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCB2YXIgZHJhd0l0ZXJhdGlvbnMg
PSAyOwogZnVuY3Rpb24gVGVzdENvbnRyb2xsZXJQYWludCgpIHsKICAgICB3aGlsZSAoZHJhd0l0
ZXJhdGlvbnMgPiAwKSB7CiAgICAgICAgIGRyYXcoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgZHJhd0l0ZXJhdGlvbnMgPSBkcmF3SXRlcmF0aW9ucyAtIDE7CiAgICAgfQogICAgIGRy
YXcoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRl
c3QuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvY2FudmFzLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGlm
ICghZ2wpIHsKICAgdmFyIGludGVydmFsSWQ7CiAgIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50
ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgaWYgKGNhbnZhcy5jbGllbnRXaWR0aCA9PSAxMDAgJiYKICAgICAgICAgY2Fu
dmFzLmNsaWVudEhlaWdodCA9PSAyNSkgewogICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50
ZXJ2YWxJZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXll
ci11cGRhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC93ZWJnbC1sYXllci11cGRhdGUuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBkYXRlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTYsNyArNiw3IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdjYW52YXMnKVswXS5zdHlsZS50b3AgPSAiNjBweCI7CiAKICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTgsNyArNTgsNyBA
QCBjdHguY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsKIGN0eC5jbGVhcihjdHguQ09MT1JfQlVGRkVS
X0JJVCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkb3N0eWxl
LWFub255bW91cy10ZXh0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIp
OwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9u
ZWQtYmxvY2stY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC02LDcgKzYsNyBAQAogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0
bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0
LW1lc3NhZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUocG9zdE1lc3NhZ2UpOwogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dlYi10aW1pbmctbWluaW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5p
bWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsgfQogICAgICAgICAsIDEwMCk7CiAKLSAgICB3aW5kb3cudGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIH0KIAogb25sb2FkID0gc3RhcnQoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCShyZXZp
c2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY29udGFpbmluZy1ibG9j
ay1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMyArMywxMyBAQAogICAgIHsKICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndCcpOwogICAgICAgICB0LnN0
eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRU
b3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICB0Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZCh0
Lmxhc3RDaGlsZC5sYXN0Q2hpbGQpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9h
ZD0idGVzdCgpIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1uby1sb25n
ZXItcGFnaW5hdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWlj
L2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgICAgICAgd2luZG93LnNjcm9s
bEJ5KDEsIDApOwogCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICAgICAgICAgIHRlc3QoKTsKICAgICAgICAgfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNh
bmNlbC5qcwkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcg
KzE5LDcgQEAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIAogaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuZXZlbnRTZW5k
ZXIuZ2VzdHVyZUZsaW5nU3RhcnQpIHsKICAgICBldmVudFNlbmRlci5nZXN0dXJlRmxpbmdTdGFy
dCgxMCwgMTEsIDEwMDAsIDEwMDApOwogICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ0NhbmNl
bCgpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQt
Z2VzdHVyZS1mbGluZy5qcwkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTgsOSArMTgsOSBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwg
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93
LmV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ1N0YXJ0KSB7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVy
ZUZsaW5nU3RhcnQoMTAsIDExLCAxMDAwLCAxMDAwKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2hpZGRlbi1saXN0Ym94Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogPC9zY3JpcHQ+CiBUaGlzIHRlc3RzIHRoYXQgdGhlIHdob2xlIGxpc3Rib3gg
Y29udHJvbCBpcyBoaWRkZW4gd2hlbiB2aXNpYmlsaXR5IGlzIHNldCB0byBoaWRkZW4uCiA8YnI+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHJldmlzaW9u
IDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICA8L3NlbGVjdD4KICAgICA8c2NyaXB0
PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVz
ZXQuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5s
aW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyAr
MTEsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGRjb250LmFwcGVuZENoaWxkKGUpOwog
ICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0K
IAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1z
Y3JvbGxiYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFu
c3BhcmVudC1zY3JvbGxiYXIuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDEzICsyMywxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiAKICAg
ICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5z
Y3JvbGxUb3AgPSAyMDAwOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgICAgICAgIH0KICAgICB9LCAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2FuaW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWwJ
KHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJh
Y2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBA
QAogICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUuZGlzcGxh
eT0ibm9uZSI7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAg
ICAgIHNldFRpbWVvdXQoInN0ZXAyKCkiLCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0
bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2FkZC1sYXll
ci13aXRoLW5lc3RlZC1zdGFja2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3
IEBACiAgICAgICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0
KCk7CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9pbmxp
bmUtZGlydHktei1vcmRlci1saXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHJldmlzaW9uIDIxNjE1
NCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3Rz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAKIAogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1l
b3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVu
dC12aXNpYmlsaXR5LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2
MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5
LWNoYW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgfQogICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAg
ICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMv
bmVzdGVkLWxheWVycy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXll
cnMvbmVzdGVkLWxheWVycy0xLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcg
KzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxz
ZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRt
bAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogewogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKICAgICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBmaW5pc2go
KTsKICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVk
LWxheWVycy00Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL25lc3RlZC1sYXllcnMtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tp
bmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5
ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgVGhlIHNxdWFyZSBzaG91bGQgYmUgYSB1
bmlmb3JtIHNoYWRlIG9mIAogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwogICAgIGVsc2Ug
ewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgdGVzdCgpOwogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRtbAkocmV2
aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xs
YmFyLXJlc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4K
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVz
dHMgdGhhdCB0aGUgc2Nyb2xsYmFyIGFuZCByZXNpemUgY29ybmVyIGFyZSBub3QgdmlzaWJsZSBv
biBhbiBlbGVtZW50IHRoYXQgaGFzIHZpc2liaWxpdHk6aGlkZGVuLgogPGRpdiBzdHlsZT0ib3Zl
cmZsb3c6IGF1dG87IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDcwcHg7IHJlc2l6ZTogYm90aDsgdmlz
aWJpbGl0eTogaGlkZGVuIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvaW5s
aW5lLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9u
cy9pbmxpbmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9yZWZsZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICsz
LDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgfQogICAgICAgICBzZXRUaW1lb3V0KGNoYW5nZUNvbG9yLCAwKTsKICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNj
cm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRp
b24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTgsNyArOCw3IEBACiAgICAgewogICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc2Nyb2xsZXInKS5zY3JvbGxUb3AgPSA4MDA7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAg
ICAgICAgc2V0VGltZW91dChsb2dSZXBhaW50cywgMjAwKTsKICAgICB9CkBAIC0yNSw3ICsyNSw3
IEBACiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICAgIHNldFRpbWVvdXQoc3RhcnRUcmFja2luZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgt
Z3JhZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhl
aWdodC1jaGFuZ2VzLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hh
bmdlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHN0YXJ0
KCkgewogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIHdpbmRvdy5pbnRlcm5hbHMuc3Rh
cnRUcmFja2luZ1JlcGFpbnRzKCk7Ci0gICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB9CiAKIGZ1
bmN0aW9uIGxvZ1JlcGFpbnRzKCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2Zp
eGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlz
aW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1tb3Zl
LWFmdGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAg
ICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1h
ZnRlci1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
Zml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2
MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW9mLWZpeGVkLW1v
dmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAg
ICAgICAgc2Nyb2xsQnkoMCwgMjAwKTsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1l
ZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1s
CShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hp
bGQtb2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNyw3ICs3LDcgQEAKICAgICAgICAgICBzY3JvbGxCeSgwLCAyMDApOwogICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVw
YWludFRlc3QoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgc2V0VGltZW91
dChyZXBhaW50VGVzdCwgMTUpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVk
LW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysr
IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7
CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUt
dmlld3BvcnQtc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1lLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygp
OwogICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwyMDApOwotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICBzZXRUaW1lb3V0KHRlc3RBZnRlclNjcm9sbCwgMjAwKTsKICAgICB9CiAKQEAgLTIy
LDcgKzIyLDcgQEAKIAogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBh
aW50cygpOwogICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwwKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgc2V0VGltZW91dCh0ZXN0QWZ0ZXJTY3JvbGxCYWNrLCAyMDApOwogICAgIH0K
IApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZp
ZXdwb3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFu
aW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQAogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFp
bnRzKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNldFRpbWVvdXQobG9nUmVwYWlu
dHMsIDIwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3Vy
ZWQtYmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lv
biAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3Vu
ZC1uby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAKICAgICB7
CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICBzZXRUaW1lb3V0KGxvZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L292ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xs
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ct
aGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lvbiAyMTYxNTQp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93
LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAx
MDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRU
ZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlbmRl
cmVyLWRlc3RydWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnkt
aW52YWxpZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNl
bGVjdGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBACiAgICAg
PGRpdj48L2Rpdj4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3Jv
bGwtd2l0aC16b29tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAkocmV2aXNpb24gMjE2MTU0KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpv
b20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgIHRlc3RTY3JvbGxSZXBhaW50KCk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGxSZXBhaW50LCAxMDApOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RhYmxlLW92ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1o
aWRkZW4tc2Nyb2xsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvdGFibGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1s
CShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3Zl
cmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAg
ICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNj
cm9sbC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
cmVzb3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCShy
ZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2Zp
eGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC02LDcgKzYsNyBAQAogICAgICAgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwt
cmVwYWludC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbAkocmV2aXNpb24g
MjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9pZnJhbWUtc2Ny
b2xsLXJlcGFpbnQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKIAogd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgZG9jdW1lbnQuYm9keS5z
Y3JvbGxUb3AgPSAyMDsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0
aC1mbG9hdHMuanMJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9yZXNvdXJjZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
NCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGJlZ2luVGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICB0ZXN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5j
b250ZW50RG9jdW1lbnQpOwogICAgIH0gZWxzZSBzZXRUaW1lb3V0KAogICAgICAgICBmdW5jdGlv
bigpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFp
bnQuanMJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNv
dXJjZXMvcmVwYWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24g
cnVuUmVwYWludFRlc3QoKQogICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQpCiAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0VG9wOwogCi0g
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvcmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRt
bAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEw
MHBlcmNlbnQtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaW1wbGVMaW5l
TGF5b3V0RW5hYmxlZChmYWxzZSk7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogPC9zY3JpcHQ+CiAKIFRoZSB0ZXh0YXJlYXMgYmVsb3cgc2hvdWxkIG5vdCBvdmVybGFwLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0
ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xs
YmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVzdC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
d2luZG93LmludGVybmFscy5hZGRUZXh0TWF0Y2hNYXJrZXIocmFuZ2UsIHRydWUpOwogICAgIH0K
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh3
aW5kb3cuaW5uZXJXaWR0aCAtIDEsIHdpbmRvdy5pbm5lckhlaWdodCAtIDEpOwogICAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1w
dHktc2VjdGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFi
bGUvZW1wdHktc2VjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNiw3ICs2LDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgLyogU2luY2UgdGhlIGNyYXNo
IGhhcHBlbnMgaW4gcGFpbnRpbmcgY29kZSwgZm9yY2UgcGFpbnRpbmcuIFRoaXMKICAgICAgICAg
ICAgICAgIG1ha2VzIHRoZSB0ZXN0IHdvcmsgZXZlbiB3aGVuIHJ1biB3aXRob3V0IHRoZSAtLXBp
eGVsIG9wdGlvbi4gKi8KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5
Ni5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBAIENvbGxhcHNlZCBib3JkZXJzIHNob3VsZCBub3QgZGlzYXBwZWFyLgogICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAg
ICAgICByb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm93MScpOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5n
L2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgYXBwZW5kIG5ldyBjZWxsLCBl
eHBlY3QgdGhhdCBjYWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgICAgICAgIG5ld0NlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIp
OwogICAgICAgICAgICAgICAgIG5ld0NlbGwuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0gIjZweCI7
CiAgICAgICAgICAgICAgICAgbmV3Q2VsbC5zdHlsZS5ib3JkZXJMZWZ0U3R5bGUgPSAic29saWQi
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2VsbC1yZW1vdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sCShyZXZpc2lvbiAyMTYxNTQp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxs
LXJlbW92ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgcmVt
b3ZlIGNlbGwsIGV4cGVjdCB0aGF0IGNhY2hlIGkKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGJhckNlbGwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYmFyIik7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJvdyIpLnJlbW92ZUNoaWxkKGJhckNlbGwpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwt
Ym9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHJl
dmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNp
bmcvY2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNlbGwgYm9yZGVyIGNvbG9yLCBleHBlY3QK
ICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJs
aW1lIjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXIt
d2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1j
b2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24g
MjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcg
KzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY2VsbCBib3JkZXIgd2lkdGgsIGV4cGVjdAogICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9y
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIx
NjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS1jZWxsLXNsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3
ICsxMiw3IEBAIEhlcmUgd2U6CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGV4dCwgdGhpcyByZXF1ZXN0cyBsYXlv
dXQgZm9yIERJViwKICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBzaW1wbGlmaWVkIGxheW91
dCBmb3IgVEFCTEUKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxv
Y2tEaXYiKS5pbm5lclRleHQgPSAiIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9y
ZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3Jk
ZXItY29sb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNo
YW5nZSBjb2wgYm9yZGVyIGNvbG9yLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29sIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1j
b2wtYm9yZGVyLXdpZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRo
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY29s
IGJvcmRlciB3aWR0aCwgZXhwZWN0IAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbCIp
LnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91
cC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1j
b2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdl
IGNvbGdyb3VwIGJvcmRlciBjb2xvciwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b2xncm91cCIpLnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29s
bGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNo
YW5nZS1jb2xncm91cC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdy
b3VwLWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhl
cmUgd2UgY2hhbmdlIGNvbGdyb3VwIGJvcmRlciB3aWR0aCwgZXgKICAgICAgICAgICAgIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb2xncm91cCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItY29sb3IuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2Utcm93LWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJv
cmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2Ug
Y2hhbmdlIHJvdyBib3JkZXIgY29sb3IsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRl
c3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyb3ciKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQog
ICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdl
LXJvdy1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lk
dGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSBy
b3cgYm9yZGVyIHdpZHRoLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm93
Iikuc3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2Nh
Y2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJv
cmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUg
Ym9yZGVyIGNvbG9yLCBleHBlYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0
eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3Jk
ZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRhYmxlIGJv
cmRlciB3aWR0aCwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YmwiKS5zdHls
ZS5ib3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNo
YW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNv
bG9yLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9y
ZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIg
Y29sb3IsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5i
b3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNo
YW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdp
ZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9y
ZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIg
d2lkdGgsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5i
b3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWwJKHJldmlzaW9uIDIxNjE1
NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNiw1ICs2LDUgQEAKIDxzY3JpcHQ+CiAgICAgLy8gTWFrZXMgdGhlIHJlbmRlcmlu
ZyBjb2RlIHJ1biBldmVuIHdoZW4gbm90IHJ1bm5pbmcgYXMgYSBwaXhlbCB0ZXN0LgogICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12
YWx1ZS5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4
dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9w
OwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBo
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
aGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwJKHJldmlzaW9uIDIxNjE1NCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1n
bHlwaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGJvZHkgewogPHNjcmlw
dD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIC8vIEZvcmNlIGxheW91dC4KLSAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVy
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxv
YWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRo
OwogCiAvLyBSZXBhaW50IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZSBhcnJpdmVkCiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxNTQp
CisrKyBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAK
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICB2
YXIgY291bnQgPSAzOwogICAgIHZhciBhdWRpb0VsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2F1ZGlvJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1
bWVudC1hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtZG9jdW1lbnQtYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxNTQpCisrKyBM
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgewogICAgICAgICB2YXIgdmlkZW9FbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyIikuY29udGVudERvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInZpZGVvIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB2aWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPSB2
aWRlb0VsZW1lbnQuZHVyYXRpb24gKiAwLjUwOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
cGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwJKHJl
dmlzaW9uIDIxNjE1NCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93bGVzc19wbHVnaW5f
cGFpbnRfdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACi08IURPQ1RZ
UEUgaHRtbD4KLQotPGh0bWw+Ci08aGVhZD4KKzwhRE9DVFlQRSBodG1sPg0KKw0KKzxodG1sPg0K
KzxoZWFkPg0KICAgPHNjcmlwdD4NCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQogICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOw0KLSAgICB9Ci0KKyAgICB9DQorDQogICAgIHZhciBwYWludENvdW50ID0gMDsN
CiANCiAgICAgZnVuY3Rpb24gb25Mb2FkKCkgew0KQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAg
cGx1Z2luRGl2LmlubmVySFRNTCA9ICI8ZW1iZWQgaWQ9XCJ0ZXN0UGx1Z2luXCIgdHlwZT1cImFw
cGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGVcIiB3aWR0aD1cIjIwMFwiIGhlaWdodD1c
IjIwMFwiIG9ucGFpbnRldmVudD1cImRpZFBhaW50KClcIiB3aW5kb3dlZFBsdWdpbj1cImZhbHNl
XCI+PC9lbWJlZD4iOw0KICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpDQogICAgICAgICAg
ICAgaW50ZXJuYWxzLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1blBv
c3RMYXlvdXRUYXNrcygpOw0KLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRS
ZWdpb24oKTsNCisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsN
CiAgICAgICB9DQogDQogICAgIGZ1bmN0aW9uIG5vdGlmeURvbmUoKSB7DQpAQCAtMjcsMTUgKzI3
LDE1IEBACiAgICAgZnVuY3Rpb24gZGlkUGFpbnQoKSB7DQogICAgICAgICBwYWludENvdW50Kys7
DQogICAgICAgICBzZXRUaW1lb3V0KCJub3RpZnlEb25lKCk7IiwgNTApOw0KLSAgICB9Ci0gIDwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9uTG9hZCgpLCA1MCk7
Ij4KLSAgVGhpcyB0ZXN0cyB0aGF0IGR5bmFtaWNhbGx5IGFkZGVkIHdpbmRvd2xlc3MgcGx1Z2lu
cyByZWNlaXZlIHBhaW50IGV2ZW50cyBvbiBjcmVhdGlvbi4KLQotICA8ZGl2IGlkPSJyZXN1bHQi
PkZBSUxVUkU8L2Rpdj4KLQotICA8ZGl2IGlkPSJwbHVnaW5EaXYiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDMwMHB4OyB0b3A6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyB3aWR0aDog
NDAwcHg7IHBhZGRpbmc6IDFlbTsiPgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KKyAgICB9
DQorICA8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9uTG9h
ZCgpLCA1MCk7Ij4NCisgIFRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBhZGRlZCB3aW5kb3ds
ZXNzIHBsdWdpbnMgcmVjZWl2ZSBwYWludCBldmVudHMgb24gY3JlYXRpb24uDQorDQorICA8ZGl2
IGlkPSJyZXN1bHQiPkZBSUxVUkU8L2Rpdj4NCisNCisgIDxkaXYgaWQ9InBsdWdpbkRpdiIgc3R5
bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMzAwcHg7IHRvcDogMzAwcHg7IGhlaWdodDog
NDAwcHg7IHdpZHRoOiA0MDBweDsgcGFkZGluZzogMWVtOyI+DQorICA8L2Rpdj4NCis8L2JvZHk+
DQorPC9odG1sPg0KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNl
bnQtcGFkZGluZy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJh
cnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxNTQp
CisrKyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1wZXJjZW50LXBhZGRpbmctY3Jh
c2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgfQogfTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9ub24tc2NhbGluZy1zdHJva2UtdXBkYXRlLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3ZnCShyZXZpc2lvbiAy
MTYxNTQpCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRh
dGUuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogCiAgIDxzY3JpcHQ+CiAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDAp
OwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N0YWxlLXJlc291
cmNlLWRhdGEtY3Jhc2guc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20v
c3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcJKHJldmlzaW9uIDIxNjE1NCkKKysrIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgLy8gRm9yY2UgYSBwYWludCBhdCB0
aGlzIHBvaW50IHRvIGdlbmVyYXRlIGNhY2hlZCBmaWx0ZXIgcmVzdWx0cy4KLSAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgIH0KIAogICAgIGRvY0VsZW1lbnQuYXBwZW5kQ2hpbGQobmV3RGVmcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309000</attachid>
            <date>2017-05-03 18:42:25 -0700</date>
            <delta_ts>2017-05-04 08:29:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170503184224.patch</filename>
            <type>text/plain</type>
            <size>121261</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE2NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0aGUgdHJhY2sgcmVwYWludHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoZGlzcGxheUFuZFRyYWNrUmVwYWludHNDYWxsYmFjayk6CisgICAgICAgIChUZXN0
UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAoZGlzcGxheUNhbGxiYWNrKTogRGVs
ZXRlZC4KKyAgICAgICAgKGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZGlzcGxheVdlYlZp
ZXcpOgorICAgICAgICAoZGlzcGxheUFuZFRyYWNrUmVwYWludHNXZWJWaWV3KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmRpc3Bs
YXkpOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKwogMjAxNy0wNS0wMyAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIxNjE2MCBhbmQgcjIxNjE2MS4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuaAkocmV2aXNpb24gMjE2MTY2KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBleHRl
cm4gUmVmUHRyPFRlc3RSdW5uZXI+IGdUZXN0UnVubmVyOwogCiB2b2lkIGR1bXAoKTsKIHZvaWQg
ZGlzcGxheVdlYlZpZXcoKTsKK3ZvaWQgZGlzcGxheUFuZFRyYWNrUmVwYWludHNXZWJWaWV3KCk7
CiAKIHN0cnVjdCBUZXN0Q29tbWFuZCB7CiAgICAgc3RkOjpzdHJpbmcgcGF0aE9yVVJMOwpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9uIDIxNjE2NikKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTQs
MjIgKzUxNCwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxCiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNW
YWx1ZVJlZiBkaXNwbGF5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3Rh
dGljIEpTVmFsdWVSZWYgZGlzcGxheUFuZFRyYWNrUmVwYWludHNDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVtZW50
YXRpb24KICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5l
cio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+ZGlz
cGxheSgpOwotCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQot
Ci1zdGF0aWMgSlNWYWx1ZVJlZiBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb25DYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1w
bGVtZW50YXRpb24KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVz
dFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgLy8gVGVzdFJ1
bm5lcjo6ZGlzcGxheSgpIG9ubHkgcmVuZGVycyB0aGUgaW52YWxpZGF0ZWQgcmVnaW9uIHNvCi0g
ICAgLy8gd2UgY2FuIGp1c3QgdXNlIHRoYXQuCi0gICAgY29udHJvbGxlci0+ZGlzcGxheSgpOwor
ICAgIGNvbnRyb2xsZXItPmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CkBAIC0yMTExLDggKzIxMDAsNyBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jCiAgICAgICAgIHsgImRlY29k
ZUhvc3ROYW1lIiwgZGVjb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJk
aXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhIiwgZGlzYWxsb3dJbmNyZWFz
ZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRp
c3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cyIsIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0c0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgImRpc3BsYXkiLCBkaXNwbGF5Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKLSAgICAgICAgeyAiZGlzcGxheUludmFsaWRhdGVkUmVnaW9uIiwgZGlzcGxheUludmFs
aWRhdGVkUmVnaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiZGlzcGxheUFuZFRyYWNr
UmVwYWludHMiLCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MiLCBkdW1wQXBwbGlj
YXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
ZHVtcEFzVGV4dCIsIGR1bXBBc1RleHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1w
QmFja0ZvcndhcmRMaXN0IiwgZHVtcEJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyMTYxNjYpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5
LDcgQEAgcHVibGljOgogICAgIEpTU3RyaW5nUmVmIGNvcHlEZWNvZGVkSG9zdE5hbWUoSlNTdHJp
bmdSZWYgbmFtZSk7CiAgICAgSlNTdHJpbmdSZWYgY29weUVuY29kZWRIb3N0TmFtZShKU1N0cmlu
Z1JlZiBuYW1lKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwotICAg
IHZvaWQgZGlzcGxheSgpOwotICAgIHZvaWQgZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7Cisg
ICAgdm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQo
SlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUpOwogICAgIGJvb2wgZmluZFN0cmlu
ZyhKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkpOwog
ICAgIHZvaWQgZ29CYWNrKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAyMTYxNjYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwOTgsMTAgKzIwOTgsNiBA
QCB2b2lkIGRpc3BsYXlXZWJWaWV3KCkKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIFdlYlZpZXcg
KndlYlZpZXcgPSBbbWFpbkZyYW1lIHdlYlZpZXddOwogICAgIFt3ZWJWaWV3IGRpc3BsYXldOwot
Ci0gICAgLy8gRklYTUU6IFRyYWNraW5nIHJlcGFpbnRzIGlzIG5vdCBzcGVjaWZpYyB0byBNYWMu
IFdlIHNob3VsZCBlbmFibGUgc3VjaCBzdXBwb3J0IG9uIGlPUy4KLSAgICBbd2ViVmlldyBzZXRU
cmFja3NSZXBhaW50czpZRVNdOwotICAgIFt3ZWJWaWV3IHJlc2V0VHJhY2tlZFJlcGFpbnRzXTsK
ICNlbHNlCiAgICAgW2dEcnRXaW5kb3cgbGF5b3V0VGlsZXNOb3ddOwogICAgIFtnRHJ0V2luZG93
IHNldE5lZWRzRGlzcGxheUluUmVjdDpbZ0RydFdpbmRvdyBmcmFtZV1dOwpAQCAtMjEwOSw2ICsy
MTA1LDE3IEBAIHZvaWQgZGlzcGxheVdlYlZpZXcoKQogI2VuZGlmCiB9CiAKK3ZvaWQgZGlzcGxh
eUFuZFRyYWNrUmVwYWludHNXZWJWaWV3KCkKK3sKKyAgICBkaXNwbGF5V2ViVmlldygpOworI2lm
ICFQTEFURk9STShJT1MpCisgICAgLy8gRklYTUU6IFRyYWNraW5nIHJlcGFpbnRzIGlzIG5vdCBz
cGVjaWZpYyB0byBNYWMuIFdlIHNob3VsZCBlbmFibGUgc3VjaCBzdXBwb3J0IG9uIGlPUy4KKyAg
ICBXZWJWaWV3ICp3ZWJWaWV3ID0gW21haW5GcmFtZSB3ZWJWaWV3XTsKKyAgICBbd2ViVmlldyBz
ZXRUcmFja3NSZXBhaW50czpZRVNdOworICAgIFt3ZWJWaWV3IHJlc2V0VHJhY2tlZFJlcGFpbnRz
XTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKElPUykKIEBpbXBsZW1lbnRhdGlvbiBEdW1w
UmVuZGVyVHJlZUV2ZW50CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVu
bmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVu
bmVyTWFjLm1tCShyZXZpc2lvbiAyMTYxNjYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUwLDkgKzI1MCw5IEBAIEpTU3Ry
aW5nUmVmIFRlc3RSdW5uZXI6OmNvcHlFbmNvZGVkSG9zdE4KICAgICByZXR1cm4gSlNTdHJpbmdD
cmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKVtuYW1lTlMgX3dlYl9lbmNvZGVIb3N0TmFt
ZV0pOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXkoKQordm9pZCBUZXN0UnVubmVyOjpk
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCiB7Ci0gICAgZGlzcGxheVdlYlZpZXcoKTsKKyAgICBk
aXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcoKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpr
ZWVwV2ViSGlzdG9yeSgpCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5l
cldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5u
ZXJXaW4uY3BwCShyZXZpc2lvbiAyMTYxNjYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdFJ1bm5lcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU1N0
cmluZ1JlZiBUZXN0UnVubmVyOjpjb3B5RW5jb2RlZEhvc3ROCiAgICAgcmV0dXJuIDA7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCkKIHsKICAgICBkaXNwbGF5V2ViVmlldygpOwogfQpJbmRleDogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CShyZXZpc2lvbiAyMTYxNjYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDcgQEAgSlND
bGFzc1JlZiBUZXN0UnVubmVyOjp3cmFwcGVyQ2xhc3MoKQogICAgIHJldHVybiBKU1Rlc3RSdW5u
ZXI6OnRlc3RSdW5uZXJDbGFzcygpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXkoKQor
dm9pZCBUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCiB7CiAgICAgV0tCdW5k
bGVQYWdlUmVmIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCk7CiAgICAgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KHBhZ2UpOwpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHJldmlz
aW9uIDIxNjE2NikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsOCArMTQwLDggQEAgcHVibGljOgogICAg
IC8vIFJlcGFpbnQgdGVzdGluZy4KICAgICB2b2lkIHRlc3RSZXBhaW50KCkgeyBtX3Rlc3RSZXBh
aW50ID0gdHJ1ZTsgfQogICAgIHZvaWQgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KCkgeyBtX3Rl
c3RSZXBhaW50U3dlZXBIb3Jpem9udGFsbHkgPSB0cnVlOyB9Ci0gICAgdm9pZCBkaXNwbGF5KCk7
Ci0gICAgCisgICAgdm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOworCiAgICAgLy8gVXNl
ckNvbnRlbnQgdGVzdGluZy4KICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291
cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKTsKICAgICB2b2lkIGFkZFVzZXJT
dHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpOwpJbmRleDogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCShyZXZpc2lvbiAyMTYxNjYpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICAvLyBS
ZXBhaW50IHRlc3RpbmcuCiAgICAgdm9pZCB0ZXN0UmVwYWludCgpOwogICAgIHZvaWQgcmVwYWlu
dFN3ZWVwSG9yaXpvbnRhbGx5KCk7Ci0gICAgdm9pZCBkaXNwbGF5KCk7CisgICAgdm9pZCBkaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgLy8gUHJpbnRpbmcKICAgICBib29sZWFuIGlz
UGFnZUJveFZpc2libGUobG9uZyBwYWdlSW5kZXgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE2MTY2
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTgw
IEBACisyMDE3LTA1LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVuYW1lIHRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lIEFsbCB0aGUgY2FsbHMgdG8gdGVzdFJ1bm5lci5kaXNw
bGF5KCkgdG8gdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCisgICAgICAgIEdl
dCByaWQgb2YgdGVzdFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKSBzaW5jZSBpdCBp
cyBqdXN0IGNvcHkKKyAgICAgICAgb2YgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvY2xpcC1jaGFuZ2UuaHRtbDoKKyAgICAgICAg
KiBjb21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMtdHJhbnNmb3Jt
ZWQtb3ZlcmZsb3cuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1j
b21wb3NpdGVkLW5lc3RlZC1pZnJhbWVzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9iZWNvbWUtb3ZlcmxhcHBlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFt
ZTIuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRp
bmctaWZyYW1lMy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvZW50ZXItY29t
cG9zaXRpbmctaWZyYW1lLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJh
bWUtY29udGVudC1mbGlwcGluZy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMv
aWZyYW1lLXJlc2l6ZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1l
LXNpemUtdG8temVyby5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1l
LXNyYy1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJs
ZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVz
L2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2xlYXZlLWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNv
bXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1uZXN0ZWQtaWZyYW1lcy5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0
aW9uLXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJj
ZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmctaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1nYWlucy1zY3JvbGxiYXJzLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxi
YXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91
dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1jb250ZW50cy5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1sYXllcnMuaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9wYWludC1uZWctei1vcmRlci1kZXNjZW5kYW50
cy1pbnRvLXNjcm9sbGluZy1jb250ZW50cy1sYXllci5odG1sOgorICAgICAgICAqIGNvbXBvc2l0
aW5nL292ZXJmbG93L3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQt
dGV4dC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRp
bmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLWV4cGVjdGVkLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9z
aXRpbmctY2hhbmdlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0
LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQuaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9wbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS13aXRoLWZp
eGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9y
ZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmctaWZyYW1lLXNjcm9sbC1yZXBhaW50Lmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS13
aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sOgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvcGFnZS1zY2FsZS1yZXBhaW50Lmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9yZXF1aXJlcy1iYWNraW5nLXJlcGFpbnQuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2Uu
aHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9ydGwvcnRsLW92ZXJmbG93LWludmFsaWRhdGlv
bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQt
Y29udGVudC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJl
c2l6ZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXdpdGgtaW52YWxpZC1zb3Vy
Y2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZXBhaW50Lmh0bWw6
CisgICAgICAgICogY3NzMy9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0
bWw6CisgICAgICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbDoK
KyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1kdXJpbmctcmVzaXplLW5vLWZsZXguaHRt
bDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWw6CisgICAg
ICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBkaXNwbGF5bGlzdHMv
Y2FudmFzLWRpc3BsYXktbGlzdC5odG1sOgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9yZXNvdXJj
ZXMvZHVtcC10YXJnZXQtZGlzcGxheS1saXN0LmpzOgorICAgICAgICAoZG9UZXN0KToKKyAgICAg
ICAgKiBkaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzOgor
ICAgICAgICAoZG9UZXN0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sOgorICAgICAgICAq
IGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1s
OgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFt
ZS5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWlmcmFtZTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzOgorICAgICAg
ICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
aXNhYmxlZC5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtcHJlZml4LmpzOgorICAgICAgICAod2luZG93LndlYmtpdFJlcXVl
c3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICh3aW5kb3cudGVzdFJ1bm5lci53aW5kb3cuc2V0
VGltZW91dCk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5qczoKKyAgICAgICAgKHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanM6CisgICAgICAgICh3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKHdpbmRvdy50ZXN0UnVubmVyLndp
bmRvdy5zZXRUaW1lb3V0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qczoKKyAgICAgICAgKiBmYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxi
YWNrLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS5qczoKKyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJh
Y2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1s
OgorICAgICAgICAqIGZhc3QvYmFja2dyb3VuZHMvc29saWQtY29sb3ItY29udGV4dC1yZXN0b3Jl
Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWFzLWltYWdlLWluY3JlbWVudGFs
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwt
cmVwYWludC0yLmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFs
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVy
LXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3VyY2VzL3JlcGFpbnQuanM6
CisgICAgICAgIChydW5SZXBhaW50VGVzdCk6CisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0
LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qczoKKyAgICAgICAg
KFRlc3RDb250cm9sbGVyUGFpbnQpOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZh
cy10ZXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBk
YXRlLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9yZWxhdGl2ZS1wb3NpdGlvbmVkLWJsb2NrLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93ZWItdGltaW5nLW1pbmltYWwtcGVyZm9ybWFu
Y2Utbm93Lmh0bWw6CisgICAgICAgICogZmFzdC9keW5hbWljL2NvbnRhaW5pbmctYmxvY2stY2hh
bmdlLmh0bWw6CisgICAgICAgICogZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0
ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJl
LWNhbmNlbC5qczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0
dXJlLWZsaW5nLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbDoK
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZnJhbWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWw6CisgICAgICAgICogZmFz
dC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWw6CisgICAgICAgICogZmFzdC9pbWFn
ZXMvYW5pbWF0ZWQtYmFja2dyb3VuZC1pbWFnZS1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3Qv
bGF5ZXJzL2FkZC1sYXllci13aXRoLW5lc3RlZC1zdGFja2luZy5odG1sOgorICAgICAgICAqIGZh
c3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWw6CisgICAgICAgICogZmFz
dC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNoYW5nZS5odG1sOgorICAgICAgICAq
IGZhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sOgorICAgICAgICAqIGZhc3QvbGF5ZXJz
L25lc3RlZC1sYXllcnMtMi5odG1sOgorICAgICAgICAqIGZhc3QvbGF5ZXJzL25lc3RlZC1sYXll
cnMtMy5odG1sOgorICAgICAgICAqIGZhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtNC5odG1sOgor
ICAgICAgICAqIGZhc3QvbGF5ZXJzL3JlbW92ZS1sYXllci13aXRoLW5lc3RlZC1zdGFja2luZy5o
dG1sOgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlZmxlY3Rpb25zL2lubGluZS1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5k
LWhlaWdodC1jaGFuZ2VzLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxk
LW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLWNo
aWxkLW9mLWZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L2ZpeGVkLWNoaWxkLW9mLXRyYW5zZm9ybWVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1l
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdw
b3J0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8t
cmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9vdmVyZmxvdy1oaWRkZW4taW4t
b3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jl
bmRlcmVyLWRlc3RydWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvcmVwYWludC1kdXJpbmctc2Nyb2xsLXdpdGgtem9vbS5odG1s
OgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXNvdXJjZXMvZml4ZWQtbW92ZS1hZnRlci1rZXli
b2FyZC1zY3JvbGwtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNl
cy9pZnJhbWUtc2Nyb2xsLXJlcGFpbnQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanM6CisgICAgICAgIChiZWdpblRl
c3QpOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qczoKKyAgICAg
ICAgKHJ1blJlcGFpbnRUZXN0KToKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZs
b3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWw6CisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWw6CisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sOgor
ICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwtcmVtb3Zl
Lmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXIt
Y29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAg
ICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9y
ZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9j
YWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sOgor
ICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xn
cm91cC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sZ3JvdXAtYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAg
ICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXIt
Y29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2Utcm93LWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9y
ZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXItY29sb3IuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUt
Ym9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2lu
Zy9jYWNoZWQtY2hhbmdlLXRib2R5LWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3Qv
dGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWw6CisgICAgICAg
ICogZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbDoKKyAgICAg
ICAgKiBtZWRpYS9hdWRpby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogbWVkaWEvbWVkaWEtZG9j
dW1lbnQtYXVkaW8tcmVwYWludC5odG1sOgorICAgICAgICAqIHBsdWdpbnMvd2luZG93bGVzc19w
bHVnaW5fcGFpbnRfdGVzdC5odG1sOgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLXBl
cmNlbnQtcGFkZGluZy1jcmFzaC5odG1sOgorICAgICAgICAqIHN2Zy9jdXN0b20vbm9uLXNjYWxp
bmctc3Ryb2tlLXVwZGF0ZS5zdmc6CisgICAgICAgICogc3ZnL2N1c3RvbS9zdGFsZS1yZXNvdXJj
ZS1kYXRhLWNyYXNoLnN2ZzoKKwogMjAxNy0wNS0wMyAgTWF0dCBMZXdpcyAgPGpsZXdpczNAYXBw
bGUuY29tPgogCiAgICAgICAgIE1hcmsgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2Rz
Lmh0bWwgYXMgZmxha3kuCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoYW5n
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdl
Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAt
Y2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAvLyBUaGUg
Y2hhbmdlIGluIGNsaXAgc3R5bGUgc2hvdWxkIGJlIHJlZmxlY3RlZCBpbW1lZGlhdGVseSBpbiB0
aGUgc2l6ZQogICAgICAgLy8gb2YgdGhlIGNvbXBvc2l0ZWQgY2xpcHBlciBsYXllci4gQWZ0ZXIg
Y2hhbmdpbmcgdGhlIGNsaXAsIGl0IHNob3VsZAogICAgICAgLy8gZW50aXJlbHkgY292ZXIgdGhl
IGluZGljYXRvci4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVk
LWNvbXBvc2l0ZWQtY29udGVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCShyZXZpc2lvbiAy
MTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY3JvbGwtcGFpbnRlZC1jb21wb3Np
dGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICAvLyBGb3JjZSBhIHBh
aW50IHNvIHRoYXQgdGhlIGNvbnRlbnQgd2lsbCBiZSBwYWludGVkIGF0IHRoZSBjdXJyZW50IHNj
cm9sbCBvZmZzZXQgKDB4MCkKICAgICAgICAgICAgIC8vIGJlZm9yZSB3ZSBzY3JvbGwuCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgfQogICAgICAgICB3aW5kb3cuc2Nyb2xs
QnkoMzAwLCAwKTsKICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby1wYWdlLXZpc2liaWxpdHkuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBAQAogICAgIHZpZGVvLnNyYyA9ICdyZXNvdXJjZXMv
dmlkZW8uJyArICh2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vb2dnJykgPyAnb2d2JyA6ICdtcDQn
KTsKICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9u
KCkgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOwotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsK
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5k
LW9mZnNldC1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3VuZC1vZmZzZXQtY2hhbmdlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTUzLDcgKzUzLDcgQEAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmV0Y2giKS5zdHlsZS5sZWZ0ID0gIi0xMDBweCI7
CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5
ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVk
LW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJvdW5kcy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBACiAgICAgewogICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2FsbCBkaXNwbGF5KCkgaGVy
ZSB0byBzeW5jIHRoZSBjb21wb3NpdG9yIHN0YXRlIGFuZCBhdm9pZCBhIHJhY2UgY29uZGl0aW9u
LgotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVk
LWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL2JlY29tZS1jb21wb3NpdGVkLW5lc3RlZC1pZnJhbWVzLmh0bWwJKHJldmlzaW9uIDIxNjE2
NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQt
bmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAg
ICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJI
VE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICB9CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92
ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJsYXknKS5zdHls
ZS5oZWlnaHQgPSAnMTUwcHgnOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50aW5nIGhhcyB0
byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQYWludGluZyBoYXMgdG8gaGFwcGVuIHRvIGRl
dGVjdCBvdmVybGFwLgogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCds
YXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1
bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAg
ICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwJKHJldmlzaW9uIDIx
NjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3Np
dGluZy1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBm
dW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpZnJhbWUnKS5jbGFzc05hbWUgPSAnY29tcG9zaXRlZCc7CiAKSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNv
bXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAg
ewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY2xhc3NOYW1lID0gJ2NvbXBv
c2l0ZWQnOwogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQu
aHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1l
cy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS1kZWxheWVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmNsYXNzTmFtZSA9ICdjb21wb3Np
dGVkJzsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBv
c2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdw
YXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsg
YXJvdW5kIGJ1ZyA0MTk5OS4KIAogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogCiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRl
cm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvZW50ZXItY29tcG9zaXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJh
bWUuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQt
aWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5k
IGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJU
ZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBw
aW5nLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTks
NyArMTksNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaWZyYW1lJykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogICAgIH0KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6
ZS5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL2lmcmFtZS1yZXNpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTEgKzM4LDExIEBA
CiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGlzIGRlbGF5IGlzIHJlcXVpcmVkIGZvciBB
cHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhlIGRpc3BsYXkuCiAgICAgICAgIHdpbmRvdy5z
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncGFyZW50LWlmcmFtZScpLmNsYXNzTmFtZSA9ICdiaWdnZXInOwogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXll
cnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAg
ICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRv
LXplcm8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc2l6ZS10by16ZXJvLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMg
ZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlz
cGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogCiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJzID0gZmFsc2U7CiAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgICAgICAgdmFyIGhhdmVMYXllcnMgPSB3aW5kb3cuaW50ZXJuYWxz
LmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCkgIT0gIiI7CiAgICAgICAgICAgICAgICAgdmFyIHJl
c3VsdDsKICAgICAgICAgICAgICAgICBpZiAoaGFkTGF5ZXJzICYmICFoYXZlTGF5ZXJzKQpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNy
Yy1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBACiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJzQmVmb3JlID0gZmFsc2U7CiAgICAg
ICAgICAgICB2YXIgaGFkTGF5ZXJzQWZ0ZXIgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAv
LyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRlc3RpbmcuCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBv
dmVybGFwIHRlc3RpbmcuCiAgICAgICAgICAgICAgICAgaGFkTGF5ZXJzQmVmb3JlID0gd2luZG93
LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpICE9ICIiOwogICAgICAgICAgICAg
fQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0
ZWQtaWZyYW1lLWhpZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAkocmV2aXNpb24gMjE2
MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVk
LWlmcmFtZS1oaWRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAg
ICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAg
ICAgZGl2LnN0eWxlLmNzc1RleHQgPSAiZGlzcGxheTpub25lOyI7CiAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFs
cy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRt
bAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9p
bnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcg
KzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZp
c2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNzc1RleHQgPSAiIjsKICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJu
YWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2
aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1j
b21wb3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAog
ICAgIHsKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29u
dGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4K
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4
dChkb2N1bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJs
YXBwZWQtaWZyYW1lLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIx
NjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJh
bWUtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgICAg
Ly8gZm9yIG92ZXJsYXAgdGVzdGluZyB0byBraWNrIGluLgogICAgICAgICB3aW5kb3cuc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFs
cy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24g
MjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlm
cmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgIC8vIEZv
ciBzb21lIHJlYXNvbiB0aGlzIGRlbGF5IGlzIHJlcXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNo
b3J0LWNpcmN1aXQgdGhlIGRpc3BsYXkuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQo
ZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
ICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQt
bmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkocmV2aXNpb24gMjE2MTY2
KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1p
ZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAgICAgICB3
aW5kb3cuc2Nyb2xsVG8oMCwgMTAwKTsKICAgICAgICAgICAvLyBGb3JjZSBhIHBhaW50LCBhbmQg
Z2l2ZSBsYXllcnMgYSBjaGFuY2UgdG8gdXBkYXRlLgogICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgIHdpbmRvdy5z
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlu
bmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmct
c2Nyb2xsYmFycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYx
NjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3JlcGFpbnQtYWZ0ZXItbG9z
aW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3RoIikuY29udGVu
dERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgidGFsbCIpOyAvLyB2ZXJ0aWNhbCBhbmQgaG9y
aXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZsb3cgY29udHJvbHMgdmlzaWJsZS4KKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQYWludCBvbmNl
IHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2libGUuCiAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKICAgICB9IGVsc2UKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgNTAw
MCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJh
bWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Nj
cm9sbGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmctaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMg
cmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50LWlmcmFtZScpLmNvbnRl
bnRXaW5kb3cuc2Nyb2xsVG8oODAsIDgwKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMv
Zml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1s
CShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jl
c291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw3ICsyNyw3IEBACiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAg
ICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAyMDAwKTsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHdpbmRvdy5zY3Jv
bGxUbygwLCAxODAwKTsKICAgICB9CiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMv
cmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybWVkLXN1YmZyYW1lLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQt
cG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBA
QAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAvLyBBbnkgc2Nyb2xsIHNob3VsZCBr
ZWVwIHRoZSBmaXhlZC1wb3NpdGlvbiBlbGVtZW50IHdoZXJlIGl0IGlzLgogICAgICAgLy8gSWYg
aXQgc3R1dHRlcnMgb3IgZGlzYXBwZWFycyBpbmNvcnJlY3RseSwgdGhlbiB0aGUgcmVkIGJhY2tn
cm91bmQgd2lsbCBiZSByZXZlYWxlZC4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQtaW5uZXIuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNo
aWxkLWlubmVyLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQtaW5uZXIuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewog
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
Ly8gU2Nyb2xsIHJlZCBib3ggb2ZmIHNjcmVlbiBhbmQgc2Nyb2xsIGdyZWVuIGJveCBpbnRvIHNh
bWUgcGxhY2UuCiAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgNDAwKTsKICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2Nv
bnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCShyZXZpc2lv
biAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdh
aW5zLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDksMTQgKzQ5LDE0IEBAIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvdGgi
KS5jbGFzc0xpc3QuYWRkKCJ0YWxsIik7IC8vIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9s
bGJhcnMKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29ybmVyIikuY2xhc3NMaXN0LmFk
ZCgicmVzaXplV2lkZ2V0Iik7IC8vIGJvdHRvbSBkaXYgZ2V0cyBhIHJlc2l6ZSBjb3JuZXIgYnV0
IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBjb21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0
ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1
cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUuCiAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQogfQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29u
dGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9scworICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRh
dGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9scwogICAg
IGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZpbmlzaFRlc3Qs
IDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nl
cy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwJKHJldmlzaW9uIDIxNjE2NikK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtbG9zZXMtc2Nyb2xs
YmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxNCArNDksMTQgQEAgZnVuY3Rpb24gZmlu
aXNoVGVzdCgpIHsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm90aCIpLmNsYXNzTGlz
dC5yZW1vdmUoInRhbGwiKTsgLy8gdmVydGljYWwgYW5kIGhvcml6b250YWwgc2Nyb2xsYmFycwog
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3JuZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJy
ZXNpemVXaWRnZXQiKTsgLy8gYm90dG9tIGRpdiBsb3NlcyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5v
IHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBjb21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4K
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUg
Y29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUuCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJl
ZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQogfQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsg
Ly8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFp
bmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9scworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVk
IGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9scwogICAgIGZp
bmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDAp
OwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91
dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1jb250ZW50cy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2RvLW5vdC1wYWludC1vdXRsaW5l
LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctY29udGVudHMuaHRtbAkocmV2aXNpb24gMjE2MTY2
KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxp
bmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1jb250ZW50cy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICB0ZXh0YXJlYS5mb2N1cygpOwogICAgICAgdGV4dGFy
ZWEuc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5zZWxlY3Rpb25FbmQgPSAwOwogICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRUZXN0LCAxMDApOwogICAgIH0KIApJbmRleDogTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L292ZXJm
bG93LXNjcm9sbGJhci1sYXllcnMuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHJlc2l6ZTogYm90aDsKIDxzY3JpcHQ+CiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5zdXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0
byBkYXRlLgorICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRW5z
dXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgogICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJl
ZUFzVGV4dChkb2N1bWVudCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9yZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xs
aW5nLWNvbnRlbnRzLWxheWVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxp
bmctY29udGVudHMtbGF5ZXIuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3JkZXItZGVzY2VuZGFudHMtaW50by1z
Y3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYs
NyBAQAogICAgICAgdGV4dGFyZWEuc2Nyb2xsVG9wID0gNDA7CiAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCiAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gZG9UZXN0KCkK
QEAgLTQ1LDcgKzQ1LDcgQEAKICAgICAgIHRleHRhcmVhLmZvY3VzKCk7CiAgICAgICB0ZXh0YXJl
YS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVhLnNlbGVjdGlvbkVuZCA9IDA7CiAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRlc3QsIDEwMCk7CiAgICAgfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxi
YXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
cmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1z
Y3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBQYWludCBv
bmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2libGUuCisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93
IGNvbnRyb2xzIHZpc2libGUuCiAgICAgZmluaXNoVGVzdCgpOwogfSBlbHNlCiAgICAgd2luZG93
LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC1leHBlY3RlZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDIx
NjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJu
LWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTks
NyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNr
Z3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwog
ICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10
ZXh0Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Bh
dHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRv
IGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgIGJnLmlubmVySFRN
TCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0
ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVy
bi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRp
bmctY2hhbmdlLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAK
ICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHku
CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgYmcuaW5uZXJIVE1MID0gIjxzcGFu
IHN0eWxlPVwib3BhY2l0eTowXCI+MTIzPC9zcGFuPiI7CiAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQogICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Bh
dHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCShyZXZpc2lvbiAy
MTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVy
bi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAK
IAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25s
eS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICBiZy5pbm5lckhUTUwgPSAiIjsK
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMv
ZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBv
c2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1l
eHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAKICAgICAgICAg
ICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdlOwogICAgICAg
ICAgIGltZy5vbmxvYWQgPSBvbkJhY2tncm91bmRJbWFnZUxvYWQ7CkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0
LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1s
b2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAKIAogICAgICAgICAgIC8v
IENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIAogICAgICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAg
aW1nLm9ubG9hZCA9IG9uQmFja2dyb3VuZEltYWdlTG9hZDsKSW5kZXg6IExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNp
b24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRl
X3JlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsMTAgKzE3LDEwIEBACiAKICAgICBmdW5j
dGlvbiBvbkxvYWQoKQogICAgIHsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgcGFpbnRDb3VudCA9
IDA7CiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFBsdWdpbicpLmludmFsaWRh
dGVSZWN0KDAsIDAsIDIwMCwgMjAwKTsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRh
dGVkUmVnaW9uKCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICBpZiAocGFpbnRDb3VudCA+IDApCiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJTVUNDRVNTIjsKICAgICB9CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1j
b21wb3NpdGVkLW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTYzLDExICs2MywxMSBAQAogCiAgICAgZnVuY3Rpb24gcmVwYWludFRl
c3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycp
LnNjcm9sbFRvcCA9IDMwOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNj
cm9sbFRvcCA9IDUwOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXds
eS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9zaXRlZC1yZXBhaW50LXJlY3QuaHRtbAko
cmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXds
eS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2
NSw3IEBACiAgICAgICAgIC8vIEZvcmNlIER1bXBSZW5kZXJUcmVlIHRvIGRvIGEgbGF5b3V0IGFu
ZCByZXBhaW50IGhlcmUsIHRoaXMgaXMgd2hlcmUgdGhlIHJlcGFpbnRSZWN0CiAgICAgICAgIC8v
IGdvZXMgd3JvbmcgYmVjYXVzZSBpdCBkb2VzIG5vdCBnZXQgdXBkYXRlZCBmb3IgYSBuZXdseSBj
b21wb3NpdGVkIGVsZW1lbnQuCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgLy8gU2Nyb2xsaW5nIGEgbGl0dGxlIHdpbGwgZGVtb25zdHJh
dGUgd2hldGhlciB0aGUgcmVwYWludCByZWN0IGlzIGNvcnJlY3Qgb3Igbm90LgpJbmRleDogTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9wYWdlLXNjYWxlLXJlcGFpbnQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVw
YWludC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQs
NyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwog
fQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9yZXF1aXJlcy1iYWNraW5n
LXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBh
aW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAgICAgICAgICAgICBvdmVyZmxv
dy5zY3JvbGxUb3AgPSA1MDsKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgb3Zl
cmZsb3cuc2Nyb2xsVG9wID0gNzU7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBh
aW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNp
b24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC90cmFuc2Zvcm0t
c3R5bGUtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKIH0KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7IC8vIEZvcmNlIG9uZSBjb21wb3NpdGUgd2l0aCBwcmVzZXJ2ZS0zZAorICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2Ugb25lIGNvbXBv
c2l0ZSB3aXRoIHByZXNlcnZlLTNkCiAgICAgdGVzdCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNl
dFRpbWVvdXQodGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50
L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBh
aW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9p
ZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWlu
dC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBh
aW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1y
ZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgZnVu
Y3Rpb24gZG9UZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5k
aW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBh
aW50cy4KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAg
ICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsK
SW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGlu
Zy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmctaWZyYW1lLXNjcm9sbC1yZXBh
aW50Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jl
cGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcg
cmVwYWludHMuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgogCiAgICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS13aXRoLWZpeGVkLWJhY2tncm91
bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3Vu
ZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFj
a2dyb3VuZC1kb2MtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBA
CiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsg
Ly8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZsdXNoIHBlbmRpbmcgY29t
cG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9ydGwvcnRsLW92ZXJmbG93LWludmFsaWRh
dGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwt
b3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIDxzY3JpcHQ+CiAgICAgZnVuY3Rpb24gZG9UZXN0
KCkgewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAg
ICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGVzdCBwYXNzZXMgaWYgdGhpcyBlbGVtZW50IGlzIHJl
cGFpbnRlZCBjb3JyZWN0bHksIGV2ZW4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Rp
bGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxNjYp
CisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy90aWxpbmcvaHVnZS1sYXllci1yZXNpemUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQAogICAgICAgICAgICAgLy8gRm9yY2Ug
YSBsYXlvdXQgYW5kIGEgcGFpbnQgdG8gbWFrZSBzdXJlIHRoZSBjb21wb3NpdGluZyBsYXllcnMK
ICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB1cGRhdGVkLgogICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRMZWZ0OwotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAg
ICAgIHJldHVybiBtZXNzYWdlUHJlZml4ICsgd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1Rl
eHQoZG9jdW1lbnQpOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92
aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8td2l0aC1pbnZhbGlkLXNvdXJjZS5odG1sCShy
ZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby13
aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsNCiAgICAgdi5hcHBlbmRDaGlsZChzcmMpOw0KICAgICBzcmMuYWRk
RXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbigpIHsNCiAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7DQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7DQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOw0KICAgICAgICAgICAg
IC8vIElmIHdlIGRpZG4ndCBjcmFzaCBoZXJlLCB5YXkhICBUZXN0IGlzIGEgc3VjY2Vzcw0KICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlBBU1MiKSk7DQogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7DQpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLXJlcGFpbnQuaHRt
bAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wvd2Vi
Z2wtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9u
IGluaXQoKQogICBnbC5jbGVhckNvbG9yKDEsIDAsIDAsIDEpOyAvLyByZWQKICAgZ2wuY2xlYXIo
Z2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICBkcmF3
R3JlZW4oKTsKICAgfSBlbHNlCkBAIC00Niw4ICs0Niw4IEBAIGZ1bmN0aW9uIGRyYXdHcmVlbigp
CiAgIGdsLmNsZWFyQ29sb3IoMCwgMSwgMCwgMSk7IC8vIGdyZWVuCiAgIGdsLmNsZWFyKGdsLkNP
TE9SX0JVRkZFUl9CSVQpOwogICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOwotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgIH0gZWxzZQogICAgICAgd2luZG93LnNldEludGVydmFs
KGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FudmFzJyku
Y2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVyJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRpb24uaHRtbAko
cmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL211bHRpcGxlLWZp
bHRlcnMtaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAg
ZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCgpIHsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICBjaGFu
Z2VCYWNrZ3JvdW5kKCk7CiB9IGVsc2UgCiAgICAgd2luZG93LnNldFRpbWVvdXQoY2hhbmdlQmFj
a2dyb3VuZCwgMjUwKTsKSW5kZXg6IExheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNv
bHVtbi1yZXZlcnNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0
VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0
cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKICAgICAgICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgZm9yIGZsZXggaXRlbXMgdGhhdCBhcmUgbW92ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRo
ZSBsYXlvdXQgIgpJbmRleDogTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5n
LXJlc2l6ZS1uby1mbGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikK
KysrIExheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWR1cmluZy1yZXNpemUtbm8tZmxl
eC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIGZ1bmN0aW9uIHJlc2l6ZUZs
ZXhJdGVtKCkgewogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICB9IGVsc2UgewogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAogICAgICAgICAgICAgIlRlc3RzIHRvIG1h
a2Ugc3VyZSB0aGF0IHdoZW4gY2hhbmdpbmcgdGhlIHNpemUgb2Ygb25lIGZsZXggaXRlbSBjaGFu
Z2VzIHRoZSAiCkluZGV4OiBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29s
dW1uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQt
cnRsLWNvbHVtbi5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1
LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKSW5kZXg6IExheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2
MTY2KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDMsNyArNDMsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0
cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICB3aW5k
b3cuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKSW5kZXg6IExheW91dFRlc3RzL2Rpc3BsYXlsaXN0
cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZGlz
cGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysg
TGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICAgICAgICAgICAgZHJhd0NhbnZhcygpOwogCiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykudGV4dENvbnRlbnQg
PSBpbnRlcm5hbHMucmVwbGF5RGlzcGxheUxpc3RGb3JFbGVtZW50KGNhbnZhcyk7CkluZGV4OiBM
YXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlz
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1
bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVz
dHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdldC1kaXNwbGF5LWxpc3QuanMJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAg
aW50ZXJuYWxzLnNldEVsZW1lbnRVc2VzRGlzcGxheUxpc3REcmF3aW5nKHRhcmdldERpdiwgdHJ1
ZSk7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgICAgdmFyIGRpc3BsYXlMaXN0
ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9yRWxlbWVudCh0YXJnZXREaXYpOwpJbmRleDogTGF5
b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdldC1yZXBsYXktbGlzdC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAt
dGFyZ2V0LXJlcGxheS1saXN0LmpzCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9k
aXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgfQogICAgIAog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIHZhciBkaXNwbGF5TGlzdCA9IGludGVybmFs
cy5kaXNwbGF5TGlzdEZvckVsZW1lbnQodGFyZ2V0RGl2KTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxl
bWVudDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9LCA1MCk7
CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1s
CShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
NCw3ICsxNCw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKQogICAg
IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFj
ayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsKICAgICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBk
aWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeycgKwotICAg
ICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOycgKworICAgICAgICAgICAgICAn
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsnICsKICAgICAgICAgICAg
ICAgJyAgICB3aW5kb3cuY2xvc2UoKTsnICsKICAgICAgICAgICAgICAgJ30gZWxzZSB7JysKICAg
ICAgICAgICAgICAgJyAgICB3aW5kb3cuc2V0VGltZW91dCh3aW5kb3cuY2xvc2UsIDEwKTsnKwpA
QCAtMjMsNyArMjMsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgc2hvd01vZGFsRGlhbG9n
KCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PicgKyBzcmMgKyAnPC8nICsgJ3NjcmlwdD4nKTsKICAg
ICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2RhbCBkaWFsb2cnKTsKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQogfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5
KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0
aW9uIGRvQ2hlY2tSZXN1bHQoKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0bWwJKHJl
dmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBA
CiAgICAgICAgIGZ1bmN0aW9uIGRvRGlzcGxheSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICAgIH0KICAgICAKICAgICAgICAgZnVuY3Rpb24gZG9DaGVja1Jlc3VsdCgpCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtY2FuY2VsMi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwkocmV2
aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1
LDcgKzE1LDcgQEAgc2Vjb25kQ2FsbGJhY2tJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aQogfSwg
ZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tGaXJlZCIpOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCShyZXZpc2lv
biAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgs
NyBAQCB2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1CiB3aW5kb3cuY2Fu
Y2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgIHNob3VsZEJlRmFsc2UoImNhbGxi
YWNrRmlyZWQiKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5p
bWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwko
d29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdGlvbigpIAogfSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tJ
bnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtcHJlZml4LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1w
cmVmaXguanMJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanMJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDEyICszNCwxMiBAQCB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGZ1bmN0CiAKICAgICBidXN5V2FpdCgxMCk7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCShyZXZpc2lvbiAyMTYxNjYpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtdGltZS11bml0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxMiArMjAsMTIgQEAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aQogICAgICAgICB9KTsKIAog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICB9LCAxKTsKIH0pOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10
aW1lc3RhbXBzLWFkdmFuY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTIxLDExICsyMSwxMSBAQCB3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpCiAgICAgfSk7CiAgICAgYnVz
eVdhaXQoMTApOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKIH0pOwogCiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9KTsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCShyZXZp
c2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MjEsNyArMjEsNyBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpCiB9
KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNr
LmpzCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTAgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdGlvbigpIAogCiAvLyBUaGlzIHNob3VsZCBmaXJlIHRoZSB0aHJlZSBhbHJlYWR5IHJl
Z2lzdGVyZWQgY2FsbGJhY2tzLCBidXQgbm90IHRoZSBvbmUgZHluYW1pY2FsbHkgcmVnaXN0ZXJl
ZC4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAvLyBUaGlzIHNob3VsZCBm
aXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3RlcmVkIGNhbGxiYWNrLgogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS5qcwkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC03LDcgKzcsNyBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiB9
LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91
dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZVRydWUoImNhbGxiYWNrSW52b2tlZCIpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxk
LXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhw
ZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3Jv
dW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNo
aWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxk
cmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGls
ZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxk
LXN0eWxlLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dy
b3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNp
b24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNr
Z3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsy
NCw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xv
ciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29s
b3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3Jv
dW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJlc3RvcmUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1s
CShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlk
LWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3
IEBACiAgICAgPC9kaXY+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogICAg
ICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRh
cmdldCwgMSk7CiAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtYXMtaW1hZ2UtaW5jcmVtZW50YWwtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50
Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5
LDcgKzE5LDcgQEAKICAgICAgIGNhbnZhc0NvbnRleHQgPSBkb2N1bWVudC5nZXRDU1NDYW52YXND
b250ZXh0KCIyZCIsICJzcXVhcmVzIiwgMzAwLCAzMDApOwogICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQtMi5odG1sCShyZXZpc2lv
biAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwt
cmVwYWludC0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICAgICB7CiAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHJl
cGFpbnRUZXN0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
ICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1pbmNyZW1l
bnRhbC1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9IGVsc2UgewpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXIt
cGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsx
Miw3IEBAIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKIH0KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1h
bCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3Ig
dGhlIGNhbnZhcy4KKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8v
IEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhh
dmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZhcy4KICAgICByZXNpemUoKTsKIH0g
ZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJlc2l6ZSwgMCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWludC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWludC5qcwkocmV2aXNpb24gMjE2MTY2KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL3JlcGFpbnQuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTIsNyArMiw3IEBAIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKIHsKICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVk
LXJlcGFpbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0
LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcwkocmV2aXNpb24g
MjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1p
bWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEsNyAr
NDEsNyBAQCB2YXIgZHJhd0l0ZXJhdGlvbnMgPSAyOwogZnVuY3Rpb24gVGVzdENvbnRyb2xsZXJQ
YWludCgpIHsKICAgICB3aGlsZSAoZHJhd0l0ZXJhdGlvbnMgPiAwKSB7CiAgICAgICAgIGRyYXco
KTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgZHJhd0l0ZXJhdGlvbnMgPSBkcmF3SXRl
cmF0aW9ucyAtIDE7CiAgICAgfQogICAgIGRyYXcoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGlmICghZ2wpIHsKICAgdmFyIGludGVydmFsSWQ7CiAg
IGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYgKGNhbnZhcy5jbGllbnRX
aWR0aCA9PSAxMDAgJiYKICAgICAgICAgY2FudmFzLmNsaWVudEhlaWdodCA9PSAyNSkgewogICAg
ICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11cGRhdGUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11cGRhdGUuaHRtbAkocmV2
aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5
ZXItdXBkYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52YXMnKVswXS5zdHlsZS50b3AgPSAiNjBw
eCI7CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAg
ICB9CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBjdHguY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsK
IGN0eC5jbGVhcihjdHguQ09MT1JfQlVGRkVSX0JJVCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzL3BzZXVkb3N0eWxlLWFub255bW91cy10ZXh0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRt
bAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5bGUt
YW5vbnltb3VzLXRleHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQAogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgfQog
ICAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRp
dmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQtYmxvY2stY3Jhc2guaHRtbAkocmV2aXNpb24g
MjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9j
ay1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQAogICAgIDwvc3R5bGU+
CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0
LW1lc3NhZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNyArMjcsNyBAQCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocG9zdE1lc3NhZ2Up
Owogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dlYi10aW1pbmctbWlu
aW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCShyZXZp
c2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1t
aW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsgfQogICAgICAg
ICAsIDEwMCk7CiAKLSAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgd2luZG93
LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAogb25sb2FkID0gc3Rh
cnQoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNo
YW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9jb250YWlu
aW5nLWJsb2NrLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2R5bmFtaWMvY29udGFpbmluZy1ibG9jay1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMywxMyArMywxMyBAQAogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndCcpOwogICAgICAgICB0LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAg
ICB0Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZCh0Lmxhc3RDaGlsZC5sYXN0Q2hpbGQpOwogICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0idGVzdCgpIj4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZHluYW1pYy9sYXllci1uby1sb25nZXItcGFnaW5hdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRt
bAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5v
LWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAog
ICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDEsIDApOwogCiAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIHRlc3QoKTsKICAgICAgICAg
fSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1n
ZXN0dXJlLWNhbmNlbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwkocmV2aXNpb24gMjE2MTY2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1jYW5jZWwu
anMJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2V3aGVlbCIsIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVu
dFNlbmRlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIuZ2VzdHVyZUZsaW5nU3RhcnQpIHsKICAgICBl
dmVudFNlbmRlci5nZXN0dXJlRmxpbmdTdGFydCgxMCwgMTEsIDEwMDAsIDEwMDApOwogICAgIGV2
ZW50U2VuZGVyLmdlc3R1cmVGbGluZ0NhbmNlbCgpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAogc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwkocmV2aXNpb24gMjE2
MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVy
ZS1mbGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTgsOSArMTgsOSBAQCBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgCiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ1N0YXJ0
KSB7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUZsaW5nU3RhcnQoMTAsIDExLCAxMDAwLCAxMDAw
KTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwor
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91
dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Ri
b3guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2hpZGRlbi1saXN0
Ym94Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaGlk
ZGVuLWxpc3Rib3guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiBUaGlzIHRl
c3RzIHRoYXQgdGhlIHdob2xlIGxpc3Rib3ggY29udHJvbCBpcyBoaWRkZW4gd2hlbiB2aXNpYmls
aXR5IGlzIHNldCB0byBoaWRkZW4uCiA8YnI+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2xpc3Rib3gtY2xpcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
bGlzdGJveC1jbGlwLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAK
ICAgICA8L3NlbGVjdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lubGluZS1vYmplY3QtaW5z
aWRlLWZyYW1lc2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
aW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIGRjb250LmFwcGVuZENoaWxkKGUpOwogICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbAkocmV2aXNp
b24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xs
YmFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEzICsyMywxMyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICB9CiAKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSAyMDAwOwogICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICB9LCAwKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jh
c2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1i
YWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0Iikuc3R5bGUuZGlzcGxheT0ibm9uZSI7CiAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgIHNldFRpbWVvdXQoInN0ZXAyKCkiLCAyMDAp
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0
YWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxh
eWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91
dFRlc3RzL2Zhc3QvbGF5ZXJzL2FkZC1sYXllci13aXRoLW5lc3RlZC1zdGFja2luZy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIHNldFRpbWVvdXQodGVzdCwg
MCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9pbmxpbmUtZGlydHktei1vcmRlci1saXN0cy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVy
LWxpc3RzLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJz
L2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcg
KzE4LDcgQEAKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwog
ICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNoYW5nZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0
eS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXll
cnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNoYW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMSw3ICsxMSw3IEBACiAgICAgfQogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0xLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0xLmh0bWwJKHJldmlz
aW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xh
eWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTYsNyArNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgZmluaXNoKCk7CiAgICAg
fSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMt
My5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0
ZWQtbGF5ZXJzLTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICBmaW5pc2goKTsKICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy00Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy00Lmh0bWwJKHJldmlzaW9uIDIxNjE2
NikKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtNC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZp
bmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1v
dmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAko
cmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVy
LXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcg
QEAgVGhlIHNxdWFyZSBzaG91bGQgYmUgYSB1bmlmb3JtIHNoYWRlIG9mIAogICAgICAgICBzZXRU
aW1lb3V0KHRlc3QsIDApOwogICAgIGVsc2UgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0KIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJl
c2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvaGlkZGVu
LXNjcm9sbGJhci1yZXNpemUuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdHMgdGhhdCB0aGUgc2Nyb2xsYmFyIGFuZCByZXNp
emUgY29ybmVyIGFyZSBub3QgdmlzaWJsZSBvbiBhbiBlbGVtZW50IHRoYXQgaGFzIHZpc2liaWxp
dHk6aGlkZGVuLgogPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGF1dG87IHdpZHRoOiA1MHB4OyBoZWln
aHQ6IDcwcHg7IHJlc2l6ZTogYm90aDsgdmlzaWJpbGl0eTogaGlkZGVuIj4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvaW5saW5lLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRtbAkocmV2aXNpb24g
MjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgfQogICAgICAgICBzZXRUaW1l
b3V0KGNoYW5nZUNvbG9yLCAwKTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHJl
dmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0
ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBACiAgICAg
ewogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsZXInKS5zY3JvbGxUb3AgPSA4MDA7
Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgc2V0VGltZW91dChsb2dSZXBhaW50cywg
MjAwKTsKICAgICB9CkBAIC0yNSw3ICsyNSw3IEBACiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNldFRpbWVvdXQoc3RhcnRUcmFja2lu
Z1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hv
cnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLmh0bWwJKHJldmlzaW9uIDIx
NjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13
aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hhbmdlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01
Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAgICByZXR1cm47CiAgICAgICAg
IAogICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7Ci0gICAgd2lu
ZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiB9CiAKIGZ1bmN0aW9uIGxvZ1JlcGFpbnRzKCkgewpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1v
dmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9maXhlZC1jaGlsZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAg
ICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRU
aW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
Zml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRl
ci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2ZpeGVkLWNoaWxkLW9mLWZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAgICAgc2Nyb2xsQnkoMCwgMjAwKTsKICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAg
ICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zv
cm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1z
Y3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKICAgICAgICAgICBzY3Jv
bGxCeSgwLCAyMDApOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTUpOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xs
Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhl
ZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAog
ICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAx
NSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUt
dmlld3BvcnQtc3ViZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAkocmV2aXNp
b24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRz
aWRlLXZpZXdwb3J0LXN1YmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBA
CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwy
MDApOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBzZXRUaW1lb3V0KHRlc3RBZnRlclNj
cm9sbCwgMjAwKTsKICAgICB9CiAKQEAgLTIyLDcgKzIyLDcgQEAKIAogICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAgICB3aW5kb3cuc2Nyb2xs
VG8oMCwwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgc2V0VGltZW91dCh0ZXN0QWZ0
ZXJTY3JvbGxCYWNrLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJ
KHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9uby1hbmltYXRp
b24tb3V0c2lkZS12aWV3cG9ydC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQAog
ICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICAgIHNldFRpbWVvdXQobG9nUmVwYWludHMsIDIwMCk7CiAgICAgfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91
bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDcgKzUwLDcgQEAKICAgICB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBzZXRUaW1lb3V0KGxvZ1JlcGFpbnRzLCAyMDAp
OwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L292ZXJmbG93LWhpZGRl
bi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3Jv
bGxlZC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
b3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAg
ICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlbmRlcmVyLWRlc3RydWN0aW9uLWJ5LWludmFsaWRhdGVT
ZWxlY3Rpb24tY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1s
CShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXIt
ZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgPGRpdj48L2Rpdj4KICAgICA8c2NyaXB0PgogICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwtd2l0aC16b29tLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpv
b20uaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jl
cGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEs
NyArNDEsNyBAQAogICAgICAgICB9CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RTY3JvbGxSZXBh
aW50KCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3Jv
bGxSZXBhaW50LCAxMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RhYmxlLW92
ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92
ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRl
bi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwog
CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAw
KTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9m
aXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5
Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xs
LWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQAogICAgICAgewogICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
ICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVw
YWludC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3Jlc291cmNlcy9pZnJhbWUtc2Nyb2xsLXJlcGFpbnQtaWZyYW1lLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKIAogd2luZG93
LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAKICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSAyMDsKICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5l
LWZsb3ctd2l0aC1mbG9hdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMJKHJldmlzaW9uIDIxNjE2NikK
KysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvbGluZS1mbG93LXdpdGgtZmxv
YXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGJlZ2luVGVz
dCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5jb250ZW50RG9jdW1lbnQpOwogICAgIH0gZWxzZSBz
ZXRUaW1lb3V0KAogICAgICAgICBmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMJKHJldmlzaW9uIDIxNjE2NikKKysrIExh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcwkod29ya2luZyBjb3B5
KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgICAgICBlbHNl
IGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpCiAgICAgICAgICAgICBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQub2Zmc2V0VG9wOwogCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJl
cGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2V0VGltZW91dChyZXBhaW50VGVz
dCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50
LXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93
aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5b3V0RW5hYmxlZChmYWxzZSk7CiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiAKIFRoZSB0ZXh0YXJlYXMg
YmVsb3cgc2hvdWxkIG5vdCBvdmVybGFwLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwJKHJl
dmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbGJhci10
aWNrbWFya3MtaGl0dGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIG9u
bG9hZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgd2luZG93LmludGVybmFscy5hZGRUZXh0TWF0Y2hN
YXJrZXIocmFuZ2UsIHRydWUpOwogICAgIH0KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh3aW5kb3cuaW5uZXJXaWR0aCAtIDEsIHdpbmRvdy5p
bm5lckhlaWdodCAtIDEpOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHktc2VjdGlvbi1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHktc2VjdGlvbi1jcmFzaC5odG1sCShy
ZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24t
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAKICAgICAgICAgewogICAg
ICAgICAgICAgLyogU2luY2UgdGhlIGNyYXNoIGhhcHBlbnMgaW4gcGFpbnRpbmcgY29kZSwgZm9y
Y2UgcGFpbnRpbmcuIFRoaXMKICAgICAgICAgICAgICAgIG1ha2VzIHRoZSB0ZXN0IHdvcmsgZXZl
biB3aGVuIHJ1biB3aXRob3V0IHRoZSAtLXBpeGVsIG9wdGlvbi4gKi8KLSAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAg
ICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9j
YWNoZWQtNjkyOTYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIENvbGxhcHNlZCBib3JkZXJzIHNob3Vs
ZCBub3QgZGlzYXBwZWFyLgogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewogICAgICAgICAgICAgICAgICAgICByb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncm93MScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCShyZXZp
c2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5n
L2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBA
IEhlcmUgd2UgYXBwZW5kIG5ldyBjZWxsLCBleHBlY3QgdGhhdCBjYWMKICAgICAgICAgICAgIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIG5ld0NlbGwgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwogICAgICAgICAgICAgICAgIG5ld0NlbGwuc3R5
bGUuYm9yZGVyTGVmdFdpZHRoID0gIjZweCI7CiAgICAgICAgICAgICAgICAgbmV3Q2VsbC5zdHls
ZS5ib3JkZXJMZWZ0U3R5bGUgPSAic29saWQiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1yZW1vdmUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJl
bW92ZS5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgcmVtb3ZlIGNlbGwsIGV4cGVjdCB0aGF0IGNhY2hlIGkK
ICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAg
ICAgIGJhckNlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmFyIik7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvdyIpLnJlbW92ZUNoaWxkKGJhckNlbGwp
OwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29s
bGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdl
LWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci1j
b2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdl
IGNlbGwgYm9yZGVyIGNvbG9yLCBleHBlY3QKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJm
b28iKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJsaW1lIjsKICAgICAgICAgICAgIH0KICAgICAgICAg
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5n
L2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1i
b3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY2VsbCBi
b3JkZXIgd2lkdGgsIGV4cGVjdAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLnN0
eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9y
ZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLXNsLWJvcmRlci1jb2xvci5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIEhlcmUgd2U6CiAgICAgICAgICAg
ICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICAvLyByZW1v
dmUgdGV4dCwgdGhpcyByZXF1ZXN0cyBsYXlvdXQgZm9yIERJViwKICAgICAgICAgICAgICAgICAv
LyBidXQgb25seSBzaW1wbGlmaWVkIGxheW91dCBmb3IgVEFCTEUKICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvY2tEaXYiKS5pbm5lclRleHQgPSAiIjsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1j
b2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbAko
cmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSBjb2wgYm9yZGVyIGNvbG9yLCBleHBlY3Qg
CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29sIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAi
eWVsbG93IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRl
ci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0bWwJKHJldmlzaW9u
IDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2Fj
aGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcg
KzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY29sIGJvcmRlciB3aWR0aCwgZXhwZWN0IAogICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xv
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24g
MjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNvbGdyb3VwIGJvcmRlciBjb2xvciwgZXgKICAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xncm91cCIpLnN0eWxlLmJvcmRlckNvbG9yID0g
InllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3Vw
LWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUv
Ym9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3JkZXItd2lkdGguaHRt
bAkocmV2aXNpb24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29s
bGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNvbGdyb3VwIGJvcmRlciB3
aWR0aCwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xncm91cCIpLnN0eWxlLmJv
cmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdl
LXJvdy1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRlci1jb2xvci5odG1s
CShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHJvdyBib3JkZXIgY29sb3IsIGV4cGVj
dCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb3ciKS5zdHlsZS5ib3JkZXJDb2xvciA9
ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9y
ZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNp
b24gMjE2MTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9j
YWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAs
NyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSByb3cgYm9yZGVyIHdpZHRoLCBleHBlY3QgCiAgICAg
ICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm93Iikuc3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9y
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYx
NjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
aGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEw
LDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUgYm9yZGVyIGNvbG9yLCBleHBlYwogICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNp
bmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTY2
KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3
IEBAIEhlcmUgd2UgY2hhbmdlIHRhYmxlIGJvcmRlciB3aWR0aCwgZXhwZWMKICAgICAgICAgICAg
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRU
b3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YmwiKS5zdHlsZS5ib3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAg
ICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUv
Ym9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2Nh
Y2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysr
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10
Ym9keS1ib3JkZXItY29sb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBI
ZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgY29sb3IsIGV4cGVjCiAgICAgICAgICAgICBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwog
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAg
ICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUv
Ym9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2Nh
Y2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdpZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysr
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10
Ym9keS1ib3JkZXItd2lkdGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBI
ZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgd2lkdGgsIGV4cGVjCiAgICAgICAgICAgICBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwog
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAg
ICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250
LWluaXRpYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvZm9udC1p
bml0aWFsLmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9m
b250LWluaXRpYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw1ICs2LDUgQEAKIDxzY3JpcHQ+
CiAgICAgLy8gTWFrZXMgdGhlIHJlbmRlcmluZyBjb2RlIHJ1biBldmVuIHdoZW4gbm90IHJ1bm5p
bmcgYXMgYSBwaXhlbCB0ZXN0LgogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQt
c2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAg
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0K
IH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
aGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0
bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1nbHlwaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
NCw3ICsxNCw3IEBAIGJvZHkgewogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICAgIC8vIEZvcmNlIGxheW91dC4KLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9z
bG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCShy
ZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2Fk
aW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBA
QCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwogCiAvLyBSZXBhaW50IGltbWVkaWF0ZWx5IGJl
Zm9yZSBpbWFnZSBhcnJpdmVkCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9hdWRp
by1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcmVw
YWludC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1y
ZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICB2YXIgY291bnQgPSAzOwogICAgIHZhciBhdWRpb0Vs
ZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2F1ZGlvJyk7CkluZGV4OiBM
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtYXVkaW8tcmVwYWludC5o
dG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVu
dC1hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAg
ewogICAgICAgICB2YXIgdmlkZW9FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZy
IikuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7CiAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB2
aWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPSB2aWRlb0VsZW1lbnQuZHVyYXRpb24gKiAwLjUwOwog
ICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWlu
dF90ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3dsZXNz
X3BsdWdpbl9wYWludF90ZXN0Lmh0bWwJKHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3Rz
L3BsdWdpbnMvd2luZG93bGVzc19wbHVnaW5fcGFpbnRfdGVzdC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEzICsxLDEzIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08aGVhZD4KKzwh
RE9DVFlQRSBodG1sPg0KKw0KKzxodG1sPg0KKzxoZWFkPg0KICAgPHNjcmlwdD4NCiAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7DQogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsN
CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOw0KLSAgICB9Ci0KKyAgICB9DQor
DQogICAgIHZhciBwYWludENvdW50ID0gMDsNCiANCiAgICAgZnVuY3Rpb24gb25Mb2FkKCkgew0K
QEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgcGx1Z2luRGl2LmlubmVySFRNTCA9ICI8ZW1iZWQg
aWQ9XCJ0ZXN0UGx1Z2luXCIgdHlwZT1cImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2Nh
cGVcIiB3aWR0aD1cIjIwMFwiIGhlaWdodD1cIjIwMFwiIG9ucGFpbnRldmVudD1cImRpZFBhaW50
KClcIiB3aW5kb3dlZFBsdWdpbj1cImZhbHNlXCI+PC9lbWJlZD4iOw0KICAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpDQogICAgICAgICAgICAgaW50ZXJuYWxzLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1blBvc3RMYXlvdXRUYXNrcygpOw0KLSAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsNCisgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsNCiAgICAgICB9DQogDQogICAgIGZ1bmN0aW9uIG5v
dGlmeURvbmUoKSB7DQpAQCAtMjcsMTUgKzI3LDE1IEBACiAgICAgZnVuY3Rpb24gZGlkUGFpbnQo
KSB7DQogICAgICAgICBwYWludENvdW50Kys7DQogICAgICAgICBzZXRUaW1lb3V0KCJub3RpZnlE
b25lKCk7IiwgNTApOw0KLSAgICB9Ci0gIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KG9uTG9hZCgpLCA1MCk7Ij4KLSAgVGhpcyB0ZXN0cyB0aGF0IGR5bmFtaWNh
bGx5IGFkZGVkIHdpbmRvd2xlc3MgcGx1Z2lucyByZWNlaXZlIHBhaW50IGV2ZW50cyBvbiBjcmVh
dGlvbi4KLQotICA8ZGl2IGlkPSJyZXN1bHQiPkZBSUxVUkU8L2Rpdj4KLQotICA8ZGl2IGlkPSJw
bHVnaW5EaXYiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDMwMHB4OyB0b3A6IDMw
MHB4OyBoZWlnaHQ6IDQwMHB4OyB3aWR0aDogNDAwcHg7IHBhZGRpbmc6IDFlbTsiPgotICA8L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KKyAgICB9DQorICA8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJv
ZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9uTG9hZCgpLCA1MCk7Ij4NCisgIFRoaXMgdGVzdHMgdGhh
dCBkeW5hbWljYWxseSBhZGRlZCB3aW5kb3dsZXNzIHBsdWdpbnMgcmVjZWl2ZSBwYWludCBldmVu
dHMgb24gY3JlYXRpb24uDQorDQorICA8ZGl2IGlkPSJyZXN1bHQiPkZBSUxVUkU8L2Rpdj4NCisN
CisgIDxkaXYgaWQ9InBsdWdpbkRpdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MzAwcHg7IHRvcDogMzAwcHg7IGhlaWdodDogNDAwcHg7IHdpZHRoOiA0MDBweDsgcGFkZGluZzog
MWVtOyI+DQorICA8L2Rpdj4NCis8L2JvZHk+DQorPC9odG1sPg0KSW5kZXg6IExheW91dFRlc3Rz
L3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1j
cmFzaC5odG1sCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Nj
cm9sbGJhci1wZXJjZW50LXBhZGRpbmctY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEs
NyArMTEsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQogfTsKIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9ub24tc2NhbGluZy1zdHJva2UtdXBkYXRl
LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0
cm9rZS11cGRhdGUuc3ZnCShyZXZpc2lvbiAyMTYxNjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC03LDcg
KzcsNyBAQAogCiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
ICAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDApOwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3N0YWxlLXJlc291cmNlLWRhdGEtY3Jhc2guc3ZnCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcJ
KHJldmlzaW9uIDIxNjE2NikKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVzb3Vy
Y2UtZGF0YS1jcmFzaC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
ICAgICAgLy8gRm9yY2UgYSBwYWludCBhdCB0aGlzIHBvaW50IHRvIGdlbmVyYXRlIGNhY2hlZCBm
aWx0ZXIgcmVzdWx0cy4KLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIAogICAgIGRvY0VsZW1lbnQu
YXBwZW5kQ2hpbGQobmV3RGVmcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309047</attachid>
            <date>2017-05-04 08:29:40 -0700</date>
            <delta_ts>2017-05-04 08:36:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170504082939.patch</filename>
            <type>text/plain</type>
            <size>121404</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE4NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0cmFjayByZXBhaW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChkaXNwbGF5Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChkaXNwbGF5V2ViVmlldyk6
CisgICAgICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6
IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDE3LTA1LTA0ICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBhbiBvcHRpb25hbCB3
aWR0aCBwYXJhbWV0ZXIgdG8gLVtXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIHJlbmRlcmVk
SW1hZ2VXaXRoT3B0aW9uczpdCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
LmgJKHJldmlzaW9uIDIxNjE4NikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgZXh0ZXJuIFJlZlB0cjxUZXN0
UnVubmVyPiBnVGVzdFJ1bm5lcjsKIAogdm9pZCBkdW1wKCk7CiB2b2lkIGRpc3BsYXlXZWJWaWV3
KCk7Cit2b2lkIGRpc3BsYXlBbmRUcmFja1JlcGFpbnRzV2ViVmlldygpOwogCiBzdHJ1Y3QgVGVz
dENvbW1hbmQgewogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAyMTYxODYpCisrKyBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTE0LDIyICs1MTQsMTEgQEAg
c3RhdGljIEpTVmFsdWVSZWYgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcQogICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgZGlzcGxh
eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVm
IGRpc3BsYXlBbmRUcmFja1JlcGFpbnRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQogewogICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCiAgICAgVGVz
dFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdl
dFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPmRpc3BsYXkoKTsKLQotICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQotc3RhdGljIEpTVmFs
dWVSZWYgZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQotewotICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCi0g
ICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09i
amVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIC8vIFRlc3RSdW5uZXI6OmRpc3BsYXko
KSBvbmx5IHJlbmRlcnMgdGhlIGludmFsaWRhdGVkIHJlZ2lvbiBzbwotICAgIC8vIHdlIGNhbiBq
dXN0IHVzZSB0aGF0LgotICAgIGNvbnRyb2xsZXItPmRpc3BsYXkoKTsKKyAgICBjb250cm9sbGVy
LT5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQpAQCAtMjExMSw4ICsyMTAwLDcgQEAgSlNTdGF0aWNGdW5jdGlv
biogVGVzdFJ1bm5lcjo6c3RhdGljRnVuYwogICAgICAgICB7ICJkZWNvZGVIb3N0TmFtZSIsIGRl
Y29kZUhvc3ROYW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzYWxsb3dJbmNyZWFz
ZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSIsIGRpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlv
bkNhY2hlUXVvdGFDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNwYXRjaFBlbmRpbmdM
b2FkUmVxdWVzdHMiLCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHNDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAotICAgICAgICB7ICJkaXNwbGF5IiwgZGlzcGxheUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAg
IHsgImRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbiIsIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImRpc3BsYXlBbmRUcmFja1JlcGFpbnRzIiwgZGlz
cGxheUFuZFRyYWNrUmVwYWludHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQXBw
bGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzIiwgZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxl
Z2F0ZUNhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBBc1RleHQiLCBk
dW1wQXNUZXh0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEJhY2tGb3J3YXJkTGlz
dCIsIGR1bXBCYWNrRm9yd2FyZExpc3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjE2MTg2KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICBKU1N0cmluZ1JlZiBjb3B5RGVjb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwog
ICAgIEpTU3RyaW5nUmVmIGNvcHlFbmNvZGVkSG9zdE5hbWUoSlNTdHJpbmdSZWYgbmFtZSk7CiAg
ICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMoKTsKLSAgICB2b2lkIGRpc3BsYXko
KTsKLSAgICB2b2lkIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpOworICAgIHZvaWQgZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB2b2lkIGV4ZWNDb21tYW5kKEpTU3RyaW5nUmVmIG5h
bWUsIEpTU3RyaW5nUmVmIHZhbHVlKTsKICAgICBib29sIGZpbmRTdHJpbmcoSlNDb250ZXh0UmVm
LCBKU1N0cmluZ1JlZiwgSlNPYmplY3RSZWYgb3B0aW9uc0FycmF5KTsKICAgICB2b2lkIGdvQmFj
aygpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQko
cmV2aXNpb24gMjE2MTg2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDk4LDEwICsyMDk4LDYgQEAgdm9pZCBkaXNwbGF5
V2ViVmlldygpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW21h
aW5GcmFtZSB3ZWJWaWV3XTsKICAgICBbd2ViVmlldyBkaXNwbGF5XTsKLQotICAgIC8vIEZJWE1F
OiBUcmFja2luZyByZXBhaW50cyBpcyBub3Qgc3BlY2lmaWMgdG8gTWFjLiBXZSBzaG91bGQgZW5h
YmxlIHN1Y2ggc3VwcG9ydCBvbiBpT1MuCi0gICAgW3dlYlZpZXcgc2V0VHJhY2tzUmVwYWludHM6
WUVTXTsKLSAgICBbd2ViVmlldyByZXNldFRyYWNrZWRSZXBhaW50c107CiAjZWxzZQogICAgIFtn
RHJ0V2luZG93IGxheW91dFRpbGVzTm93XTsKICAgICBbZ0RydFdpbmRvdyBzZXROZWVkc0Rpc3Bs
YXlJblJlY3Q6W2dEcnRXaW5kb3cgZnJhbWVdXTsKQEAgLTIxMDksNiArMjEwNSwxNyBAQCB2b2lk
IGRpc3BsYXlXZWJWaWV3KCkKICNlbmRpZgogfQogCit2b2lkIGRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzV2ViVmlldygpCit7CisgICAgZGlzcGxheVdlYlZpZXcoKTsKKyNpZiAhUExBVEZPUk0oSU9T
KQorICAgIC8vIEZJWE1FOiBUcmFja2luZyByZXBhaW50cyBpcyBub3Qgc3BlY2lmaWMgdG8gTWFj
LiBXZSBzaG91bGQgZW5hYmxlIHN1Y2ggc3VwcG9ydCBvbiBpT1MuCisgICAgV2ViVmlldyAqd2Vi
VmlldyA9IFttYWluRnJhbWUgd2ViVmlld107CisgICAgW3dlYlZpZXcgc2V0VHJhY2tzUmVwYWlu
dHM6WUVTXTsKKyAgICBbd2ViVmlldyByZXNldFRyYWNrZWRSZXBhaW50c107CisjZW5kaWYKK30K
KwogI2lmICFQTEFURk9STShJT1MpCiBAaW1wbGVtZW50YXRpb24gRHVtcFJlbmRlclRyZWVFdmVu
dAogCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkocmV2
aXNpb24gMjE2MTg2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTI1MCw5ICsyNTAsOSBAQCBKU1N0cmluZ1JlZiBUZXN0UnVu
bmVyOjpjb3B5RW5jb2RlZEhvc3ROCiAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3Ry
aW5nKChDRlN0cmluZ1JlZilbbmFtZU5TIF93ZWJfZW5jb2RlSG9zdE5hbWVdKTsKIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpkaXNwbGF5KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKQogewotICAgIGRpc3BsYXlXZWJWaWV3KCk7CisgICAgZGlzcGxheUFuZFRyYWNr
UmVwYWludHNXZWJWaWV3KCk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6a2VlcFdlYkhpc3Rvcnko
KQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAkocmV2
aXNpb24gMjE2MTg2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsNyArMjI0LDcgQEAgSlNTdHJpbmdSZWYgVGVzdFJ1
bm5lcjo6Y29weUVuY29kZWRIb3N0TgogICAgIHJldHVybiAwOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OmRpc3BsYXkoKQordm9pZCBUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
CiB7CiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjE2
MTg2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIEpTQ2xhc3NSZWYgVGVzdFJ1
bm5lcjo6d3JhcHBlckNsYXNzKCkKICAgICByZXR1cm4gSlNUZXN0UnVubmVyOjp0ZXN0UnVubmVy
Q2xhc3MoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpkaXNwbGF5KCkKK3ZvaWQgVGVzdFJ1bm5l
cjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQogewogICAgIFdLQnVuZGxlUGFnZVJlZiBwYWdl
ID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpOwogICAgIFdLQnVu
ZGxlUGFnZUZvcmNlUmVwYWludChwYWdlKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyMTYxODYpCisr
KyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMTQwLDggKzE0MCw4IEBAIHB1YmxpYzoKICAgICAvLyBSZXBhaW50IHRl
c3RpbmcuCiAgICAgdm9pZCB0ZXN0UmVwYWludCgpIHsgbV90ZXN0UmVwYWludCA9IHRydWU7IH0K
ICAgICB2b2lkIHJlcGFpbnRTd2VlcEhvcml6b250YWxseSgpIHsgbV90ZXN0UmVwYWludFN3ZWVw
SG9yaXpvbnRhbGx5ID0gdHJ1ZTsgfQotICAgIHZvaWQgZGlzcGxheSgpOwotICAgIAorICAgIHZv
aWQgZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKKwogICAgIC8vIFVzZXJDb250ZW50IHRlc3Rp
bmcuCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBydW5B
dFN0YXJ0LCBib29sIGFsbEZyYW1lcyk7CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChKU1N0
cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVzKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbAkocmV2aXNpb24gMjE2MTg2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtOTgs
NyArOTgsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgLy8gUmVwYWludCB0ZXN0aW5n
LgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKTsKICAgICB2b2lkIHJlcGFpbnRTd2VlcEhvcml6b250
YWxseSgpOwotICAgIHZvaWQgZGlzcGxheSgpOworICAgIHZvaWQgZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIAogICAgIC8vIFByaW50aW5nCiAgICAgYm9vbGVhbiBpc1BhZ2VCb3hWaXNpYmxl
KGxvbmcgcGFnZUluZGV4KTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4MCBAQAorMjAxNy0wNS0w
NCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbmFtZSB0ZXN0UnVubmVyLmRpc3BsYXkoKSB0byB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgYWxsIHRoZSBjYWxscyB0byB0ZXN0UnVubmVyLmRpc3BsYXkoKSBieSB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgUmVwbGFjZSBhbGwgdGhl
IGNhbGxzIHRvIHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCkgYnkKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpIHNpbmNlIHRoZSBmb3JtZXIg
aXMgYSBjb3B5IG9mIHRoZSBsYXRlci4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2NsaXAtY2hh
bmdlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3VuZC1vZmZz
ZXQtY2hhbmdlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5
ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRp
bmcvaWZyYW1lcy9iZWNvbWUtY29tcG9zaXRlZC1uZXN0ZWQtaWZyYW1lcy5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS1k
ZWxheWVkLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBv
c2l0aW5nLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1l
cy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2VudGVyLWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1yZXNpemUuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9pZnJhbWVzL2lmcmFtZS1zcmMtY2hhbmdlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRp
bmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1oaWRlLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93Lmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLWlmcmFt
ZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUu
aHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlm
cmFtZXMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3JlcGFpbnQtYWZ0ZXIt
bG9zaW5nLXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Jl
c291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0
aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybWVkLXN1YmZyYW1l
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3Jh
bmRjaGlsZC1pbm5lci5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvc2Nyb2xs
aW5nLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQt
Z2FpbnMtc2Nyb2xsYmFycy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2Nv
bnRlbnQtbG9zZXMtc2Nyb2xsYmFycy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJm
bG93L2RvLW5vdC1wYWludC1vdXRsaW5lLWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctY29udGVu
dHMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9vdmVyZmxvdy1zY3JvbGxi
YXItbGF5ZXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVn
LXotb3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbDoK
KyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3Jv
bGxiYXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRl
cm4tY29tcG9zaXRpbmctYWRkLXRleHQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC5odG1sOgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5n
LWNoYW5nZS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2Rp
cmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0
aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3Np
dGluZy1sb2FkLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRl
X3JlY3QuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRlZC1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS1zY3Jv
bGwtcmVwYWludC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9j
b21wb3NpdGluZy1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLW9uLXNjcm9s
bC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9zaXRlZC1y
ZXBhaW50LXJlY3QuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2Nh
bGUtcmVwYWludC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvcmVxdWlyZXMt
YmFja2luZy1yZXBhaW50Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC90cmFu
c2Zvcm0tc3R5bGUtY2hhbmdlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcnRsL3J0bC1v
dmVyZmxvdy1pbnZhbGlkYXRpb24uaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zY3JvbGwt
cGFpbnRlZC1jb21wb3NpdGVkLWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy90
aWxpbmcvaHVnZS1sYXllci1yZXNpemUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy92aWRl
by1wYWdlLXZpc2liaWxpdHkuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy92aWRlby92aWRl
by13aXRoLWludmFsaWQtc291cmNlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvd2ViZ2wv
d2ViZ2wtcmVwYWludC5odG1sOgorICAgICAgICAqIGNzczMvZmlsdGVycy9tdWx0aXBsZS1maWx0
ZXJzLWludmFsaWRhdGlvbi5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LWNv
bHVtbi1yZXZlcnNlLmh0bWw6CisgICAgICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5n
LXJlc2l6ZS1uby1mbGV4Lmh0bWw6CisgICAgICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRs
LWNvbHVtbi5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50Lmh0bWw6CisgICAg
ICAgICogZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QuaHRtbDoKKyAgICAgICAgKiBk
aXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qczoKKyAgICAg
ICAgKGRvVGVzdCk6CisgICAgICAgICogZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdl
dC1yZXBsYXktbGlzdC5qczoKKyAgICAgICAgKGRvVGVzdCk6CisgICAgICAgICogZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVu
dDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kdXJpbmctbW9kYWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRp
b24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qczoKKyAgICAg
ICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
Y2FuY2VsMi5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXByZWZpeC5qczoKKyAgICAgICAg
KHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAod2luZG93LnRl
c3RSdW5uZXIud2luZG93LnNldFRpbWVvdXQpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lLXVuaXQuanM6CisgICAgICAg
ICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlv
bi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNl
LmpzOgorICAgICAgICAod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICh3
aW5kb3cudGVzdFJ1bm5lci53aW5kb3cuc2V0VGltZW91dCk6CisgICAgICAgICogZmFzdC9hbmlt
YXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanM6
CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanM6CisgICAgICAgICogZmFzdC9iYWNr
Z3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5o
dG1sOgorICAgICAgICAqIGZhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGls
ZC1zdHlsZS1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL3NvbGlkLWNv
bG9yLWNvbnRleHQtcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1h
cy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMv
Y2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQtMi5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFz
L2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMv
Y2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3Jl
c291cmNlcy9yZXBhaW50LmpzOgorICAgICAgICAocnVuUmVwYWludFRlc3QpOgorICAgICAgICAq
IGZhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJl
cGFpbnQuanM6CisgICAgICAgIChUZXN0Q29udHJvbGxlclBhaW50KToKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9jYW52YXMtdGVzdC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dl
YmdsL3dlYmdsLWxheWVyLXVwZGF0ZS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3BzZXVkb3N0
eWxlLWFub255bW91cy10ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvcmVsYXRpdmUtcG9z
aXRpb25lZC1ibG9jay1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9wb3N0
LW1lc3NhZ2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWlu
Zy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sOgorICAgICAgICAqIGZhc3QvZHluYW1pYy9j
b250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sOgorICAgICAgICAqIGZhc3QvZHluYW1pYy9sYXll
ci1uby1sb25nZXItcGFnaW5hdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS9wYWQtZ2VzdHVyZS1jYW5jZWwuanM6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qczoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2hp
ZGRlbi1saXN0Ym94Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9saXN0Ym94LWNsaXAuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9pbmxpbmUtb2JqZWN0LWluc2lkZS1mcmFtZXNldC5o
dG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL3RyYW5zcGFyZW50LXNjcm9sbGJhci5odG1sOgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRt
bDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9hZGQtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9pbmxpbmUtZGlydHktei1vcmRlci1saXN0cy5o
dG1sOgorICAgICAgICAqIGZhc3QvbGF5ZXJzL2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFu
Z2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTEuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9uZXN0
ZWQtbGF5ZXJzLTQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0
aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L2hpZGRlbi1z
Y3JvbGxiYXItcmVzaXplLmh0bWw6CisgICAgICAgICogZmFzdC9yZWZsZWN0aW9ucy9pbmxpbmUt
Y3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVy
LXNjcm9sbC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNob3J0aGFu
ZC13aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hhbmdlcy5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9maXhlZC1jaGlsZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi1maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFm
dGVyLXNjcm9sbC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVy
LXNjcm9sbC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lk
ZS12aWV3cG9ydC1zdWJmcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9uby1hbmlt
YXRpb24tb3V0c2lkZS12aWV3cG9ydC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9vYnNj
dXJlZC1iYWNrZ3JvdW5kLW5vLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
b3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9yZW5kZXJlci1kZXN0cnVjdGlvbi1ieS1pbnZhbGlkYXRlU2VsZWN0
aW9uLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNj
cm9sbC13aXRoLXpvb20uaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2Zp
eGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwYWludC9yZXNvdXJjZXMvaWZyYW1lLXNjcm9sbC1yZXBhaW50LWlmcmFtZS5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVwYWludC9yZXNvdXJjZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpz
OgorICAgICAgICAoYmVnaW5UZXN0KToKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2Vz
L3JlcGFpbnQuanM6CisgICAgICAgIChydW5SZXBhaW50VGVzdCk6CisgICAgICAgICogZmFzdC9y
ZXBhaW50L3RhYmxlLW92ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGxhY2VkL3dpZHRoMTAwcGVyY2VudC10ZXh0YXJlYS5o
dG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVz
dC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLTY5
Mjk2Lmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2VsbC1hcHBlbmQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5n
L2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAq
IGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci13
aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS1jZWxsLXNsLWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUv
Ym9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWw6Cisg
ICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1i
b3JkZXItd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5n
L2NhY2hlZC1jaGFuZ2UtY29sZ3JvdXAtYm9yZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13
aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS1yb3ctYm9yZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGguaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9y
ZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9j
YWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Ut
dGJvZHktYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9lbXB0eS1zZWN0
aW9uLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0L2ZvbnQtaW5pdGlhbC5odG1sOgor
ICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1n
bHlwaC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC90ZXh0LXNoYWRvdy1leHRyZW1lLXZhbHVl
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Nsb3ctbG9hZGluZy1pbWFnZS1pbi1w
YXR0ZXJuLmh0bWw6CisgICAgICAgICogbWVkaWEvYXVkaW8tcmVwYWludC5odG1sOgorICAgICAg
ICAqIG1lZGlhL21lZGlhLWRvY3VtZW50LWF1ZGlvLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBw
bHVnaW5zL3dpbmRvd2xlc3NfcGx1Z2luX3BhaW50X3Rlc3QuaHRtbDoKKyAgICAgICAgKiBzY3Jv
bGxiYXJzL3Njcm9sbGJhci1wZXJjZW50LXBhZGRpbmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBz
dmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3ZnOgorICAgICAgICAqIHN2Zy9j
dXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmc6CisKIDIwMTctMDUtMDQgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgZ2FyZGVuaW5nLiBVcGRhdGUgbWFpbiBleHBlY3RhdGlvbnMgb2YgaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXF1ZXN0LWhlYWRlcnMuaHRtbC4KSW5kZXg6IExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsNyBAQAogICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgIC8vIFRoZSBjaGFuZ2UgaW4gY2xpcCBzdHlsZSBzaG91bGQg
YmUgcmVmbGVjdGVkIGltbWVkaWF0ZWx5IGluIHRoZSBzaXplCiAgICAgICAvLyBvZiB0aGUgY29t
cG9zaXRlZCBjbGlwcGVyIGxheWVyLiBBZnRlciBjaGFuZ2luZyB0aGUgY2xpcCwgaXQgc2hvdWxk
CiAgICAgICAvLyBlbnRpcmVseSBjb3ZlciB0aGUgaW5kaWNhdG9yLgpJbmRleDogTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50ZWQtY29tcG9zaXRlZC1jb250ZW50Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50ZWQtY29tcG9z
aXRlZC1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw3ICsyNSw3IEBACiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgICAgIC8vIEZvcmNlIGEgcGFpbnQgc28gdGhhdCB0aGUgY29udGVudCB3aWxs
IGJlIHBhaW50ZWQgYXQgdGhlIGN1cnJlbnQgc2Nyb2xsIG9mZnNldCAoMHgwKQogICAgICAgICAg
ICAgLy8gYmVmb3JlIHdlIHNjcm9sbC4KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICB9CiAgICAgICAgIHdpbmRvdy5zY3JvbGxCeSgzMDAsIDApOwogICAgIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8tcGFnZS12aXNpYmlsaXR5Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8tcGFnZS12aXNpYmls
aXR5Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Zp
ZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5ICsyMCw5IEBA
CiAgICAgdmlkZW8uc3JjID0gJ3Jlc291cmNlcy92aWRlby4nICsgKHZpZGVvLmNhblBsYXlUeXBl
KCd2aWRlby9vZ2cnKSA/ICdvZ3YnIDogJ21wNCcpOwogICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQYWdl
VmlzaWJpbGl0eSgiaGlkZGVuIik7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RS
dW5uZXIucmVzZXRQYWdlVmlzaWJpbGl0eSgpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zv
cmVncm91bmQtb2Zmc2V0LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZvcmVncm91bmQtb2Zmc2V0LWNoYW5nZS5odG1sCShyZXZpc2lv
biAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5k
LW9mZnNldC1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQAogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Ry
ZXRjaCIpLnN0eWxlLmxlZnQgPSAiLTEwMHB4IjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMtdHJhbnNmb3JtZWQtb3ZlcmZs
b3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9s
aW1pdC1sYXllci1ib3VuZHMtdHJhbnNmb3JtZWQtb3ZlcmZsb3cuaHRtbAkocmV2aXNpb24gMjE2
MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91
bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3
LDcgQEAKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgLy8g
V2UgbmVlZCB0byBjYWxsIGRpc3BsYXkoKSBoZXJlIHRvIHN5bmMgdGhlIGNvbXBvc2l0b3Igc3Rh
dGUgYW5kIGF2b2lkIGEgcmFjZSBjb25kaXRpb24uCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cu
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9iZWNvbWUtY29tcG9zaXRlZC1uZXN0ZWQtaWZyYW1lcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVk
LWlmcmFtZXMuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9iZWNvbWUtY29tcG9zaXRlZC1uZXN0ZWQtaWZyYW1lcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5jbGFzc05h
bWUgPSAnY29tcG9zaXRlZCc7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMv
YmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9iZWNvbWUtb3ZlcmxhcHBlZC1pZnJhbWUuaHRtbAkocmV2aXNp
b24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9iZWNvbWUtb3Zl
cmxhcHBlZC1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAg
ICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnb3ZlcmxheScpLnN0eWxlLmhlaWdodCA9ICcxNTBweCc7CiAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsgLy8gUGFpbnRpbmcgaGFzIHRvIGhhcHBlbiB0byBkZXRlY3Qgb3ZlcmxhcC4K
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8v
IFBhaW50aW5nIGhhcyB0byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAuCiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5p
bnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0
aW5nLWlmcmFtZTIuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNyArMzIsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
IAogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNsYXNzTmFtZSA9ICdj
b21wb3NpdGVkJzsKIApJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25u
ZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lMy5odG1sCShyZXZp
c2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpZnJhbWUnKS5jbGFzc05hbWUgPSAnY29tcG9zaXRlZCc7CiAKSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXllZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXllZC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1l
LWRlbGF5ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogICAgIGZ1bmN0
aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYm94JykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLmh0bWwJKHJldmlzaW9u
IDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21w
b3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudC1pZnJhbWUnKS5jb250ZW50RG9jdW1l
bnQuYm9keS5vZmZzZXRXaWR0aDsgLy8gd29yayBhcm91bmQgYnVnIDQxOTk5LgogCiAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5
ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1l
bnQpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3Np
dGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2VudGVyLWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2VudGVyLWNvbXBvc2l0aW5nLWlmcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgewogICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudC1pZnJhbWUnKS5jb250ZW50RG9jdW1lbnQuYm9k
eS5vZmZzZXRXaWR0aDsgLy8gd29yayBhcm91bmQgYnVnIDQxOTk5LgogICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29u
dGVudC1mbGlwcGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcuaHRtbAkocmV2aXNpb24gMjE2MTg2KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29udGVudC1mbGlwcGlu
Zy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgZnVuY3Rpb24gZG9U
ZXN0KCkKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jbGFzc05h
bWUgPSAnY29tcG9zaXRlZCc7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsMTEgQEAKICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29u
IHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hvcnQtY2lyY3VpdCB0
aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJyku
Y2xhc3NOYW1lID0gJ2JpZ2dlcic7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRl
cm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNpemUtdG8temVyby5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNpemUtdG8temVyby5odG1sCShy
ZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFt
ZS1zaXplLXRvLXplcm8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAg
ICAgICAvLyBGb3Igc29tZSByZWFzb24gdGhpcyBkZWxheSBpcyByZXF1aXJlZCBmb3IgQXBwS2l0
IHRvIG5vdCBzaG9ydC1jaXJjdWl0IHRoZSBkaXNwbGF5LgogICAgICAgICB3aW5kb3cuc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHZhciBoYWRM
YXllcnMgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAt
NDgsNyArNDgsNyBAQAogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB2YXIg
aGF2ZUxheWVycyA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KSAh
PSAiIjsKICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0OwogICAgICAgICAgICAgICAgIGlmICho
YWRMYXllcnMgJiYgIWhhdmVMYXllcnMpCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2lmcmFtZS1zcmMtY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYx
ODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zcmMtY2hhbmdl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgICAgICAgIHZhciBo
YWRMYXllcnNCZWZvcmUgPSBmYWxzZTsKICAgICAgICAgICAgIHZhciBoYWRMYXllcnNBZnRlciA9
IGZhbHNlOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIE5lZWQgdG8gcGFpbnQgZm9yIG92ZXJsYXAg
dGVzdGluZy4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7IC8vIE5lZWQgdG8gcGFpbnQgZm9yIG92ZXJsYXAgdGVzdGluZy4KICAgICAgICAgICAg
ICAgICBoYWRMYXllcnNCZWZvcmUgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChk
b2N1bWVudCkgIT0gIiI7CiAgICAgICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtaGlkZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1p
ZnJhbWUtaGlkZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ludmlzaWJsZScpOwogICAgICAgICBkaXYuc3R5bGUuY3NzVGV4dCA9ICJkaXNw
bGF5Om5vbmU7IjsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7
CiAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hv
dy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaW52
aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hvdy5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmlzaWJsZScpOwogICAgICAgICBkaXYuc3R5bGUu
Y3NzVGV4dCA9ICIiOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVy
cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
KTsKICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQpJbmRleDog
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xlYXZl
LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL2xlYXZlLWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgewogICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3BhcmVudC1pZnJhbWUnKS5jb250ZW50RG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0
aDsgLy8gd29yayBhcm91bmQgYnVnIDQxOTk5LgogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IHdp
bmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlm
cmFtZS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNyArMzUsNyBAQAogICAgICAgICAvLyBmb3Igb3ZlcmxhcCB0ZXN0aW5nIHRvIGtp
Y2sgaW4uCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7
CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1l
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVy
bGFwcGVkLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMg
cmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5k
b3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1uZXN0ZWQtaWZyYW1lcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1uZXN0ZWQt
aWZyYW1lcy5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNyArMzQsNyBAQAogICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxMDApOwogICAg
ICAgICAgIC8vIEZvcmNlIGEgcGFpbnQsIGFuZCBnaXZlIGxheWVycyBhIGNoYW5jZSB0byB1cGRh
dGUuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5s
YXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2luZy1z
Y3JvbGxiYXJzLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImJvdGgiKS5jb250ZW50RG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRk
KCJ0YWxsIik7IC8vIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUp
OwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gUGFpbnQgb25jZSB3aXRoIGFsbCBv
dmVyZmxvdyBjb250cm9scyB2aXNpYmxlLgorICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZsb3cgY29udHJvbHMg
dmlzaWJsZS4KICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChmaW5pc2hUZXN0LCA1MDAwKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvc2Nyb2xsaW5nLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvc2Nyb2xsaW5nLWlmcmFtZS5odG1sCShyZXZpc2lv
biAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1p
ZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgICAgICAvLyBG
b3Igc29tZSByZWFzb24gdGhpcyBkZWxheSBpcyByZXF1aXJlZCBmb3IgQXBwS2l0IHRvIG5vdCBz
aG9ydC1jaXJjdWl0IHRoZSBkaXNwbGF5LgogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudFdpbmRvdy5zY3JvbGxUbyg4MCwgODApOwog
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2Vz
L2ZpeGVkLXBvc2l0aW9uLXN1YmZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXN1YmZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDIw
MDApOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDE4MDApOwogICAgIH0KICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGRvVGVzdCwgZmFsc2UpOwpJbmRleDogTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJh
bnNmb3JtZWQtc3ViZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFt
ZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFtZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAg
ICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAK
ICAgICAgIC8vIEFueSBzY3JvbGwgc2hvdWxkIGtlZXAgdGhlIGZpeGVkLXBvc2l0aW9uIGVsZW1l
bnQgd2hlcmUgaXQgaXMuCiAgICAgICAvLyBJZiBpdCBzdHV0dGVycyBvciBkaXNhcHBlYXJzIGlu
Y29ycmVjdGx5LCB0aGVuIHRoZSByZWQgYmFja2dyb3VuZCB3aWxsIGJlIHJldmVhbGVkLgpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRj
aGlsZC1pbm5lci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQtaW5uZXIuaHRtbAkocmV2aXNpb24gMjE2
MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xs
Z3JhbmRjaGlsZC1pbm5lci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAg
ICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAvLyBTY3JvbGwgcmVkIGJveCBvZmYgc2NyZWVu
IGFuZCBzY3JvbGwgZ3JlZW4gYm94IGludG8gc2FtZSBwbGFjZS4KICAgICAgIHdpbmRvdy5zY3Jv
bGxUbygwLCA0MDApOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1nYWlucy1zY3JvbGxiYXJzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1n
YWlucy1zY3JvbGxiYXJzLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00OSwxNCArNDksMTQgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm90aCIpLmNsYXNzTGlzdC5hZGQoInRhbGwiKTsgLy8g
dmVydGljYWwgYW5kIGhvcml6b250YWwgc2Nyb2xsYmFycwogICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb3JuZXIiKS5jbGFzc0xpc3QuYWRkKCJyZXNpemVXaWRnZXQiKTsgLy8gYm90dG9t
IGRpdiBnZXRzIGEgcmVzaXplIGNvcm5lciBidXQgbm8gc2Nyb2xsYmFycwogICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5zdXJl
IGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEVuc3VyZSBjb21wb3NpdG9yIHRyZWUgaXMgdXAgdG8g
ZGF0ZS4KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVyVHJlZSIpLmlubmVy
VGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICB9
CiB9CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBGb3JjZSBjb21wb3NpdG9yIHN0YXRl
IHRvIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVlZHMgYW55IG92ZXJmbG93IGNv
bnRyb2xzCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGb3Jj
ZSBjb21wb3NpdG9yIHN0YXRlIHRvIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVl
ZHMgYW55IG92ZXJmbG93IGNvbnRyb2xzCiAgICAgZmluaXNoVGVzdCgpOwogfSBlbHNlCiAgICAg
d2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWxvc2VzLXNjcm9sbGJhcnMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWxvc2VzLXNjcm9s
bGJhcnMuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQ5LDE0ICs0OSwxNCBAQCBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJib3RoIikuY2xhc3NMaXN0LnJlbW92ZSgidGFsbCIpOyAvLyB2ZXJ0aWNh
bCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvcm5lciIpLmNsYXNzTGlzdC5yZW1vdmUoInJlc2l6ZVdpZGdldCIpOyAvLyBib3R0b20gZGl2
IGxvc2VzIGEgcmVzaXplIGNvcm5lciBidXQgbm8gc2Nyb2xsYmFycwogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5zdXJlIGNv
bXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7IC8vIEVuc3VyZSBjb21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0
ZS4KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVyVHJlZSIpLmlubmVyVGV4
dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICB9CiB9
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBGb3JjZSBjb21wb3NpdG9yIHN0YXRlIHRv
IGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVlZHMgYW55IG92ZXJmbG93IGNvbnRy
b2xzCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGb3JjZSBj
b21wb3NpdG9yIHN0YXRlIHRvIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVlZHMg
YW55IG92ZXJmbG93IGNvbnRyb2xzCiAgICAgZmluaXNoVGVzdCgpOwogfSBlbHNlCiAgICAgd2lu
ZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9kby1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xs
aW5nLWNvbnRlbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1j
b250ZW50cy5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9kby1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
LWNvbnRlbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAgICAgIHRl
eHRhcmVhLmZvY3VzKCk7CiAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVh
LnNlbGVjdGlvbkVuZCA9IDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRl
c3QsIDEwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxv
dy9vdmVyZmxvdy1zY3JvbGxiYXItbGF5ZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCShy
ZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9vdmVy
Zmxvdy1zY3JvbGxiYXItbGF5ZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcg
QEAgcmVzaXplOiBib3RoOwogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBF
bnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUuCisgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRv
IGRhdGUuCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVyVHJlZSIpLmlubmVyVGV4
dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKIH0KIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXot
b3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9wYWludC1uZWctei1v
cmRlci1kZXNjZW5kYW50cy1pbnRvLXNjcm9sbGluZy1jb250ZW50cy1sYXllci5odG1sCShyZXZp
c2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9wYWludC1u
ZWctei1vcmRlci1kZXNjZW5kYW50cy1pbnRvLXNjcm9sbGluZy1jb250ZW50cy1sYXllci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICB0ZXh0YXJlYS5zY3JvbGxU
b3AgPSA0MDsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQpAQCAtNDUsNyArNDUsNyBAQAogICAgICAgdGV4
dGFyZWEuZm9jdXMoKTsKICAgICAgIHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ID0gdGV4dGFyZWEu
c2VsZWN0aW9uRW5kID0gMDsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgd2luZG93LnNldFRpbWVvdXQoZW5kVGVz
dCwgMTAwKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93
L3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxi
YXJzLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNjEsNyArNjEsNyBAQCBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0gICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZsb3cgY29udHJv
bHMgdmlzaWJsZS4KKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8v
IFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZsb3cgY29udHJvbHMgdmlzaWJsZS4KICAgICBmaW5p
c2hUZXN0KCk7CiB9IGVsc2UKICAgICB3aW5kb3cuc2V0VGltZW91dChmaW5pc2hUZXN0LCAwKTsK
SW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNv
bXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRl
eHQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQtZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENo
YW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgYmcuaW5uZXJIVE1MID0gIjEyMyI7CiAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGly
ZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTg2KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9z
aXRpbmctYWRkLXRleHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAg
ICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgYmcuaW5uZXJIVE1MID0gIjEyMyI7CiAgICAgICB9CiAKSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWNoYW5nZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0
ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5
ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICBiZy5pbm5lckhUTUwgPSAiPHNwYW4gc3R5bGU9XCJvcGFjaXR5OjBcIj4xMjM8L3Nw
YW4+IjsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0
dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9z
aXRpbmctY2hhbmdlLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogCiAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBs
YXllciB0byBiZWNvbWUgYmFja2dyb3VuZCBvbmx5LgogICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIiOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1s
b2FkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCShy
ZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJl
Y3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTE1LDcgKzE1LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVj
b21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAg
IHZhciBpbWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAgaW1nLm9ubG9hZCA9IG9uQmFja2dyb3Vu
ZEltYWdlTG9hZDsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0
bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5z
L2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTUsNyArMTUsNyBAQAogCiAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBsYXllciB0byBiZWNvbWUg
YmFja2dyb3VuZCBvbmx5LgogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgdmFy
IGltZyA9IG5ldyBJbWFnZTsKICAgICAgICAgICBpbWcub25sb2FkID0gb25CYWNrZ3JvdW5kSW1h
Z2VMb2FkOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRl
X3JlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wbHVnaW5z
L2ludmFsaWRhdGVfcmVjdC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9wbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNywxMCArMTcsMTAgQEAKIAogICAgIGZ1bmN0aW9uIG9uTG9hZCgpCiAgICAgewotICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICBwYWludENvdW50ID0gMDsKICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0UGx1Z2luJykuaW52YWxpZGF0ZVJlY3QoMCwgMCwgMjAwLCAyMDApOwotICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIGlmIChwYWludENvdW50ID4gMCkK
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0g
IlNVQ0NFU1MiOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQv
bmV3bHktY29tcG9zaXRlZC1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHJl
dmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHkt
Y29tcG9zaXRlZC1vbi1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTEgKzYzLDEx
IEBACiAKICAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJmbG93Jykuc2Nyb2xsVG9wID0gMzA7CiAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ292ZXJmbG93Jykuc2Nyb2xsVG9wID0gNTA7CkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWludC1yZWN0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1j
b21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWludC1yZWN0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAKICAgICAgICAgLy8gRm9yY2UgRHVt
cFJlbmRlclRyZWUgdG8gZG8gYSBsYXlvdXQgYW5kIHJlcGFpbnQgaGVyZSwgdGhpcyBpcyB3aGVy
ZSB0aGUgcmVwYWludFJlY3QKICAgICAgICAgLy8gZ29lcyB3cm9uZyBiZWNhdXNlIGl0IGRvZXMg
bm90IGdldCB1cGRhdGVkIGZvciBhIG5ld2x5IGNvbXBvc2l0ZWQgZWxlbWVudC4KICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAvLyBTY3Jv
bGxpbmcgYSBsaXR0bGUgd2lsbCBkZW1vbnN0cmF0ZSB3aGV0aGVyIHRoZSByZXBhaW50IHJlY3Qg
aXMgY29ycmVjdCBvciBub3QuCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50
L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlcGFpbnQvcGFnZS1zY2FsZS1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvcGFnZS1zY2FsZS1yZXBhaW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gcnVu
VGVzdCgpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvcmVxdWlyZXMtYmFja2luZy1yZXBhaW50
Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFp
bnQvcmVxdWlyZXMtYmFja2luZy1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDcgQEAKICAgICAgICAgICAgIG92ZXJmbG93LnNjcm9sbFRvcCA9IDUwOwogCiAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgICBvdmVyZmxvdy5zY3JvbGxUb3AgPSA3NTsKSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNmb3JtLXN0eWxlLWNoYW5nZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNm
b3JtLXN0eWxlLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogfQogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2Ugb25lIGNv
bXBvc2l0ZSB3aXRoIHByZXNlcnZlLTNkCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOyAvLyBGb3JjZSBvbmUgY29tcG9zaXRlIHdpdGggcHJlc2VydmUtM2QKICAgICB0
ZXN0KCk7CiB9IGVsc2UKICAgICB3aW5kb3cuc2V0VGltZW91dCh0ZXN0LCAwKTsKSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS13
aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0
aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFt
ZS13aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNyBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBG
bHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS1zY3JvbGwtcmVwYWludC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9j
b21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg2KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlm
cmFtZS1zY3JvbGwtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBA
CiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsg
Ly8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZsdXNoIHBlbmRpbmcgY29t
cG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRp
bmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGlu
Zy1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHJldmlzaW9u
IDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21w
b3NpdGluZy1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5n
IHJlcGFpbnRzLgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KIAogICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcnRsL3J0bC1vdmVyZmxvdy1pbnZhbGlkYXRpb24uaHRtbAko
cmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcnRsL3J0bC1vdmVy
Zmxvdy1pbnZhbGlkYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAog
PHNjcmlwdD4KICAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gVGhpcyB0ZXN0
IHBhc3NlcyBpZiB0aGlzIGVsZW1lbnQgaXMgcmVwYWludGVkIGNvcnJlY3RseSwgZXZlbgpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdGlsaW5nL2h1Z2UtbGF5ZXItcmVzaXplLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdGlsaW5nL2h1Z2UtbGF5ZXIt
cmVzaXplLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1
Myw3IEBACiAgICAgICAgICAgICAvLyBGb3JjZSBhIGxheW91dCBhbmQgYSBwYWludCB0byBtYWtl
IHN1cmUgdGhlIGNvbXBvc2l0aW5nIGxheWVycwogICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHVw
ZGF0ZWQuCiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VQcmVmaXggKyB3
aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIH0KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXdpdGgtaW52YWxpZC1zb3Vy
Y2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRl
by13aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXdpdGgtaW52YWxpZC1zb3VyY2UuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgew0KICAgICB2LmFw
cGVuZENoaWxkKHNyYyk7DQogICAgIHNyYy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0
aW9uKCkgew0KICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsNCi0gICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsNCisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7DQogICAgICAgICAgICAgLy8gSWYgd2UgZGlkbid0IGNyYXNoIGhlcmUs
IHlheSEgIFRlc3QgaXMgYSBzdWNjZXNzDQogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUEFTUyIpKTsNCiAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsNCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy93
ZWJnbC93ZWJnbC1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDcgKzM0LDcgQEAgZnVuY3Rpb24gaW5pdCgpCiAgIGdsLmNsZWFyQ29sb3IoMSwg
MCwgMCwgMSk7IC8vIHJlZAogICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgIGRyYXdHcmVlbigpOwogICB9IGVsc2UKQEAgLTQ2LDgg
KzQ2LDggQEAgZnVuY3Rpb24gZHJhd0dyZWVuKCkKICAgZ2wuY2xlYXJDb2xvcigwLCAxLCAwLCAx
KTsgLy8gZ3JlZW4KICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Ci0gICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKKyAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgfSBl
bHNlCiAgICAgICB3aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjYW52YXMnKS5jbGFzc0xpc3QudG9nZ2xlKCdib3JkZXInKTsK
SW5kZXg6IExheW91dFRlc3RzL2NzczMvZmlsdGVycy9tdWx0aXBsZS1maWx0ZXJzLWludmFsaWRh
dGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NzczMvZmlsdGVycy9tdWx0aXBs
ZS1maWx0ZXJzLWludmFsaWRhdGlvbi5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRpb24uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCBmdW5jdGlvbiBjaGFuZ2VCYWNrZ3JvdW5kKCkg
ewogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
dHJ1ZSk7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgIGNoYW5nZUJhY2tncm91bmQoKTsKIH0gZWxzZSAKICAg
ICB3aW5kb3cuc2V0VGltZW91dChjaGFuZ2VCYWNrZ3JvdW5kLCAyNTApOwpJbmRleDogTGF5b3V0
VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS5odG1s
CShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1j
b2x1bW4tcmV2ZXJzZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBAIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAogICAg
ICAgICAgICAgIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBmb3IgZmxleCBpdGVtcyB0aGF0IGFyZSBt
b3ZlZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgdGhlIGxheW91dCAiCkluZGV4OiBMYXlvdXRUZXN0
cy9jc3MzL2ZsZXhib3gvcmVwYWludC1kdXJpbmctcmVzaXplLW5vLWZsZXguaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1kdXJpbmctcmVzaXplLW5v
LWZsZXguaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDcgKzM3LDcgQEAgZnVuY3Rpb24gcmVzaXplRmxleEl0ZW0oKSB7CiB3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoCiAgICAgICAgICAgICAiVGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiBjaGFuZ2luZyB0
aGUgc2l6ZSBvZiBvbmUgZmxleCBpdGVtIGNoYW5nZXMgdGhlICIKSW5kZXg6IExheW91dFRlc3Rz
L2NzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1bW4uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwJKHJldmlzaW9uIDIx
NjE4NikKKysrIExheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1bW4uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IH0KICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewpJbmRleDogTGF5b3V0VGVzdHMvY3NzMy9m
bGV4Ym94L3JlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhi
b3gvcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgfQogICAgIHdpbmRvdy5zdGFydFRpbWUgPSBEYXRlLm5vdygpOwpJ
bmRleDogTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2FudmFzLWRpc3BsYXktbGlz
dC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvY2Fu
dmFzLWRpc3BsYXktbGlzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAg
ICAgICAgICAgICBkcmF3Q2FudmFzKCk7CiAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdvdXRwdXQnKS50ZXh0Q29udGVudCA9IGludGVybmFscy5yZXBsYXlEaXNwbGF5TGlz
dEZvckVsZW1lbnQoY2FudmFzKTsKSW5kZXg6IExheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9yZXNv
dXJjZXMvZHVtcC10YXJnZXQtZGlzcGxheS1saXN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Rpc3BsYXlsaXN0cy9yZXNvdXJjZXMvZHVtcC10YXJnZXQtZGlzcGxheS1saXN0LmpzCShy
ZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1
bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBA
QCBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICBpbnRlcm5hbHMuc2V0RWxlbWVudFVzZXNEaXNw
bGF5TGlzdERyYXdpbmcodGFyZ2V0RGl2LCB0cnVlKTsKICAgICAKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICBpZiAod2luZG93LmludGVybmFs
cykgewogICAgICAgICB2YXIgZGlzcGxheUxpc3QgPSBpbnRlcm5hbHMuZGlzcGxheUxpc3RGb3JF
bGVtZW50KHRhcmdldERpdik7CkluZGV4OiBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3Vy
Y2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Rpc3BsYXlsaXN0cy9yZXNvdXJjZXMvZHVtcC10YXJnZXQtcmVwbGF5LWxpc3QuanMJKHJldmlz
aW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9yZXNvdXJjZXMvZHVtcC10
YXJnZXQtcmVwbGF5LWxpc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgZnVu
Y3Rpb24gZG9UZXN0KCkKICAgICB9CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAg
ICAgdmFyIGRpc3BsYXlMaXN0ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9yRWxlbWVudCh0YXJn
ZXREaXYpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0
bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMiw3ICsxMiw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVt
ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAgd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSwgNTApOwog
ICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCShyZXZp
c2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUsNyArMTUs
NyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdGlvbigpIHsgZGVidWcoJ0NhbGxiYWNrIGZpcmVkJyk7IH0sIGRvY3VtZW50LmJvZHkp
OwogICAgIGRlYnVnKCdTaG93aW5nIG1vZGFsIGRpYWxvZycpOwogICAgIHZhciBzcmMgPSAnaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7JyArCi0gICAgICAgICAgICAgICcgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7JyArCisgICAgICAgICAgICAgICcgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOycgKwogICAgICAgICAgICAgICAnICAgIHdpbmRvdy5jbG9zZSgpOycgKwog
ICAgICAgICAgICAgICAnfSBlbHNlIHsnKwogICAgICAgICAgICAgICAnICAgIHdpbmRvdy5zZXRU
aW1lb3V0KHdpbmRvdy5jbG9zZSwgMTApOycrCkBAIC0yMyw3ICsyMyw3IEBAIG9ubG9hZCA9IGZ1
bmN0aW9uKCkKICAgICBzaG93TW9kYWxEaWFsb2coJ2RhdGE6dGV4dC9odG1sLDxzY3JpcHQ+JyAr
IHNyYyArICc8LycgKyAnc2NyaXB0PicpOwogICAgIGRlYnVnKCdSZXR1cm5lZCBmcm9tIG1vZGFs
IGRpYWxvZycpOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgezsKLSAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwJKHJl
dmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWlmcmFtZTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBA
QAogICAgICAgICBmdW5jdGlvbiBkb0Rpc3BsYXkoKQogICAgICAgICB7CiAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gZG9DaGVja1Jlc3VsdCgpCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5
KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgfQogICAgIAogICAgICAgICBm
dW5jdGlvbiBkb0NoZWNrUmVzdWx0KCkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2Fu
Y2VsMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMTUsNyArMTUsNyBAQCBzZWNvbmRDYWxsYmFja0lk
ID0gd2luZG93LnJlcXVlc3RBbmltYXRpCiB9LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZUZh
bHNlKCJjYWxsYmFja0ZpcmVkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1jYW5jZWwuanMJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwu
anMJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIHZhciBpZCA9IHdpbmRvdy5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoZnUKIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShpZCk7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CiAgICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tGaXJlZCIpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRp
c2FibGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwkocmV2aXNpb24gMjE2
MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBA
QCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiB9KTsKIAogaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgICBzaG91bGRCZUZhbHNlKCJjYWxsYmFja0ludm9rZWQiKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVm
aXguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXByZWZpeC5qcwkocmV2aXNpb24gMjE2MTg2KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLXByZWZpeC5qcwkod29ya2luZyBjb3B5KQpAQCAtMzQsMTIgKzM0LDEyIEBAIHdp
bmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3QKIAogICAgIGJ1c3lXYWl0KDEw
KTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB9KTsK
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0pOwogCiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1l
LXVuaXQuanMJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lLXVuaXQuanMJKHdvcmtp
bmcgY29weSkKQEAgLTIwLDEyICsyMCwxMiBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGZ1bmN0aW9uKHRpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0sIDEpOwogfSk7CiAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBz
LWFkdmFuY2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2YW5jZS5qcwko
cmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2YW5jZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsMTEgKzIxLDExIEBAIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24odGkKICAgICB9KTsKICAgICBidXN5V2FpdCgxMCk7CiAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7CiAKIAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgIH0pOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLXRpbWVzdGFtcHMuanMJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1l
c3RhbXBzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBAIHdpbmRvdy5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24odGkKIH0pOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suanMJKHJldmlzaW9uIDIxNjE4NikKKysrIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS13aXRoaW4tY2FsbGJhY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTE2LDEwICsxNiwxMCBA
QCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiAKIC8vIFRoaXMgc2hv
dWxkIGZpcmUgdGhlIHRocmVlIGFscmVhZHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MsIGJ1dCBub3Qg
dGhlIG9uZSBkeW5hbWljYWxseSByZWdpc3RlcmVkLgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIC8vIFRoaXMgc2hvdWxkIGZpcmUgdGhlIGR5bmFtaWNhbGx5IHJlZ2lzdGVy
ZWQgY2FsbGJhY2suCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCShyZXZpc2lvbiAyMTYxODYpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUuanMJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIHdpbmRvdy5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSAKIH0sIGUpOwogCiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgIHNob3VsZEJl
VHJ1ZSgiY2FsbGJhY2tJbnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91
bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNr
Z3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyMTYxODYp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hp
bGQtc3R5bGUtY2hhbmdlLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1
LDcgQEAKIDxzY3JpcHQ+CiBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiB2YXIgY2hpbGRyZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5Q2xhc3NOYW1lKCJjaGlsZCIpOwogY2hpbGRyZW5bMF0uc3R5bGUuYmFja2dyb3VuZENvbG9y
ID0gInJnYmEoMCwyNTUsMCwwLjUpIjsKIGNoaWxkcmVuWzFdLnN0eWxlLmJhY2tncm91bmRDb2xv
ciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91
bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNo
aWxkLXN0eWxlLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKIDxzY3JpcHQ+CiBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB2YXIg
Y2hpbGRyZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGlsZCIpOwogY2hp
bGRyZW5bMF0uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gInJnYmEoMCwyNTUsMCwwLjUpIjsKIGNo
aWxkcmVuWzFdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVz
dG9yZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvc29s
aWQtY29sb3ItY29udGV4dC1yZXN0b3JlLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91
dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvc29saWQtY29sb3ItY29udGV4dC1yZXN0b3JlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAKICAgICA8L2Rpdj4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0YXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CiAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5z
ZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0LCAxKTsKICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1y
ZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWFzLWltYWdlLWluY3JlbWVudGFsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWFzLWltYWdlLWluY3JlbWVudGFsLXJlcGFp
bnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgICAgY2FudmFzQ29u
dGV4dCA9IGRvY3VtZW50LmdldENTU0NhbnZhc0NvbnRleHQoIjJkIiwgInNxdWFyZXMiLCAzMDAs
IDMwMCk7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0
KCk7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgfSBlbHNlIHsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50LTIu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVt
ZW50YWwtcmVwYWludC0yLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50LTIuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjEsNyArMjEsNyBAQAogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC5o
dG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
aW5jcmVtZW50YWwtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBA
CiAgICAgewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgICAgICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtcmVzaXplLWFmdGVyLXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1sCShyZXZpc2lvbiAyMTYxODYp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gcmVzaXplKCkgewog
fQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsg
Ly8gRm9yY2UgYSBjb21wb3NpdGUgYXQgbm9ybWFsIHdpZHRoL2hlaWdodCB0byBlbnN1cmUgd2Ug
aGF2ZSBhIGNvbXBvc2l0aW5nIGxheWVyIGZvciB0aGUgY2FudmFzLgorICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgYSBjb21wb3NpdGUgYXQgbm9ybWFs
IHdpZHRoL2hlaWdodCB0byBlbnN1cmUgd2UgaGF2ZSBhIGNvbXBvc2l0aW5nIGxheWVyIGZvciB0
aGUgY2FudmFzLgogICAgIHJlc2l6ZSgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQo
cmVzaXplLCAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9yZXBh
aW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9y
ZXBhaW50LmpzCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9y
ZXNvdXJjZXMvcmVwYWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAgZnVuY3Rp
b24gcnVuUmVwYWludFRlc3QoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgcmVwYWludFRlc3QoKTsKICAgICB9IGVsc2UgewogICAgICAgICBzZXRUaW1lb3V0KHJlcGFp
bnRUZXN0LCAxMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3Rz
L2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5n
RW5hYmxlZC1yZXBhaW50LmpzCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIHZhciBkcmF3SXRlcmF0aW9ucyA9
IDI7CiBmdW5jdGlvbiBUZXN0Q29udHJvbGxlclBhaW50KCkgewogICAgIHdoaWxlIChkcmF3SXRl
cmF0aW9ucyA+IDApIHsKICAgICAgICAgZHJhdygpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICBkcmF3SXRlcmF0aW9ucyA9IGRyYXdJdGVyYXRpb25zIC0gMTsKICAgICB9CiAgICAgZHJh
dygpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtdGVz
dC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9jYW52YXMtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNyArMTM1LDcgQEAgaWYg
KCFnbCkgewogICB2YXIgaW50ZXJ2YWxJZDsKICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRl
cnZhbChmdW5jdGlvbigpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICBpZiAoY2FudmFzLmNsaWVudFdpZHRoID09IDEwMCAmJgogICAgICAgICBjYW52
YXMuY2xpZW50SGVpZ2h0ID09IDI1KSB7CiAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChpbnRl
cnZhbElkKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLWxheWVy
LXVwZGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L3dlYmdsLWxheWVyLXVwZGF0ZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11cGRhdGUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw3ICs2LDcgQEAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J2NhbnZhcycpWzBdLnN0eWxlLnRvcCA9ICI2MHB4IjsKIAogICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC01OCw3ICs1OCw3IEBA
IGN0eC5jbGVhckNvbG9yKDEsIDAsIDAsIDEpOwogY3R4LmNsZWFyKGN0eC5DT0xPUl9CVUZGRVJf
QklUKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5bGUt
YW5vbnltb3VzLXRleHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
c2V1ZG9zdHlsZS1hbm9ueW1vdXMtdGV4dC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG9zdHlsZS1hbm9ueW1vdXMtdGV4dC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7
CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWxhdGl2ZS1wb3NpdGlvbmVkLWJsb2NrLWNyYXNoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25l
ZC1ibG9jay1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9yZWxhdGl2ZS1wb3NpdGlvbmVkLWJsb2NrLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYsNyArNiw3IEBACiAgICAgPC9zdHlsZT4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRt
bAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Bvc3Qt
bWVzc2FnZS1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIHJlcXVl
c3RBbmltYXRpb25GcmFtZShwb3N0TWVzc2FnZSk7CiBzZXRUaW1lb3V0KHBvc3RNZXNzYWdlKTsK
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93ZWItdGltaW5nLW1pbmlt
YWwtcGVyZm9ybWFuY2Utbm93Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93ZWItdGltaW5nLW1pbmltYWwtcGVyZm9ybWFuY2Utbm93Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAgZnVuY3Rpb24gc3RhcnQoKSB7CiAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOyB9CiAgICAgICAgICwgMTAwKTsKIAotICAgIHdpbmRvdy50ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogfQogCiBvbmxvYWQgPSBzdGFydCgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9keW5hbWljL2NvbnRhaW5pbmctYmxvY2stY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9keW5hbWljL2NvbnRhaW5pbmctYmxvY2stY2hhbmdlLmh0bWwJKHJldmlz
aW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2Nr
LWNoYW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDEzICszLDEzIEBACiAgICAgewogICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgICAgLy8gZm9yY2UgbGF5b3V0CiAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICB2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0Jyk7CiAgICAgICAgIHQuc3R5
bGUucG9zaXRpb24gPSAncmVsYXRpdmUnOwogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsgICAgLy8gZm9yY2UgbGF5b3V0CiAgICAgICAgIHQubGFzdENoaWxkLnJlbW92ZUNoaWxkKHQu
bGFzdENoaWxkLmxhc3RDaGlsZCk7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIDwvc2NyaXB0PgogPGJvZHkgb25sb2Fk
PSJ0ZXN0KCkiPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdl
ci1wYWdpbmF0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMv
bGF5ZXItbm8tbG9uZ2VyLXBhZ2luYXRlZC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2R5bmFtaWMvbGF5ZXItbm8tbG9uZ2VyLXBhZ2luYXRlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xs
QnkoMSwgMCk7CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
ICAgICAgICAgICAgdGVzdCgpOwogICAgICAgICB9IGVsc2UKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtY2FuY2VsLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtY2Fu
Y2VsLmpzCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTksNyAr
MTksNyBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgCiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRvdy5ldmVudFNlbmRl
ci5nZXN0dXJlRmxpbmdTdGFydCkgewogICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ1N0YXJ0
KDEwLCAxMSwgMTAwMCwgMTAwMCk7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUZsaW5nQ2FuY2Vs
KCk7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogfQogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1n
ZXN0dXJlLWZsaW5nLmpzCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWZsaW5nLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xOCw5ICsxOCw5IEBAIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCAK
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cu
ZXZlbnRTZW5kZXIuZ2VzdHVyZUZsaW5nU3RhcnQpIHsKICAgICBldmVudFNlbmRlci5nZXN0dXJl
RmxpbmdTdGFydCgxMCwgMTEsIDEwMDAsIDEwMDApOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogfQogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9oaWRkZW4tbGlzdGJveC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAkocmV2aXNpb24gMjE2MTg2KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9oaWRkZW4tbGlzdGJveC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdHMgdGhhdCB0aGUgd2hvbGUgbGlzdGJveCBj
b250cm9sIGlzIGhpZGRlbiB3aGVuIHZpc2liaWxpdHkgaXMgc2V0IHRvIGhpZGRlbi4KIDxicj4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94LWNsaXAuaHRtbAkocmV2aXNpb24g
MjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94LWNsaXAuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQAogICAgIDwvc2VsZWN0PgogICAgIDxzY3JpcHQ+
CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pbmxpbmUtb2JqZWN0LWluc2lkZS1mcmFtZXNl
dC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pbmxp
bmUtb2JqZWN0LWluc2lkZS1mcmFtZXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsx
MSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgZGNvbnQuYXBwZW5kQ2hpbGQoZSk7CiAg
ICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfQog
CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3RyYW5zcGFyZW50LXNj
cm9sbGJhci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3RyYW5z
cGFyZW50LXNjcm9sbGJhci5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjMsMTMgKzIzLDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIAogICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVudC5ib2R5LnNj
cm9sbFRvcCA9IDIwMDA7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKICAgICAgICAgfQogICAgIH0sIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
YW5pbWF0ZWQtYmFja2dyb3VuZC1pbWFnZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAko
cmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtYmFj
a2dyb3VuZC1pbWFnZS1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBA
CiAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5zdHlsZS5kaXNwbGF5
PSJub25lIjsKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAg
ICAgc2V0VGltZW91dCgic3RlcDIoKSIsIDIwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xh
eWVycy9hZGQtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9hZGQtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRt
bAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxheWVy
LXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcg
QEAKICAgICAgICAgc2V0VGltZW91dCh0ZXN0LCAwKTsKICAgICBlbHNlIHsKICAgICAgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3Qo
KTsKICAgICB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGlu
ZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9sYXllcnMvaW5saW5lLWRpcnR5LXotb3JkZXItbGlzdHMuaHRtbAkocmV2aXNpb24gMjE2MTg2
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvaW5saW5lLWRpcnR5LXotb3JkZXItbGlzdHMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQAogCiAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHNldFRpbWVv
dXQodGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9sYXllci1jb250ZW50
LXZpc2liaWxpdHktY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9s
YXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYx
ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9sYXllci1jb250ZW50LXZpc2liaWxpdHkt
Y2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcgQEAKICAgICB9CiAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9w
OwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9u
ZXN0ZWQtbGF5ZXJzLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVy
cy9uZXN0ZWQtbGF5ZXJzLTEuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyAr
Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNl
IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMi5odG1s
CShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5
ZXJzLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiB7CiAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgICAgICBmaW5pc2goKTsKICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0zLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysr
IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldFRvcDsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgp
OwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5
ZXJzLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQt
bGF5ZXJzLTQuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXll
cnMvbmVzdGVkLWxheWVycy00Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogewogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3JlbW92ZS1sYXllci13aXRoLW5lc3RlZC1zdGFja2lu
Zy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL3JlbW92ZS1sYXll
ci13aXRoLW5lc3RlZC1zdGFja2luZy5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTUsNyArMTUsNyBAQCBUaGUgc3F1YXJlIHNob3VsZCBiZSBhIHVu
aWZvcm0gc2hhZGUgb2YgCiAgICAgICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CiAgICAgZWxzZSB7
CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICB0ZXN0KCk7CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L292ZXJmbG93L2hpZGRlbi1zY3JvbGxiYXItcmVzaXplLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCShyZXZp
c2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2hpZGRlbi1zY3JvbGxi
YXItcmVzaXplLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiA8c2NyaXB0Pgog
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0PgogVGhpcyB0ZXN0
cyB0aGF0IHRoZSBzY3JvbGxiYXIgYW5kIHJlc2l6ZSBjb3JuZXIgYXJlIG5vdCB2aXNpYmxlIG9u
IGFuIGVsZW1lbnQgdGhhdCBoYXMgdmlzaWJpbGl0eTpoaWRkZW4uCiA8ZGl2IHN0eWxlPSJvdmVy
ZmxvdzogYXV0bzsgd2lkdGg6IDUwcHg7IGhlaWdodDogNzBweDsgcmVzaXplOiBib3RoOyB2aXNp
YmlsaXR5OiBoaWRkZW4iPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9pbmxp
bmUtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlZmxlY3Rpb25z
L2lubGluZS1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3JlZmxlY3Rpb25zL2lubGluZS1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMs
NyBAQAogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICB9CiAgICAgICAgIHNldFRpbWVvdXQoY2hhbmdlQ29sb3IsIDApOwogICAgIH0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Ny
b2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2FuaW1hdGlv
bi1hZnRlci1sYXllci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L2FuaW1hdGlvbi1hZnRlci1sYXllci1zY3JvbGwuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAKICAgICB7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzY3JvbGxlcicpLnNjcm9sbFRvcCA9IDgwMDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAg
ICAgICBzZXRUaW1lb3V0KGxvZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KQEAgLTI1LDcgKzI1LDcg
QEAKIAogICAgIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgc2V0VGltZW91dChzdGFydFRyYWNraW5nUmVwYWludHMsIDIwMCk7CiAgICAgfQogCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0aC1n
cmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0aC1ncmFkaWVudC1hbmQtaGVp
Z2h0LWNoYW5nZXMuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdodC1jaGFu
Z2VzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgZnVuY3Rpb24gc3RhcnQo
KSB7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgd2luZG93LmludGVybmFscy5zdGFy
dFRyYWNraW5nUmVwYWludHMoKTsKLSAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAogZnVu
Y3Rpb24gbG9nUmVwYWludHMoKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4
ZWQtY2hpbGQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNp
b24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUt
YWZ0ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAg
ICAgc2Nyb2xsQnkoMCwgMjAwKTsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi1maXhlZC1tb3ZlLWFm
dGVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9m
aXhlZC1jaGlsZC1vZi1maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCShyZXZpc2lvbiAyMTYx
ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92
ZS1hZnRlci1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKICAgICAg
ICAgICBzY3JvbGxCeSgwLCAyMDApOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTUpOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW9mLXRyYW5zZm9ybWVk
LW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L2ZpeGVkLWNoaWxkLW9mLXRyYW5zZm9ybWVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJ
KHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGls
ZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBh
aW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0
KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQt
bW92ZS1hZnRlci1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAgICAgc2Nyb2xsQnkoMCwgMjAwKTsK
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC1zdWJmcmFtZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12
aWV3cG9ydC1zdWJmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7
CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLDIwMCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICAgIHNldFRpbWVvdXQodGVzdEFmdGVyU2Nyb2xsLCAyMDApOwogICAgIH0KIApAQCAtMjIs
NyArMjIsNyBAQAogCiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFp
bnRzKCk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLDApOwotICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICBzZXRUaW1lb3V0KHRlc3RBZnRlclNjcm9sbEJhY2ssIDIwMCk7CiAgICAgfQog
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5p
bWF0aW9uLW91dHNpZGUtdmlld3BvcnQuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBACiAgICAgewogICAgICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldFRvcDsKICAgICAgICAgd2luZG93LmludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWlu
dHMoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgc2V0VGltZW91dChsb2dSZXBhaW50
cywgMjAwKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9vYnNjdXJl
ZC1iYWNrZ3JvdW5kLW5vLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwJKHJldmlzaW9u
IDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9vYnNjdXJlZC1iYWNrZ3JvdW5k
LW5vLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQAogICAgIHsK
ICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
IHNldFRpbWVvdXQobG9nUmVwYWludHMsIDIwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9vdmVyZmxvdy1o
aWRkZW4taW4tb3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWwJKHJldmlzaW9uIDIxNjE4NikK
KysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9vdmVyZmxvdy1oaWRkZW4taW4tb3ZlcmZsb3ct
aGlkZGVuLXNjcm9sbGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAKICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRlciIpLnNjcm9sbFRvcCA9IDEw
MDA7CiAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRl
c3QsIDApOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVy
ZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZW5kZXJlci1kZXN0cnVjdGlvbi1ieS1p
bnZhbGlkYXRlU2VsZWN0aW9uLWNyYXNoLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9yZW5kZXJlci1kZXN0cnVjdGlvbi1ieS1pbnZhbGlkYXRlU2Vs
ZWN0aW9uLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAKICAgICA8
ZGl2PjwvZGl2PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9s
bC13aXRoLXpvb20uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
cmVwYWludC1kdXJpbmctc2Nyb2xsLXdpdGgtem9vbS5odG1sCShyZXZpc2lvbiAyMTYxODYpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVwYWludC1kdXJpbmctc2Nyb2xsLXdpdGgtem9v
bS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBACiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgICAgdGVzdFNjcm9sbFJlcGFpbnQoKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIHNldFRpbWVvdXQodGVzdFNjcm9sbFJlcGFpbnQsIDEwMCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhp
ZGRlbi1zY3JvbGxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC90YWJsZS1vdmVyZmxvdy1oaWRkZW4taW4tb3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWwJ
KHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC90YWJsZS1vdmVy
Zmxvdy1oaWRkZW4taW4tb3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDcgKzQ4LDcgQEAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRlciIpLnNjcm9sbFRvcCA9IDEwMDA7CiAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAg
ICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDApOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Ny
b2xsLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9y
ZXNvdXJjZXMvZml4ZWQtbW92ZS1hZnRlci1rZXlib2FyZC1zY3JvbGwtaWZyYW1lLmh0bWwJKHJl
dmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvZml4
ZWQtbW92ZS1hZnRlci1rZXlib2FyZC1zY3JvbGwtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYsNyArNiw3IEBACiAgICAgICB7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvaWZyYW1lLXNjcm9sbC1y
ZXBhaW50LWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9yZXNvdXJjZXMvaWZyYW1lLXNjcm9sbC1yZXBhaW50LWlmcmFtZS5odG1sCShyZXZpc2lvbiAy
MTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3Jv
bGwtcmVwYWludC1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogCiB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICBkb2N1bWVudC5ib2R5LnNj
cm9sbFRvcCA9IDIwOwogICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2xpbmUtZmxvdy13aXRoLWZsb2F0cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2xpbmUtZmxvdy13aXRo
LWZsb2F0cy5qcwkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTE0
LDcgKzE0LDcgQEAgZnVuY3Rpb24gYmVnaW5UZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgIHRlc3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpLmNv
bnRlbnREb2N1bWVudCk7CiAgICAgfSBlbHNlIHNldFRpbWVvdXQoCiAgICAgICAgIGZ1bmN0aW9u
KCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9yZXBhaW50Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWlu
dC5qcwkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291
cmNlcy9yZXBhaW50LmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBmdW5jdGlvbiBy
dW5SZXBhaW50VGVzdCgpCiAgICAgICAgIGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dCkKICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRUb3A7CiAKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxMDApOwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3JlcGxhY2VkL3dpZHRoMTAwcGVyY2VudC10ZXh0YXJlYS5odG1s
CShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGxhY2VkL3dpZHRoMTAw
cGVyY2VudC10ZXh0YXJlYS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNpbXBsZUxpbmVM
YXlvdXRFbmFibGVkKGZhbHNlKTsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiA8L3NjcmlwdD4KIAogVGhlIHRleHRhcmVhcyBiZWxvdyBzaG91bGQgbm90IG92ZXJsYXAuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGxiYXItdGlja21hcmtzLWhpdHRl
c3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGxi
YXItdGlja21hcmtzLWhpdHRlc3QuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTE2LDcgKzE2LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKQogICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLmFkZFRleHRNYXRjaE1hcmtlcihyYW5nZSwgdHJ1ZSk7CiAgICAgfQog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHdp
bmRvdy5pbm5lcldpZHRoIC0gMSwgd2luZG93LmlubmVySGVpZ2h0IC0gMSk7CiAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9lbXB0
eS1zZWN0aW9uLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9lbXB0eS1zZWN0aW9uLWNyYXNoLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRl
c3RzL2Zhc3QvdGFibGUvZW1wdHktc2VjdGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgICAgICB7CiAgICAgICAgICAgICAvKiBTaW5jZSB0aGUgY3Jhc2gg
aGFwcGVucyBpbiBwYWludGluZyBjb2RlLCBmb3JjZSBwYWludGluZy4gVGhpcwogICAgICAgICAg
ICAgICAgbWFrZXMgdGhlIHRlc3Qgd29yayBldmVuIHdoZW4gcnVuIHdpdGhvdXQgdGhlIC0tcGl4
ZWwgb3B0aW9uLiAqLwotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLTY5Mjk2
Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLTY5Mjk2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2
LDcgQEAgQ29sbGFwc2VkIGJvcmRlcnMgc2hvdWxkIG5vdCBkaXNhcHBlYXIuCiAgICAgICAgICAg
ICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb3cxJyk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcv
Y2FjaGVkLWNlbGwtYXBwZW5kLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwtYXBwZW5kLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBhcHBlbmQgbmV3IGNlbGwsIGV4
cGVjdCB0aGF0IGNhYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICAgICAgICAgICAgbmV3Q2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7
CiAgICAgICAgICAgICAgICAgbmV3Q2VsbC5zdHlsZS5ib3JkZXJMZWZ0V2lkdGggPSAiNnB4IjsK
ICAgICAgICAgICAgICAgICBuZXdDZWxsLnN0eWxlLmJvcmRlckxlZnRTdHlsZSA9ICJzb2xpZCI7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
ZWxsLXJlbW92ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9y
ZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwtcmVtb3ZlLmh0bWwJKHJldmlzaW9uIDIxNjE4NikK
KysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwt
cmVtb3ZlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSByZW1v
dmUgY2VsbCwgZXhwZWN0IHRoYXQgY2FjaGUgaQogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgYmFyQ2VsbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJiYXIiKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicm93IikucmVtb3ZlQ2hpbGQoYmFyQ2VsbCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1i
b3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItY29sb3IuaHRtbAkocmV2
aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2lu
Zy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY2VsbCBib3JkZXIgY29sb3IsIGV4cGVjdAog
ICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLnN0eWxlLmJvcmRlckNvbG9yID0gImxp
bWUiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci13
aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci13aWR0aC5odG1sCShyZXZpc2lvbiAy
MTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyAr
MTAsNyBAQCBIZXJlIHdlIGNoYW5nZSBjZWxsIGJvcmRlciB3aWR0aCwgZXhwZWN0CiAgICAgICAg
ICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZm9vIikuc3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1zbC1ib3JkZXItY29sb3Iu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1zbC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2
MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcg
KzEyLDcgQEAgSGVyZSB3ZToKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0ZXh0LCB0aGlzIHJlcXVlc3RzIGxheW91
dCBmb3IgRElWLAogICAgICAgICAgICAgICAgIC8vIGJ1dCBvbmx5IHNpbXBsaWZpZWQgbGF5b3V0
IGZvciBUQUJMRQogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9j
a0RpdiIpLmlubmVyVGV4dCA9ICIiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
aGFuZ2UtY29sLWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRl
ci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hh
bmdlIGNvbCBib3JkZXIgY29sb3IsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb2wiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAg
ICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNv
bC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItd2lkdGgu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSBjb2wg
Ym9yZGVyIHdpZHRoLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29sIiku
c3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2UtY29sZ3JvdXAtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3Vw
LWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sZ3JvdXAtYm9yZGVyLWNv
bG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2Ug
Y29sZ3JvdXAgYm9yZGVyIGNvbG9yLCBleAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bGdyb3VwIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sZ3JvdXAtYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sZ3Jv
dXAtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVy
ZSB3ZSBjaGFuZ2UgY29sZ3JvdXAgYm9yZGVyIHdpZHRoLCBleAogICAgICAgICAgICAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAg
ICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbGdyb3VwIikuc3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRlci1jb2xvci5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS1yb3ctYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91
dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9y
ZGVyLWNvbG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBj
aGFuZ2Ugcm93IGJvcmRlciBjb2xvciwgZXhwZWN0IAogICAgICAgICAgICAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJvdyIpLnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29s
bGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Ut
cm93LWJvcmRlci13aWR0aC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRlci13aWR0
aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHJv
dyBib3JkZXIgd2lkdGgsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb3ci
KS5zdHlsZS5ib3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3Nj
cmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2Fj
aGVkLWNoYW5nZS10YWJsZS1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9y
ZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXItY29sb3IuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0YWJsZSBi
b3JkZXIgY29sb3IsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJsIikuc3R5
bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2UtdGFibGUtYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRl
ci13aWR0aC5odG1sCShyZXZpc2lvbiAyMTYxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLXdpZHRoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUgYm9y
ZGVyIHdpZHRoLCBleHBlYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0eWxl
LmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLXRib2R5LWJvcmRlci1jb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29s
b3IuaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRib2R5LWJvcmRlci1jb2xvci5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRib2R5IGJvcmRlciBj
b2xvciwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0Ym9keSIpLnN0eWxlLmJv
cmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLXRib2R5LWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lk
dGguaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRib2R5LWJvcmRlci13aWR0aC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRib2R5IGJvcmRlciB3
aWR0aCwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0Ym9keSIpLnN0eWxlLmJv
cmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ZvbnQtaW5pdGlhbC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAkocmV2aXNpb24gMjE2MTg2
KQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ZvbnQtaW5pdGlhbC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC02LDUgKzYsNSBAQAogPHNjcmlwdD4KICAgICAvLyBNYWtlcyB0aGUgcmVuZGVyaW5n
IGNvZGUgcnVuIGV2ZW4gd2hlbiBub3QgcnVubmluZyBhcyBhIHBpeGVsIHRlc3QuCiAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXNoYWRvdy1leHRyZW1lLXZh
bHVlLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0
LXNoYWRvdy1leHRyZW1lLXZhbHVlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9oYXJmYnV6ei1ydW5zLXdpdGgtbm8tZ2x5cGgu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9o
YXJmYnV6ei1ydW5zLXdpdGgtbm8tZ2x5cGguaHRtbAkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWds
eXBoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcgQEAgYm9keSB7CiA8c2NyaXB0
PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgLy8gRm9yY2UgbGF5b3V0LgotICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIH0KIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Nsb3ctbG9hZGluZy1pbWFnZS1pbi1wYXR0ZXJu
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Nsb3ctbG9h
ZGluZy1pbWFnZS1pbi1wYXR0ZXJuLmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xOCw3ICsxOCw3IEBAIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7
CiAKIC8vIFJlcGFpbnQgaW1tZWRpYXRlbHkgYmVmb3JlIGltYWdlIGFycml2ZWQKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL21lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikK
KysrIExheW91dFRlc3RzL21lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTIsNyArMTIsNyBAQAogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIHZh
ciBjb3VudCA9IDM7CiAgICAgdmFyIGF1ZGlvRWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnYXVkaW8nKTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21lZGlhLWRvY3Vt
ZW50LWF1ZGlvLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NikKKysrIExh
eW91dFRlc3RzL21lZGlhL21lZGlhLWRvY3VtZW50LWF1ZGlvLXJlcGFpbnQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKICAgICB7CiAgICAgICAgIHZhciB2aWRlb0VsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnIiKS5jb250ZW50RG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigidmlkZW8iKTsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHZpZGVvRWxlbWVudC5jdXJyZW50VGltZSA9IHZp
ZGVvRWxlbWVudC5kdXJhdGlvbiAqIDAuNTA7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9w
bHVnaW5zL3dpbmRvd2xlc3NfcGx1Z2luX3BhaW50X3Rlc3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbHVnaW5zL3dpbmRvd2xlc3NfcGx1Z2luX3BhaW50X3Rlc3QuaHRtbAkocmV2
aXNpb24gMjE2MTg2KQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9w
YWludF90ZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzEsMTMgQEAKLTwhRE9DVFlQ
RSBodG1sPgotCi08aHRtbD4KLTxoZWFkPgorPCFET0NUWVBFIGh0bWw+DQorDQorPGh0bWw+DQor
PGhlYWQ+DQogICA8c2NyaXB0Pg0KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsNCiAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7DQotICAgIH0KLQorICAgIH0NCisNCiAgICAgdmFyIHBhaW50Q291bnQgPSAwOw0K
IA0KICAgICBmdW5jdGlvbiBvbkxvYWQoKSB7DQpAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICBw
bHVnaW5EaXYuaW5uZXJIVE1MID0gIjxlbWJlZCBpZD1cInRlc3RQbHVnaW5cIiB0eXBlPVwiYXBw
bGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZVwiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwi
MjAwXCIgb25wYWludGV2ZW50PVwiZGlkUGFpbnQoKVwiIHdpbmRvd2VkUGx1Z2luPVwiZmFsc2Vc
Ij48L2VtYmVkPiI7DQogICAgICAgICBpZiAod2luZG93LmludGVybmFscykNCiAgICAgICAgICAg
ICBpbnRlcm5hbHMudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5kUnVuUG9z
dExheW91dFRhc2tzKCk7DQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlJbnZhbGlkYXRlZFJl
Z2lvbigpOw0KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOw0K
ICAgICAgIH0NCiANCiAgICAgZnVuY3Rpb24gbm90aWZ5RG9uZSgpIHsNCkBAIC0yNywxNSArMjcs
MTUgQEAKICAgICBmdW5jdGlvbiBkaWRQYWludCgpIHsNCiAgICAgICAgIHBhaW50Q291bnQrKzsN
CiAgICAgICAgIHNldFRpbWVvdXQoIm5vdGlmeURvbmUoKTsiLCA1MCk7DQotICAgIH0KLSAgPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQob25Mb2FkKCksIDUwKTsi
PgotICBUaGlzIHRlc3RzIHRoYXQgZHluYW1pY2FsbHkgYWRkZWQgd2luZG93bGVzcyBwbHVnaW5z
IHJlY2VpdmUgcGFpbnQgZXZlbnRzIG9uIGNyZWF0aW9uLgotCi0gIDxkaXYgaWQ9InJlc3VsdCI+
RkFJTFVSRTwvZGl2PgotCi0gIDxkaXYgaWQ9InBsdWdpbkRpdiIgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMzAwcHg7IHRvcDogMzAwcHg7IGhlaWdodDogNDAwcHg7IHdpZHRoOiA0
MDBweDsgcGFkZGluZzogMWVtOyI+Ci0gIDwvZGl2PgotPC9ib2R5PgotPC9odG1sPgorICAgIH0N
CisgIDwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQob25Mb2Fk
KCksIDUwKTsiPg0KKyAgVGhpcyB0ZXN0cyB0aGF0IGR5bmFtaWNhbGx5IGFkZGVkIHdpbmRvd2xl
c3MgcGx1Z2lucyByZWNlaXZlIHBhaW50IGV2ZW50cyBvbiBjcmVhdGlvbi4NCisNCisgIDxkaXYg
aWQ9InJlc3VsdCI+RkFJTFVSRTwvZGl2Pg0KKw0KKyAgPGRpdiBpZD0icGx1Z2luRGl2IiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAzMDBweDsgdG9wOiAzMDBweDsgaGVpZ2h0OiA0
MDBweDsgd2lkdGg6IDQwMHB4OyBwYWRkaW5nOiAxZW07Ij4NCisgIDwvZGl2Pg0KKzwvYm9keT4N
Cis8L2h0bWw+DQpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItcGVyY2Vu
dC1wYWRkaW5nLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2Nyb2xsYmFy
cy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0bWwJKHJldmlzaW9uIDIxNjE4NikK
KysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFz
aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICB9CiB9OwogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vbm9uLXNjYWxpbmctc3Ryb2tlLXVwZGF0ZS5zdmcJKHJldmlzaW9uIDIx
NjE4NikKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vbm9uLXNjYWxpbmctc3Ryb2tlLXVwZGF0
ZS5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAKICAgPHNjcmlwdD4KICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHNldFRpbWVvdXQocnVuVGVzdCwgMCk7
CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVzb3Vy
Y2UtZGF0YS1jcmFzaC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9z
dGFsZS1yZXNvdXJjZS1kYXRhLWNyYXNoLnN2ZwkocmV2aXNpb24gMjE2MTg2KQorKysgTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9zdGFsZS1yZXNvdXJjZS1kYXRhLWNyYXNoLnN2Zwkod29ya2luZyBj
b3B5KQpAQCAtMjEsNyArMjEsNyBAQAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAvLyBGb3JjZSBhIHBhaW50IGF0IHRo
aXMgcG9pbnQgdG8gZ2VuZXJhdGUgY2FjaGVkIGZpbHRlciByZXN1bHRzLgotICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgfQogCiAgICAgZG9jRWxlbWVudC5hcHBlbmRDaGlsZChuZXdEZWZzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309048</attachid>
            <date>2017-05-04 08:36:09 -0700</date>
            <delta_ts>2017-05-04 08:53:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170504083608.patch</filename>
            <type>text/plain</type>
            <size>121342</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE4NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0cmFjayByZXBhaW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChkaXNwbGF5Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChkaXNwbGF5V2ViVmlldyk6
CisgICAgICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6
IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDE3LTA1LTA0ICBLb25zdGFudGlu
IFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBGaXggY29tcGlsYXRpb24g
d2l0aCBJQ1UgNTkuMQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCShy
ZXZpc2lvbiAyMTYxODcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5l
cj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2ViVmlldygpOwor
dm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcoKTsKIAogc3RydWN0IFRlc3RDb21t
YW5kIHsKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjE2MTg3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxNCwyMiArNTE0LDExIEBAIHN0YXRp
YyBKU1ZhbHVlUmVmIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXEKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBkaXNw
bGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgogICAgIFRlc3RSdW5u
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7Ci0KLSAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVm
IGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKLXsKLSAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgotICAgIFRl
c3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RH
ZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICAvLyBUZXN0UnVubmVyOjpkaXNwbGF5KCkgb25s
eSByZW5kZXJzIHRoZSBpbnZhbGlkYXRlZCByZWdpb24gc28KLSAgICAvLyB3ZSBjYW4ganVzdCB1
c2UgdGhhdC4KLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7CisgICAgY29udHJvbGxlci0+ZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KQEAgLTIxMTEsOCArMjEwMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRl
c3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAiZGVjb2RlSG9zdE5hbWUiLCBkZWNvZGVI
b3N0TmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc2FsbG93SW5jcmVhc2VGb3JB
cHBsaWNhdGlvbkNhY2hlUXVvdGEiLCBkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNo
ZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzcGF0Y2hQZW5kaW5nTG9hZFJl
cXVlc3RzIiwgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAg
ICAgICAgeyAiZGlzcGxheSIsIGRpc3BsYXlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJk
aXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb25DYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyIsIGRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFwcGxpY2F0
aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyIsIGR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVD
YWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQXNUZXh0IiwgZHVtcEFz
VGV4dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2FyZExpc3QiLCBk
dW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmgJKHJldmlzaW9uIDIxNjE4NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksNyBAQCBwdWJsaWM6CiAgICAg
SlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBK
U1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7Ci0gICAgdm9pZCBkaXNwbGF5KCk7Ci0g
ICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBK
U1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgYm9vbCBmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSk7CiAgICAgdm9pZCBnb0JhY2soKTsK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlz
aW9uIDIxNjE4NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjA5OCwxMCArMjA5OCw2IEBAIHZvaWQgZGlzcGxheVdlYlZp
ZXcoKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IFttYWluRnJh
bWUgd2ViVmlld107CiAgICAgW3dlYlZpZXcgZGlzcGxheV07Ci0KLSAgICAvLyBGSVhNRTogVHJh
Y2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ugc2hvdWxkIGVuYWJsZSBz
dWNoIHN1cHBvcnQgb24gaU9TLgotICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllFU107
Ci0gICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOwogI2Vsc2UKICAgICBbZ0RydFdp
bmRvdyBsYXlvdXRUaWxlc05vd107CiAgICAgW2dEcnRXaW5kb3cgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0OltnRHJ0V2luZG93IGZyYW1lXV07CkBAIC0yMTA5LDYgKzIxMDUsMTcgQEAgdm9pZCBkaXNw
bGF5V2ViVmlldygpCiAjZW5kaWYKIH0KIAordm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dl
YlZpZXcoKQoreworICAgIGRpc3BsYXlXZWJWaWV3KCk7CisjaWYgIVBMQVRGT1JNKElPUykKKyAg
ICAvLyBGSVhNRTogVHJhY2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ug
c2hvdWxkIGVuYWJsZSBzdWNoIHN1cHBvcnQgb24gaU9TLgorICAgIFdlYlZpZXcgKndlYlZpZXcg
PSBbbWFpbkZyYW1lIHdlYlZpZXddOworICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllF
U107CisgICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOworI2VuZGlmCit9CisKICNp
ZiAhUExBVEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVlRXZlbnQKIApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHJldmlzaW9u
IDIxNjE4NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTAsOSArMjUwLDkgQEAgSlNTdHJpbmdSZWYgVGVzdFJ1bm5lcjo6
Y29weUVuY29kZWRIb3N0TgogICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygo
Q0ZTdHJpbmdSZWYpW25hbWVOUyBfd2ViX2VuY29kZUhvc3ROYW1lXSk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCkKIHsKLSAgICBkaXNwbGF5V2ViVmlldygpOworICAgIGRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzV2ViVmlldygpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmtlZXBXZWJIaXN0b3J5KCkKSW5k
ZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHJldmlzaW9u
IDIxNjE4NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjI0LDcgKzIyNCw3IEBAIEpTU3RyaW5nUmVmIFRlc3RSdW5uZXI6
OmNvcHlFbmNvZGVkSG9zdE4KICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpk
aXNwbGF5KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQogewog
ICAgIGRpc3BsYXlXZWJWaWV3KCk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9uIDIxNjE4NykK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBKU0NsYXNzUmVmIFRlc3RSdW5uZXI6
OndyYXBwZXJDbGFzcygpCiAgICAgcmV0dXJuIEpTVGVzdFJ1bm5lcjo6dGVzdFJ1bm5lckNsYXNz
KCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKICAgICBXS0J1bmRsZVBh
Z2VGb3JjZVJlcGFpbnQocGFnZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjE2MTg3KQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MCw4ICsxNDAsOCBAQCBwdWJsaWM6CiAgICAgLy8gUmVwYWludCB0ZXN0aW5n
LgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFpbnQgPSB0cnVlOyB9CiAgICAg
dm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRTd2VlcEhvcml6
b250YWxseSA9IHRydWU7IH0KLSAgICB2b2lkIGRpc3BsYXkoKTsKLSAgICAKKyAgICB2b2lkIGRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisKICAgICAvLyBVc2VyQ29udGVudCB0ZXN0aW5nLgog
ICAgIHZvaWQgYWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFy
dCwgYm9vbCBhbGxGcmFtZXMpOwogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdS
ZWYgc291cmNlLCBib29sIGFsbEZyYW1lcyk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwJKHJldmlzaW9uIDIxNjE4NykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4
LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIFJlcGFpbnQgdGVzdGluZy4KICAg
ICB2b2lkIHRlc3RSZXBhaW50KCk7CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHko
KTsKLSAgICB2b2lkIGRpc3BsYXkoKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAKICAgICAvLyBQcmludGluZwogICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShsb25n
IHBhZ2VJbmRleCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxODAgQEAKKzIwMTctMDUtMDQgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5h
bWUgdGVzdFJ1bm5lci5kaXNwbGF5KCkgdG8gdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzE2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXBsYWNlIGFsbCB0aGUgY2FsbHMgdG8gdGVzdFJ1bm5lci5kaXNwbGF5KCkgYnkgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCisgICAgICAgIFJlcGxhY2UgYWxsIHRoZSBjYWxs
cyB0byB0ZXN0UnVubmVyLmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpIGJ5CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKSBzaW5jZSB0aGUgZm9ybWVyIGlzIGEg
Y29weSBvZiB0aGUgbGF0ZXIuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9jbGlwLWNoYW5nZS5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZvcmVncm91bmQtb2Zmc2V0LWNo
YW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJv
dW5kcy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXll
ZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGlu
Zy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lMi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29u
bmVjdC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWw6CisgICAgICAgICogY29tcG9z
aXRpbmcvaWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc2l6ZS10by16ZXJvLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtaGlkZS5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hvdy5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVz
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2lu
Zy1zY3JvbGxiYXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJj
ZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9p
ZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFtZS5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1p
ZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5z
LXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50
LWxvc2VzLXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9k
by1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNvbnRlbnRzLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxh
eWVycy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9y
ZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFy
cy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNv
bXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
cGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFu
Z2UtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9w
YXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLWV4cGVjdGVkLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmct
bG9hZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQt
aWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9zaXRlZC1vbi1zY3JvbGwuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWlu
dC1yZWN0Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9wYWdlLXNjYWxlLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tp
bmctcmVwYWludC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNmb3Jt
LXN0eWxlLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZs
b3ctaW52YWxpZGF0aW9uLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50
ZWQtY29tcG9zaXRlZC1jb250ZW50Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdGlsaW5n
L2h1Z2UtbGF5ZXItcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8tcGFn
ZS12aXNpYmlsaXR5Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8td2l0
aC1pbnZhbGlkLXNvdXJjZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmds
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1p
bnZhbGlkYXRpb24uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4t
cmV2ZXJzZS5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LWR1cmluZy1yZXNp
emUtbm8tZmxleC5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1
bW4uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC5odG1sOgorICAgICAgICAq
IGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWw6CisgICAgICAgICogZGlzcGxh
eWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdldC1kaXNwbGF5LWxpc3QuanM6CisgICAgICAgIChk
b1Rlc3QpOgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9yZXNvdXJjZXMvZHVtcC10YXJnZXQtcmVw
bGF5LWxpc3QuanM6CisgICAgICAgIChkb1Rlc3QpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWw6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0
bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVy
aW5nLW1vZGFsLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanM6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bDIuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanM6CisgICAgICAgICh3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKHdpbmRvdy50ZXN0UnVu
bmVyLndpbmRvdy5zZXRUaW1lb3V0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzOgorICAgICAgICAod2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2YW5jZS5qczoK
KyAgICAgICAgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAod2luZG93
LnRlc3RSdW5uZXIud2luZG93LnNldFRpbWVvdXQpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS13aXRoaW4tY2FsbGJhY2suanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzOgorICAgICAgICAqIGZhc3QvYmFja2dyb3Vu
ZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5
bGUtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1j
b250ZXh0LXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1h
Z2UtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1pbmNyZW1lbnRhbC1yZXBhaW50LTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9yZXNvdXJj
ZXMvcmVwYWludC5qczoKKyAgICAgICAgKHJ1blJlcGFpbnRUZXN0KToKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50
LmpzOgorICAgICAgICAoVGVzdENvbnRyb2xsZXJQYWludCk6CisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1sYXllci11cGRhdGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG9zdHlsZS1h
bm9ueW1vdXMtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9u
ZWQtYmxvY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNz
YWdlLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dlYi10aW1pbmctbWlu
aW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvY29udGFp
bmluZy1ibG9jay1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvbGF5ZXItbm8t
bG9uZ2VyLXBhZ2luYXRlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvcGFkLWdlc3R1cmUtY2FuY2VsLmpzOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanM6CisgICAgICAgICogZmFzdC9mb3Jtcy9oaWRkZW4t
bGlzdGJveC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWw6
CisgICAgICAgICogZmFzdC9sYXllcnMvaW5saW5lLWRpcnR5LXotb3JkZXItbGlzdHMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2xheWVycy9sYXllci1jb250ZW50LXZpc2liaWxpdHktY2hhbmdlLmh0
bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0xLmh0bWw6CisgICAgICAg
ICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0yLmh0bWw6CisgICAgICAgICogZmFzdC9sYXll
cnMvbmVzdGVkLWxheWVycy0zLmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVz
dGVkLXN0YWNraW5nLmh0bWw6CisgICAgICAgICogZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xs
YmFyLXJlc2l6ZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVmbGVjdGlvbnMvaW5saW5lLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2FuaW1hdGlvbi1hZnRlci1sYXllci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0
aC1ncmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvZml4ZWQtY2hpbGQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1z
Y3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtbW92ZS1hZnRlci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQtc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9u
LW91dHNpZGUtdmlld3BvcnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L292ZXJm
bG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwt
d2l0aC16b29tLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1t
b3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2xpbmUtZmxvdy13aXRoLWZsb2F0cy5qczoKKyAg
ICAgICAgKGJlZ2luVGVzdCk6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9yZXBh
aW50LmpzOgorICAgICAgICAocnVuUmVwYWludFRlc3QpOgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC90YWJsZS1vdmVyZmxvdy1oaWRkZW4taW4tb3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9zY3JvbGxiYXItdGlja21hcmtzLWhpdHRlc3QuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5o
dG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwt
YXBwZW5kLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2VsbC1yZW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2UtY2VsbC1zbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci1jb2xvci5odG1sOgorICAgICAg
ICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVy
LXdpZHRoLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2Utcm93LWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci1j
b2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS10YWJsZS1ib3JkZXItd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9yLmh0bWw6Cisg
ICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRib2R5
LWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvZW1wdHktc2VjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9oYXJmYnV6ei1ydW5zLXdpdGgtbm8tZ2x5cGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVy
bi5odG1sOgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogcGx1Z2lu
cy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFy
cy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0bWw6CisgICAgICAgICogc3ZnL2N1
c3RvbS9ub24tc2NhbGluZy1zdHJva2UtdXBkYXRlLnN2ZzoKKyAgICAgICAgKiBzdmcvY3VzdG9t
L3N0YWxlLXJlc291cmNlLWRhdGEtY3Jhc2guc3ZnOgorCiAyMDE3LTA1LTA0ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGdh
cmRlbmluZy4gVXBkYXRlIG1haW4gZXhwZWN0YXRpb25zIG9mIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVxdWVzdC1oZWFkZXJzLmh0bWwuCkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9jbGlwLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDcgQEAKICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICBmdW5j
dGlvbiBkb1Rlc3QoKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAvLyBUaGUgY2hhbmdlIGluIGNsaXAgc3R5bGUgc2hvdWxkIGJlIHJl
ZmxlY3RlZCBpbW1lZGlhdGVseSBpbiB0aGUgc2l6ZQogICAgICAgLy8gb2YgdGhlIGNvbXBvc2l0
ZWQgY2xpcHBlciBsYXllci4gQWZ0ZXIgY2hhbmdpbmcgdGhlIGNsaXAsIGl0IHNob3VsZAogICAg
ICAgLy8gZW50aXJlbHkgY292ZXIgdGhlIGluZGljYXRvci4KSW5kZXg6IExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQt
Y29udGVudC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9zY3JvbGwtcGFpbnRlZC1jb21wb3NpdGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgICAgICAgICAvLyBGb3JjZSBhIHBhaW50IHNvIHRoYXQgdGhlIGNvbnRlbnQgd2lsbCBiZSBw
YWludGVkIGF0IHRoZSBjdXJyZW50IHNjcm9sbCBvZmZzZXQgKDB4MCkKICAgICAgICAgICAgIC8v
IGJlZm9yZSB3ZSBzY3JvbGwuCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
fQogICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMzAwLCAwKTsKICAgICA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5o
dG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby1w
YWdlLXZpc2liaWxpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBAQAogICAg
IHZpZGVvLnNyYyA9ICdyZXNvdXJjZXMvdmlkZW8uJyArICh2aWRlby5jYW5QbGF5VHlwZSgndmlk
ZW8vb2dnJykgPyAnb2d2JyA6ICdtcDQnKTsKICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdj
YW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFnZVZpc2li
aWxpdHkoImhpZGRlbiIpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVy
LnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3Jv
dW5kLW9mZnNldC1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2
MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3VuZC1vZmZz
ZXQtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAKICAgICBmdW5j
dGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIAogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmV0Y2gi
KS5zdHlsZS5sZWZ0ID0gIi0xMDBweCI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQt
bGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJvdW5kcy10
cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBA
CiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8vIFdlIG5l
ZWQgdG8gY2FsbCBkaXNwbGF5KCkgaGVyZSB0byBzeW5jIHRoZSBjb21wb3NpdG9yIHN0YXRlIGFu
ZCBhdm9pZCBhIHJhY2UgY29uZGl0aW9uLgotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVy
bmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMv
YmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1jb21wb3NpdGVkLW5lc3RlZC1pZnJh
bWVzLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NOYW1lID0g
J2NvbXBvc2l0ZWQnOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVB
c1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
ICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2JlY29t
ZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIx
NjE4NykKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBw
ZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ292ZXJsYXknKS5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnOwogICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7IC8vIFBhaW50aW5nIGhhcyB0byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAuCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQYWlu
dGluZyBoYXMgdG8gaGFwcGVuIHRvIGRldGVjdCBvdmVybGFwLgogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJu
YWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lMi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1p
ZnJhbWUyLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jbGFzc05hbWUgPSAnY29tcG9z
aXRlZCc7CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1j
b21wb3NpdGluZy1pZnJhbWUzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkocmV2aXNpb24g
MjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBv
c2l0aW5nLWlmcmFtZTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZy
YW1lJykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS1kZWxh
eWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlvbiBk
b1Rlc3QoKQogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jv
eCcpLmNsYXNzTmFtZSA9ICdjb21wb3NpdGVkJzsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYx
ODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRp
bmctaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJv
ZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KIAogICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycp
LmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsK
SW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvZW50ZXItY29tcG9zaXRpbmct
aWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1l
cy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zm
c2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVB
c1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
IH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQt
ZmxpcHBpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgp
CiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY2xhc3NOYW1lID0g
J2NvbXBvc2l0ZWQnOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvaWZyYW1lLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1yZXNpemUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzgsMTEgKzM4LDExIEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGlz
IGRlbGF5IGlzIHJlcXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhlIGRp
c3BsYXkuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50LWlmcmFtZScpLmNsYXNz
TmFtZSA9ICdiaWdnZXInOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxz
LmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAkocmV2aXNp
b24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc2l6
ZS10by16ZXJvLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAg
Ly8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBu
b3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJz
ID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTQ4LDcg
KzQ4LDcgQEAKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgdmFyIGhhdmVM
YXllcnMgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCkgIT0gIiI7
CiAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKICAgICAgICAgICAgICAgICBpZiAoaGFkTGF5
ZXJzICYmICFoYXZlTGF5ZXJzKQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1l
cy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNyYy1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg3KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgICAgICB2YXIgaGFkTGF5
ZXJzQmVmb3JlID0gZmFsc2U7CiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJzQWZ0ZXIgPSBmYWxz
ZTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRlc3Rp
bmcuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRlc3RpbmcuCiAgICAgICAgICAgICAgICAg
aGFkTGF5ZXJzQmVmb3JlID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1l
bnQpICE9ICIiOwogICAgICAgICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1l
LWhpZGUuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1oaWRlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNzc1RleHQgPSAiZGlzcGxheTpu
b25lOyI7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJs
ZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNzc1Rl
eHQgPSAiIjsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5p
bm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6IExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21w
b3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7IC8v
IHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cu
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLWlmcmFtZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUt
aWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDcgKzM1LDcgQEAKICAgICAgICAgLy8gZm9yIG92ZXJsYXAgdGVzdGluZyB0byBraWNrIGlu
LgogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBl
ZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGlzIGRlbGF5IGlzIHJlcXVp
cmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhlIGRpc3BsYXkuCiAgICAgICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93Lmlu
dGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFt
ZXMuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAwKTsKICAgICAgICAg
ICAvLyBGb3JjZSBhIHBhaW50LCBhbmQgZ2l2ZSBsYXllcnMgYSBjaGFuY2UgdG8gdXBkYXRlLgog
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJU
cmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xs
YmFycy5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJib3RoIikuY29udGVudERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgidGFs
bCIpOyAvLyB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZs
b3cgY29udHJvbHMgdmlzaWJsZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2li
bGUuCiAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9IGVsc2UKICAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoZmluaXNoVGVzdCwgNTAwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2
MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmctaWZyYW1l
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8gRm9yIHNv
bWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hvcnQt
Y2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGFyZW50LWlmcmFtZScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oODAsIDgwKTsKICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhl
ZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAyMDAwKTsK
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxODAwKTsKICAgICB9CiAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9y
bWVkLXN1YmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRt
bAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9y
ZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewog
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAg
ICAvLyBBbnkgc2Nyb2xsIHNob3VsZCBrZWVwIHRoZSBmaXhlZC1wb3NpdGlvbiBlbGVtZW50IHdo
ZXJlIGl0IGlzLgogICAgICAgLy8gSWYgaXQgc3R1dHRlcnMgb3IgZGlzYXBwZWFycyBpbmNvcnJl
Y3RseSwgdGhlbiB0aGUgcmVkIGJhY2tncm91bmQgd2lsbCBiZSByZXZlYWxlZC4KSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQt
aW5uZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwJKHJldmlzaW9uIDIxNjE4NykK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5k
Y2hpbGQtaW5uZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgIGZ1
bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgLy8gU2Nyb2xsIHJlZCBib3ggb2ZmIHNjcmVlbiBhbmQg
c2Nyb2xsIGdyZWVuIGJveCBpbnRvIHNhbWUgcGxhY2UuCiAgICAgICB3aW5kb3cuc2Nyb2xsVG8o
MCwgNDAwKTsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMt
c2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5zLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNDksMTQgKzQ5LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImJvdGgiKS5jbGFzc0xpc3QuYWRkKCJ0YWxsIik7IC8vIHZlcnRp
Y2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29ybmVyIikuY2xhc3NMaXN0LmFkZCgicmVzaXplV2lkZ2V0Iik7IC8vIGJvdHRvbSBkaXYg
Z2V0cyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBjb21w
b3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUu
CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQogfQog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBi
ZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9s
cworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgY29t
cG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFu
eSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJz
Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2NvbnRlbnQtbG9zZXMtc2Nyb2xsYmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OSwx
NCArNDksMTQgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYm90aCIpLmNsYXNzTGlzdC5yZW1vdmUoInRhbGwiKTsgLy8gdmVydGljYWwgYW5k
IGhvcml6b250YWwgc2Nyb2xsYmFycwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3Ju
ZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJyZXNpemVXaWRnZXQiKTsgLy8gYm90dG9tIGRpdiBsb3Nl
cyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBjb21wb3Np
dG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUuCiAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQgPSB3
aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQogfQogCiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBiZSB1
cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9scwor
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgY29tcG9z
aXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBv
dmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5z
ZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1j
b250ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2RvLW5vdC1wYWludC1vdXRsaW5lLWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctY29udGVu
dHMuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1jb250
ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICB0ZXh0YXJl
YS5mb2N1cygpOwogICAgICAgdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5zZWxl
Y3Rpb25FbmQgPSAwOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRUZXN0LCAx
MDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3Zl
cmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1sYXllcnMuaHRtbAkocmV2aXNp
b24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ct
c2Nyb2xsYmFyLWxheWVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHJl
c2l6ZTogYm90aDsKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5zdXJl
IGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsgLy8gRW5zdXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRl
LgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQgPSB3
aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiB9CiA8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9yZGVy
LWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3JkZXIt
ZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAkocmV2aXNpb24g
MjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXot
b3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgdGV4dGFyZWEuc2Nyb2xsVG9wID0g
NDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKLSAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQog
CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKQEAgLTQ1LDcgKzQ1LDcgQEAKICAgICAgIHRleHRhcmVh
LmZvY3VzKCk7CiAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVhLnNlbGVj
dGlvbkVuZCA9IDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRlc3QsIDEw
MCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9yZXBh
aW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5o
dG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxv
dy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTYxLDcgKzYxLDcgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKIAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZp
c2libGUuCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQYWlu
dCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2libGUuCiAgICAgZmluaXNoVGVz
dCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3Np
dGluZy1hZGQtdGV4dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2Ug
dGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAg
IGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1w
YXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5n
LWFkZC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAg
ICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1j
aGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMv
ZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRv
IGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
ICAgYmcuaW5uZXJIVE1MID0gIjxzcGFuIHN0eWxlPVwib3BhY2l0eTowXCI+MTIzPC9zcGFuPiI7
CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5z
L2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5n
LWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIg
dG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgICBiZy5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CiAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRl
cm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRtbAkocmV2aXNp
b24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBh
dHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
NSw3ICsxNSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBi
YWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICB2YXIg
aW1nID0gbmV3IEltYWdlOwogICAgICAgICAgIGltZy5vbmxvYWQgPSBvbkJhY2tncm91bmRJbWFn
ZUxvYWQ7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0
dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC5odG1sCShy
ZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJl
Y3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcg
KzE1LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJhY2tn
cm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAgIHZhciBpbWcg
PSBuZXcgSW1hZ2U7CiAgICAgICAgICAgaW1nLm9ubG9hZCA9IG9uQmFja2dyb3VuZEltYWdlTG9h
ZDsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9pbnZh
bGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcs
MTAgKzE3LDEwIEBACiAKICAgICBmdW5jdGlvbiBvbkxvYWQoKQogICAgIHsKLSAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgcGFpbnRDb3VudCA9IDA7CiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdFBsdWdpbicpLmludmFsaWRhdGVSZWN0KDAsIDAsIDIwMCwgMjAwKTsKLSAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICBpZiAocGFpbnRDb3VudCA+IDApCiAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJTVUND
RVNTIjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5
LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLW9uLXNjcm9sbC5odG1sCShyZXZpc2lv
biAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBv
c2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYzLDExICs2MywxMSBAQAog
CiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDMwOwogICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICB3
aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDUwOwpJbmRleDogTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9z
aXRlZC1yZXBhaW50LXJlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBACiAgICAgICAgIC8vIEZvcmNlIER1bXBSZW5k
ZXJUcmVlIHRvIGRvIGEgbGF5b3V0IGFuZCByZXBhaW50IGhlcmUsIHRoaXMgaXMgd2hlcmUgdGhl
IHJlcGFpbnRSZWN0CiAgICAgICAgIC8vIGdvZXMgd3JvbmcgYmVjYXVzZSBpdCBkb2VzIG5vdCBn
ZXQgdXBkYXRlZCBmb3IgYSBuZXdseSBjb21wb3NpdGVkIGVsZW1lbnQuCiAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgLy8gU2Nyb2xsaW5n
IGEgbGl0dGxlIHdpbGwgZGVtb25zdHJhdGUgd2hldGhlciB0aGUgcmVwYWludCByZWN0IGlzIGNv
cnJlY3Qgb3Igbm90LgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9wYWdl
LXNjYWxlLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VT
Y2FsZUZhY3RvcigwLjUsIDAsIDApOwogfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cmVwYWludC9yZXF1aXJlcy1iYWNraW5nLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1s
CShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3Jl
cXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3
IEBACiAgICAgICAgICAgICBvdmVyZmxvdy5zY3JvbGxUb3AgPSA1MDsKIAogICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3cuc2Nyb2xsVG9wID0gNzU7CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1z
dHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvcmVwYWludC90cmFuc2Zvcm0tc3R5bGUtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIH0KIAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZvcmNlIG9uZSBjb21wb3Np
dGUgd2l0aCBwcmVzZXJ2ZS0zZAorICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsgLy8gRm9yY2Ugb25lIGNvbXBvc2l0ZSB3aXRoIHByZXNlcnZlLTNkCiAgICAgdGVzdCgp
OwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQodGVzdCwgMCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0aC1m
aXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXdpdGgtZml4
ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0
aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDcgKzM3LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRmx1c2gg
cGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5z
dGFydFRyYWNraW5nUmVwYWludHMoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jl
cGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXNjcm9sbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUt
c2Nyb2xsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAg
ICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZs
dXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0
aW5nIHJlcGFpbnRzLgogCiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKICAgICAg
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlm
cmFtZS13aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmctaWZy
YW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYx
ODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRp
bmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBh
aW50cy4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
dGwvcnRsLW92ZXJmbG93LWludmFsaWRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJKHJldmlz
aW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZsb3ct
aW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIDxzY3Jp
cHQ+CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGVzdCBwYXNz
ZXMgaWYgdGhpcyBlbGVtZW50IGlzIHJlcGFpbnRlZCBjb3JyZWN0bHksIGV2ZW4KSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJlc2l6
ZS5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy90aWxp
bmcvaHVnZS1sYXllci1yZXNpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBA
QAogICAgICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgYW5kIGEgcGFpbnQgdG8gbWFrZSBzdXJl
IHRoZSBjb21wb3NpdGluZyBsYXllcnMKICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB1cGRhdGVk
LgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlUHJlZml4ICsgd2luZG93
LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB9CkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8td2l0
aC1pbnZhbGlkLXNvdXJjZS5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsNCiAgICAgdi5hcHBlbmRD
aGlsZChzcmMpOw0KICAgICBzcmMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbigp
IHsNCiAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7DQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOw0KICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBjcmFzaCBoZXJlLCB5YXkh
ICBUZXN0IGlzIGEgc3VjY2Vzcw0KICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MiKSk7DQogICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7DQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wv
d2ViZ2wtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3dlYmdsL3dlYmdsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIGluaXQoKQogICBnbC5jbGVhckNvbG9yKDEsIDAsIDAs
IDEpOyAvLyByZWQKICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQodHJ1ZSk7CiAgICAgICBkcmF3R3JlZW4oKTsKICAgfSBlbHNlCkBAIC00Niw4ICs0Niw4
IEBAIGZ1bmN0aW9uIGRyYXdHcmVlbigpCiAgIGdsLmNsZWFyQ29sb3IoMCwgMSwgMCwgMSk7IC8v
IGdyZWVuCiAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwogICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwotICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgIH0gZWxzZQog
ICAgICAgd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY2FudmFzJykuY2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVyJyk7CkluZGV4
OiBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRpb24u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmls
dGVycy1pbnZhbGlkYXRpb24uaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCgpIHsKIAog
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUp
OwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICBjaGFuZ2VCYWNrZ3JvdW5kKCk7CiB9IGVsc2UgCiAgICAgd2lu
ZG93LnNldFRpbWVvdXQoY2hhbmdlQmFja2dyb3VuZCwgMjUwKTsKSW5kZXg6IExheW91dFRlc3Rz
L2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAkocmV2
aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1u
LXJldmVyc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKICAgICAgICAg
ICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZsZXggaXRlbXMgdGhhdCBhcmUgbW92ZWQg
bXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQgIgpJbmRleDogTGF5b3V0VGVzdHMvY3Nz
My9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4
Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBh
aW50LWR1cmluZy1yZXNpemUtbm8tZmxleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw3IEBAIGZ1bmN0aW9uIHJlc2l6ZUZsZXhJdGVtKCkgewogd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAog
ICAgICAgICAgICAgIlRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gY2hhbmdpbmcgdGhlIHNp
emUgb2Ygb25lIGZsZXggaXRlbSBjaGFuZ2VzIHRoZSAiCkluZGV4OiBMYXlvdXRUZXN0cy9jc3Mz
L2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sCShyZXZpc2lvbiAyMTYxODcp
CisrKyBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkg
ewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQodHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2NzczMvZmxleGJv
eC9yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Jl
cGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L3JlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwogICAgIH0KICAgICB3aW5kb3cuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKSW5kZXg6
IExheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QuaHRt
bAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1k
aXNwbGF5LWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICAgICAg
ICAgICAgZHJhd0NhbnZhcygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnb3V0cHV0JykudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMucmVwbGF5RGlzcGxheUxpc3RGb3JF
bGVtZW50KGNhbnZhcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2Vz
L2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9k
aXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwkocmV2aXNp
b24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1wLXRh
cmdldC1kaXNwbGF5LWxpc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVu
Y3Rpb24gZG9UZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldEVsZW1lbnRVc2VzRGlzcGxheUxp
c3REcmF3aW5nKHRhcmdldERpdiwgdHJ1ZSk7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICAgICAgdmFyIGRpc3BsYXlMaXN0ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9yRWxlbWVu
dCh0YXJnZXREaXYpOwpJbmRleDogTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9k
dW1wLXRhcmdldC1yZXBsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kaXNw
bGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCShyZXZpc2lvbiAy
MTYxODcpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0
LXJlcGxheS1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9u
IGRvVGVzdCgpCiAgICAgfQogICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIHZh
ciBkaXNwbGF5TGlzdCA9IGludGVybmFscy5kaXNwbGF5TGlzdEZvckVsZW1lbnQodGFyZ2V0RGl2
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCShy
ZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIs
NyArMTIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogICAgICAgICB9LCA1MCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5kb3cu
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kdXJpbmctbW9kYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2aXNpb24g
MjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAg
b25sb2FkID0gZnVuY3Rpb24oKQogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsKICAg
ICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeycgKwotICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOycgKworICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsnICsKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuY2xvc2UoKTsnICsKICAgICAg
ICAgICAgICAgJ30gZWxzZSB7JysKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuc2V0VGltZW91
dCh3aW5kb3cuY2xvc2UsIDEwKTsnKwpAQCAtMjMsNyArMjMsNyBAQCBvbmxvYWQgPSBmdW5jdGlv
bigpCiAgICAgc2hvd01vZGFsRGlhbG9nKCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PicgKyBzcmMg
KyAnPC8nICsgJ3NjcmlwdD4nKTsKICAgICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2RhbCBkaWFs
b2cnKTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCShyZXZpc2lv
biAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICAg
ICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRvQ2hlY2tSZXN1bHQoKQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvRGlzcGxheSgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIH0KICAgICAKICAgICAgICAgZnVuY3Rp
b24gZG9DaGVja1Jlc3VsdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtY2FuY2VsMi5qcwkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIu
anMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgc2Vjb25kQ2FsbGJhY2tJZCA9IHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aQogfSwgZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVGYWxzZSgi
Y2FsbGJhY2tGaXJlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtY2FuY2VsLmpzCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1CiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewog
ICAgIHNob3VsZEJlRmFsc2UoImNhbGxiYWNrRmlyZWQiKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxl
ZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVz
dHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDIxNjE4NykK
KysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kaXNhYmxlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgd2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogfSk7CiAKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
c2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tJbnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtcHJlZml4Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanMJKHJldmlzaW9uIDIxNjE4NykKKysrIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1wcmVmaXguanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwxMiBAQCB3aW5kb3cu
d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiAKICAgICBidXN5V2FpdCgxMCk7CiAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0
LmpzCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0yMCwxMiArMjAsMTIgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5j
dGlvbih0aQogICAgICAgICB9KTsKIAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9LCAxKTsKIH0pOwogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZh
bmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHJldmlz
aW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDExICsyMSwxMSBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0
aW9uKHRpCiAgICAgfSk7CiAgICAgYnVzeVdhaXQoMTApOwogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0pOwogCiAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICB9KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS10aW1lc3RhbXBzLmpzCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1w
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1bmN0aW9uKHRpCiB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
d2l0aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTAgQEAgd2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogCiAvLyBUaGlzIHNob3VsZCBm
aXJlIHRoZSB0aHJlZSBhbHJlYWR5IHJlZ2lzdGVyZWQgY2FsbGJhY2tzLCBidXQgbm90IHRoZSBv
bmUgZHluYW1pY2FsbHkgcmVnaXN0ZXJlZC4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAvLyBUaGlzIHNob3VsZCBmaXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3RlcmVkIGNh
bGxiYWNrLgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCB3aW5kb3cucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiB9LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZVRydWUo
ImNhbGxiYWNrSW52b2tlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9v
YnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3Vu
ZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0
eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBA
CiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJy
Z2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAi
cmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9v
YnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1z
dHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9i
YWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxk
cmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVu
WzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJl
blsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJlc3RvcmUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNv
bG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgPC9kaXY+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldCcpOwogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldCwgMSk7CiAgICAgPC9zY3JpcHQ+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1hZ2UtaW5jcmVtZW50YWwtcmVwYWlu
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1p
bWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgIGNhbnZhc0NvbnRleHQg
PSBkb2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJzcXVhcmVzIiwgMzAwLCAzMDAp
OwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICByZXBhaW50VGVzdCgpOwog
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFs
LXJlcGFpbnQtMi5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIxLDcgKzIxLDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRtbAko
cmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3Jl
bWVudGFsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAg
IHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAg
ICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJl
c2l6ZS1hZnRlci1wYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKIH0KIAog
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZv
cmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUg
YSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZhcy4KKyAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0
aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNh
bnZhcy4KICAgICByZXNpemUoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJlc2l6
ZSwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWludC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWlu
dC5qcwkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3Vy
Y2VzL3JlcGFpbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGZ1bmN0aW9uIHJ1
blJlcGFpbnRUZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJl
cGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2V0VGltZW91dChyZXBhaW50VGVz
dCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52
YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJs
ZWQtcmVwYWludC5qcwkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcwko
d29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCB2YXIgZHJhd0l0ZXJhdGlvbnMgPSAyOwog
ZnVuY3Rpb24gVGVzdENvbnRyb2xsZXJQYWludCgpIHsKICAgICB3aGlsZSAoZHJhd0l0ZXJhdGlv
bnMgPiAwKSB7CiAgICAgICAgIGRyYXcoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
ZHJhd0l0ZXJhdGlvbnMgPSBkcmF3SXRlcmF0aW9ucyAtIDE7CiAgICAgfQogICAgIGRyYXcoKTsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRt
bAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2Fu
dmFzLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGlmICghZ2wp
IHsKICAgdmFyIGludGVydmFsSWQ7CiAgIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwo
ZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgaWYgKGNhbnZhcy5jbGllbnRXaWR0aCA9PSAxMDAgJiYKICAgICAgICAgY2FudmFzLmNs
aWVudEhlaWdodCA9PSAyNSkgewogICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJ
ZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11cGRh
dGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJn
bC1sYXllci11cGRhdGUuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBkYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTYsNyArNiw3IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52
YXMnKVswXS5zdHlsZS50b3AgPSAiNjBweCI7CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBjdHgu
Y2xlYXJDb2xvcigxLCAwLCAwLCAxKTsKIGN0eC5jbGVhcihjdHguQ09MT1JfQlVGRkVSX0JJVCk7
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkb3N0eWxlLWFub255
bW91cy10ZXh0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRv
c3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwogICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQtYmxv
Y2stY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02
LDcgKzYsNyBAQAogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwJKHJl
dmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3Nh
Z2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUocG9zdE1lc3NhZ2UpOwogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7CiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dlYi10aW1pbmctbWluaW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBl
cmZvcm1hbmNlLW5vdy5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsgfQogICAgICAgICAsIDEwMCk7CiAKLSAgICB3aW5kb3cudGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKIH0KIAogb25sb2FkID0gc3RhcnQoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHlu
YW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCShyZXZpc2lvbiAy
MTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY29udGFpbmluZy1ibG9jay1jaGFu
Z2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMyArMywxMyBAQAogICAgIHsKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
dmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndCcpOwogICAgICAgICB0LnN0eWxlLnBv
c2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAg
IC8vIGZvcmNlIGxheW91dAogICAgICAgICB0Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZCh0Lmxhc3RD
aGlsZC5sYXN0Q2hpbGQpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0idGVz
dCgpIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1uby1sb25nZXItcGFn
aW5hdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVy
LW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDEs
IDApOwogCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAg
ICAgICAgIHRlc3QoKTsKICAgICAgICAgfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5q
cwkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2Vz
dHVyZS9wYWQtZ2VzdHVyZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcg
QEAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIuZ2Vz
dHVyZUZsaW5nU3RhcnQpIHsKICAgICBldmVudFNlbmRlci5nZXN0dXJlRmxpbmdTdGFydCgxMCwg
MTEsIDEwMDAsIDEwMDApOwogICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ0NhbmNlbCgpOwot
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVy
ZS1mbGluZy5qcwkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTgs
OSArMTgsOSBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgCiAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmV2ZW50
U2VuZGVyLmdlc3R1cmVGbGluZ1N0YXJ0KSB7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUZsaW5n
U3RhcnQoMTAsIDExLCAxMDAwLCAxMDAwKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2hpZGRlbi1saXN0Ym94Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogPC9zY3JpcHQ+CiBUaGlzIHRlc3RzIHRoYXQgdGhlIHdob2xlIGxpc3Rib3ggY29udHJv
bCBpcyBoaWRkZW4gd2hlbiB2aXNpYmlsaXR5IGlzIHNldCB0byBoaWRkZW4uCiA8YnI+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHJldmlzaW9uIDIxNjE4
NykKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICA8L3NlbGVjdD4KICAgICA8c2NyaXB0PgogICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRt
bAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9i
amVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBA
QCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGRjb250LmFwcGVuZENoaWxkKGUpOwogICAgIAog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAogPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxi
YXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVu
dC1zY3JvbGxiYXIuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEz
ICsyMywxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiAKICAgICB3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxU
b3AgPSAyMDAwOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAg
ICAgICAgIH0KICAgICB9LCAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1h
dGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWwJKHJldmlz
aW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tncm91
bmQtaW1hZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAg
ICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUuZGlzcGxheT0ibm9u
ZSI7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgIHNl
dFRpbWVvdXQoInN0ZXAyKCkiLCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMv
YWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHJl
dmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2FkZC1sYXllci13aXRo
LW5lc3RlZC1zdGFja2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAg
ICAgICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7CiAg
ICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9pbmxpbmUtZGly
dHktei1vcmRlci1saXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysr
IExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1lb3V0KHRl
c3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNp
YmlsaXR5LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJz
L2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg3KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNoYW5n
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgfQogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBz
ZXRUaW1lb3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVk
LWxheWVycy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVz
dGVkLWxheWVycy0xLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAkocmV2
aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0y
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogewog
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBmaW5pc2goKTsKICAg
ICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy00
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVy
cy00Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25l
c3RlZC1sYXllcnMtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0
aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgVGhlIHNxdWFyZSBzaG91bGQgYmUgYSB1bmlmb3Jt
IHNoYWRlIG9mIAogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwogICAgIGVsc2UgewogICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgdGVzdCgpOwogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9vdmVy
Zmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRtbAkocmV2aXNpb24g
MjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJl
c2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdHMgdGhh
dCB0aGUgc2Nyb2xsYmFyIGFuZCByZXNpemUgY29ybmVyIGFyZSBub3QgdmlzaWJsZSBvbiBhbiBl
bGVtZW50IHRoYXQgaGFzIHZpc2liaWxpdHk6aGlkZGVuLgogPGRpdiBzdHlsZT0ib3ZlcmZsb3c6
IGF1dG87IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDcwcHg7IHJlc2l6ZTogYm90aDsgdmlzaWJpbGl0
eTogaGlkZGVuIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvaW5saW5lLWNy
YXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9pbmxp
bmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWZs
ZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAK
ICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgfQogICAgICAgICBzZXRUaW1lb3V0KGNoYW5nZUNvbG9yLCAwKTsKICAgICB9CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNjcm9sbC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0
ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTgsNyArOCw3IEBACiAgICAgewogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0
VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Ny
b2xsZXInKS5zY3JvbGxUb3AgPSA4MDA7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAg
c2V0VGltZW91dChsb2dSZXBhaW50cywgMjAwKTsKICAgICB9CkBAIC0yNSw3ICsyNSw3IEBACiAK
ICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
IHNldFRpbWVvdXQoc3RhcnRUcmFja2luZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGll
bnQtYW5kLWhlaWdodC1jaGFuZ2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdodC1j
aGFuZ2VzLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hhbmdlcy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewog
ICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFj
a2luZ1JlcGFpbnRzKCk7Ci0gICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHdp
bmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB9CiAKIGZ1bmN0aW9u
IGxvZ1JlcGFpbnRzKCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNo
aWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIx
NjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1tb3ZlLWFmdGVy
LXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNj
cm9sbEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1z
Y3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQt
Y2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTg3KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW9mLWZpeGVkLW1vdmUtYWZ0
ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAgICAg
c2Nyb2xsQnkoMCwgMjAwKTsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3Zl
LWFmdGVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCShyZXZp
c2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2Yt
dHJhbnNmb3JtZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3
ICs3LDcgQEAKICAgICAgICAgICBzY3JvbGxCeSgwLCAyMDApOwogICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
LSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRl
c3QoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgc2V0VGltZW91dChyZXBh
aW50VGVzdCwgMTUpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUt
YWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAg
ICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3Bv
cnQtc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1lLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTksNyArOSw3IEBACiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9w
OwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAg
ICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwyMDApOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICBzZXRUaW1lb3V0KHRlc3RBZnRlclNjcm9sbCwgMjAwKTsKICAgICB9CiAKQEAgLTIyLDcgKzIy
LDcgQEAKIAogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygp
OwogICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgc2V0VGltZW91dCh0ZXN0QWZ0ZXJTY3JvbGxCYWNrLCAyMDApOwogICAgIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlv
bi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC04LDcgKzgsNyBAQAogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7
Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNldFRpbWVvdXQobG9nUmVwYWludHMsIDIw
MCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFj
a2dyb3VuZC1uby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYx
ODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1y
ZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAKICAgICB7CiAgICAg
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBzZXRU
aW1lb3V0KGxvZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L292ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVu
LWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRl
bi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwog
CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAw
KTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlbmRlcmVyLWRl
c3RydWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxp
ZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlv
bi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgPGRpdj48
L2Rpdj4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwtd2l0
aC16b29tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFp
bnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICB9CiAKICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgIHRlc3RTY3JvbGxSZXBhaW50KCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGxSZXBhaW50LCAxMDApOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3RhYmxlLW92ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4t
c2Nyb2xsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFi
bGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZp
c2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZsb3ct
aGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00OCw3ICs0OCw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0
ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBz
ZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC1p
ZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3Vy
Y2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCShyZXZpc2lv
biAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVkLW1v
dmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02
LDcgKzYsNyBAQAogICAgICAgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWlu
dC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVz
b3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9pZnJhbWUtc2Nyb2xsLXJl
cGFpbnQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKIAogd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgZG9jdW1lbnQuYm9keS5zY3JvbGxU
b3AgPSAyMDsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9h
dHMuanMJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNv
dXJjZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsx
NCw3IEBAIGZ1bmN0aW9uIGJlZ2luVGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICB0ZXN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5jb250ZW50
RG9jdW1lbnQpOwogICAgIH0gZWxzZSBzZXRUaW1lb3V0KAogICAgICAgICBmdW5jdGlvbigpIHsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMJ
KHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMv
cmVwYWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gcnVuUmVw
YWludFRlc3QoKQogICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpCiAg
ICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0VG9wOwogCi0gICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
cmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAkocmV2
aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNl
bnQtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5b3V0
RW5hYmxlZChmYWxzZSk7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9z
Y3JpcHQ+CiAKIFRoZSB0ZXh0YXJlYXMgYmVsb3cgc2hvdWxkIG5vdCBvdmVybGFwLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRp
Y2ttYXJrcy1oaXR0ZXN0Lmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVzdC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xNiw3ICsxNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgd2luZG93
LmludGVybmFscy5hZGRUZXh0TWF0Y2hNYXJrZXIocmFuZ2UsIHRydWUpOwogICAgIH0KICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh3aW5kb3cu
aW5uZXJXaWR0aCAtIDEsIHdpbmRvdy5pbm5lckhlaWdodCAtIDEpOwogICAgICAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHktc2Vj
dGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1w
dHktc2VjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3
ICs2LDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgLyogU2luY2UgdGhlIGNyYXNoIGhhcHBl
bnMgaW4gcGFpbnRpbmcgY29kZSwgZm9yY2UgcGFpbnRpbmcuIFRoaXMKICAgICAgICAgICAgICAg
IG1ha2VzIHRoZSB0ZXN0IHdvcmsgZXZlbiB3aGVuIHJ1biB3aXRob3V0IHRoZSAtLXBpeGVsIG9w
dGlvbi4gKi8KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1s
CShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
IENvbGxhcHNlZCBib3JkZXJzIHNob3VsZCBub3QgZGlzYXBwZWFyLgogICAgICAgICAgICAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAgICAgICBy
b3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm93MScpOwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jZWxsLWFwcGVuZC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgYXBwZW5kIG5ldyBjZWxsLCBleHBlY3Qg
dGhhdCBjYWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICAgICAgICAgIG5ld0NlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwogICAg
ICAgICAgICAgICAgIG5ld0NlbGwuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0gIjZweCI7CiAgICAg
ICAgICAgICAgICAgbmV3Q2VsbC5zdHlsZS5ib3JkZXJMZWZ0U3R5bGUgPSAic29saWQiOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1y
ZW1vdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1j
b2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgcmVtb3ZlIGNl
bGwsIGV4cGVjdCB0aGF0IGNhY2hlIGkKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGJhckNlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYmFyIik7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJv
dyIpLnJlbW92ZUNoaWxkKGJhckNlbGwpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVy
LWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXIt
Y29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9u
IDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2Fj
aGVkLWNoYW5nZS1jZWxsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3
ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNlbGwgYm9yZGVyIGNvbG9yLCBleHBlY3QKICAgICAg
ICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJsaW1lIjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGgu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcg
QEAgSGVyZSB3ZSBjaGFuZ2UgY2VsbCBib3JkZXIgd2lkdGgsIGV4cGVjdAogICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZvbyIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9j
YWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE4NykK
KysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS1jZWxsLXNsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3
IEBAIEhlcmUgd2U6CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGV4dCwgdGhpcyByZXF1ZXN0cyBsYXlvdXQgZm9y
IERJViwKICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBzaW1wbGlmaWVkIGxheW91dCBmb3Ig
VEFCTEUKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvY2tEaXYi
KS5pbm5lclRleHQgPSAiIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdl
LWNvbC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItY29s
b3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSBj
b2wgYm9yZGVyIGNvbG9yLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29s
Iikuc3R5bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAgICAgICAg
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5n
L2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9y
ZGVyLXdpZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY29sIGJvcmRl
ciB3aWR0aCwgZXhwZWN0IAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbCIpLnN0eWxl
LmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3Jk
ZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNvbGdy
b3VwIGJvcmRlciBjb2xvciwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xncm91
cCIpLnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAg
IDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2lu
Zy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1j
b2xncm91cC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJv
cmRlci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2Ug
Y2hhbmdlIGNvbGdyb3VwIGJvcmRlciB3aWR0aCwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRl
c3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb2xncm91cCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9
CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXIt
Y29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2Utcm93LWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRlci1j
b2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdl
IHJvdyBib3JkZXIgY29sb3IsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
b3ciKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAg
ICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNp
bmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1i
b3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGguaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSByb3cgYm9y
ZGVyIHdpZHRoLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm93Iikuc3R5
bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
aGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci1j
b2xvci5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUgYm9yZGVy
IGNvbG9yLCBleHBlYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0eWxlLmJv
cmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXItd2lk
dGguaHRtbAkocmV2aXNpb24gMjE2MTg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRhYmxlIGJvcmRlciB3
aWR0aCwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YmwiKS5zdHlsZS5ib3Jk
ZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10
Ym9keS1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9yLmh0
bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgY29sb3Is
IGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3JkZXJD
b2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10
Ym9keS1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdpZHRoLmh0
bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgd2lkdGgs
IGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3JkZXJX
aWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysr
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNiw1ICs2LDUgQEAKIDxzY3JpcHQ+CiAgICAgLy8gTWFrZXMgdGhlIHJlbmRlcmluZyBjb2Rl
IHJ1biBldmVuIHdoZW4gbm90IHJ1bm5pbmcgYXMgYSBwaXhlbCB0ZXN0LgogICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5o
dG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFk
b3ctZXh0cmVtZS12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1
enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRl
c3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1nbHlwaC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGJvZHkgewogPHNjcmlwdD4KIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIC8vIEZvcmNlIGxheW91dC4KLSAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmct
aW1hZ2UtaW4tcGF0dGVybi5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwogCiAv
LyBSZXBhaW50IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZSBhcnJpdmVkCiBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvbWVkaWEvYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBM
YXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEy
LDcgKzEyLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICB2YXIgY291
bnQgPSAzOwogICAgIHZhciBhdWRpb0VsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ2F1ZGlvJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1h
dWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
ZG9jdW1lbnQtYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBMYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTcsNyArNyw3IEBACiAgICAgewogICAgICAgICB2YXIgdmlkZW9FbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyIikuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InZpZGVvIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICB2aWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPSB2aWRlb0Vs
ZW1lbnQuZHVyYXRpb24gKiAwLjUwOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lu
cy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwJKHJldmlzaW9u
IDIxNjE4NykKKysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93bGVzc19wbHVnaW5fcGFpbnRf
dGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACi08IURPQ1RZUEUgaHRt
bD4KLQotPGh0bWw+Ci08aGVhZD4KKzwhRE9DVFlQRSBodG1sPg0KKw0KKzxodG1sPg0KKzxoZWFk
Pg0KICAgPHNjcmlwdD4NCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQogICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOw0KLSAgICB9Ci0KKyAgICB9DQorDQogICAgIHZhciBwYWludENvdW50ID0gMDsNCiANCiAg
ICAgZnVuY3Rpb24gb25Mb2FkKCkgew0KQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgcGx1Z2lu
RGl2LmlubmVySFRNTCA9ICI8ZW1iZWQgaWQ9XCJ0ZXN0UGx1Z2luXCIgdHlwZT1cImFwcGxpY2F0
aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGVcIiB3aWR0aD1cIjIwMFwiIGhlaWdodD1cIjIwMFwi
IG9ucGFpbnRldmVudD1cImRpZFBhaW50KClcIiB3aW5kb3dlZFBsdWdpbj1cImZhbHNlXCI+PC9l
bWJlZD4iOw0KICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpDQogICAgICAgICAgICAgaW50
ZXJuYWxzLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1blBvc3RMYXlv
dXRUYXNrcygpOw0KLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24o
KTsNCisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsNCiAgICAg
ICB9DQogDQogICAgIGZ1bmN0aW9uIG5vdGlmeURvbmUoKSB7DQpAQCAtMjcsMTUgKzI3LDE1IEBA
CiAgICAgZnVuY3Rpb24gZGlkUGFpbnQoKSB7DQogICAgICAgICBwYWludENvdW50Kys7DQogICAg
ICAgICBzZXRUaW1lb3V0KCJub3RpZnlEb25lKCk7IiwgNTApOw0KLSAgICB9Ci0gIDwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9uTG9hZCgpLCA1MCk7Ij4KLSAg
VGhpcyB0ZXN0cyB0aGF0IGR5bmFtaWNhbGx5IGFkZGVkIHdpbmRvd2xlc3MgcGx1Z2lucyByZWNl
aXZlIHBhaW50IGV2ZW50cyBvbiBjcmVhdGlvbi4KLQotICA8ZGl2IGlkPSJyZXN1bHQiPkZBSUxV
UkU8L2Rpdj4KLQotICA8ZGl2IGlkPSJwbHVnaW5EaXYiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDMwMHB4OyB0b3A6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyB3aWR0aDogNDAwcHg7
IHBhZGRpbmc6IDFlbTsiPgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KKyAgICB9DQorICA8
L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9uTG9hZCgpLCA1
MCk7Ij4NCisgIFRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBhZGRlZCB3aW5kb3dsZXNzIHBs
dWdpbnMgcmVjZWl2ZSBwYWludCBldmVudHMgb24gY3JlYXRpb24uDQorDQorICA8ZGl2IGlkPSJy
ZXN1bHQiPkZBSUxVUkU8L2Rpdj4NCisNCisgIDxkaXYgaWQ9InBsdWdpbkRpdiIgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMzAwcHg7IHRvcDogMzAwcHg7IGhlaWdodDogNDAwcHg7
IHdpZHRoOiA0MDBweDsgcGFkZGluZzogMWVtOyI+DQorICA8L2Rpdj4NCis8L2JvZHk+DQorPC9o
dG1sPg0KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFk
ZGluZy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Ny
b2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODcpCisrKyBM
YXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1wZXJjZW50LXBhZGRpbmctY3Jhc2guaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgfQogfTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9u
b24tc2NhbGluZy1zdHJva2UtdXBkYXRlLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3ZnCShyZXZpc2lvbiAyMTYxODcp
CisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3Zn
CSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogCiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDApOwogICAg
IH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N0YWxlLXJlc291cmNlLWRh
dGEtY3Jhc2guc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUt
cmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcJKHJldmlzaW9uIDIxNjE4NykKKysrIExheW91dFRlc3Rz
L3N2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDcgKzIxLDcgQEAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgLy8gRm9yY2UgYSBwYWludCBhdCB0aGlzIHBv
aW50IHRvIGdlbmVyYXRlIGNhY2hlZCBmaWx0ZXIgcmVzdWx0cy4KLSAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgIH0KIAogICAgIGRvY0VsZW1lbnQuYXBwZW5kQ2hpbGQobmV3RGVmcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309052</attachid>
            <date>2017-05-04 08:53:36 -0700</date>
            <delta_ts>2017-05-04 09:10:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170504085335.patch</filename>
            <type>text/plain</type>
            <size>121288</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0cmFjayByZXBhaW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChkaXNwbGF5Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChkaXNwbGF5V2ViVmlldyk6
CisgICAgICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6
IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDE3LTA1LTA0ICBLb25zdGFudGlu
IFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBGaXggY29tcGlsYXRpb24g
d2l0aCBJQ1UgNTkuMQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5l
cj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2ViVmlldygpOwor
dm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcoKTsKIAogc3RydWN0IFRlc3RDb21t
YW5kIHsKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjE2MTg4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxNCwyMiArNTE0LDExIEBAIHN0YXRp
YyBKU1ZhbHVlUmVmIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXEKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBkaXNw
bGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgogICAgIFRlc3RSdW5u
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7Ci0KLSAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVm
IGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKLXsKLSAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgotICAgIFRl
c3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RH
ZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICAvLyBUZXN0UnVubmVyOjpkaXNwbGF5KCkgb25s
eSByZW5kZXJzIHRoZSBpbnZhbGlkYXRlZCByZWdpb24gc28KLSAgICAvLyB3ZSBjYW4ganVzdCB1
c2UgdGhhdC4KLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7CisgICAgY29udHJvbGxlci0+ZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KQEAgLTIxMTEsOCArMjEwMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRl
c3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAiZGVjb2RlSG9zdE5hbWUiLCBkZWNvZGVI
b3N0TmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc2FsbG93SW5jcmVhc2VGb3JB
cHBsaWNhdGlvbkNhY2hlUXVvdGEiLCBkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNo
ZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzcGF0Y2hQZW5kaW5nTG9hZFJl
cXVlc3RzIiwgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAg
ICAgICAgeyAiZGlzcGxheSIsIGRpc3BsYXlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJk
aXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb25DYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyIsIGRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFwcGxpY2F0
aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyIsIGR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVD
YWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQXNUZXh0IiwgZHVtcEFz
VGV4dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2FyZExpc3QiLCBk
dW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmgJKHJldmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksNyBAQCBwdWJsaWM6CiAgICAg
SlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBK
U1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7Ci0gICAgdm9pZCBkaXNwbGF5KCk7Ci0g
ICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBK
U1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgYm9vbCBmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSk7CiAgICAgdm9pZCBnb0JhY2soKTsK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlz
aW9uIDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjA5OCwxMCArMjA5OCw2IEBAIHZvaWQgZGlzcGxheVdlYlZp
ZXcoKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IFttYWluRnJh
bWUgd2ViVmlld107CiAgICAgW3dlYlZpZXcgZGlzcGxheV07Ci0KLSAgICAvLyBGSVhNRTogVHJh
Y2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ugc2hvdWxkIGVuYWJsZSBz
dWNoIHN1cHBvcnQgb24gaU9TLgotICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllFU107
Ci0gICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOwogI2Vsc2UKICAgICBbZ0RydFdp
bmRvdyBsYXlvdXRUaWxlc05vd107CiAgICAgW2dEcnRXaW5kb3cgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0OltnRHJ0V2luZG93IGZyYW1lXV07CkBAIC0yMTA5LDYgKzIxMDUsMTcgQEAgdm9pZCBkaXNw
bGF5V2ViVmlldygpCiAjZW5kaWYKIH0KIAordm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dl
YlZpZXcoKQoreworICAgIGRpc3BsYXlXZWJWaWV3KCk7CisjaWYgIVBMQVRGT1JNKElPUykKKyAg
ICAvLyBGSVhNRTogVHJhY2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ug
c2hvdWxkIGVuYWJsZSBzdWNoIHN1cHBvcnQgb24gaU9TLgorICAgIFdlYlZpZXcgKndlYlZpZXcg
PSBbbWFpbkZyYW1lIHdlYlZpZXddOworICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllF
U107CisgICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOworI2VuZGlmCit9CisKICNp
ZiAhUExBVEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVlRXZlbnQKIApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHJldmlzaW9u
IDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTAsOSArMjUwLDkgQEAgSlNTdHJpbmdSZWYgVGVzdFJ1bm5lcjo6
Y29weUVuY29kZWRIb3N0TgogICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygo
Q0ZTdHJpbmdSZWYpW25hbWVOUyBfd2ViX2VuY29kZUhvc3ROYW1lXSk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCkKIHsKLSAgICBkaXNwbGF5V2ViVmlldygpOworICAgIGRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzV2ViVmlldygpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmtlZXBXZWJIaXN0b3J5KCkKSW5k
ZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHJldmlzaW9u
IDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjI0LDcgKzIyNCw3IEBAIEpTU3RyaW5nUmVmIFRlc3RSdW5uZXI6
OmNvcHlFbmNvZGVkSG9zdE4KICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpk
aXNwbGF5KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQogewog
ICAgIGRpc3BsYXlXZWJWaWV3KCk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9uIDIxNjE4OCkK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBKU0NsYXNzUmVmIFRlc3RSdW5uZXI6
OndyYXBwZXJDbGFzcygpCiAgICAgcmV0dXJuIEpTVGVzdFJ1bm5lcjo6dGVzdFJ1bm5lckNsYXNz
KCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKICAgICBXS0J1bmRsZVBh
Z2VGb3JjZVJlcGFpbnQocGFnZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjE2MTg4KQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MCw4ICsxNDAsOCBAQCBwdWJsaWM6CiAgICAgLy8gUmVwYWludCB0ZXN0aW5n
LgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFpbnQgPSB0cnVlOyB9CiAgICAg
dm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRTd2VlcEhvcml6
b250YWxseSA9IHRydWU7IH0KLSAgICB2b2lkIGRpc3BsYXkoKTsKLSAgICAKKyAgICB2b2lkIGRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisKICAgICAvLyBVc2VyQ29udGVudCB0ZXN0aW5nLgog
ICAgIHZvaWQgYWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFy
dCwgYm9vbCBhbGxGcmFtZXMpOwogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdS
ZWYgc291cmNlLCBib29sIGFsbEZyYW1lcyk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwJKHJldmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4
LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIFJlcGFpbnQgdGVzdGluZy4KICAg
ICB2b2lkIHRlc3RSZXBhaW50KCk7CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHko
KTsKLSAgICB2b2lkIGRpc3BsYXkoKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAKICAgICAvLyBQcmludGluZwogICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShsb25n
IHBhZ2VJbmRleCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxODAgQEAKKzIwMTctMDUtMDQgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5h
bWUgdGVzdFJ1bm5lci5kaXNwbGF5KCkgdG8gdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzE2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXBsYWNlIGFsbCB0aGUgY2FsbHMgdG8gdGVzdFJ1bm5lci5kaXNwbGF5KCkgYnkgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCisgICAgICAgIFJlcGxhY2UgYWxsIHRoZSBjYWxs
cyB0byB0ZXN0UnVubmVyLmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpIGJ5CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKSBzaW5jZSB0aGUgZm9ybWVyIGlzIGEg
Y29weSBvZiB0aGUgbGF0ZXIuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9jbGlwLWNoYW5nZS5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZvcmVncm91bmQtb2Zmc2V0LWNo
YW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJv
dW5kcy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXll
ZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGlu
Zy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lMi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29u
bmVjdC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWw6CisgICAgICAgICogY29tcG9z
aXRpbmcvaWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc2l6ZS10by16ZXJvLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtaGlkZS5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hvdy5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVz
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2lu
Zy1zY3JvbGxiYXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJj
ZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9p
ZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFtZS5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1p
ZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5z
LXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50
LWxvc2VzLXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9k
by1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNvbnRlbnRzLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxh
eWVycy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9y
ZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFy
cy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNv
bXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
cGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFu
Z2UtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9w
YXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLWV4cGVjdGVkLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmct
bG9hZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQt
aWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9zaXRlZC1vbi1zY3JvbGwuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWlu
dC1yZWN0Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9wYWdlLXNjYWxlLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tp
bmctcmVwYWludC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNmb3Jt
LXN0eWxlLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZs
b3ctaW52YWxpZGF0aW9uLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50
ZWQtY29tcG9zaXRlZC1jb250ZW50Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdGlsaW5n
L2h1Z2UtbGF5ZXItcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8tcGFn
ZS12aXNpYmlsaXR5Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8td2l0
aC1pbnZhbGlkLXNvdXJjZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmds
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1p
bnZhbGlkYXRpb24uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4t
cmV2ZXJzZS5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LWR1cmluZy1yZXNp
emUtbm8tZmxleC5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1
bW4uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC5odG1sOgorICAgICAgICAq
IGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWw6CisgICAgICAgICogZGlzcGxh
eWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdldC1kaXNwbGF5LWxpc3QuanM6CisgICAgICAgIChk
b1Rlc3QpOgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9yZXNvdXJjZXMvZHVtcC10YXJnZXQtcmVw
bGF5LWxpc3QuanM6CisgICAgICAgIChkb1Rlc3QpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWw6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0
bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVy
aW5nLW1vZGFsLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanM6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bDIuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanM6CisgICAgICAgICh3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKHdpbmRvdy50ZXN0UnVu
bmVyLndpbmRvdy5zZXRUaW1lb3V0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzOgorICAgICAgICAod2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2YW5jZS5qczoK
KyAgICAgICAgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAod2luZG93
LnRlc3RSdW5uZXIud2luZG93LnNldFRpbWVvdXQpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS13aXRoaW4tY2FsbGJhY2suanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzOgorICAgICAgICAqIGZhc3QvYmFja2dyb3Vu
ZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5
bGUtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1j
b250ZXh0LXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1h
Z2UtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1pbmNyZW1lbnRhbC1yZXBhaW50LTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9yZXNvdXJj
ZXMvcmVwYWludC5qczoKKyAgICAgICAgKHJ1blJlcGFpbnRUZXN0KToKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50
LmpzOgorICAgICAgICAoVGVzdENvbnRyb2xsZXJQYWludCk6CisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1sYXllci11cGRhdGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG9zdHlsZS1h
bm9ueW1vdXMtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9u
ZWQtYmxvY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNz
YWdlLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dlYi10aW1pbmctbWlu
aW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvY29udGFp
bmluZy1ibG9jay1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvbGF5ZXItbm8t
bG9uZ2VyLXBhZ2luYXRlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvcGFkLWdlc3R1cmUtY2FuY2VsLmpzOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanM6CisgICAgICAgICogZmFzdC9mb3Jtcy9oaWRkZW4t
bGlzdGJveC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWw6
CisgICAgICAgICogZmFzdC9sYXllcnMvaW5saW5lLWRpcnR5LXotb3JkZXItbGlzdHMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2xheWVycy9sYXllci1jb250ZW50LXZpc2liaWxpdHktY2hhbmdlLmh0
bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0xLmh0bWw6CisgICAgICAg
ICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0yLmh0bWw6CisgICAgICAgICogZmFzdC9sYXll
cnMvbmVzdGVkLWxheWVycy0zLmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVz
dGVkLXN0YWNraW5nLmh0bWw6CisgICAgICAgICogZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xs
YmFyLXJlc2l6ZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVmbGVjdGlvbnMvaW5saW5lLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2FuaW1hdGlvbi1hZnRlci1sYXllci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0
aC1ncmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvZml4ZWQtY2hpbGQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1z
Y3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtbW92ZS1hZnRlci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQtc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9u
LW91dHNpZGUtdmlld3BvcnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L292ZXJm
bG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwt
d2l0aC16b29tLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1t
b3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2xpbmUtZmxvdy13aXRoLWZsb2F0cy5qczoKKyAg
ICAgICAgKGJlZ2luVGVzdCk6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9yZXBh
aW50LmpzOgorICAgICAgICAocnVuUmVwYWludFRlc3QpOgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC90YWJsZS1vdmVyZmxvdy1oaWRkZW4taW4tb3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9zY3JvbGxiYXItdGlja21hcmtzLWhpdHRlc3QuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5o
dG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwt
YXBwZW5kLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2VsbC1yZW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2UtY2VsbC1zbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci1jb2xvci5odG1sOgorICAgICAg
ICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVy
LXdpZHRoLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2Utcm93LWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci1j
b2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS10YWJsZS1ib3JkZXItd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9yLmh0bWw6Cisg
ICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRib2R5
LWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvZW1wdHktc2VjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9oYXJmYnV6ei1ydW5zLXdpdGgtbm8tZ2x5cGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVy
bi5odG1sOgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogcGx1Z2lu
cy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFy
cy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0bWw6CisgICAgICAgICogc3ZnL2N1
c3RvbS9ub24tc2NhbGluZy1zdHJva2UtdXBkYXRlLnN2ZzoKKyAgICAgICAgKiBzdmcvY3VzdG9t
L3N0YWxlLXJlc291cmNlLWRhdGEtY3Jhc2guc3ZnOgorCiAyMDE3LTA1LTA0ICBEYXZlIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04oU1RQKTogcmdiKCkgd2l0
aCBjYWxjKCkgY29udGFpbmluZyB2YXJpYWJsZXMgZG9lc24ndCB3b3JrCkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDcgKzI2LDcgQEAKICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICBm
dW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAgICAgICAvLyBUaGUgY2hhbmdlIGluIGNsaXAgc3R5bGUgc2hvdWxkIGJl
IHJlZmxlY3RlZCBpbW1lZGlhdGVseSBpbiB0aGUgc2l6ZQogICAgICAgLy8gb2YgdGhlIGNvbXBv
c2l0ZWQgY2xpcHBlciBsYXllci4gQWZ0ZXIgY2hhbmdpbmcgdGhlIGNsaXAsIGl0IHNob3VsZAog
ICAgICAgLy8gZW50aXJlbHkgY292ZXIgdGhlIGluZGljYXRvci4KSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0
ZWQtY29udGVudC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9zY3JvbGwtcGFpbnRlZC1jb21wb3NpdGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgICAgICAvLyBGb3JjZSBhIHBhaW50IHNvIHRoYXQgdGhlIGNvbnRlbnQgd2lsbCBi
ZSBwYWludGVkIGF0IHRoZSBjdXJyZW50IHNjcm9sbCBvZmZzZXQgKDB4MCkKICAgICAgICAgICAg
IC8vIGJlZm9yZSB3ZSBzY3JvbGwuCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgfQogICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMzAwLCAwKTsKICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0
eS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRl
by1wYWdlLXZpc2liaWxpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBAQAog
ICAgIHZpZGVvLnNyYyA9ICdyZXNvdXJjZXMvdmlkZW8uJyArICh2aWRlby5jYW5QbGF5VHlwZSgn
dmlkZW8vb2dnJykgPyAnb2d2JyA6ICdtcDQnKTsKICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVy
KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFnZVZp
c2liaWxpdHkoImhpZGRlbiIpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVu
bmVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3Jl
Z3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAkocmV2aXNpb24g
MjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3VuZC1v
ZmZzZXQtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAKICAgICBm
dW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmV0
Y2giKS5zdHlsZS5sZWZ0ID0gIi0xMDBweCI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGlt
aXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJvdW5k
cy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3
IEBACiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8vIFdl
IG5lZWQgdG8gY2FsbCBkaXNwbGF5KCkgaGVyZSB0byBzeW5jIHRoZSBjb21wb3NpdG9yIHN0YXRl
IGFuZCBhdm9pZCBhIHJhY2UgY29uZGl0aW9uLgotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93Lmlu
dGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1jb21wb3NpdGVkLW5lc3RlZC1p
ZnJhbWVzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NOYW1l
ID0gJ2NvbXBvc2l0ZWQnOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Jl
Y29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9u
IDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJs
YXBwZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAg
ICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ292ZXJsYXknKS5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnOwogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7IC8vIFBhaW50aW5nIGhhcyB0byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAuCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQ
YWludGluZyBoYXMgdG8gaGFwcGVuIHRvIGRldGVjdCBvdmVybGFwLgogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50
ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lMi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGlu
Zy1pZnJhbWUyLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAK
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jbGFzc05hbWUgPSAnY29t
cG9zaXRlZCc7CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNv
bXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAog
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aWZyYW1lJykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogCkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS1k
ZWxheWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlv
biBkb1Rlc3QoKQogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2JveCcpLmNsYXNzTmFtZSA9ICdjb21wb3NpdGVkJzsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9z
aXRpbmctaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50
LmJvZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KIAogICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVy
cycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvZW50ZXItY29tcG9zaXRp
bmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHku
b2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRl
bnQtZmxpcHBpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVz
dCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY2xhc3NOYW1l
ID0gJ2NvbXBvc2l0ZWQnOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1yZXNpemUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsMTEgKzM4LDExIEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0
aGlzIGRlbGF5IGlzIHJlcXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhl
IGRpc3BsYXkuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50LWlmcmFtZScpLmNs
YXNzTmFtZSA9ICdiaWdnZXInOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJu
YWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUt
c2l6ZS10by16ZXJvLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAg
ICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0
byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICB2YXIgaGFkTGF5
ZXJzID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTQ4
LDcgKzQ4LDcgQEAKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgdmFyIGhh
dmVMYXllcnMgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCkgIT0g
IiI7CiAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKICAgICAgICAgICAgICAgICBpZiAoaGFk
TGF5ZXJzICYmICFoYXZlTGF5ZXJzKQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNyYy1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgICAgICB2YXIgaGFk
TGF5ZXJzQmVmb3JlID0gZmFsc2U7CiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJzQWZ0ZXIgPSBm
YWxzZTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRl
c3RpbmcuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRlc3RpbmcuCiAgICAgICAgICAgICAg
ICAgaGFkTGF5ZXJzQmVmb3JlID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpICE9ICIiOwogICAgICAgICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZy
YW1lLWhpZGUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1oaWRlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNzc1RleHQgPSAiZGlzcGxh
eTpub25lOyI7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwog
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlz
aWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNz
c1RleHQgPSAiIjsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7
CiAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1j
b21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7
IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5k
b3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLWlmcmFtZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJh
bWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDcgKzM1LDcgQEAKICAgICAgICAgLy8gZm9yIG92ZXJsYXAgdGVzdGluZyB0byBraWNr
IGluLgogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwog
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3Zlcmxh
cHBlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw3IEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGlzIGRlbGF5IGlzIHJl
cXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhlIGRpc3BsYXkuCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlm
cmFtZXMuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAwKTsKICAgICAg
ICAgICAvLyBGb3JjZSBhIHBhaW50LCBhbmQgZ2l2ZSBsYXllcnMgYSBjaGFuY2UgdG8gdXBkYXRl
LgogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Ny
b2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJib3RoIikuY29udGVudERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgi
dGFsbCIpOyAvLyB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3Zl
cmZsb3cgY29udHJvbHMgdmlzaWJsZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZp
c2libGUuCiAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9IGVsc2UKICAgICAgICAgd2luZG93
LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgNTAwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24g
MjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmctaWZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8gRm9y
IHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hv
cnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50LWlmcmFtZScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oODAsIDgwKTsKICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpJbmRleDogTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9m
aXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAyMDAw
KTsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxODAwKTsKICAgICB9CiAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXRyYW5z
Zm9ybWVkLXN1YmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1l
cy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAg
ewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAg
ICAgICAvLyBBbnkgc2Nyb2xsIHNob3VsZCBrZWVwIHRoZSBmaXhlZC1wb3NpdGlvbiBlbGVtZW50
IHdoZXJlIGl0IGlzLgogICAgICAgLy8gSWYgaXQgc3R1dHRlcnMgb3IgZGlzYXBwZWFycyBpbmNv
cnJlY3RseSwgdGhlbiB0aGUgcmVkIGJhY2tncm91bmQgd2lsbCBiZSByZXZlYWxlZC4KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdy
YW5kY2hpbGQtaW5uZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgLy8gU2Nyb2xsIHJlZCBib3ggb2ZmIHNjcmVlbiBh
bmQgc2Nyb2xsIGdyZWVuIGJveCBpbnRvIHNhbWUgcGxhY2UuCiAgICAgICB3aW5kb3cuc2Nyb2xs
VG8oMCwgNDAwKTsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2Fp
bnMtc2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5zLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDksMTQgKzQ5LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvdGgiKS5jbGFzc0xpc3QuYWRkKCJ0YWxsIik7IC8vIHZl
cnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMKICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29ybmVyIikuY2xhc3NMaXN0LmFkZCgicmVzaXplV2lkZ2V0Iik7IC8vIGJvdHRvbSBk
aXYgZ2V0cyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBj
b21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRh
dGUuCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRl
eHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQog
fQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0
byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250
cm9scworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2Ug
Y29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRz
IGFueSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxi
YXJzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L2NvbnRlbnQtbG9zZXMtc2Nyb2xsYmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
OSwxNCArNDksMTQgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYm90aCIpLmNsYXNzTGlzdC5yZW1vdmUoInRhbGwiKTsgLy8gdmVydGljYWwg
YW5kIGhvcml6b250YWwgc2Nyb2xsYmFycwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b3JuZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJyZXNpemVXaWRnZXQiKTsgLy8gYm90dG9tIGRpdiBs
b3NlcyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBjb21w
b3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUu
CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQogfQog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBi
ZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9s
cworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgY29t
cG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFu
eSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGlu
Zy1jb250ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L2RvLW5vdC1wYWludC1vdXRsaW5lLWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctY29u
dGVudHMuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1j
b250ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICB0ZXh0
YXJlYS5mb2N1cygpOwogICAgICAgdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5z
ZWxlY3Rpb25FbmQgPSAwOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRUZXN0
LCAxMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
b3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1sYXllcnMuaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZs
b3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBA
IHJlc2l6ZTogYm90aDsKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5z
dXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRW5zdXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBk
YXRlLgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiB9CiA8L3Njcmlw
dD4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9y
ZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3Jk
ZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVn
LXotb3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgdGV4dGFyZWEuc2Nyb2xsVG9w
ID0gNDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKQEAgLTQ1LDcgKzQ1LDcgQEAKICAgICAgIHRleHRh
cmVhLmZvY3VzKCk7CiAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVhLnNl
bGVjdGlvbkVuZCA9IDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRlc3Qs
IDEwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9y
ZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFy
cy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVy
Zmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDcgKzYxLDcgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xz
IHZpc2libGUuCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQ
YWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2libGUuCiAgICAgZmluaXNo
VGVzdCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21w
b3NpdGluZy1hZGQtdGV4dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFu
Z2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWFkZC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAg
ICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGlu
Zy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVy
bnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVy
IHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgYmcuaW5uZXJIVE1MID0gIjxzcGFuIHN0eWxlPVwib3BhY2l0eTowXCI+MTIzPC9zcGFu
PiI7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRl
cm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5
ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICBiZy5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9h
ZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Bh
dHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0
LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNSw3ICsxNSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29t
ZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICB2
YXIgaW1nID0gbmV3IEltYWdlOwogICAgICAgICAgIGltZy5vbmxvYWQgPSBvbkJhY2tncm91bmRJ
bWFnZUxvYWQ7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC5odG1s
CShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9k
aXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1
LDcgKzE1LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJh
Y2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgd2luZG93
LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAgIHZhciBp
bWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAgaW1nLm9ubG9hZCA9IG9uQmFja2dyb3VuZEltYWdl
TG9hZDsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9y
ZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9p
bnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTcsMTAgKzE3LDEwIEBACiAKICAgICBmdW5jdGlvbiBvbkxvYWQoKQogICAgIHsKLSAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgcGFpbnRDb3VudCA9IDA7CiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdFBsdWdpbicpLmludmFsaWRhdGVSZWN0KDAsIDAsIDIwMCwgMjAwKTsKLSAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICBpZiAocGFpbnRDb3VudCA+IDApCiAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJT
VUNDRVNTIjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25l
d2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLW9uLXNjcm9sbC5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNv
bXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYzLDExICs2MywxMSBA
QAogCiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDMwOwogICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDUwOwpJbmRleDogTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29t
cG9zaXRlZC1yZXBhaW50LXJlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBACiAgICAgICAgIC8vIEZvcmNlIER1bXBS
ZW5kZXJUcmVlIHRvIGRvIGEgbGF5b3V0IGFuZCByZXBhaW50IGhlcmUsIHRoaXMgaXMgd2hlcmUg
dGhlIHJlcGFpbnRSZWN0CiAgICAgICAgIC8vIGdvZXMgd3JvbmcgYmVjYXVzZSBpdCBkb2VzIG5v
dCBnZXQgdXBkYXRlZCBmb3IgYSBuZXdseSBjb21wb3NpdGVkIGVsZW1lbnQuCiAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgLy8gU2Nyb2xs
aW5nIGEgbGl0dGxlIHdpbGwgZGVtb25zdHJhdGUgd2hldGhlciB0aGUgcmVwYWludCByZWN0IGlz
IGNvcnJlY3Qgb3Igbm90LgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9w
YWdlLXNjYWxlLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVwYWludC9yZXF1aXJlcy1iYWNraW5nLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5o
dG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50
L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0
Myw3IEBACiAgICAgICAgICAgICBvdmVyZmxvdy5zY3JvbGxUb3AgPSA1MDsKIAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3cuc2Nyb2xsVG9wID0gNzU7CkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9y
bS1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVwYWludC90cmFuc2Zvcm0tc3R5bGUtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIH0KIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZvcmNlIG9uZSBjb21w
b3NpdGUgd2l0aCBwcmVzZXJ2ZS0zZAorICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsgLy8gRm9yY2Ugb25lIGNvbXBvc2l0ZSB3aXRoIHByZXNlcnZlLTNkCiAgICAgdGVz
dCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQodGVzdCwgMCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0
aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXdpdGgt
Zml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUt
d2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRmx1
c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29t
cG9zaXRpbmctaWZyYW1lLXNjcm9sbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJh
bWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAog
ICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8v
IEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBv
c2l0aW5nIHJlcGFpbnRzLgogCiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5n
LWlmcmFtZS13aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmct
aWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyBy
ZXBhaW50cy4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9ydGwvcnRsLW92ZXJmbG93LWludmFsaWRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZs
b3ctaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIDxz
Y3JpcHQ+CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewogICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGVzdCBw
YXNzZXMgaWYgdGhpcyBlbGVtZW50IGlzIHJlcGFpbnRlZCBjb3JyZWN0bHksIGV2ZW4KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJl
c2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy90
aWxpbmcvaHVnZS1sYXllci1yZXNpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMs
NyBAQAogICAgICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgYW5kIGEgcGFpbnQgdG8gbWFrZSBz
dXJlIHRoZSBjb21wb3NpdGluZyBsYXllcnMKICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB1cGRh
dGVkLgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlUHJlZml4ICsgd2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB9CkluZGV4
OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8t
d2l0aC1pbnZhbGlkLXNvdXJjZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsNCiAgICAgdi5hcHBl
bmRDaGlsZChzcmMpOw0KICAgICBzcmMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlv
bigpIHsNCiAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQotICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7DQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOw0KICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBjcmFzaCBoZXJlLCB5
YXkhICBUZXN0IGlzIGEgc3VjY2Vzcw0KICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MiKSk7DQogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7DQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvd2Vi
Z2wvd2ViZ2wtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3dlYmdsL3dlYmdsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIGluaXQoKQogICBnbC5jbGVhckNvbG9yKDEsIDAs
IDAsIDEpOyAvLyByZWQKICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7CiAgICAgICBkcmF3R3JlZW4oKTsKICAgfSBlbHNlCkBAIC00Niw4ICs0
Niw4IEBAIGZ1bmN0aW9uIGRyYXdHcmVlbigpCiAgIGdsLmNsZWFyQ29sb3IoMCwgMSwgMCwgMSk7
IC8vIGdyZWVuCiAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwogICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwotICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgIH0gZWxz
ZQogICAgICAgd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY2FudmFzJykuY2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVyJyk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRp
b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUt
ZmlsdGVycy1pbnZhbGlkYXRpb24uaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCgpIHsK
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRy
dWUpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICBjaGFuZ2VCYWNrZ3JvdW5kKCk7CiB9IGVsc2UgCiAgICAg
d2luZG93LnNldFRpbWVvdXQoY2hhbmdlQmFja2dyb3VuZCwgMjUwKTsKSW5kZXg6IExheW91dFRl
c3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29s
dW1uLXJldmVyc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKICAgICAg
ICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZsZXggaXRlbXMgdGhhdCBhcmUgbW92
ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQgIgpJbmRleDogTGF5b3V0VGVzdHMv
Y3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1m
bGV4Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NzczMvZmxleGJveC9y
ZXBhaW50LWR1cmluZy1yZXNpemUtbm8tZmxleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBAIGZ1bmN0aW9uIHJlc2l6ZUZsZXhJdGVtKCkgewogd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KAogICAgICAgICAgICAgIlRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gY2hhbmdpbmcgdGhl
IHNpemUgb2Ygb25lIGZsZXggaXRlbSBjaGFuZ2VzIHRoZSAiCkluZGV4OiBMYXlvdXRUZXN0cy9j
c3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sCShyZXZpc2lvbiAyMTYx
ODgpCisrKyBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9
CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2NzczMvZmxl
eGJveC9yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L3JlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L3JlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KICAgICB3aW5kb3cuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3Qu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZh
cy1kaXNwbGF5LWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICAg
ICAgICAgICAgZHJhd0NhbnZhcygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnb3V0cHV0JykudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMucmVwbGF5RGlzcGxheUxpc3RG
b3JFbGVtZW50KGNhbnZhcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3Vy
Y2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1w
LXRhcmdldC1kaXNwbGF5LWxpc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAg
ZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldEVsZW1lbnRVc2VzRGlzcGxh
eUxpc3REcmF3aW5nKHRhcmdldERpdiwgdHJ1ZSk7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKICAgICAgICAgdmFyIGRpc3BsYXlMaXN0ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9yRWxl
bWVudCh0YXJnZXREaXYpOwpJbmRleDogTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNl
cy9kdW1wLXRhcmdldC1yZXBsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9k
aXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCShyZXZpc2lv
biAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFy
Z2V0LXJlcGxheS1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0
aW9uIGRvVGVzdCgpCiAgICAgfQogICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAg
IHZhciBkaXNwbGF5TGlzdCA9IGludGVybmFscy5kaXNwbGF5TGlzdEZvckVsZW1lbnQodGFyZ2V0
RGl2KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1s
CShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTIsNyArMTIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogICAgICAgICB9LCA1MCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVu
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAg
ICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1kdXJpbmctbW9kYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcg
QEAgb25sb2FkID0gZnVuY3Rpb24oKQogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsK
ICAgICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeycgKwotICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOycgKworICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsnICsKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuY2xvc2UoKTsnICsKICAg
ICAgICAgICAgICAgJ30gZWxzZSB7JysKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuc2V0VGlt
ZW91dCh3aW5kb3cuY2xvc2UsIDEwKTsnKwpAQCAtMjMsNyArMjMsNyBAQCBvbmxvYWQgPSBmdW5j
dGlvbigpCiAgICAgc2hvd01vZGFsRGlhbG9nKCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PicgKyBz
cmMgKyAnPC8nICsgJ3NjcmlwdD4nKTsKICAgICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2RhbCBk
aWFsb2cnKTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAK
ICAgICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRvQ2hlY2tSZXN1bHQoKQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvRGlzcGxheSgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIH0KICAgICAKICAgICAgICAgZnVu
Y3Rpb24gZG9DaGVja1Jlc3VsdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtY2FuY2VsMi5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bDIuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgc2Vjb25kQ2FsbGJhY2tJZCA9
IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aQogfSwgZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVGYWxz
ZSgiY2FsbGJhY2tGaXJlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtY2FuY2VsLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1CiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewogICAgIHNob3VsZEJlRmFsc2UoImNhbGxiYWNrRmlyZWQiKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNh
YmxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogfSk7CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
ICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tJbnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtcHJlZml4
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanMJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1wcmVmaXguanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwxMiBAQCB3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiAKICAgICBidXN5V2FpdCgxMCk7
CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11
bml0LmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yMCwxMiArMjAsMTIgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShm
dW5jdGlvbih0aQogICAgICAgICB9KTsKIAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9LCAxKTsKIH0pOwogCiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1h
ZHZhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDExICsyMSwxMSBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmN0aW9uKHRpCiAgICAgfSk7CiAgICAgYnVzeVdhaXQoMTApOwogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0pOwogCiAKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICB9KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aW1lc3RhbXBzLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0
YW1wcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpCiB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtd2l0aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTAgQEAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogCiAvLyBUaGlzIHNob3Vs
ZCBmaXJlIHRoZSB0aHJlZSBhbHJlYWR5IHJlZ2lzdGVyZWQgY2FsbGJhY2tzLCBidXQgbm90IHRo
ZSBvbmUgZHluYW1pY2FsbHkgcmVnaXN0ZXJlZC4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAvLyBUaGlzIHNob3VsZCBmaXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3RlcmVk
IGNhbGxiYWNrLgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiB9LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZVRy
dWUoImNhbGxiYWNrSW52b2tlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5k
cy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dy
b3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxk
LXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3
IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5k
cy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGls
ZC1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNo
aWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxk
cmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGls
ZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJlc3Rv
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlk
LWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgPC9kaXY+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldCwgMSk7CiAgICAgPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1hZ2UtaW5jcmVtZW50YWwtcmVw
YWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1h
cy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgIGNhbnZhc0NvbnRl
eHQgPSBkb2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJzcXVhcmVzIiwgMzAwLCAz
MDApOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICByZXBhaW50VGVzdCgp
OwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZSB7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVu
dGFsLXJlcGFpbnQtMi5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDcgKzIxLDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRt
bAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWlu
Y3JlbWVudGFsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAog
ICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICAgICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LXJlc2l6ZS1hZnRlci1wYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKIH0K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8v
IEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhh
dmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZhcy4KKyAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3
aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhl
IGNhbnZhcy4KICAgICByZXNpemUoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJl
c2l6ZSwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWlu
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVw
YWludC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVz
b3VyY2VzL3JlcGFpbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGZ1bmN0aW9u
IHJ1blJlcGFpbnRUZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
IHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2V0VGltZW91dChyZXBhaW50
VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9j
YW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0Vu
YWJsZWQtcmVwYWludC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5q
cwkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCB2YXIgZHJhd0l0ZXJhdGlvbnMgPSAy
OwogZnVuY3Rpb24gVGVzdENvbnRyb2xsZXJQYWludCgpIHsKICAgICB3aGlsZSAoZHJhd0l0ZXJh
dGlvbnMgPiAwKSB7CiAgICAgICAgIGRyYXcoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgZHJhd0l0ZXJhdGlvbnMgPSBkcmF3SXRlcmF0aW9ucyAtIDE7CiAgICAgfQogICAgIGRyYXco
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3Qu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
Y2FudmFzLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGlmICgh
Z2wpIHsKICAgdmFyIGludGVydmFsSWQ7CiAgIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2
YWwoZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgaWYgKGNhbnZhcy5jbGllbnRXaWR0aCA9PSAxMDAgJiYKICAgICAgICAgY2FudmFz
LmNsaWVudEhlaWdodCA9PSAyNSkgewogICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2
YWxJZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11
cGRhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1sYXllci11cGRhdGUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBkYXRlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYsNyArNiw3IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdj
YW52YXMnKVswXS5zdHlsZS50b3AgPSAiNjBweCI7CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBj
dHguY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsKIGN0eC5jbGVhcihjdHguQ09MT1JfQlVGRkVSX0JJ
VCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkb3N0eWxlLWFu
b255bW91cy10ZXh0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNl
dWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwog
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQt
YmxvY2stY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwJ
KHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1l
c3NhZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUocG9zdE1lc3NhZ2UpOwogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dlYi10aW1pbmctbWluaW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFs
LXBlcmZvcm1hbmNlLW5vdy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsgfQogICAgICAgICAsIDEwMCk7CiAKLSAgICB3aW5kb3cudGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIH0KIAogb25sb2FkID0gc3RhcnQoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCShyZXZpc2lv
biAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY29udGFpbmluZy1ibG9jay1j
aGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMyArMywxMyBAQAogICAgIHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndCcpOwogICAgICAgICB0LnN0eWxl
LnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICB0Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZCh0Lmxh
c3RDaGlsZC5sYXN0Q2hpbGQpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1uby1sb25nZXIt
cGFnaW5hdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xh
eWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5
KDEsIDApOwogCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgICAgICAgIHRlc3QoKTsKICAgICAgICAgfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNl
bC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS9wYWQtZ2VzdHVyZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5
LDcgQEAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIu
Z2VzdHVyZUZsaW5nU3RhcnQpIHsKICAgICBldmVudFNlbmRlci5nZXN0dXJlRmxpbmdTdGFydCgx
MCwgMTEsIDEwMDAsIDEwMDApOwogICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ0NhbmNlbCgp
OwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2Vz
dHVyZS1mbGluZy5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MTgsOSArMTgsOSBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgCiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmV2
ZW50U2VuZGVyLmdlc3R1cmVGbGluZ1N0YXJ0KSB7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUZs
aW5nU3RhcnQoMTAsIDExLCAxMDAwLCAxMDAwKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2hpZGRlbi1saXN0Ym94Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogPC9zY3JpcHQ+CiBUaGlzIHRlc3RzIHRoYXQgdGhlIHdob2xlIGxpc3Rib3ggY29u
dHJvbCBpcyBoaWRkZW4gd2hlbiB2aXNpYmlsaXR5IGlzIHNldCB0byBoaWRkZW4uCiA8YnI+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHJldmlzaW9uIDIx
NjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICA8L3NlbGVjdD4KICAgICA8c2NyaXB0Pgog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5l
LW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGRjb250LmFwcGVuZENoaWxkKGUpOwogICAg
IAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAog
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3Jv
bGxiYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3Bh
cmVudC1zY3JvbGxiYXIuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDEzICsyMywxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiAKICAgICB3
aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3AgPSAyMDAwOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiAgICAgICAgIH0KICAgICB9LCAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Fu
aW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWwJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tn
cm91bmQtaW1hZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAog
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUuZGlzcGxheT0i
bm9uZSI7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAg
IHNldFRpbWVvdXQoInN0ZXAyKCkiLCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXll
cnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJ
KHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2FkZC1sYXllci13
aXRoLW5lc3RlZC1zdGFja2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBA
CiAgICAgICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7
CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9pbmxpbmUt
ZGlydHktei1vcmRlci1saXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAKIAogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1lb3V0
KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12
aXNpYmlsaXR5LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNo
YW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgfQogICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAg
ICBzZXRUaW1lb3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVz
dGVkLWxheWVycy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMv
bmVzdGVkLWxheWVycy0xLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVy
cy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ewogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBmaW5pc2goKTsK
ICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVy
cy00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJz
L25lc3RlZC1sYXllcnMtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXIt
d2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgVGhlIHNxdWFyZSBzaG91bGQgYmUgYSB1bmlm
b3JtIHNoYWRlIG9mIAogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwogICAgIGVsc2Ugewog
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgdGVzdCgpOwogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9v
dmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFy
LXJlc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdHMg
dGhhdCB0aGUgc2Nyb2xsYmFyIGFuZCByZXNpemUgY29ybmVyIGFyZSBub3QgdmlzaWJsZSBvbiBh
biBlbGVtZW50IHRoYXQgaGFzIHZpc2liaWxpdHk6aGlkZGVuLgogPGRpdiBzdHlsZT0ib3ZlcmZs
b3c6IGF1dG87IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDcwcHg7IHJlc2l6ZTogYm90aDsgdmlzaWJp
bGl0eTogaGlkZGVuIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvaW5saW5l
LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9p
bmxpbmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZWZsZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcg
QEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgfQogICAgICAgICBzZXRUaW1lb3V0KGNoYW5nZUNvbG9yLCAwKTsKICAgICB9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNjcm9s
bC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24t
YWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTgsNyArOCw3IEBACiAgICAgewogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2Nyb2xsZXInKS5zY3JvbGxUb3AgPSA4MDA7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAg
ICAgc2V0VGltZW91dChsb2dSZXBhaW50cywgMjAwKTsKICAgICB9CkBAIC0yNSw3ICsyNSw3IEBA
CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgIHNldFRpbWVvdXQoc3RhcnRUcmFja2luZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3Jh
ZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdo
dC1jaGFuZ2VzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hhbmdl
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkg
ewogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRU
cmFja2luZ1JlcGFpbnRzKCk7Ci0gICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB9CiAKIGZ1bmN0
aW9uIGxvZ1JlcGFpbnRzKCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVk
LWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9u
IDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1tb3ZlLWFm
dGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAg
IHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRl
ci1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4
ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW9mLWZpeGVkLW1vdmUt
YWZ0ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAg
ICAgc2Nyb2xsQnkoMCwgMjAwKTsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1t
b3ZlLWFmdGVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQt
b2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Nyw3ICs3LDcgQEAKICAgICAgICAgICBzY3JvbGxCeSgwLCAyMDApOwogICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWlu
dFRlc3QoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgc2V0VGltZW91dChy
ZXBhaW50VGVzdCwgMTUpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1v
dmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQtc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwog
ICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwyMDApOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICBzZXRUaW1lb3V0KHRlc3RBZnRlclNjcm9sbCwgMjAwKTsKICAgICB9CiAKQEAgLTIyLDcg
KzIyLDcgQEAKIAogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cygpOwogICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgc2V0VGltZW91dCh0ZXN0QWZ0ZXJTY3JvbGxCYWNrLCAyMDApOwogICAgIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdw
b3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1h
dGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQAogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRz
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNldFRpbWVvdXQobG9nUmVwYWludHMs
IDIwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1u
by1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAKICAgICB7CiAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBz
ZXRUaW1lb3V0KGxvZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L292ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlk
ZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhp
ZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAw
OwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0
LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlbmRlcmVy
LWRlc3RydWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52
YWxpZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVj
dGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgPGRp
dj48L2Rpdj4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwt
d2l0aC16b29tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jl
cGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgICAgIHRlc3RTY3JvbGxSZXBhaW50KCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGxSZXBhaW50LCAxMDApOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3RhYmxlLW92ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRk
ZW4tc2Nyb2xsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGFibGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZs
b3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAg
ICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9s
bC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVz
b3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVk
LW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgICAgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVw
YWludC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
cmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2
MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9pZnJhbWUtc2Nyb2xs
LXJlcGFpbnQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKIAogd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3AgPSAyMDsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1m
bG9hdHMuanMJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9y
ZXNvdXJjZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3
ICsxNCw3IEBAIGZ1bmN0aW9uIGJlZ2luVGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICB0ZXN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5jb250
ZW50RG9jdW1lbnQpOwogICAgIH0gZWxzZSBzZXRUaW1lb3V0KAogICAgICAgICBmdW5jdGlvbigp
IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQu
anMJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJj
ZXMvcmVwYWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gcnVu
UmVwYWludFRlc3QoKQogICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQp
CiAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0VG9wOwogCi0gICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvcmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBl
cmNlbnQtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5
b3V0RW5hYmxlZChmYWxzZSk7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
PC9zY3JpcHQ+CiAKIFRoZSB0ZXh0YXJlYXMgYmVsb3cgc2hvdWxkIG5vdCBvdmVybGFwLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFy
LXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVzdC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgd2lu
ZG93LmludGVybmFscy5hZGRUZXh0TWF0Y2hNYXJrZXIocmFuZ2UsIHRydWUpOwogICAgIH0KICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh3aW5k
b3cuaW5uZXJXaWR0aCAtIDEsIHdpbmRvdy5pbm5lckhlaWdodCAtIDEpOwogICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHkt
c2VjdGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUv
ZW1wdHktc2VjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Niw3ICs2LDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgLyogU2luY2UgdGhlIGNyYXNoIGhh
cHBlbnMgaW4gcGFpbnRpbmcgY29kZSwgZm9yY2UgcGFpbnRpbmcuIFRoaXMKICAgICAgICAgICAg
ICAgIG1ha2VzIHRoZSB0ZXN0IHdvcmsgZXZlbiB3aGVuIHJ1biB3aXRob3V0IHRoZSAtLXBpeGVs
IG9wdGlvbi4gKi8KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5o
dG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1j
b2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBAIENvbGxhcHNlZCBib3JkZXJzIHNob3VsZCBub3QgZGlzYXBwZWFyLgogICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAgICAg
ICByb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm93MScpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2Nh
Y2hlZC1jZWxsLWFwcGVuZC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgYXBwZW5kIG5ldyBjZWxsLCBleHBl
Y3QgdGhhdCBjYWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgICAgIG5ld0NlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwog
ICAgICAgICAgICAgICAgIG5ld0NlbGwuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0gIjZweCI7CiAg
ICAgICAgICAgICAgICAgbmV3Q2VsbC5zdHlsZS5ib3JkZXJMZWZ0U3R5bGUgPSAic29saWQiOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2Vs
bC1yZW1vdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJl
bW92ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgcmVtb3Zl
IGNlbGwsIGV4cGVjdCB0aGF0IGNhY2hlIGkKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGJhckNlbGwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYmFyIik7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJvdyIpLnJlbW92ZUNoaWxkKGJhckNlbGwpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9y
ZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlz
aW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcv
Y2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNlbGwgYm9yZGVyIGNvbG9yLCBleHBlY3QKICAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJsaW1l
IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lk
dGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2
MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEw
LDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY2VsbCBib3JkZXIgd2lkdGgsIGV4cGVjdAogICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2lu
Zy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNo
YW5nZS1jZWxsLXNsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsx
Miw3IEBAIEhlcmUgd2U6CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGV4dCwgdGhpcyByZXF1ZXN0cyBsYXlvdXQg
Zm9yIERJViwKICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBzaW1wbGlmaWVkIGxheW91dCBm
b3IgVEFCTEUKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvY2tE
aXYiKS5pbm5lclRleHQgPSAiIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXIt
Y29sb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5n
ZSBjb2wgYm9yZGVyIGNvbG9yLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29sIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wt
Ym9yZGVyLXdpZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
dGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY29sIGJv
cmRlciB3aWR0aCwgZXhwZWN0IAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbCIpLnN0
eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1i
b3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xv
ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNv
bGdyb3VwIGJvcmRlciBjb2xvciwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xn
cm91cCIpLnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS1jb2xncm91cC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3Vw
LWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUg
d2UgY2hhbmdlIGNvbGdyb3VwIGJvcmRlciB3aWR0aCwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb2xncm91cCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
aGFuZ2Utcm93LWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRl
ci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hh
bmdlIHJvdyBib3JkZXIgY29sb3IsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyb3ciKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAg
ICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJv
dy1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGgu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSByb3cg
Ym9yZGVyIHdpZHRoLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm93Iiku
c3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRl
ci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUgYm9y
ZGVyIGNvbG9yLCBleHBlYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0eWxl
LmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXIt
d2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRhYmxlIGJvcmRl
ciB3aWR0aCwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YmwiKS5zdHlsZS5i
b3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9y
Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgY29s
b3IsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3Jk
ZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdpZHRo
Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgd2lk
dGgsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3Jk
ZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkK
KysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw1ICs2LDUgQEAKIDxzY3JpcHQ+CiAgICAgLy8gTWFrZXMgdGhlIHJlbmRlcmluZyBj
b2RlIHJ1biBldmVuIHdoZW4gbm90IHJ1bm5pbmcgYXMgYSBwaXhlbCB0ZXN0LgogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1
ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1z
aGFkb3ctZXh0cmVtZS12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFy
ZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91
dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1nbHlw
aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGJvZHkgewogPHNjcmlwdD4K
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIC8vIEZvcmNlIGxheW91dC4KLSAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRp
bmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwog
CiAvLyBSZXBhaW50IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZSBhcnJpdmVkCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEyLDcgKzEyLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICB2YXIg
Y291bnQgPSAzOwogICAgIHZhciBhdWRpb0VsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2F1ZGlvJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVu
dC1hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtZG9jdW1lbnQtYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgewogICAgICAgICB2YXIgdmlkZW9FbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyIikuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInZpZGVvIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICB2aWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPSB2aWRl
b0VsZW1lbnQuZHVyYXRpb24gKiAwLjUwOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvcGx1
Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwJKHJldmlz
aW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93bGVzc19wbHVnaW5fcGFp
bnRfdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEzIEBACi08IURPQ1RZUEUg
aHRtbD4KLQotPGh0bWw+Ci08aGVhZD4KKzwhRE9DVFlQRSBodG1sPg0KKw0KKzxodG1sPg0KKzxo
ZWFkPg0KICAgPHNjcmlwdD4NCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQogICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOw0KLSAgICB9Ci0KKyAgICB9DQorDQogICAgIHZhciBwYWludENvdW50ID0gMDsNCiAN
CiAgICAgZnVuY3Rpb24gb25Mb2FkKCkgew0KQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgcGx1
Z2luRGl2LmlubmVySFRNTCA9ICI8ZW1iZWQgaWQ9XCJ0ZXN0UGx1Z2luXCIgdHlwZT1cImFwcGxp
Y2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGVcIiB3aWR0aD1cIjIwMFwiIGhlaWdodD1cIjIw
MFwiIG9ucGFpbnRldmVudD1cImRpZFBhaW50KClcIiB3aW5kb3dlZFBsdWdpbj1cImZhbHNlXCI+
PC9lbWJlZD4iOw0KICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpDQogICAgICAgICAgICAg
aW50ZXJuYWxzLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1blBvc3RM
YXlvdXRUYXNrcygpOw0KLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdp
b24oKTsNCisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsNCiAg
ICAgICB9DQogDQogICAgIGZ1bmN0aW9uIG5vdGlmeURvbmUoKSB7DQpAQCAtMjcsMTUgKzI3LDE1
IEBACiAgICAgZnVuY3Rpb24gZGlkUGFpbnQoKSB7DQogICAgICAgICBwYWludENvdW50Kys7DQog
ICAgICAgICBzZXRUaW1lb3V0KCJub3RpZnlEb25lKCk7IiwgNTApOw0KLSAgICB9Ci0gIDwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9uTG9hZCgpLCA1MCk7Ij4K
LSAgVGhpcyB0ZXN0cyB0aGF0IGR5bmFtaWNhbGx5IGFkZGVkIHdpbmRvd2xlc3MgcGx1Z2lucyBy
ZWNlaXZlIHBhaW50IGV2ZW50cyBvbiBjcmVhdGlvbi4KLQotICA8ZGl2IGlkPSJyZXN1bHQiPkZB
SUxVUkU8L2Rpdj4KLQotICA8ZGl2IGlkPSJwbHVnaW5EaXYiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDMwMHB4OyB0b3A6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyB3aWR0aDogNDAw
cHg7IHBhZGRpbmc6IDFlbTsiPgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KKyAgICB9DQor
ICA8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KG9uTG9hZCgp
LCA1MCk7Ij4NCisgIFRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBhZGRlZCB3aW5kb3dsZXNz
IHBsdWdpbnMgcmVjZWl2ZSBwYWludCBldmVudHMgb24gY3JlYXRpb24uDQorDQorICA8ZGl2IGlk
PSJyZXN1bHQiPkZBSUxVUkU8L2Rpdj4NCisNCisgIDxkaXYgaWQ9InBsdWdpbkRpdiIgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMzAwcHg7IHRvcDogMzAwcHg7IGhlaWdodDogNDAw
cHg7IHdpZHRoOiA0MDBweDsgcGFkZGluZzogMWVtOyI+DQorICA8L2Rpdj4NCis8L2JvZHk+DQor
PC9odG1sPg0KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQt
cGFkZGluZy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMv
c2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1wZXJjZW50LXBhZGRpbmctY3Jhc2gu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkg
ewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgfQogfTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9ub24tc2NhbGluZy1zdHJva2UtdXBkYXRlLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3ZnCShyZXZpc2lvbiAyMTYx
ODgpCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUu
c3ZnCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogCiAgIDxzY3JpcHQ+CiAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDApOwog
ICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N0YWxlLXJlc291cmNl
LWRhdGEtY3Jhc2guc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3Rh
bGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDcgKzIxLDcgQEAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgLy8gRm9yY2UgYSBwYWludCBhdCB0aGlz
IHBvaW50IHRvIGdlbmVyYXRlIGNhY2hlZCBmaWx0ZXIgcmVzdWx0cy4KLSAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgIH0KIAogICAgIGRvY0VsZW1lbnQuYXBwZW5kQ2hpbGQobmV3RGVmcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309053</attachid>
            <date>2017-05-04 09:10:47 -0700</date>
            <delta_ts>2017-05-04 09:13:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170504091046.patch</filename>
            <type>text/plain</type>
            <size>120181</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0cmFjayByZXBhaW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChkaXNwbGF5Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChkaXNwbGF5V2ViVmlldyk6
CisgICAgICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6
IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDE3LTA1LTA0ICBLb25zdGFudGlu
IFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBGaXggY29tcGlsYXRpb24g
d2l0aCBJQ1UgNTkuMQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5l
cj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2ViVmlldygpOwor
dm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcoKTsKIAogc3RydWN0IFRlc3RDb21t
YW5kIHsKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjE2MTg4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxNCwyMiArNTE0LDExIEBAIHN0YXRp
YyBKU1ZhbHVlUmVmIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXEKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBkaXNw
bGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgogICAgIFRlc3RSdW5u
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7Ci0KLSAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVm
IGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKLXsKLSAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgotICAgIFRl
c3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RH
ZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICAvLyBUZXN0UnVubmVyOjpkaXNwbGF5KCkgb25s
eSByZW5kZXJzIHRoZSBpbnZhbGlkYXRlZCByZWdpb24gc28KLSAgICAvLyB3ZSBjYW4ganVzdCB1
c2UgdGhhdC4KLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7CisgICAgY29udHJvbGxlci0+ZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KQEAgLTIxMTEsOCArMjEwMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRl
c3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAiZGVjb2RlSG9zdE5hbWUiLCBkZWNvZGVI
b3N0TmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc2FsbG93SW5jcmVhc2VGb3JB
cHBsaWNhdGlvbkNhY2hlUXVvdGEiLCBkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNo
ZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzcGF0Y2hQZW5kaW5nTG9hZFJl
cXVlc3RzIiwgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAg
ICAgICAgeyAiZGlzcGxheSIsIGRpc3BsYXlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJk
aXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb25DYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyIsIGRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFwcGxpY2F0
aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyIsIGR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVD
YWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQXNUZXh0IiwgZHVtcEFz
VGV4dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2FyZExpc3QiLCBk
dW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmgJKHJldmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksNyBAQCBwdWJsaWM6CiAgICAg
SlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBK
U1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7Ci0gICAgdm9pZCBkaXNwbGF5KCk7Ci0g
ICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBK
U1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgYm9vbCBmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSk7CiAgICAgdm9pZCBnb0JhY2soKTsK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlz
aW9uIDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjA5OCwxMCArMjA5OCw2IEBAIHZvaWQgZGlzcGxheVdlYlZp
ZXcoKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IFttYWluRnJh
bWUgd2ViVmlld107CiAgICAgW3dlYlZpZXcgZGlzcGxheV07Ci0KLSAgICAvLyBGSVhNRTogVHJh
Y2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ugc2hvdWxkIGVuYWJsZSBz
dWNoIHN1cHBvcnQgb24gaU9TLgotICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllFU107
Ci0gICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOwogI2Vsc2UKICAgICBbZ0RydFdp
bmRvdyBsYXlvdXRUaWxlc05vd107CiAgICAgW2dEcnRXaW5kb3cgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0OltnRHJ0V2luZG93IGZyYW1lXV07CkBAIC0yMTA5LDYgKzIxMDUsMTcgQEAgdm9pZCBkaXNw
bGF5V2ViVmlldygpCiAjZW5kaWYKIH0KIAordm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dl
YlZpZXcoKQoreworICAgIGRpc3BsYXlXZWJWaWV3KCk7CisjaWYgIVBMQVRGT1JNKElPUykKKyAg
ICAvLyBGSVhNRTogVHJhY2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ug
c2hvdWxkIGVuYWJsZSBzdWNoIHN1cHBvcnQgb24gaU9TLgorICAgIFdlYlZpZXcgKndlYlZpZXcg
PSBbbWFpbkZyYW1lIHdlYlZpZXddOworICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllF
U107CisgICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOworI2VuZGlmCit9CisKICNp
ZiAhUExBVEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVlRXZlbnQKIApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHJldmlzaW9u
IDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTAsOSArMjUwLDkgQEAgSlNTdHJpbmdSZWYgVGVzdFJ1bm5lcjo6
Y29weUVuY29kZWRIb3N0TgogICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygo
Q0ZTdHJpbmdSZWYpW25hbWVOUyBfd2ViX2VuY29kZUhvc3ROYW1lXSk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCkKIHsKLSAgICBkaXNwbGF5V2ViVmlldygpOworICAgIGRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzV2ViVmlldygpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmtlZXBXZWJIaXN0b3J5KCkKSW5k
ZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHJldmlzaW9u
IDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjI0LDcgKzIyNCw3IEBAIEpTU3RyaW5nUmVmIFRlc3RSdW5uZXI6
OmNvcHlFbmNvZGVkSG9zdE4KICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpk
aXNwbGF5KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQogewog
ICAgIGRpc3BsYXlXZWJWaWV3KCk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9uIDIxNjE4OCkK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBKU0NsYXNzUmVmIFRlc3RSdW5uZXI6
OndyYXBwZXJDbGFzcygpCiAgICAgcmV0dXJuIEpTVGVzdFJ1bm5lcjo6dGVzdFJ1bm5lckNsYXNz
KCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKICAgICBXS0J1bmRsZVBh
Z2VGb3JjZVJlcGFpbnQocGFnZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjE2MTg4KQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MCw4ICsxNDAsOCBAQCBwdWJsaWM6CiAgICAgLy8gUmVwYWludCB0ZXN0aW5n
LgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFpbnQgPSB0cnVlOyB9CiAgICAg
dm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRTd2VlcEhvcml6
b250YWxseSA9IHRydWU7IH0KLSAgICB2b2lkIGRpc3BsYXkoKTsKLSAgICAKKyAgICB2b2lkIGRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisKICAgICAvLyBVc2VyQ29udGVudCB0ZXN0aW5nLgog
ICAgIHZvaWQgYWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFy
dCwgYm9vbCBhbGxGcmFtZXMpOwogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdS
ZWYgc291cmNlLCBib29sIGFsbEZyYW1lcyk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwJKHJldmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4
LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIFJlcGFpbnQgdGVzdGluZy4KICAg
ICB2b2lkIHRlc3RSZXBhaW50KCk7CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHko
KTsKLSAgICB2b2lkIGRpc3BsYXkoKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAKICAgICAvLyBQcmludGluZwogICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShsb25n
IHBhZ2VJbmRleCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxODAgQEAKKzIwMTctMDUtMDQgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5h
bWUgdGVzdFJ1bm5lci5kaXNwbGF5KCkgdG8gdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzE2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXBsYWNlIGFsbCB0aGUgY2FsbHMgdG8gdGVzdFJ1bm5lci5kaXNwbGF5KCkgYnkgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCisgICAgICAgIFJlcGxhY2UgYWxsIHRoZSBjYWxs
cyB0byB0ZXN0UnVubmVyLmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpIGJ5CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKSBzaW5jZSB0aGUgZm9ybWVyIGlzIGEg
Y29weSBvZiB0aGUgbGF0ZXIuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9jbGlwLWNoYW5nZS5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZvcmVncm91bmQtb2Zmc2V0LWNo
YW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJv
dW5kcy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXll
ZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGlu
Zy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lMi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29u
bmVjdC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWw6CisgICAgICAgICogY29tcG9z
aXRpbmcvaWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc2l6ZS10by16ZXJvLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtaGlkZS5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hvdy5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVz
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2lu
Zy1zY3JvbGxiYXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJj
ZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9p
ZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFtZS5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1p
ZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5z
LXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50
LWxvc2VzLXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9k
by1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNvbnRlbnRzLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxh
eWVycy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9y
ZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFy
cy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNv
bXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
cGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFu
Z2UtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9w
YXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLWV4cGVjdGVkLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmct
bG9hZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQt
aWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9zaXRlZC1vbi1zY3JvbGwuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWlu
dC1yZWN0Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9wYWdlLXNjYWxlLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tp
bmctcmVwYWludC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNmb3Jt
LXN0eWxlLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZs
b3ctaW52YWxpZGF0aW9uLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50
ZWQtY29tcG9zaXRlZC1jb250ZW50Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdGlsaW5n
L2h1Z2UtbGF5ZXItcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8tcGFn
ZS12aXNpYmlsaXR5Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8td2l0
aC1pbnZhbGlkLXNvdXJjZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmds
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1p
bnZhbGlkYXRpb24uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4t
cmV2ZXJzZS5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LWR1cmluZy1yZXNp
emUtbm8tZmxleC5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1
bW4uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC5odG1sOgorICAgICAgICAq
IGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWw6CisgICAgICAgICogZGlzcGxh
eWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdldC1kaXNwbGF5LWxpc3QuanM6CisgICAgICAgIChk
b1Rlc3QpOgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9yZXNvdXJjZXMvZHVtcC10YXJnZXQtcmVw
bGF5LWxpc3QuanM6CisgICAgICAgIChkb1Rlc3QpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWw6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0
bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVy
aW5nLW1vZGFsLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanM6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bDIuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanM6CisgICAgICAgICh3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKHdpbmRvdy50ZXN0UnVu
bmVyLndpbmRvdy5zZXRUaW1lb3V0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzOgorICAgICAgICAod2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2YW5jZS5qczoK
KyAgICAgICAgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAod2luZG93
LnRlc3RSdW5uZXIud2luZG93LnNldFRpbWVvdXQpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS13aXRoaW4tY2FsbGJhY2suanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzOgorICAgICAgICAqIGZhc3QvYmFja2dyb3Vu
ZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5
bGUtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1j
b250ZXh0LXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1h
Z2UtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1pbmNyZW1lbnRhbC1yZXBhaW50LTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9yZXNvdXJj
ZXMvcmVwYWludC5qczoKKyAgICAgICAgKHJ1blJlcGFpbnRUZXN0KToKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50
LmpzOgorICAgICAgICAoVGVzdENvbnRyb2xsZXJQYWludCk6CisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1sYXllci11cGRhdGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG9zdHlsZS1h
bm9ueW1vdXMtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9u
ZWQtYmxvY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNz
YWdlLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dlYi10aW1pbmctbWlu
aW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvY29udGFp
bmluZy1ibG9jay1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvbGF5ZXItbm8t
bG9uZ2VyLXBhZ2luYXRlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvcGFkLWdlc3R1cmUtY2FuY2VsLmpzOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanM6CisgICAgICAgICogZmFzdC9mb3Jtcy9oaWRkZW4t
bGlzdGJveC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWw6
CisgICAgICAgICogZmFzdC9sYXllcnMvaW5saW5lLWRpcnR5LXotb3JkZXItbGlzdHMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2xheWVycy9sYXllci1jb250ZW50LXZpc2liaWxpdHktY2hhbmdlLmh0
bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0xLmh0bWw6CisgICAgICAg
ICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0yLmh0bWw6CisgICAgICAgICogZmFzdC9sYXll
cnMvbmVzdGVkLWxheWVycy0zLmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVz
dGVkLXN0YWNraW5nLmh0bWw6CisgICAgICAgICogZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xs
YmFyLXJlc2l6ZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVmbGVjdGlvbnMvaW5saW5lLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2FuaW1hdGlvbi1hZnRlci1sYXllci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0
aC1ncmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvZml4ZWQtY2hpbGQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1z
Y3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtbW92ZS1hZnRlci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQtc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9u
LW91dHNpZGUtdmlld3BvcnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L292ZXJm
bG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwt
d2l0aC16b29tLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1t
b3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2xpbmUtZmxvdy13aXRoLWZsb2F0cy5qczoKKyAg
ICAgICAgKGJlZ2luVGVzdCk6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9yZXBh
aW50LmpzOgorICAgICAgICAocnVuUmVwYWludFRlc3QpOgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC90YWJsZS1vdmVyZmxvdy1oaWRkZW4taW4tb3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9zY3JvbGxiYXItdGlja21hcmtzLWhpdHRlc3QuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5o
dG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwt
YXBwZW5kLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2VsbC1yZW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2UtY2VsbC1zbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci1jb2xvci5odG1sOgorICAgICAg
ICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVy
LXdpZHRoLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2Utcm93LWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci1j
b2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS10YWJsZS1ib3JkZXItd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9yLmh0bWw6Cisg
ICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRib2R5
LWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvZW1wdHktc2VjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9oYXJmYnV6ei1ydW5zLXdpdGgtbm8tZ2x5cGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVy
bi5odG1sOgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogcGx1Z2lu
cy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFy
cy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0bWw6CisgICAgICAgICogc3ZnL2N1
c3RvbS9ub24tc2NhbGluZy1zdHJva2UtdXBkYXRlLnN2ZzoKKyAgICAgICAgKiBzdmcvY3VzdG9t
L3N0YWxlLXJlc291cmNlLWRhdGEtY3Jhc2guc3ZnOgorCiAyMDE3LTA1LTA0ICBEYXZlIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04oU1RQKTogcmdiKCkgd2l0
aCBjYWxjKCkgY29udGFpbmluZyB2YXJpYWJsZXMgZG9lc24ndCB3b3JrCkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDcgKzI2LDcgQEAKICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICBm
dW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAgICAgICAvLyBUaGUgY2hhbmdlIGluIGNsaXAgc3R5bGUgc2hvdWxkIGJl
IHJlZmxlY3RlZCBpbW1lZGlhdGVseSBpbiB0aGUgc2l6ZQogICAgICAgLy8gb2YgdGhlIGNvbXBv
c2l0ZWQgY2xpcHBlciBsYXllci4gQWZ0ZXIgY2hhbmdpbmcgdGhlIGNsaXAsIGl0IHNob3VsZAog
ICAgICAgLy8gZW50aXJlbHkgY292ZXIgdGhlIGluZGljYXRvci4KSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0
ZWQtY29udGVudC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9zY3JvbGwtcGFpbnRlZC1jb21wb3NpdGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgICAgICAvLyBGb3JjZSBhIHBhaW50IHNvIHRoYXQgdGhlIGNvbnRlbnQgd2lsbCBi
ZSBwYWludGVkIGF0IHRoZSBjdXJyZW50IHNjcm9sbCBvZmZzZXQgKDB4MCkKICAgICAgICAgICAg
IC8vIGJlZm9yZSB3ZSBzY3JvbGwuCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgfQogICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMzAwLCAwKTsKICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0
eS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRl
by1wYWdlLXZpc2liaWxpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBAQAog
ICAgIHZpZGVvLnNyYyA9ICdyZXNvdXJjZXMvdmlkZW8uJyArICh2aWRlby5jYW5QbGF5VHlwZSgn
dmlkZW8vb2dnJykgPyAnb2d2JyA6ICdtcDQnKTsKICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVy
KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFnZVZp
c2liaWxpdHkoImhpZGRlbiIpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVu
bmVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3Jl
Z3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAkocmV2aXNpb24g
MjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3VuZC1v
ZmZzZXQtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAKICAgICBm
dW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmV0
Y2giKS5zdHlsZS5sZWZ0ID0gIi0xMDBweCI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGlt
aXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJvdW5k
cy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3
IEBACiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8vIFdl
IG5lZWQgdG8gY2FsbCBkaXNwbGF5KCkgaGVyZSB0byBzeW5jIHRoZSBjb21wb3NpdG9yIHN0YXRl
IGFuZCBhdm9pZCBhIHJhY2UgY29uZGl0aW9uLgotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93Lmlu
dGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1jb21wb3NpdGVkLW5lc3RlZC1p
ZnJhbWVzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NOYW1l
ID0gJ2NvbXBvc2l0ZWQnOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Jl
Y29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9u
IDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJs
YXBwZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAg
ICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ292ZXJsYXknKS5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnOwogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7IC8vIFBhaW50aW5nIGhhcyB0byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAuCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQ
YWludGluZyBoYXMgdG8gaGFwcGVuIHRvIGRldGVjdCBvdmVybGFwLgogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50
ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lMi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGlu
Zy1pZnJhbWUyLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAK
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jbGFzc05hbWUgPSAnY29t
cG9zaXRlZCc7CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNv
bXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAog
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aWZyYW1lJykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogCkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS1k
ZWxheWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlv
biBkb1Rlc3QoKQogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2JveCcpLmNsYXNzTmFtZSA9ICdjb21wb3NpdGVkJzsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9z
aXRpbmctaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50
LmJvZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KIAogICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVy
cycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvZW50ZXItY29tcG9zaXRp
bmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHku
b2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRl
bnQtZmxpcHBpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVz
dCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY2xhc3NOYW1l
ID0gJ2NvbXBvc2l0ZWQnOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1yZXNpemUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsMTEgKzM4LDExIEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0
aGlzIGRlbGF5IGlzIHJlcXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhl
IGRpc3BsYXkuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50LWlmcmFtZScpLmNs
YXNzTmFtZSA9ICdiaWdnZXInOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJu
YWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUt
c2l6ZS10by16ZXJvLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAg
ICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0
byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICB2YXIgaGFkTGF5
ZXJzID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTQ4
LDcgKzQ4LDcgQEAKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgdmFyIGhh
dmVMYXllcnMgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCkgIT0g
IiI7CiAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKICAgICAgICAgICAgICAgICBpZiAoaGFk
TGF5ZXJzICYmICFoYXZlTGF5ZXJzKQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNyYy1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgICAgICB2YXIgaGFk
TGF5ZXJzQmVmb3JlID0gZmFsc2U7CiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJzQWZ0ZXIgPSBm
YWxzZTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRl
c3RpbmcuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRlc3RpbmcuCiAgICAgICAgICAgICAg
ICAgaGFkTGF5ZXJzQmVmb3JlID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpICE9ICIiOwogICAgICAgICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZy
YW1lLWhpZGUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1oaWRlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNzc1RleHQgPSAiZGlzcGxh
eTpub25lOyI7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwog
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlz
aWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNz
c1RleHQgPSAiIjsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7
CiAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1j
b21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7
IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5k
b3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLWlmcmFtZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJh
bWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDcgKzM1LDcgQEAKICAgICAgICAgLy8gZm9yIG92ZXJsYXAgdGVzdGluZyB0byBraWNr
IGluLgogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwog
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3Zlcmxh
cHBlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw3IEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGlzIGRlbGF5IGlzIHJl
cXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhlIGRpc3BsYXkuCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlm
cmFtZXMuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAwKTsKICAgICAg
ICAgICAvLyBGb3JjZSBhIHBhaW50LCBhbmQgZ2l2ZSBsYXllcnMgYSBjaGFuY2UgdG8gdXBkYXRl
LgogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Ny
b2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJib3RoIikuY29udGVudERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgi
dGFsbCIpOyAvLyB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3Zl
cmZsb3cgY29udHJvbHMgdmlzaWJsZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZp
c2libGUuCiAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9IGVsc2UKICAgICAgICAgd2luZG93
LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgNTAwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24g
MjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmctaWZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8gRm9y
IHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hv
cnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50LWlmcmFtZScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oODAsIDgwKTsKICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpJbmRleDogTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9m
aXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAyMDAw
KTsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxODAwKTsKICAgICB9CiAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXRyYW5z
Zm9ybWVkLXN1YmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1l
cy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAg
ewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAg
ICAgICAvLyBBbnkgc2Nyb2xsIHNob3VsZCBrZWVwIHRoZSBmaXhlZC1wb3NpdGlvbiBlbGVtZW50
IHdoZXJlIGl0IGlzLgogICAgICAgLy8gSWYgaXQgc3R1dHRlcnMgb3IgZGlzYXBwZWFycyBpbmNv
cnJlY3RseSwgdGhlbiB0aGUgcmVkIGJhY2tncm91bmQgd2lsbCBiZSByZXZlYWxlZC4KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdy
YW5kY2hpbGQtaW5uZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgLy8gU2Nyb2xsIHJlZCBib3ggb2ZmIHNjcmVlbiBh
bmQgc2Nyb2xsIGdyZWVuIGJveCBpbnRvIHNhbWUgcGxhY2UuCiAgICAgICB3aW5kb3cuc2Nyb2xs
VG8oMCwgNDAwKTsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2Fp
bnMtc2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5zLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDksMTQgKzQ5LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvdGgiKS5jbGFzc0xpc3QuYWRkKCJ0YWxsIik7IC8vIHZl
cnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMKICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29ybmVyIikuY2xhc3NMaXN0LmFkZCgicmVzaXplV2lkZ2V0Iik7IC8vIGJvdHRvbSBk
aXYgZ2V0cyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBj
b21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRh
dGUuCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRl
eHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQog
fQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0
byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250
cm9scworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2Ug
Y29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRz
IGFueSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxi
YXJzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L2NvbnRlbnQtbG9zZXMtc2Nyb2xsYmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
OSwxNCArNDksMTQgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYm90aCIpLmNsYXNzTGlzdC5yZW1vdmUoInRhbGwiKTsgLy8gdmVydGljYWwg
YW5kIGhvcml6b250YWwgc2Nyb2xsYmFycwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b3JuZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJyZXNpemVXaWRnZXQiKTsgLy8gYm90dG9tIGRpdiBs
b3NlcyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBjb21w
b3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUu
CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQogfQog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBi
ZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9s
cworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgY29t
cG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFu
eSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGlu
Zy1jb250ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L2RvLW5vdC1wYWludC1vdXRsaW5lLWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctY29u
dGVudHMuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1j
b250ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICB0ZXh0
YXJlYS5mb2N1cygpOwogICAgICAgdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5z
ZWxlY3Rpb25FbmQgPSAwOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRUZXN0
LCAxMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
b3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1sYXllcnMuaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZs
b3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBA
IHJlc2l6ZTogYm90aDsKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5z
dXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRW5zdXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBk
YXRlLgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiB9CiA8L3Njcmlw
dD4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9y
ZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3Jk
ZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVn
LXotb3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgdGV4dGFyZWEuc2Nyb2xsVG9w
ID0gNDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKQEAgLTQ1LDcgKzQ1LDcgQEAKICAgICAgIHRleHRh
cmVhLmZvY3VzKCk7CiAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVhLnNl
bGVjdGlvbkVuZCA9IDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRlc3Qs
IDEwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9y
ZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFy
cy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVy
Zmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDcgKzYxLDcgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xz
IHZpc2libGUuCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQ
YWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2libGUuCiAgICAgZmluaXNo
VGVzdCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21w
b3NpdGluZy1hZGQtdGV4dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFu
Z2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWFkZC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAg
ICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGlu
Zy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVy
bnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVy
IHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgYmcuaW5uZXJIVE1MID0gIjxzcGFuIHN0eWxlPVwib3BhY2l0eTowXCI+MTIzPC9zcGFu
PiI7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRl
cm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5
ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICBiZy5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9h
ZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Bh
dHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0
LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNSw3ICsxNSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29t
ZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICB2
YXIgaW1nID0gbmV3IEltYWdlOwogICAgICAgICAgIGltZy5vbmxvYWQgPSBvbkJhY2tncm91bmRJ
bWFnZUxvYWQ7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC5odG1s
CShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9k
aXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1
LDcgKzE1LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJh
Y2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgd2luZG93
LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAgIHZhciBp
bWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAgaW1nLm9ubG9hZCA9IG9uQmFja2dyb3VuZEltYWdl
TG9hZDsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9y
ZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9p
bnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTcsMTAgKzE3LDEwIEBACiAKICAgICBmdW5jdGlvbiBvbkxvYWQoKQogICAgIHsKLSAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgcGFpbnRDb3VudCA9IDA7CiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdFBsdWdpbicpLmludmFsaWRhdGVSZWN0KDAsIDAsIDIwMCwgMjAwKTsKLSAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICBpZiAocGFpbnRDb3VudCA+IDApCiAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJT
VUNDRVNTIjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25l
d2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLW9uLXNjcm9sbC5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNv
bXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYzLDExICs2MywxMSBA
QAogCiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDMwOwogICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDUwOwpJbmRleDogTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29t
cG9zaXRlZC1yZXBhaW50LXJlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBACiAgICAgICAgIC8vIEZvcmNlIER1bXBS
ZW5kZXJUcmVlIHRvIGRvIGEgbGF5b3V0IGFuZCByZXBhaW50IGhlcmUsIHRoaXMgaXMgd2hlcmUg
dGhlIHJlcGFpbnRSZWN0CiAgICAgICAgIC8vIGdvZXMgd3JvbmcgYmVjYXVzZSBpdCBkb2VzIG5v
dCBnZXQgdXBkYXRlZCBmb3IgYSBuZXdseSBjb21wb3NpdGVkIGVsZW1lbnQuCiAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgLy8gU2Nyb2xs
aW5nIGEgbGl0dGxlIHdpbGwgZGVtb25zdHJhdGUgd2hldGhlciB0aGUgcmVwYWludCByZWN0IGlz
IGNvcnJlY3Qgb3Igbm90LgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9w
YWdlLXNjYWxlLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVwYWludC9yZXF1aXJlcy1iYWNraW5nLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5o
dG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50
L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0
Myw3IEBACiAgICAgICAgICAgICBvdmVyZmxvdy5zY3JvbGxUb3AgPSA1MDsKIAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3cuc2Nyb2xsVG9wID0gNzU7CkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9y
bS1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVwYWludC90cmFuc2Zvcm0tc3R5bGUtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIH0KIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZvcmNlIG9uZSBjb21w
b3NpdGUgd2l0aCBwcmVzZXJ2ZS0zZAorICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsgLy8gRm9yY2Ugb25lIGNvbXBvc2l0ZSB3aXRoIHByZXNlcnZlLTNkCiAgICAgdGVz
dCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQodGVzdCwgMCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0
aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXdpdGgt
Zml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUt
d2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRmx1
c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29t
cG9zaXRpbmctaWZyYW1lLXNjcm9sbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJh
bWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAog
ICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8v
IEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBv
c2l0aW5nIHJlcGFpbnRzLgogCiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5n
LWlmcmFtZS13aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmct
aWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyBy
ZXBhaW50cy4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9ydGwvcnRsLW92ZXJmbG93LWludmFsaWRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZs
b3ctaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIDxz
Y3JpcHQ+CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewogICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGVzdCBw
YXNzZXMgaWYgdGhpcyBlbGVtZW50IGlzIHJlcGFpbnRlZCBjb3JyZWN0bHksIGV2ZW4KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJl
c2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy90
aWxpbmcvaHVnZS1sYXllci1yZXNpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMs
NyBAQAogICAgICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgYW5kIGEgcGFpbnQgdG8gbWFrZSBz
dXJlIHRoZSBjb21wb3NpdGluZyBsYXllcnMKICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB1cGRh
dGVkLgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlUHJlZml4ICsgd2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB9CkluZGV4
OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8t
d2l0aC1pbnZhbGlkLXNvdXJjZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsNCiAgICAgdi5hcHBl
bmRDaGlsZChzcmMpOw0KICAgICBzcmMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlv
bigpIHsNCiAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQotICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7DQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOw0KICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBjcmFzaCBoZXJlLCB5
YXkhICBUZXN0IGlzIGEgc3VjY2Vzcw0KICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MiKSk7DQogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7DQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvd2Vi
Z2wvd2ViZ2wtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3dlYmdsL3dlYmdsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIGluaXQoKQogICBnbC5jbGVhckNvbG9yKDEsIDAs
IDAsIDEpOyAvLyByZWQKICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7CiAgICAgICBkcmF3R3JlZW4oKTsKICAgfSBlbHNlCkBAIC00Niw4ICs0
Niw4IEBAIGZ1bmN0aW9uIGRyYXdHcmVlbigpCiAgIGdsLmNsZWFyQ29sb3IoMCwgMSwgMCwgMSk7
IC8vIGdyZWVuCiAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwogICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwotICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgIH0gZWxz
ZQogICAgICAgd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY2FudmFzJykuY2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVyJyk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRp
b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUt
ZmlsdGVycy1pbnZhbGlkYXRpb24uaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCgpIHsK
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRy
dWUpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICBjaGFuZ2VCYWNrZ3JvdW5kKCk7CiB9IGVsc2UgCiAgICAg
d2luZG93LnNldFRpbWVvdXQoY2hhbmdlQmFja2dyb3VuZCwgMjUwKTsKSW5kZXg6IExheW91dFRl
c3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29s
dW1uLXJldmVyc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKICAgICAg
ICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZsZXggaXRlbXMgdGhhdCBhcmUgbW92
ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQgIgpJbmRleDogTGF5b3V0VGVzdHMv
Y3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1m
bGV4Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NzczMvZmxleGJveC9y
ZXBhaW50LWR1cmluZy1yZXNpemUtbm8tZmxleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBAIGZ1bmN0aW9uIHJlc2l6ZUZsZXhJdGVtKCkgewogd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KAogICAgICAgICAgICAgIlRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gY2hhbmdpbmcgdGhl
IHNpemUgb2Ygb25lIGZsZXggaXRlbSBjaGFuZ2VzIHRoZSAiCkluZGV4OiBMYXlvdXRUZXN0cy9j
c3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sCShyZXZpc2lvbiAyMTYx
ODgpCisrKyBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9
CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2NzczMvZmxl
eGJveC9yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L3JlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L3JlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KICAgICB3aW5kb3cuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3Qu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZh
cy1kaXNwbGF5LWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICAg
ICAgICAgICAgZHJhd0NhbnZhcygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnb3V0cHV0JykudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMucmVwbGF5RGlzcGxheUxpc3RG
b3JFbGVtZW50KGNhbnZhcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3Vy
Y2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1w
LXRhcmdldC1kaXNwbGF5LWxpc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAg
ZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldEVsZW1lbnRVc2VzRGlzcGxh
eUxpc3REcmF3aW5nKHRhcmdldERpdiwgdHJ1ZSk7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKICAgICAgICAgdmFyIGRpc3BsYXlMaXN0ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9yRWxl
bWVudCh0YXJnZXREaXYpOwpJbmRleDogTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNl
cy9kdW1wLXRhcmdldC1yZXBsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9k
aXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCShyZXZpc2lv
biAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFy
Z2V0LXJlcGxheS1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0
aW9uIGRvVGVzdCgpCiAgICAgfQogICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAg
IHZhciBkaXNwbGF5TGlzdCA9IGludGVybmFscy5kaXNwbGF5TGlzdEZvckVsZW1lbnQodGFyZ2V0
RGl2KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1s
CShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTIsNyArMTIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogICAgICAgICB9LCA1MCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVu
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAg
ICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1kdXJpbmctbW9kYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcg
QEAgb25sb2FkID0gZnVuY3Rpb24oKQogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsK
ICAgICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeycgKwotICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOycgKworICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsnICsKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuY2xvc2UoKTsnICsKICAg
ICAgICAgICAgICAgJ30gZWxzZSB7JysKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuc2V0VGlt
ZW91dCh3aW5kb3cuY2xvc2UsIDEwKTsnKwpAQCAtMjMsNyArMjMsNyBAQCBvbmxvYWQgPSBmdW5j
dGlvbigpCiAgICAgc2hvd01vZGFsRGlhbG9nKCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PicgKyBz
cmMgKyAnPC8nICsgJ3NjcmlwdD4nKTsKICAgICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2RhbCBk
aWFsb2cnKTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAK
ICAgICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRvQ2hlY2tSZXN1bHQoKQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvRGlzcGxheSgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIH0KICAgICAKICAgICAgICAgZnVu
Y3Rpb24gZG9DaGVja1Jlc3VsdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtY2FuY2VsMi5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bDIuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgc2Vjb25kQ2FsbGJhY2tJZCA9
IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aQogfSwgZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVGYWxz
ZSgiY2FsbGJhY2tGaXJlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtY2FuY2VsLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1CiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewogICAgIHNob3VsZEJlRmFsc2UoImNhbGxiYWNrRmlyZWQiKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNh
YmxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogfSk7CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
ICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tJbnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtcHJlZml4
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanMJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1wcmVmaXguanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwxMiBAQCB3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiAKICAgICBidXN5V2FpdCgxMCk7
CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11
bml0LmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yMCwxMiArMjAsMTIgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShm
dW5jdGlvbih0aQogICAgICAgICB9KTsKIAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9LCAxKTsKIH0pOwogCiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1h
ZHZhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDExICsyMSwxMSBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmN0aW9uKHRpCiAgICAgfSk7CiAgICAgYnVzeVdhaXQoMTApOwogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0pOwogCiAKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICB9KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aW1lc3RhbXBzLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0
YW1wcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpCiB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtd2l0aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTAgQEAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogCiAvLyBUaGlzIHNob3Vs
ZCBmaXJlIHRoZSB0aHJlZSBhbHJlYWR5IHJlZ2lzdGVyZWQgY2FsbGJhY2tzLCBidXQgbm90IHRo
ZSBvbmUgZHluYW1pY2FsbHkgcmVnaXN0ZXJlZC4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAvLyBUaGlzIHNob3VsZCBmaXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3RlcmVk
IGNhbGxiYWNrLgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiB9LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZVRy
dWUoImNhbGxiYWNrSW52b2tlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5k
cy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dy
b3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxk
LXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3
IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5k
cy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGls
ZC1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNo
aWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxk
cmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGls
ZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJlc3Rv
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlk
LWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgPC9kaXY+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldCwgMSk7CiAgICAgPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1hZ2UtaW5jcmVtZW50YWwtcmVw
YWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1h
cy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgIGNhbnZhc0NvbnRl
eHQgPSBkb2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJzcXVhcmVzIiwgMzAwLCAz
MDApOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICByZXBhaW50VGVzdCgp
OwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZSB7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVu
dGFsLXJlcGFpbnQtMi5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDcgKzIxLDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRt
bAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWlu
Y3JlbWVudGFsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAog
ICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICAgICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LXJlc2l6ZS1hZnRlci1wYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKIH0K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8v
IEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhh
dmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZhcy4KKyAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3
aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhl
IGNhbnZhcy4KICAgICByZXNpemUoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJl
c2l6ZSwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWlu
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVw
YWludC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVz
b3VyY2VzL3JlcGFpbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGZ1bmN0aW9u
IHJ1blJlcGFpbnRUZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
IHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2V0VGltZW91dChyZXBhaW50
VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9j
YW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0Vu
YWJsZWQtcmVwYWludC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5q
cwkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCB2YXIgZHJhd0l0ZXJhdGlvbnMgPSAy
OwogZnVuY3Rpb24gVGVzdENvbnRyb2xsZXJQYWludCgpIHsKICAgICB3aGlsZSAoZHJhd0l0ZXJh
dGlvbnMgPiAwKSB7CiAgICAgICAgIGRyYXcoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgZHJhd0l0ZXJhdGlvbnMgPSBkcmF3SXRlcmF0aW9ucyAtIDE7CiAgICAgfQogICAgIGRyYXco
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3Qu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
Y2FudmFzLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGlmICgh
Z2wpIHsKICAgdmFyIGludGVydmFsSWQ7CiAgIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2
YWwoZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgaWYgKGNhbnZhcy5jbGllbnRXaWR0aCA9PSAxMDAgJiYKICAgICAgICAgY2FudmFz
LmNsaWVudEhlaWdodCA9PSAyNSkgewogICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2
YWxJZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11
cGRhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1sYXllci11cGRhdGUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBkYXRlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYsNyArNiw3IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdj
YW52YXMnKVswXS5zdHlsZS50b3AgPSAiNjBweCI7CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBj
dHguY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsKIGN0eC5jbGVhcihjdHguQ09MT1JfQlVGRkVSX0JJ
VCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkb3N0eWxlLWFu
b255bW91cy10ZXh0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNl
dWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwog
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQt
YmxvY2stY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwJ
KHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1l
c3NhZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUocG9zdE1lc3NhZ2UpOwogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dlYi10aW1pbmctbWluaW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFs
LXBlcmZvcm1hbmNlLW5vdy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsgfQogICAgICAgICAsIDEwMCk7CiAKLSAgICB3aW5kb3cudGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIH0KIAogb25sb2FkID0gc3RhcnQoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCShyZXZpc2lv
biAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY29udGFpbmluZy1ibG9jay1j
aGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMyArMywxMyBAQAogICAgIHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndCcpOwogICAgICAgICB0LnN0eWxl
LnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICB0Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZCh0Lmxh
c3RDaGlsZC5sYXN0Q2hpbGQpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1uby1sb25nZXIt
cGFnaW5hdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xh
eWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5
KDEsIDApOwogCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgICAgICAgIHRlc3QoKTsKICAgICAgICAgfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNl
bC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS9wYWQtZ2VzdHVyZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5
LDcgQEAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIu
Z2VzdHVyZUZsaW5nU3RhcnQpIHsKICAgICBldmVudFNlbmRlci5nZXN0dXJlRmxpbmdTdGFydCgx
MCwgMTEsIDEwMDAsIDEwMDApOwogICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ0NhbmNlbCgp
OwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2Vz
dHVyZS1mbGluZy5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MTgsOSArMTgsOSBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgCiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmV2
ZW50U2VuZGVyLmdlc3R1cmVGbGluZ1N0YXJ0KSB7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUZs
aW5nU3RhcnQoMTAsIDExLCAxMDAwLCAxMDAwKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2hpZGRlbi1saXN0Ym94Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogPC9zY3JpcHQ+CiBUaGlzIHRlc3RzIHRoYXQgdGhlIHdob2xlIGxpc3Rib3ggY29u
dHJvbCBpcyBoaWRkZW4gd2hlbiB2aXNpYmlsaXR5IGlzIHNldCB0byBoaWRkZW4uCiA8YnI+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHJldmlzaW9uIDIx
NjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICA8L3NlbGVjdD4KICAgICA8c2NyaXB0Pgog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5l
LW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGRjb250LmFwcGVuZENoaWxkKGUpOwogICAg
IAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAog
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3Jv
bGxiYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3Bh
cmVudC1zY3JvbGxiYXIuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDEzICsyMywxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiAKICAgICB3
aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3AgPSAyMDAwOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiAgICAgICAgIH0KICAgICB9LCAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Fu
aW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWwJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tn
cm91bmQtaW1hZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAog
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUuZGlzcGxheT0i
bm9uZSI7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAg
IHNldFRpbWVvdXQoInN0ZXAyKCkiLCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXll
cnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJ
KHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2FkZC1sYXllci13
aXRoLW5lc3RlZC1zdGFja2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBA
CiAgICAgICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7
CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9pbmxpbmUt
ZGlydHktei1vcmRlci1saXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAKIAogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1lb3V0
KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12
aXNpYmlsaXR5LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNo
YW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgfQogICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAg
ICBzZXRUaW1lb3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVz
dGVkLWxheWVycy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMv
bmVzdGVkLWxheWVycy0xLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVy
cy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ewogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBmaW5pc2goKTsK
ICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVy
cy00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJz
L25lc3RlZC1sYXllcnMtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXIt
d2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgVGhlIHNxdWFyZSBzaG91bGQgYmUgYSB1bmlm
b3JtIHNoYWRlIG9mIAogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwogICAgIGVsc2Ugewog
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgdGVzdCgpOwogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9v
dmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFy
LXJlc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdHMg
dGhhdCB0aGUgc2Nyb2xsYmFyIGFuZCByZXNpemUgY29ybmVyIGFyZSBub3QgdmlzaWJsZSBvbiBh
biBlbGVtZW50IHRoYXQgaGFzIHZpc2liaWxpdHk6aGlkZGVuLgogPGRpdiBzdHlsZT0ib3ZlcmZs
b3c6IGF1dG87IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDcwcHg7IHJlc2l6ZTogYm90aDsgdmlzaWJp
bGl0eTogaGlkZGVuIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvaW5saW5l
LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9p
bmxpbmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZWZsZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcg
QEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgfQogICAgICAgICBzZXRUaW1lb3V0KGNoYW5nZUNvbG9yLCAwKTsKICAgICB9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNjcm9s
bC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24t
YWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTgsNyArOCw3IEBACiAgICAgewogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2Nyb2xsZXInKS5zY3JvbGxUb3AgPSA4MDA7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAg
ICAgc2V0VGltZW91dChsb2dSZXBhaW50cywgMjAwKTsKICAgICB9CkBAIC0yNSw3ICsyNSw3IEBA
CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgIHNldFRpbWVvdXQoc3RhcnRUcmFja2luZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3Jh
ZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdo
dC1jaGFuZ2VzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hhbmdl
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkg
ewogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRU
cmFja2luZ1JlcGFpbnRzKCk7Ci0gICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB9CiAKIGZ1bmN0
aW9uIGxvZ1JlcGFpbnRzKCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVk
LWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9u
IDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1tb3ZlLWFm
dGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAg
IHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRl
ci1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4
ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW9mLWZpeGVkLW1vdmUt
YWZ0ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAg
ICAgc2Nyb2xsQnkoMCwgMjAwKTsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1t
b3ZlLWFmdGVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQt
b2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Nyw3ICs3LDcgQEAKICAgICAgICAgICBzY3JvbGxCeSgwLCAyMDApOwogICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWlu
dFRlc3QoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgc2V0VGltZW91dChy
ZXBhaW50VGVzdCwgMTUpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1v
dmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQtc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwog
ICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwyMDApOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICBzZXRUaW1lb3V0KHRlc3RBZnRlclNjcm9sbCwgMjAwKTsKICAgICB9CiAKQEAgLTIyLDcg
KzIyLDcgQEAKIAogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cygpOwogICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgc2V0VGltZW91dCh0ZXN0QWZ0ZXJTY3JvbGxCYWNrLCAyMDApOwogICAgIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdw
b3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1h
dGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQAogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRz
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNldFRpbWVvdXQobG9nUmVwYWludHMs
IDIwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1u
by1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAKICAgICB7CiAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBz
ZXRUaW1lb3V0KGxvZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L292ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlk
ZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhp
ZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAw
OwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0
LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlbmRlcmVy
LWRlc3RydWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52
YWxpZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVj
dGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgPGRp
dj48L2Rpdj4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwt
d2l0aC16b29tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jl
cGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgICAgIHRlc3RTY3JvbGxSZXBhaW50KCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGxSZXBhaW50LCAxMDApOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3RhYmxlLW92ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRk
ZW4tc2Nyb2xsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGFibGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZs
b3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAg
ICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9s
bC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVz
b3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVk
LW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgICAgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVw
YWludC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
cmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2
MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9pZnJhbWUtc2Nyb2xs
LXJlcGFpbnQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKIAogd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3AgPSAyMDsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1m
bG9hdHMuanMJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9y
ZXNvdXJjZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3
ICsxNCw3IEBAIGZ1bmN0aW9uIGJlZ2luVGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICB0ZXN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5jb250
ZW50RG9jdW1lbnQpOwogICAgIH0gZWxzZSBzZXRUaW1lb3V0KAogICAgICAgICBmdW5jdGlvbigp
IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQu
anMJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJj
ZXMvcmVwYWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gcnVu
UmVwYWludFRlc3QoKQogICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQp
CiAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0VG9wOwogCi0gICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvcmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBl
cmNlbnQtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5
b3V0RW5hYmxlZChmYWxzZSk7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
PC9zY3JpcHQ+CiAKIFRoZSB0ZXh0YXJlYXMgYmVsb3cgc2hvdWxkIG5vdCBvdmVybGFwLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFy
LXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVzdC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgd2lu
ZG93LmludGVybmFscy5hZGRUZXh0TWF0Y2hNYXJrZXIocmFuZ2UsIHRydWUpOwogICAgIH0KICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh3aW5k
b3cuaW5uZXJXaWR0aCAtIDEsIHdpbmRvdy5pbm5lckhlaWdodCAtIDEpOwogICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHkt
c2VjdGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUv
ZW1wdHktc2VjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Niw3ICs2LDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgLyogU2luY2UgdGhlIGNyYXNoIGhh
cHBlbnMgaW4gcGFpbnRpbmcgY29kZSwgZm9yY2UgcGFpbnRpbmcuIFRoaXMKICAgICAgICAgICAg
ICAgIG1ha2VzIHRoZSB0ZXN0IHdvcmsgZXZlbiB3aGVuIHJ1biB3aXRob3V0IHRoZSAtLXBpeGVs
IG9wdGlvbi4gKi8KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5o
dG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1j
b2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBAIENvbGxhcHNlZCBib3JkZXJzIHNob3VsZCBub3QgZGlzYXBwZWFyLgogICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAgICAg
ICByb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm93MScpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2Nh
Y2hlZC1jZWxsLWFwcGVuZC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgYXBwZW5kIG5ldyBjZWxsLCBleHBl
Y3QgdGhhdCBjYWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgICAgIG5ld0NlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwog
ICAgICAgICAgICAgICAgIG5ld0NlbGwuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0gIjZweCI7CiAg
ICAgICAgICAgICAgICAgbmV3Q2VsbC5zdHlsZS5ib3JkZXJMZWZ0U3R5bGUgPSAic29saWQiOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2Vs
bC1yZW1vdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJl
bW92ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgcmVtb3Zl
IGNlbGwsIGV4cGVjdCB0aGF0IGNhY2hlIGkKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGJhckNlbGwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYmFyIik7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJvdyIpLnJlbW92ZUNoaWxkKGJhckNlbGwpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9y
ZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlz
aW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcv
Y2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNlbGwgYm9yZGVyIGNvbG9yLCBleHBlY3QKICAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJsaW1l
IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lk
dGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2
MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEw
LDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY2VsbCBib3JkZXIgd2lkdGgsIGV4cGVjdAogICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2lu
Zy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNo
YW5nZS1jZWxsLXNsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsx
Miw3IEBAIEhlcmUgd2U6CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGV4dCwgdGhpcyByZXF1ZXN0cyBsYXlvdXQg
Zm9yIERJViwKICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBzaW1wbGlmaWVkIGxheW91dCBm
b3IgVEFCTEUKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvY2tE
aXYiKS5pbm5lclRleHQgPSAiIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXIt
Y29sb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5n
ZSBjb2wgYm9yZGVyIGNvbG9yLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29sIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wt
Ym9yZGVyLXdpZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
dGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY29sIGJv
cmRlciB3aWR0aCwgZXhwZWN0IAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbCIpLnN0
eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1i
b3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xv
ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNv
bGdyb3VwIGJvcmRlciBjb2xvciwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xn
cm91cCIpLnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS1jb2xncm91cC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3Vw
LWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUg
d2UgY2hhbmdlIGNvbGdyb3VwIGJvcmRlciB3aWR0aCwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb2xncm91cCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
aGFuZ2Utcm93LWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRl
ci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hh
bmdlIHJvdyBib3JkZXIgY29sb3IsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyb3ciKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAg
ICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJv
dy1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGgu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSByb3cg
Ym9yZGVyIHdpZHRoLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm93Iiku
c3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRl
ci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUgYm9y
ZGVyIGNvbG9yLCBleHBlYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0eWxl
LmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXIt
d2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRhYmxlIGJvcmRl
ciB3aWR0aCwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YmwiKS5zdHlsZS5i
b3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9y
Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgY29s
b3IsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3Jk
ZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdpZHRo
Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgd2lk
dGgsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3Jk
ZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkK
KysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw1ICs2LDUgQEAKIDxzY3JpcHQ+CiAgICAgLy8gTWFrZXMgdGhlIHJlbmRlcmluZyBj
b2RlIHJ1biBldmVuIHdoZW4gbm90IHJ1bm5pbmcgYXMgYSBwaXhlbCB0ZXN0LgogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1
ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1z
aGFkb3ctZXh0cmVtZS12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFy
ZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91
dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1nbHlw
aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGJvZHkgewogPHNjcmlwdD4K
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIC8vIEZvcmNlIGxheW91dC4KLSAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRp
bmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwog
CiAvLyBSZXBhaW50IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZSBhcnJpdmVkCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEyLDcgKzEyLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICB2YXIg
Y291bnQgPSAzOwogICAgIHZhciBhdWRpb0VsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2F1ZGlvJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVu
dC1hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtZG9jdW1lbnQtYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgewogICAgICAgICB2YXIgdmlkZW9FbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyIikuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInZpZGVvIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICB2aWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPSB2aWRl
b0VsZW1lbnQuZHVyYXRpb24gKiAwLjUwOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvcGx1
Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwJKHJldmlz
aW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93bGVzc19wbHVnaW5fcGFp
bnRfdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgIHBs
dWdpbkRpdi5pbm5lckhUTUwgPSAiPGVtYmVkIGlkPVwidGVzdFBsdWdpblwiIHR5cGU9XCJhcHBs
aWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlXCIgd2lkdGg9XCIyMDBcIiBoZWlnaHQ9XCIy
MDBcIiBvbnBhaW50ZXZlbnQ9XCJkaWRQYWludCgpXCIgd2luZG93ZWRQbHVnaW49XCJmYWxzZVwi
PjwvZW1iZWQ+IjsNCiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQ0KICAgICAgICAgICAg
IGludGVybmFscy51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNBbmRSdW5Qb3N0
TGF5b3V0VGFza3MoKTsNCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVn
aW9uKCk7DQorICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7DQog
ICAgICAgfQ0KIA0KICAgICBmdW5jdGlvbiBub3RpZnlEb25lKCkgew0KSW5kZXg6IExheW91dFRl
c3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGlu
Zy1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxiYXJz
L3Njcm9sbGJhci1wZXJjZW50LXBhZGRpbmctY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTEsNyArMTEsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQogfTsKIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9ub24tc2NhbGluZy1zdHJva2UtdXBk
YXRlLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5n
LXN0cm9rZS11cGRhdGUuc3ZnCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC03
LDcgKzcsNyBAQAogCiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
ICAgICAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDApOwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3N0YWxlLXJlc291cmNlLWRhdGEtY3Jhc2guc3ZnCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5z
dmcJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVz
b3VyY2UtZGF0YS1jcmFzaC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgICAgLy8gRm9yY2UgYSBwYWludCBhdCB0aGlzIHBvaW50IHRvIGdlbmVyYXRlIGNhY2hl
ZCBmaWx0ZXIgcmVzdWx0cy4KLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIAogICAgIGRvY0VsZW1l
bnQuYXBwZW5kQ2hpbGQobmV3RGVmcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309054</attachid>
            <date>2017-05-04 09:14:00 -0700</date>
            <delta_ts>2017-05-04 11:17:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170504091359.patch</filename>
            <type>text/plain</type>
            <size>119433</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0cmFjayByZXBhaW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChkaXNwbGF5Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChkaXNwbGF5V2ViVmlldyk6
CisgICAgICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6
IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDE3LTA1LTA0ICBLb25zdGFudGlu
IFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBGaXggY29tcGlsYXRpb24g
d2l0aCBJQ1UgNTkuMQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5l
cj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2ViVmlldygpOwor
dm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcoKTsKIAogc3RydWN0IFRlc3RDb21t
YW5kIHsKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjE2MTg4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxNCwyMiArNTE0LDExIEBAIHN0YXRp
YyBKU1ZhbHVlUmVmIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXEKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBkaXNw
bGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgogICAgIFRlc3RSdW5u
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7Ci0KLSAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVm
IGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKLXsKLSAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgotICAgIFRl
c3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RH
ZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICAvLyBUZXN0UnVubmVyOjpkaXNwbGF5KCkgb25s
eSByZW5kZXJzIHRoZSBpbnZhbGlkYXRlZCByZWdpb24gc28KLSAgICAvLyB3ZSBjYW4ganVzdCB1
c2UgdGhhdC4KLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7CisgICAgY29udHJvbGxlci0+ZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KQEAgLTIxMTEsOCArMjEwMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRl
c3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAiZGVjb2RlSG9zdE5hbWUiLCBkZWNvZGVI
b3N0TmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc2FsbG93SW5jcmVhc2VGb3JB
cHBsaWNhdGlvbkNhY2hlUXVvdGEiLCBkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNo
ZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzcGF0Y2hQZW5kaW5nTG9hZFJl
cXVlc3RzIiwgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAg
ICAgICAgeyAiZGlzcGxheSIsIGRpc3BsYXlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJk
aXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb25DYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyIsIGRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFwcGxpY2F0
aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyIsIGR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVD
YWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQXNUZXh0IiwgZHVtcEFz
VGV4dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2FyZExpc3QiLCBk
dW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmgJKHJldmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksNyBAQCBwdWJsaWM6CiAgICAg
SlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBK
U1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7Ci0gICAgdm9pZCBkaXNwbGF5KCk7Ci0g
ICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBK
U1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgYm9vbCBmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSk7CiAgICAgdm9pZCBnb0JhY2soKTsK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlz
aW9uIDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjA5OCwxMCArMjA5OCw2IEBAIHZvaWQgZGlzcGxheVdlYlZp
ZXcoKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IFttYWluRnJh
bWUgd2ViVmlld107CiAgICAgW3dlYlZpZXcgZGlzcGxheV07Ci0KLSAgICAvLyBGSVhNRTogVHJh
Y2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ugc2hvdWxkIGVuYWJsZSBz
dWNoIHN1cHBvcnQgb24gaU9TLgotICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllFU107
Ci0gICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOwogI2Vsc2UKICAgICBbZ0RydFdp
bmRvdyBsYXlvdXRUaWxlc05vd107CiAgICAgW2dEcnRXaW5kb3cgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0OltnRHJ0V2luZG93IGZyYW1lXV07CkBAIC0yMTA5LDYgKzIxMDUsMTcgQEAgdm9pZCBkaXNw
bGF5V2ViVmlldygpCiAjZW5kaWYKIH0KIAordm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dl
YlZpZXcoKQoreworICAgIGRpc3BsYXlXZWJWaWV3KCk7CisjaWYgIVBMQVRGT1JNKElPUykKKyAg
ICAvLyBGSVhNRTogVHJhY2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ug
c2hvdWxkIGVuYWJsZSBzdWNoIHN1cHBvcnQgb24gaU9TLgorICAgIFdlYlZpZXcgKndlYlZpZXcg
PSBbbWFpbkZyYW1lIHdlYlZpZXddOworICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOllF
U107CisgICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOworI2VuZGlmCit9CisKICNp
ZiAhUExBVEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVlRXZlbnQKIApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHJldmlzaW9u
IDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTAsOSArMjUwLDkgQEAgSlNTdHJpbmdSZWYgVGVzdFJ1bm5lcjo6
Y29weUVuY29kZWRIb3N0TgogICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygo
Q0ZTdHJpbmdSZWYpW25hbWVOUyBfd2ViX2VuY29kZUhvc3ROYW1lXSk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCkKIHsKLSAgICBkaXNwbGF5V2ViVmlldygpOworICAgIGRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzV2ViVmlldygpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmtlZXBXZWJIaXN0b3J5KCkKSW5k
ZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHJldmlzaW9u
IDIxNjE4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjI0LDcgKzIyNCw3IEBAIEpTU3RyaW5nUmVmIFRlc3RSdW5uZXI6
OmNvcHlFbmNvZGVkSG9zdE4KICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpk
aXNwbGF5KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQogewog
ICAgIGRpc3BsYXlXZWJWaWV3KCk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9uIDIxNjE4OCkK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBKU0NsYXNzUmVmIFRlc3RSdW5uZXI6
OndyYXBwZXJDbGFzcygpCiAgICAgcmV0dXJuIEpTVGVzdFJ1bm5lcjo6dGVzdFJ1bm5lckNsYXNz
KCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKICAgICBXS0J1bmRsZVBh
Z2VGb3JjZVJlcGFpbnQocGFnZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjE2MTg4KQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MCw4ICsxNDAsOCBAQCBwdWJsaWM6CiAgICAgLy8gUmVwYWludCB0ZXN0aW5n
LgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFpbnQgPSB0cnVlOyB9CiAgICAg
dm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRTd2VlcEhvcml6
b250YWxseSA9IHRydWU7IH0KLSAgICB2b2lkIGRpc3BsYXkoKTsKLSAgICAKKyAgICB2b2lkIGRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisKICAgICAvLyBVc2VyQ29udGVudCB0ZXN0aW5nLgog
ICAgIHZvaWQgYWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFy
dCwgYm9vbCBhbGxGcmFtZXMpOwogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdS
ZWYgc291cmNlLCBib29sIGFsbEZyYW1lcyk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwJKHJldmlzaW9uIDIxNjE4OCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4
LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIFJlcGFpbnQgdGVzdGluZy4KICAg
ICB2b2lkIHRlc3RSZXBhaW50KCk7CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHko
KTsKLSAgICB2b2lkIGRpc3BsYXkoKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAKICAgICAvLyBQcmludGluZwogICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShsb25n
IHBhZ2VJbmRleCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxODAgQEAKKzIwMTctMDUtMDQgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5h
bWUgdGVzdFJ1bm5lci5kaXNwbGF5KCkgdG8gdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzE2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXBsYWNlIGFsbCB0aGUgY2FsbHMgdG8gdGVzdFJ1bm5lci5kaXNwbGF5KCkgYnkgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpCisgICAgICAgIFJlcGxhY2UgYWxsIHRoZSBjYWxs
cyB0byB0ZXN0UnVubmVyLmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpIGJ5CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKSBzaW5jZSB0aGUgZm9ybWVyIGlzIGEg
Y29weSBvZiB0aGUgbGF0ZXIuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9jbGlwLWNoYW5nZS5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZvcmVncm91bmQtb2Zmc2V0LWNo
YW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJv
dW5kcy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXll
ZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGlu
Zy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29t
cG9zaXRpbmctaWZyYW1lMi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29u
bmVjdC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWw6CisgICAgICAgICogY29tcG9z
aXRpbmcvaWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc2l6ZS10by16ZXJvLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lm
cmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtaGlkZS5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hvdy5odG1sOgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVz
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2lu
Zy1zY3JvbGxiYXJzLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJj
ZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9p
ZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFtZS5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1p
ZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5z
LXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50
LWxvc2VzLXNjcm9sbGJhcnMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9k
by1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNvbnRlbnRzLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxh
eWVycy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9y
ZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFy
cy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNv
bXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
cGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFu
Z2UtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9w
YXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLWV4cGVjdGVkLmh0bWw6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmct
bG9hZC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQt
aWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9zaXRlZC1vbi1zY3JvbGwuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWlu
dC1yZWN0Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9wYWdlLXNjYWxlLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tp
bmctcmVwYWludC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNmb3Jt
LXN0eWxlLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZs
b3ctaW52YWxpZGF0aW9uLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50
ZWQtY29tcG9zaXRlZC1jb250ZW50Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdGlsaW5n
L2h1Z2UtbGF5ZXItcmVzaXplLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8tcGFn
ZS12aXNpYmlsaXR5Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8td2l0
aC1pbnZhbGlkLXNvdXJjZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmds
LXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1p
bnZhbGlkYXRpb24uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4t
cmV2ZXJzZS5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LWR1cmluZy1yZXNp
emUtbm8tZmxleC5odG1sOgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1
bW4uaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcmVwYWludC5odG1sOgorICAgICAgICAq
IGRpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWw6CisgICAgICAgICogZGlzcGxh
eWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdldC1kaXNwbGF5LWxpc3QuanM6CisgICAgICAgIChk
b1Rlc3QpOgorICAgICAgICAqIGRpc3BsYXlsaXN0cy9yZXNvdXJjZXMvZHVtcC10YXJnZXQtcmVw
bGF5LWxpc3QuanM6CisgICAgICAgIChkb1Rlc3QpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWw6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0
bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVy
aW5nLW1vZGFsLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanM6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bDIuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanM6CisgICAgICAgICh3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKHdpbmRvdy50ZXN0UnVu
bmVyLndpbmRvdy5zZXRUaW1lb3V0KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzOgorICAgICAgICAod2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2YW5jZS5qczoK
KyAgICAgICAgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAod2luZG93
LnRlc3RSdW5uZXIud2luZG93LnNldFRpbWVvdXQpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS13aXRoaW4tY2FsbGJhY2suanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzOgorICAgICAgICAqIGZhc3QvYmFja2dyb3Vu
ZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5
bGUtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1j
b250ZXh0LXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1h
Z2UtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1pbmNyZW1lbnRhbC1yZXBhaW50LTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtaW5jcmVtZW50YWwtcmVwYWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9yZXNvdXJj
ZXMvcmVwYWludC5qczoKKyAgICAgICAgKHJ1blJlcGFpbnRUZXN0KToKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50
LmpzOgorICAgICAgICAoVGVzdENvbnRyb2xsZXJQYWludCk6CisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1sYXllci11cGRhdGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG9zdHlsZS1h
bm9ueW1vdXMtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9u
ZWQtYmxvY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNz
YWdlLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dlYi10aW1pbmctbWlu
aW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvY29udGFp
bmluZy1ibG9jay1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvbGF5ZXItbm8t
bG9uZ2VyLXBhZ2luYXRlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvcGFkLWdlc3R1cmUtY2FuY2VsLmpzOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanM6CisgICAgICAgICogZmFzdC9mb3Jtcy9oaWRkZW4t
bGlzdGJveC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWw6
CisgICAgICAgICogZmFzdC9sYXllcnMvaW5saW5lLWRpcnR5LXotb3JkZXItbGlzdHMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2xheWVycy9sYXllci1jb250ZW50LXZpc2liaWxpdHktY2hhbmdlLmh0
bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0xLmh0bWw6CisgICAgICAg
ICogZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0yLmh0bWw6CisgICAgICAgICogZmFzdC9sYXll
cnMvbmVzdGVkLWxheWVycy0zLmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWw6CisgICAgICAgICogZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVz
dGVkLXN0YWNraW5nLmh0bWw6CisgICAgICAgICogZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xs
YmFyLXJlc2l6ZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVmbGVjdGlvbnMvaW5saW5lLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2FuaW1hdGlvbi1hZnRlci1sYXllci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0
aC1ncmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvZml4ZWQtY2hpbGQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1z
Y3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtbW92ZS1hZnRlci1zY3Jv
bGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQtc3ViZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9u
LW91dHNpZGUtdmlld3BvcnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L292ZXJm
bG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwt
d2l0aC16b29tLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1t
b3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2xpbmUtZmxvdy13aXRoLWZsb2F0cy5qczoKKyAg
ICAgICAgKGJlZ2luVGVzdCk6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Jlc291cmNlcy9yZXBh
aW50LmpzOgorICAgICAgICAocnVuUmVwYWludFRlc3QpOgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC90YWJsZS1vdmVyZmxvdy1oaWRkZW4taW4tb3ZlcmZsb3ctaGlkZGVuLXNjcm9sbGVkLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9zY3JvbGxiYXItdGlja21hcmtzLWhpdHRlc3QuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5o
dG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNlbGwt
YXBwZW5kLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2VsbC1yZW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2UtY2VsbC1zbC1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci1jb2xvci5odG1sOgorICAgICAg
ICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVy
LXdpZHRoLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3JkZXItd2lkdGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2Utcm93LWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWw6CisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci1j
b2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS10YWJsZS1ib3JkZXItd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2Jv
cmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9yLmh0bWw6Cisg
ICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRib2R5
LWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvZW1wdHktc2VjdGlvbi1j
cmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9oYXJmYnV6ei1ydW5zLXdpdGgtbm8tZ2x5cGgu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVy
bi5odG1sOgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWw6CisgICAgICAgICogcGx1Z2lu
cy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWw6CisgICAgICAgICogc2Nyb2xsYmFy
cy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0bWw6CisgICAgICAgICogc3ZnL2N1
c3RvbS9ub24tc2NhbGluZy1zdHJva2UtdXBkYXRlLnN2ZzoKKyAgICAgICAgKiBzdmcvY3VzdG9t
L3N0YWxlLXJlc291cmNlLWRhdGEtY3Jhc2guc3ZnOgorCiAyMDE3LTA1LTA0ICBEYXZlIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04oU1RQKTogcmdiKCkgd2l0
aCBjYWxjKCkgY29udGFpbmluZyB2YXJpYWJsZXMgZG9lc24ndCB3b3JrCkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDcgKzI2LDcgQEAKICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICBm
dW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAgICAgICAvLyBUaGUgY2hhbmdlIGluIGNsaXAgc3R5bGUgc2hvdWxkIGJl
IHJlZmxlY3RlZCBpbW1lZGlhdGVseSBpbiB0aGUgc2l6ZQogICAgICAgLy8gb2YgdGhlIGNvbXBv
c2l0ZWQgY2xpcHBlciBsYXllci4gQWZ0ZXIgY2hhbmdpbmcgdGhlIGNsaXAsIGl0IHNob3VsZAog
ICAgICAgLy8gZW50aXJlbHkgY292ZXIgdGhlIGluZGljYXRvci4KSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0
ZWQtY29udGVudC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9zY3JvbGwtcGFpbnRlZC1jb21wb3NpdGVkLWNvbnRlbnQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgICAgICAvLyBGb3JjZSBhIHBhaW50IHNvIHRoYXQgdGhlIGNvbnRlbnQgd2lsbCBi
ZSBwYWludGVkIGF0IHRoZSBjdXJyZW50IHNjcm9sbCBvZmZzZXQgKDB4MCkKICAgICAgICAgICAg
IC8vIGJlZm9yZSB3ZSBzY3JvbGwuCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgfQogICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMzAwLCAwKTsKICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvLXBhZ2UtdmlzaWJpbGl0
eS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRl
by1wYWdlLXZpc2liaWxpdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOSArMjAsOSBAQAog
ICAgIHZpZGVvLnNyYyA9ICdyZXNvdXJjZXMvdmlkZW8uJyArICh2aWRlby5jYW5QbGF5VHlwZSgn
dmlkZW8vb2dnJykgPyAnb2d2JyA6ICdtcDQnKTsKICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVy
KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFnZVZp
c2liaWxpdHkoImhpZGRlbiIpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVu
bmVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3Jl
Z3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5kLW9mZnNldC1jaGFuZ2UuaHRtbAkocmV2aXNpb24g
MjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3VuZC1v
ZmZzZXQtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAKICAgICBm
dW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmV0
Y2giKS5zdHlsZS5sZWZ0ID0gIi0xMDBweCI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGlt
aXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJvdW5k
cy10cmFuc2Zvcm1lZC1vdmVyZmxvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3
IEBACiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8vIFdl
IG5lZWQgdG8gY2FsbCBkaXNwbGF5KCkgaGVyZSB0byBzeW5jIHRoZSBjb21wb3NpdG9yIHN0YXRl
IGFuZCBhdm9pZCBhIHJhY2UgY29uZGl0aW9uLgotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93Lmlu
dGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2JlY29tZS1jb21wb3NpdGVkLW5lc3RlZC1p
ZnJhbWVzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NOYW1l
ID0gJ2NvbXBvc2l0ZWQnOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Jl
Y29tZS1vdmVybGFwcGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9u
IDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLW92ZXJs
YXBwZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAg
ICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ292ZXJsYXknKS5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnOwogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7IC8vIFBhaW50aW5nIGhhcyB0byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAuCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQ
YWludGluZyBoYXMgdG8gaGFwcGVuIHRvIGRldGVjdCBvdmVybGFwLgogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50
ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lMi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGlu
Zy1pZnJhbWUyLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAK
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jbGFzc05hbWUgPSAnY29t
cG9zaXRlZCc7CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNv
bXBvc2l0aW5nLWlmcmFtZTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAog
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aWZyYW1lJykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogCkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lLWRlbGF5ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS1k
ZWxheWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBmdW5jdGlv
biBkb1Rlc3QoKQogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2JveCcpLmNsYXNzTmFtZSA9ICdjb21wb3NpdGVkJzsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9z
aXRpbmctaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50
LmJvZHkub2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KIAogICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVy
cycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvZW50ZXItY29tcG9zaXRp
bmctaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3NpdGluZy1pZnJhbWUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHku
b2Zmc2V0V2lkdGg7IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRl
bnQtZmxpcHBpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2lmcmFtZS1jb250ZW50LWZsaXBwaW5nLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVz
dCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY2xhc3NOYW1l
ID0gJ2NvbXBvc2l0ZWQnOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1yZXNpemUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsMTEgKzM4LDExIEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0
aGlzIGRlbGF5IGlzIHJlcXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhl
IGRpc3BsYXkuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50LWlmcmFtZScpLmNs
YXNzTmFtZSA9ICdiaWdnZXInOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJu
YWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zaXplLXRvLXplcm8uaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUt
c2l6ZS10by16ZXJvLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAg
ICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0
byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICB2YXIgaGFkTGF5
ZXJzID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTQ4
LDcgKzQ4LDcgQEAKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgdmFyIGhh
dmVMYXllcnMgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCkgIT0g
IiI7CiAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKICAgICAgICAgICAgICAgICBpZiAoaGFk
TGF5ZXJzICYmICFoYXZlTGF5ZXJzKQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNyYy1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgICAgICB2YXIgaGFk
TGF5ZXJzQmVmb3JlID0gZmFsc2U7CiAgICAgICAgICAgICB2YXIgaGFkTGF5ZXJzQWZ0ZXIgPSBm
YWxzZTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRl
c3RpbmcuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOyAvLyBOZWVkIHRvIHBhaW50IGZvciBvdmVybGFwIHRlc3RpbmcuCiAgICAgICAgICAgICAg
ICAgaGFkTGF5ZXJzQmVmb3JlID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpICE9ICIiOwogICAgICAgICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZy
YW1lLWhpZGUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1oaWRlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNzc1RleHQgPSAiZGlzcGxh
eTpub25lOyI7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwog
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlz
aWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZpc2libGUnKTsKICAgICAgICAgZGl2LnN0eWxlLmNz
c1RleHQgPSAiIjsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7
CiAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvbGVhdmUtY29tcG9zaXRpbmctaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1j
b21wb3NpdGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgIHsKICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudERvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7
IC8vIHdvcmsgYXJvdW5kIGJ1ZyA0MTk5OS4KICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5k
b3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLWlmcmFtZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJh
bWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDcgKzM1LDcgQEAKICAgICAgICAgLy8gZm9yIG92ZXJsYXAgdGVzdGluZyB0byBraWNr
IGluLgogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwog
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3Zlcmxh
cHBlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw3IEBACiAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGlzIGRlbGF5IGlzIHJl
cXVpcmVkIGZvciBBcHBLaXQgdG8gbm90IHNob3J0LWNpcmN1aXQgdGhlIGRpc3BsYXkuCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlm
cmFtZXMuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9vdmVybGFwcGVkLW5lc3RlZC1pZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAwKTsKICAgICAg
ICAgICAvLyBGb3JjZSBhIHBhaW50LCBhbmQgZ2l2ZSBsYXllcnMgYSBjaGFuY2UgdG8gdXBkYXRl
LgogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Ny
b2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJib3RoIikuY29udGVudERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgi
dGFsbCIpOyAvLyB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3Zl
cmZsb3cgY29udHJvbHMgdmlzaWJsZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZp
c2libGUuCiAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9IGVsc2UKICAgICAgICAgd2luZG93
LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgNTAwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1pZnJhbWUuaHRtbAkocmV2aXNpb24g
MjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9zY3JvbGxpbmctaWZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8gRm9y
IHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hv
cnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50LWlmcmFtZScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oODAsIDgwKTsKICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpJbmRleDogTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tc3ViZnJhbWUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9m
aXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAyMDAw
KTsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxODAwKTsKICAgICB9CiAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKSW5kZXg6IExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXRyYW5z
Zm9ybWVkLXN1YmZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1l
cy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtZWQtc3ViZnJhbWUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAg
ewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAg
ICAgICAvLyBBbnkgc2Nyb2xsIHNob3VsZCBrZWVwIHRoZSBmaXhlZC1wb3NpdGlvbiBlbGVtZW50
IHdoZXJlIGl0IGlzLgogICAgICAgLy8gSWYgaXQgc3R1dHRlcnMgb3IgZGlzYXBwZWFycyBpbmNv
cnJlY3RseSwgdGhlbiB0aGUgcmVkIGJhY2tncm91bmQgd2lsbCBiZSByZXZlYWxlZC4KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdy
YW5kY2hpbGQtaW5uZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgLy8gU2Nyb2xsIHJlZCBib3ggb2ZmIHNjcmVlbiBh
bmQgc2Nyb2xsIGdyZWVuIGJveCBpbnRvIHNhbWUgcGxhY2UuCiAgICAgICB3aW5kb3cuc2Nyb2xs
VG8oMCwgNDAwKTsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2Fp
bnMtc2Nyb2xsYmFycy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWdhaW5zLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDksMTQgKzQ5LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvdGgiKS5jbGFzc0xpc3QuYWRkKCJ0YWxsIik7IC8vIHZl
cnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMKICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29ybmVyIikuY2xhc3NMaXN0LmFkZCgicmVzaXplV2lkZ2V0Iik7IC8vIGJvdHRvbSBk
aXYgZ2V0cyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBj
b21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRh
dGUuCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRl
eHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQog
fQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0
byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250
cm9scworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2Ug
Y29tcG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRz
IGFueSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxi
YXJzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L2NvbnRlbnQtbG9zZXMtc2Nyb2xsYmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
OSwxNCArNDksMTQgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYm90aCIpLmNsYXNzTGlzdC5yZW1vdmUoInRhbGwiKTsgLy8gdmVydGljYWwg
YW5kIGhvcml6b250YWwgc2Nyb2xsYmFycwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b3JuZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJyZXNpemVXaWRnZXQiKTsgLy8gYm90dG9tIGRpdiBs
b3NlcyBhIHJlc2l6ZSBjb3JuZXIgYnV0IG5vIHNjcm9sbGJhcnMKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEVuc3VyZSBjb21w
b3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0ZS4KKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUu
CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgfQogfQog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2UgY29tcG9zaXRvciBzdGF0ZSB0byBi
ZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFueSBvdmVyZmxvdyBjb250cm9s
cworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRm9yY2UgY29t
cG9zaXRvciBzdGF0ZSB0byBiZSB1cGRhdGVkIGJlZm9yZSB0aGUgY29udGFpbmVyIG5lZWRzIGFu
eSBvdmVyZmxvdyBjb250cm9scwogICAgIGZpbmlzaFRlc3QoKTsKIH0gZWxzZQogICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvb3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGlu
Zy1jb250ZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L2RvLW5vdC1wYWludC1vdXRsaW5lLWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctY29u
dGVudHMuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1j
b250ZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICB0ZXh0
YXJlYS5mb2N1cygpOwogICAgICAgdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5z
ZWxlY3Rpb25FbmQgPSAwOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRUZXN0
LCAxMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
b3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1sYXllcnMuaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZs
b3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBA
IHJlc2l6ZTogYm90aDsKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5z
dXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRW5zdXJlIGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBk
YXRlLgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllclRyZWUiKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiB9CiA8L3Njcmlw
dD4KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L3BhaW50LW5lZy16LW9y
ZGVyLWRlc2NlbmRhbnRzLWludG8tc2Nyb2xsaW5nLWNvbnRlbnRzLWxheWVyLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3Jk
ZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVn
LXotb3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgdGV4dGFyZWEuc2Nyb2xsVG9w
ID0gNDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKQEAgLTQ1LDcgKzQ1LDcgQEAKICAgICAgIHRleHRh
cmVhLmZvY3VzKCk7CiAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVhLnNl
bGVjdGlvbkVuZCA9IDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRlc3Qs
IDEwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9y
ZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFy
cy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVy
Zmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDcgKzYxLDcgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOyAvLyBQYWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xz
IHZpc2libGUuCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBQ
YWludCBvbmNlIHdpdGggYWxsIG92ZXJmbG93IGNvbnRyb2xzIHZpc2libGUuCiAgICAgZmluaXNo
VGVzdCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21w
b3NpdGluZy1hZGQtdGV4dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFu
Z2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWFkZC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAg
ICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIxMjMiOwogICAgICAgfQogCkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGlu
Zy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVy
bnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVy
IHRvIGJlY29tZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgYmcuaW5uZXJIVE1MID0gIjxzcGFuIHN0eWxlPVwib3BhY2l0eTowXCI+MTIzPC9zcGFu
PiI7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRl
cm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5
ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICBiZy5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9h
ZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Bh
dHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRtbAkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0
LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNSw3ICsxNSw3IEBACiAKICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGxheWVyIHRvIGJlY29t
ZSBiYWNrZ3JvdW5kIG9ubHkuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICB2
YXIgaW1nID0gbmV3IEltYWdlOwogICAgICAgICAgIGltZy5vbmxvYWQgPSBvbkJhY2tncm91bmRJ
bWFnZUxvYWQ7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC5odG1s
CShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9k
aXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1
LDcgKzE1LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJh
Y2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgd2luZG93
LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAgIHZhciBp
bWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAgaW1nLm9ubG9hZCA9IG9uQmFja2dyb3VuZEltYWdl
TG9hZDsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BsdWdpbnMvaW52YWxpZGF0ZV9y
ZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9p
bnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTcsMTAgKzE3LDEwIEBACiAKICAgICBmdW5jdGlvbiBvbkxvYWQoKQogICAgIHsKLSAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgcGFpbnRDb3VudCA9IDA7CiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdFBsdWdpbicpLmludmFsaWRhdGVSZWN0KDAsIDAsIDIwMCwgMjAwKTsKLSAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICBpZiAocGFpbnRDb3VudCA+IDApCiAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICJT
VUNDRVNTIjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25l
d2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLW9uLXNjcm9sbC5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNv
bXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYzLDExICs2MywxMSBA
QAogCiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDMwOwogICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDUwOwpJbmRleDogTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29t
cG9zaXRlZC1yZXBhaW50LXJlY3QuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBACiAgICAgICAgIC8vIEZvcmNlIER1bXBS
ZW5kZXJUcmVlIHRvIGRvIGEgbGF5b3V0IGFuZCByZXBhaW50IGhlcmUsIHRoaXMgaXMgd2hlcmUg
dGhlIHJlcGFpbnRSZWN0CiAgICAgICAgIC8vIGdvZXMgd3JvbmcgYmVjYXVzZSBpdCBkb2VzIG5v
dCBnZXQgdXBkYXRlZCBmb3IgYSBuZXdseSBjb21wb3NpdGVkIGVsZW1lbnQuCiAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgLy8gU2Nyb2xs
aW5nIGEgbGl0dGxlIHdpbGwgZGVtb25zdHJhdGUgd2hldGhlciB0aGUgcmVwYWludCByZWN0IGlz
IGNvcnJlY3Qgb3Igbm90LgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9w
YWdlLXNjYWxlLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVwYWludC9yZXF1aXJlcy1iYWNraW5nLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5o
dG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50
L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0
Myw3IEBACiAgICAgICAgICAgICBvdmVyZmxvdy5zY3JvbGxUb3AgPSA1MDsKIAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3cuc2Nyb2xsVG9wID0gNzU7CkluZGV4OiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9y
bS1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvcmVwYWludC90cmFuc2Zvcm0tc3R5bGUtY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIH0KIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZvcmNlIG9uZSBjb21w
b3NpdGUgd2l0aCBwcmVzZXJ2ZS0zZAorICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsgLy8gRm9yY2Ugb25lIGNvbXBvc2l0ZSB3aXRoIHByZXNlcnZlLTNkCiAgICAgdGVz
dCgpOwogfSBlbHNlCiAgICAgd2luZG93LnNldFRpbWVvdXQodGVzdCwgMCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0
aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXdpdGgt
Zml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUt
d2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsgLy8gRmx1
c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29t
cG9zaXRpbmctaWZyYW1lLXNjcm9sbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJh
bWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAog
ICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8v
IEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBv
c2l0aW5nIHJlcGFpbnRzLgogCiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5n
LWlmcmFtZS13aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRpbmct
aWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9z
aXRpbmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyBy
ZXBhaW50cy4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9ydGwvcnRsLW92ZXJmbG93LWludmFsaWRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3J0bC9ydGwtb3ZlcmZs
b3ctaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIDxz
Y3JpcHQ+CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkgewogICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGVzdCBw
YXNzZXMgaWYgdGhpcyBlbGVtZW50IGlzIHJlcGFpbnRlZCBjb3JyZWN0bHksIGV2ZW4KSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGluZy9odWdlLWxheWVyLXJl
c2l6ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy90
aWxpbmcvaHVnZS1sYXllci1yZXNpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMs
NyBAQAogICAgICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgYW5kIGEgcGFpbnQgdG8gbWFrZSBz
dXJlIHRoZSBjb21wb3NpdGluZyBsYXllcnMKICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB1cGRh
dGVkLgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlUHJlZml4ICsgd2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwogICAgICAgICB9CkluZGV4
OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8t
d2l0aC1pbnZhbGlkLXNvdXJjZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsNCiAgICAgdi5hcHBl
bmRDaGlsZChzcmMpOw0KICAgICBzcmMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlv
bigpIHsNCiAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQotICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7DQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOw0KICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBjcmFzaCBoZXJlLCB5
YXkhICBUZXN0IGlzIGEgc3VjY2Vzcw0KICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MiKSk7DQogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7DQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvd2Vi
Z2wvd2ViZ2wtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3dlYmdsL3dlYmdsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIGluaXQoKQogICBnbC5jbGVhckNvbG9yKDEsIDAs
IDAsIDEpOyAvLyByZWQKICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7CiAgICAgICBkcmF3R3JlZW4oKTsKICAgfSBlbHNlCkBAIC00Niw4ICs0
Niw4IEBAIGZ1bmN0aW9uIGRyYXdHcmVlbigpCiAgIGdsLmNsZWFyQ29sb3IoMCwgMSwgMCwgMSk7
IC8vIGdyZWVuCiAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwogICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwotICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgIH0gZWxz
ZQogICAgICAgd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY2FudmFzJykuY2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVyJyk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRp
b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUt
ZmlsdGVycy1pbnZhbGlkYXRpb24uaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCgpIHsK
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRy
dWUpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICBjaGFuZ2VCYWNrZ3JvdW5kKCk7CiB9IGVsc2UgCiAgICAg
d2luZG93LnNldFRpbWVvdXQoY2hhbmdlQmFja2dyb3VuZCwgMjUwKTsKSW5kZXg6IExheW91dFRl
c3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29s
dW1uLXJldmVyc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKICAgICAg
ICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZsZXggaXRlbXMgdGhhdCBhcmUgbW92
ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQgIgpJbmRleDogTGF5b3V0VGVzdHMv
Y3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1m
bGV4Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2NzczMvZmxleGJveC9y
ZXBhaW50LWR1cmluZy1yZXNpemUtbm8tZmxleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBAIGZ1bmN0aW9uIHJlc2l6ZUZsZXhJdGVtKCkgewogd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KAogICAgICAgICAgICAgIlRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gY2hhbmdpbmcgdGhl
IHNpemUgb2Ygb25lIGZsZXggaXRlbSBjaGFuZ2VzIHRoZSAiCkluZGV4OiBMYXlvdXRUZXN0cy9j
c3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sCShyZXZpc2lvbiAyMTYx
ODgpCisrKyBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9
CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2NzczMvZmxl
eGJveC9yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L3JlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L3JlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KICAgICB3aW5kb3cuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3Qu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZh
cy1kaXNwbGF5LWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICAg
ICAgICAgICAgZHJhd0NhbnZhcygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnb3V0cHV0JykudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMucmVwbGF5RGlzcGxheUxpc3RG
b3JFbGVtZW50KGNhbnZhcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3Vy
Y2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1w
LXRhcmdldC1kaXNwbGF5LWxpc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAg
ZnVuY3Rpb24gZG9UZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldEVsZW1lbnRVc2VzRGlzcGxh
eUxpc3REcmF3aW5nKHRhcmdldERpdiwgdHJ1ZSk7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKICAgICAgICAgdmFyIGRpc3BsYXlMaXN0ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9yRWxl
bWVudCh0YXJnZXREaXYpOwpJbmRleDogTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNl
cy9kdW1wLXRhcmdldC1yZXBsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9k
aXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCShyZXZpc2lv
biAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFy
Z2V0LXJlcGxheS1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0
aW9uIGRvVGVzdCgpCiAgICAgfQogICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAg
IHZhciBkaXNwbGF5TGlzdCA9IGludGVybmFscy5kaXNwbGF5TGlzdEZvckVsZW1lbnQodGFyZ2V0
RGl2KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1s
CShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTIsNyArMTIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogICAgICAgICB9LCA1MCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVu
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAg
ICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1kdXJpbmctbW9kYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcg
QEAgb25sb2FkID0gZnVuY3Rpb24oKQogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsK
ICAgICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeycgKwotICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOycgKworICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsnICsKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuY2xvc2UoKTsnICsKICAg
ICAgICAgICAgICAgJ30gZWxzZSB7JysKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuc2V0VGlt
ZW91dCh3aW5kb3cuY2xvc2UsIDEwKTsnKwpAQCAtMjMsNyArMjMsNyBAQCBvbmxvYWQgPSBmdW5j
dGlvbigpCiAgICAgc2hvd01vZGFsRGlhbG9nKCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PicgKyBz
cmMgKyAnPC8nICsgJ3NjcmlwdD4nKTsKICAgICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2RhbCBk
aWFsb2cnKTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAK
ICAgICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRvQ2hlY2tSZXN1bHQoKQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvRGlzcGxheSgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIH0KICAgICAKICAgICAgICAgZnVu
Y3Rpb24gZG9DaGVja1Jlc3VsdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtY2FuY2VsMi5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bDIuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgc2Vjb25kQ2FsbGJhY2tJZCA9
IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aQogfSwgZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVGYWxz
ZSgiY2FsbGJhY2tGaXJlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtY2FuY2VsLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1CiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1
bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewogICAgIHNob3VsZEJlRmFsc2UoImNhbGxiYWNrRmlyZWQiKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNh
YmxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogfSk7CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
ICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tJbnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtcHJlZml4
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanMJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1wcmVmaXguanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwxMiBAQCB3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiAKICAgICBidXN5V2FpdCgxMCk7
CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXRpbWUtdW5pdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11
bml0LmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yMCwxMiArMjAsMTIgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShm
dW5jdGlvbih0aQogICAgICAgICB9KTsKIAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9LCAxKTsKIH0pOwogCiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1h
ZHZhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDExICsyMSwxMSBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmN0aW9uKHRpCiAgICAgfSk7CiAgICAgYnVzeVdhaXQoMTApOwogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0pOwogCiAKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICB9KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aW1lc3RhbXBzLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0
YW1wcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpCiB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtd2l0aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTAgQEAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogCiAvLyBUaGlzIHNob3Vs
ZCBmaXJlIHRoZSB0aHJlZSBhbHJlYWR5IHJlZ2lzdGVyZWQgY2FsbGJhY2tzLCBidXQgbm90IHRo
ZSBvbmUgZHluYW1pY2FsbHkgcmVnaXN0ZXJlZC4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAvLyBUaGlzIHNob3VsZCBmaXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3RlcmVk
IGNhbGxiYWNrLgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgCiB9LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZVRy
dWUoImNhbGxiYWNrSW52b2tlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5k
cy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dy
b3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxk
LXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3
IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5k
cy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGls
ZC1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNo
aWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxk
cmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGls
ZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJlc3Rv
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlk
LWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgPC9kaXY+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldCwgMSk7CiAgICAgPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1hZ2UtaW5jcmVtZW50YWwtcmVw
YWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1h
cy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgIGNhbnZhc0NvbnRl
eHQgPSBkb2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJzcXVhcmVzIiwgMzAwLCAz
MDApOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICByZXBhaW50VGVzdCgp
OwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZSB7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVu
dGFsLXJlcGFpbnQtMi5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDcgKzIxLDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRt
bAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWlu
Y3JlbWVudGFsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAog
ICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICAgICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LXJlc2l6ZS1hZnRlci1wYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKIH0K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8v
IEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhh
dmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZhcy4KKyAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3
aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhl
IGNhbnZhcy4KICAgICByZXNpemUoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJl
c2l6ZSwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWlu
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVw
YWludC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVz
b3VyY2VzL3JlcGFpbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGZ1bmN0aW9u
IHJ1blJlcGFpbnRUZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
IHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2V0VGltZW91dChyZXBhaW50
VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9j
YW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0Vu
YWJsZWQtcmVwYWludC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5q
cwkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCB2YXIgZHJhd0l0ZXJhdGlvbnMgPSAy
OwogZnVuY3Rpb24gVGVzdENvbnRyb2xsZXJQYWludCgpIHsKICAgICB3aGlsZSAoZHJhd0l0ZXJh
dGlvbnMgPiAwKSB7CiAgICAgICAgIGRyYXcoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgZHJhd0l0ZXJhdGlvbnMgPSBkcmF3SXRlcmF0aW9ucyAtIDE7CiAgICAgfQogICAgIGRyYXco
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3Qu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
Y2FudmFzLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGlmICgh
Z2wpIHsKICAgdmFyIGludGVydmFsSWQ7CiAgIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2
YWwoZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgaWYgKGNhbnZhcy5jbGllbnRXaWR0aCA9PSAxMDAgJiYKICAgICAgICAgY2FudmFz
LmNsaWVudEhlaWdodCA9PSAyNSkgewogICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2
YWxJZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11
cGRhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1sYXllci11cGRhdGUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBkYXRlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYsNyArNiw3IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdj
YW52YXMnKVswXS5zdHlsZS50b3AgPSAiNjBweCI7CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBj
dHguY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsKIGN0eC5jbGVhcihjdHguQ09MT1JfQlVGRkVSX0JJ
VCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkb3N0eWxlLWFu
b255bW91cy10ZXh0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNl
dWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwog
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQt
YmxvY2stY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwJ
KHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1l
c3NhZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUocG9zdE1lc3NhZ2UpOwogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dlYi10aW1pbmctbWluaW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFs
LXBlcmZvcm1hbmNlLW5vdy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsgfQogICAgICAgICAsIDEwMCk7CiAKLSAgICB3aW5kb3cudGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIH0KIAogb25sb2FkID0gc3RhcnQoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCShyZXZpc2lv
biAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY29udGFpbmluZy1ibG9jay1j
aGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMyArMywxMyBAQAogICAgIHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndCcpOwogICAgICAgICB0LnN0eWxl
LnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICB0Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZCh0Lmxh
c3RDaGlsZC5sYXN0Q2hpbGQpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1uby1sb25nZXIt
cGFnaW5hdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xh
eWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5
KDEsIDApOwogCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgICAgICAgIHRlc3QoKTsKICAgICAgICAgfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNl
bC5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS9wYWQtZ2VzdHVyZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5
LDcgQEAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIu
Z2VzdHVyZUZsaW5nU3RhcnQpIHsKICAgICBldmVudFNlbmRlci5nZXN0dXJlRmxpbmdTdGFydCgx
MCwgMTEsIDEwMDAsIDEwMDApOwogICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ0NhbmNlbCgp
OwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2Vz
dHVyZS1mbGluZy5qcwkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MTgsOSArMTgsOSBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgCiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmV2
ZW50U2VuZGVyLmdlc3R1cmVGbGluZ1N0YXJ0KSB7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUZs
aW5nU3RhcnQoMTAsIDExLCAxMDAwLCAxMDAwKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
LSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2hpZGRlbi1saXN0Ym94Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogPC9zY3JpcHQ+CiBUaGlzIHRlc3RzIHRoYXQgdGhlIHdob2xlIGxpc3Rib3ggY29u
dHJvbCBpcyBoaWRkZW4gd2hlbiB2aXNpYmlsaXR5IGlzIHNldCB0byBoaWRkZW4uCiA8YnI+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHJldmlzaW9uIDIx
NjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICA8L3NlbGVjdD4KICAgICA8c2NyaXB0Pgog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQu
aHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5l
LW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGRjb250LmFwcGVuZENoaWxkKGUpOwogICAg
IAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAog
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3Jv
bGxiYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3Bh
cmVudC1zY3JvbGxiYXIuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDEzICsyMywxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiAKICAgICB3
aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3AgPSAyMDAwOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiAgICAgICAgIH0KICAgICB9LCAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Fu
aW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWwJKHJl
dmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tn
cm91bmQtaW1hZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAog
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUuZGlzcGxheT0i
bm9uZSI7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAg
IHNldFRpbWVvdXQoInN0ZXAyKCkiLCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXll
cnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJ
KHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2FkZC1sYXllci13
aXRoLW5lc3RlZC1zdGFja2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBA
CiAgICAgICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7
CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9pbmxpbmUt
ZGlydHktei1vcmRlci1saXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAKIAogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1lb3V0
KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12
aXNpYmlsaXR5LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNo
YW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgfQogICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
LSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAg
ICBzZXRUaW1lb3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVz
dGVkLWxheWVycy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMv
bmVzdGVkLWxheWVycy0xLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVy
cy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ewogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBmaW5pc2goKTsK
ICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVy
cy00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy00Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJz
L25lc3RlZC1sYXllcnMtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXIt
d2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgVGhlIHNxdWFyZSBzaG91bGQgYmUgYSB1bmlm
b3JtIHNoYWRlIG9mIAogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwogICAgIGVsc2Ugewog
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgdGVzdCgpOwogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9v
dmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRtbAkocmV2aXNp
b24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFy
LXJlc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdHMg
dGhhdCB0aGUgc2Nyb2xsYmFyIGFuZCByZXNpemUgY29ybmVyIGFyZSBub3QgdmlzaWJsZSBvbiBh
biBlbGVtZW50IHRoYXQgaGFzIHZpc2liaWxpdHk6aGlkZGVuLgogPGRpdiBzdHlsZT0ib3ZlcmZs
b3c6IGF1dG87IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDcwcHg7IHJlc2l6ZTogYm90aDsgdmlzaWJp
bGl0eTogaGlkZGVuIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvaW5saW5l
LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9p
bmxpbmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZWZsZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcg
QEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgfQogICAgICAgICBzZXRUaW1lb3V0KGNoYW5nZUNvbG9yLCAwKTsKICAgICB9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNjcm9s
bC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24t
YWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTgsNyArOCw3IEBACiAgICAgewogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2Nyb2xsZXInKS5zY3JvbGxUb3AgPSA4MDA7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAg
ICAgc2V0VGltZW91dChsb2dSZXBhaW50cywgMjAwKTsKICAgICB9CkBAIC0yNSw3ICsyNSw3IEBA
CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgIHNldFRpbWVvdXQoc3RhcnRUcmFja2luZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3Jh
ZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdo
dC1jaGFuZ2VzLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hhbmdl
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkg
ewogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRU
cmFja2luZ1JlcGFpbnRzKCk7Ci0gICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB9CiAKIGZ1bmN0
aW9uIGxvZ1JlcGFpbnRzKCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVk
LWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9u
IDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1tb3ZlLWFm
dGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAg
IHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRl
ci1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4
ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTg4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW9mLWZpeGVkLW1vdmUt
YWZ0ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAg
ICAgc2Nyb2xsQnkoMCwgMjAwKTsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1t
b3ZlLWFmdGVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQt
b2YtdHJhbnNmb3JtZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Nyw3ICs3LDcgQEAKICAgICAgICAgICBzY3JvbGxCeSgwLCAyMDApOwogICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWlu
dFRlc3QoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgc2V0VGltZW91dChy
ZXBhaW50VGVzdCwgMTUpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1v
dmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2ZpeGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmll
d3BvcnQtc3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1lLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwog
ICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwyMDApOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICBzZXRUaW1lb3V0KHRlc3RBZnRlclNjcm9sbCwgMjAwKTsKICAgICB9CiAKQEAgLTIyLDcg
KzIyLDcgQEAKIAogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cygpOwogICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgc2V0VGltZW91dCh0ZXN0QWZ0ZXJTY3JvbGxCYWNrLCAyMDApOwogICAgIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdw
b3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1h
dGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQAogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRz
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNldFRpbWVvdXQobG9nUmVwYWludHMs
IDIwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lvbiAy
MTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1u
by1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAKICAgICB7CiAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBz
ZXRUaW1lb3V0KGxvZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L292ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlk
ZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhp
ZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAw
OwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0
LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlbmRlcmVy
LWRlc3RydWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52
YWxpZGF0ZVNlbGVjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVj
dGlvbi1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgPGRp
dj48L2Rpdj4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwt
d2l0aC16b29tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jl
cGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICAgICAgICAgIHRlc3RTY3JvbGxSZXBhaW50KCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGxSZXBhaW50LCAxMDApOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3RhYmxlLW92ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRk
ZW4tc2Nyb2xsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGFibGUtb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShy
ZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZs
b3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAg
ICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9s
bC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVz
b3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCShyZXZp
c2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVk
LW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgICAgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVw
YWludC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
cmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2
MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9pZnJhbWUtc2Nyb2xs
LXJlcGFpbnQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKIAogd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3AgPSAyMDsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1m
bG9hdHMuanMJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9y
ZXNvdXJjZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3
ICsxNCw3IEBAIGZ1bmN0aW9uIGJlZ2luVGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICB0ZXN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5jb250
ZW50RG9jdW1lbnQpOwogICAgIH0gZWxzZSBzZXRUaW1lb3V0KAogICAgICAgICBmdW5jdGlvbigp
IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQu
anMJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJj
ZXMvcmVwYWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gcnVu
UmVwYWludFRlc3QoKQogICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQp
CiAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0VG9wOwogCi0gICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvcmVwbGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAko
cmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBl
cmNlbnQtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5
b3V0RW5hYmxlZChmYWxzZSk7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
PC9zY3JpcHQ+CiAKIFRoZSB0ZXh0YXJlYXMgYmVsb3cgc2hvdWxkIG5vdCBvdmVybGFwLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFy
LXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVzdC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgd2lu
ZG93LmludGVybmFscy5hZGRUZXh0TWF0Y2hNYXJrZXIocmFuZ2UsIHRydWUpOwogICAgIH0KICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh3aW5k
b3cuaW5uZXJXaWR0aCAtIDEsIHdpbmRvdy5pbm5lckhlaWdodCAtIDEpOwogICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHkt
c2VjdGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUv
ZW1wdHktc2VjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Niw3ICs2LDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgLyogU2luY2UgdGhlIGNyYXNoIGhh
cHBlbnMgaW4gcGFpbnRpbmcgY29kZSwgZm9yY2UgcGFpbnRpbmcuIFRoaXMKICAgICAgICAgICAg
ICAgIG1ha2VzIHRoZSB0ZXN0IHdvcmsgZXZlbiB3aGVuIHJ1biB3aXRob3V0IHRoZSAtLXBpeGVs
IG9wdGlvbi4gKi8KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5o
dG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1j
b2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBAIENvbGxhcHNlZCBib3JkZXJzIHNob3VsZCBub3QgZGlzYXBwZWFyLgogICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAgICAg
ICByb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm93MScpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2Nh
Y2hlZC1jZWxsLWFwcGVuZC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgYXBwZW5kIG5ldyBjZWxsLCBleHBl
Y3QgdGhhdCBjYWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgICAgICAgIG5ld0NlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwog
ICAgICAgICAgICAgICAgIG5ld0NlbGwuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0gIjZweCI7CiAg
ICAgICAgICAgICAgICAgbmV3Q2VsbC5zdHlsZS5ib3JkZXJMZWZ0U3R5bGUgPSAic29saWQiOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2Vs
bC1yZW1vdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJl
bW92ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgcmVtb3Zl
IGNlbGwsIGV4cGVjdCB0aGF0IGNhY2hlIGkKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGJhckNlbGwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYmFyIik7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJvdyIpLnJlbW92ZUNoaWxkKGJhckNlbGwpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9y
ZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlz
aW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcv
Y2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNlbGwgYm9yZGVyIGNvbG9yLCBleHBlY3QKICAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJsaW1l
IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lk
dGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2
MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNlbGwtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEw
LDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY2VsbCBib3JkZXIgd2lkdGgsIGV4cGVjdAogICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2lu
Zy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE4
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNo
YW5nZS1jZWxsLXNsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsx
Miw3IEBAIEhlcmUgd2U6CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGV4dCwgdGhpcyByZXF1ZXN0cyBsYXlvdXQg
Zm9yIERJViwKICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBzaW1wbGlmaWVkIGxheW91dCBm
b3IgVEFCTEUKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvY2tE
aXYiKS5pbm5lclRleHQgPSAiIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hh
bmdlLWNvbC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXIt
Y29sb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5n
ZSBjb2wgYm9yZGVyIGNvbG9yLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29sIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wt
Ym9yZGVyLXdpZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
dGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY29sIGJv
cmRlciB3aWR0aCwgZXhwZWN0IAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbCIpLnN0
eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1i
b3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90
YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xv
ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNv
bGdyb3VwIGJvcmRlciBjb2xvciwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xn
cm91cCIpLnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS1jb2xncm91cC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3Vw
LWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUg
d2UgY2hhbmdlIGNvbGdyb3VwIGJvcmRlciB3aWR0aCwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb2xncm91cCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
aGFuZ2Utcm93LWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRl
ci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hh
bmdlIHJvdyBib3JkZXIgY29sb3IsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyb3ciKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAg
ICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJv
dy1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGgu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSByb3cg
Ym9yZGVyIHdpZHRoLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm93Iiku
c3R5bGUuYm9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hl
ZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRl
ci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUgYm9y
ZGVyIGNvbG9yLCBleHBlYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0eWxl
LmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXIt
d2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRhYmxlIGJvcmRl
ciB3aWR0aCwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YmwiKS5zdHlsZS5i
b3JkZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9y
Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgY29s
b3IsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3Jk
ZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdpZHRo
Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVy
LWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgd2lk
dGgsIGV4cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3Jk
ZXJXaWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkK
KysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNiw1ICs2LDUgQEAKIDxzY3JpcHQ+CiAgICAgLy8gTWFrZXMgdGhlIHJlbmRlcmluZyBj
b2RlIHJ1biBldmVuIHdoZW4gbm90IHJ1bm5pbmcgYXMgYSBwaXhlbCB0ZXN0LgogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1
ZS5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1z
aGFkb3ctZXh0cmVtZS12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFy
ZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91
dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1nbHlw
aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGJvZHkgewogPHNjcmlwdD4K
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIC8vIEZvcmNlIGxheW91dC4KLSAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRp
bmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwog
CiAvLyBSZXBhaW50IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZSBhcnJpdmVkCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisr
KyBMYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEyLDcgKzEyLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICB2YXIg
Y291bnQgPSAzOwogICAgIHZhciBhdWRpb0VsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2F1ZGlvJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVu
dC1hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtZG9jdW1lbnQtYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxODgpCisrKyBMYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgewogICAgICAgICB2YXIgdmlkZW9FbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyIikuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInZpZGVvIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICB2aWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPSB2aWRl
b0VsZW1lbnQuZHVyYXRpb24gKiAwLjUwOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvc2Ny
b2xsYmFycy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNo
Lmh0bWwJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xs
YmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsx
MSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiB9OwogPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0cm9rZS11cGRhdGUuc3Zn
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vbm9uLXNjYWxpbmctc3Ryb2tl
LXVwZGF0ZS5zdmcJKHJldmlzaW9uIDIxNjE4OCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20v
bm9uLXNjYWxpbmctc3Ryb2tlLXVwZGF0ZS5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3
IEBACiAKICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAg
IHNldFRpbWVvdXQocnVuVGVzdCwgMCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdGFsZS1yZXNvdXJjZS1kYXRhLWNyYXNoLnN2ZwkocmV2
aXNpb24gMjE2MTg4KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdGFsZS1yZXNvdXJjZS1k
YXRhLWNyYXNoLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQAogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAg
ICAvLyBGb3JjZSBhIHBhaW50IGF0IHRoaXMgcG9pbnQgdG8gZ2VuZXJhdGUgY2FjaGVkIGZpbHRl
ciByZXN1bHRzLgotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQogCiAgICAgZG9jRWxlbWVudC5hcHBl
bmRDaGlsZChuZXdEZWZzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309067</attachid>
            <date>2017-05-04 11:17:47 -0700</date>
            <delta_ts>2017-05-04 14:46:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171641-20170504111746.patch</filename>
            <type>text/plain</type>
            <size>120246</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjE5NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFRlc3RSdW5uZXIuZGlzcGxheSgpIHRvIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwbGFuIGlzIHRvIGFkZCBiYWNrIHRoZSBUZXN0
UnVubmVyLmRpc3BsYXkoKSB3aGljaCBkb2VzIHRoZSBkaXNwbGF5CisgICAgICAgIG9ubHkgd2l0
aG91dCB0cmFjayByZXBhaW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChkaXNwbGF5Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChkaXNwbGF5V2ViVmlldyk6
CisgICAgICAgIChkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6
IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWludHMpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6ZGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDE3LTA1LTA0ICBDYWlvIExpbWEg
IDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBBZGRpbmcgc2Vs
ZiB0byBjb250cmlidXRvcnMuanNvbgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS5oCShyZXZpc2lvbiAyMTYxOTQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGV4dGVybiBSZWZQdHI8
VGVzdFJ1bm5lcj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2Vi
VmlldygpOwordm9pZCBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c1dlYlZpZXcoKTsKIAogc3RydWN0
IFRlc3RDb21tYW5kIHsKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjE2MTk0KQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxNCwyMiArNTE0LDEx
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXEKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGRp
c3BsYXlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1
ZVJlZiBkaXNwbGF5QW5kVHJhY2tSZXBhaW50c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgogICAg
IFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmpl
Y3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7Ci0K
LSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KLXN0YXRpYyBK
U1ZhbHVlUmVmIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKLXsKLSAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlv
bgotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICAvLyBUZXN0UnVubmVyOjpkaXNw
bGF5KCkgb25seSByZW5kZXJzIHRoZSBpbnZhbGlkYXRlZCByZWdpb24gc28KLSAgICAvLyB3ZSBj
YW4ganVzdCB1c2UgdGhhdC4KLSAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7CisgICAgY29udHJv
bGxlci0+ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KQEAgLTIxMTEsOCArMjEwMCw3IEBAIEpTU3RhdGljRnVu
Y3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAiZGVjb2RlSG9zdE5hbWUi
LCBkZWNvZGVIb3N0TmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc2FsbG93SW5j
cmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEiLCBkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGlj
YXRpb25DYWNoZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzcGF0Y2hQZW5k
aW5nTG9hZFJlcXVlc3RzIiwgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKLSAgICAgICAgeyAiZGlzcGxheSIsIGRpc3BsYXlDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAg
ICAgICB7ICJkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdp
b25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJkaXNwbGF5QW5kVHJhY2tSZXBhaW50cyIs
IGRpc3BsYXlBbmRUcmFja1JlcGFpbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVt
cEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyIsIGR1bXBBcHBsaWNhdGlvbkNhY2hl
RGVsZWdhdGVDYWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQXNUZXh0
IiwgZHVtcEFzVGV4dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2Fy
ZExpc3QiLCBkdW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmgJKHJldmlzaW9uIDIxNjE5NCkKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksNyBAQCBwdWJs
aWM6CiAgICAgSlNTdHJpbmdSZWYgY29weURlY29kZWRIb3N0TmFtZShKU1N0cmluZ1JlZiBuYW1l
KTsKICAgICBKU1N0cmluZ1JlZiBjb3B5RW5jb2RlZEhvc3ROYW1lKEpTU3RyaW5nUmVmIG5hbWUp
OwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7Ci0gICAgdm9pZCBkaXNw
bGF5KCk7Ci0gICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICB2b2lkIGRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1Jl
ZiBuYW1lLCBKU1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgYm9vbCBmaW5kU3RyaW5nKEpTQ29udGV4
dFJlZiwgSlNTdHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSk7CiAgICAgdm9pZCBn
b0JhY2soKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0JKHJldmlzaW9uIDIxNjE5NCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA5OCwxMCArMjA5OCw2IEBAIHZvaWQgZGlz
cGxheVdlYlZpZXcoKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9
IFttYWluRnJhbWUgd2ViVmlld107CiAgICAgW3dlYlZpZXcgZGlzcGxheV07Ci0KLSAgICAvLyBG
SVhNRTogVHJhY2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRvIE1hYy4gV2Ugc2hvdWxk
IGVuYWJsZSBzdWNoIHN1cHBvcnQgb24gaU9TLgotICAgIFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFp
bnRzOllFU107Ci0gICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOwogI2Vsc2UKICAg
ICBbZ0RydFdpbmRvdyBsYXlvdXRUaWxlc05vd107CiAgICAgW2dEcnRXaW5kb3cgc2V0TmVlZHNE
aXNwbGF5SW5SZWN0OltnRHJ0V2luZG93IGZyYW1lXV07CkBAIC0yMTA5LDYgKzIxMDUsMTcgQEAg
dm9pZCBkaXNwbGF5V2ViVmlldygpCiAjZW5kaWYKIH0KIAordm9pZCBkaXNwbGF5QW5kVHJhY2tS
ZXBhaW50c1dlYlZpZXcoKQoreworICAgIGRpc3BsYXlXZWJWaWV3KCk7CisjaWYgIVBMQVRGT1JN
KElPUykKKyAgICAvLyBGSVhNRTogVHJhY2tpbmcgcmVwYWludHMgaXMgbm90IHNwZWNpZmljIHRv
IE1hYy4gV2Ugc2hvdWxkIGVuYWJsZSBzdWNoIHN1cHBvcnQgb24gaU9TLgorICAgIFdlYlZpZXcg
KndlYlZpZXcgPSBbbWFpbkZyYW1lIHdlYlZpZXddOworICAgIFt3ZWJWaWV3IHNldFRyYWNrc1Jl
cGFpbnRzOllFU107CisgICAgW3dlYlZpZXcgcmVzZXRUcmFja2VkUmVwYWludHNdOworI2VuZGlm
Cit9CisKICNpZiAhUExBVEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVl
RXZlbnQKIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0J
KHJldmlzaW9uIDIxNjE5NCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsOSArMjUwLDkgQEAgSlNTdHJpbmdSZWYgVGVz
dFJ1bm5lcjo6Y29weUVuY29kZWRIb3N0TgogICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhD
RlN0cmluZygoQ0ZTdHJpbmdSZWYpW25hbWVOUyBfd2ViX2VuY29kZUhvc3ROYW1lXSk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RSdW5uZXI6OmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCkKIHsKLSAgICBkaXNwbGF5V2ViVmlldygpOworICAgIGRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzV2ViVmlldygpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmtlZXBXZWJIaXN0
b3J5KCkKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJ
KHJldmlzaW9uIDIxNjE5NCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVy
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI0LDcgKzIyNCw3IEBAIEpTU3RyaW5nUmVmIFRl
c3RSdW5uZXI6OmNvcHlFbmNvZGVkSG9zdE4KICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBUZXN0
UnVubmVyOjpkaXNwbGF5KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKQogewogICAgIGRpc3BsYXlXZWJWaWV3KCk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9u
IDIxNjE5NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBKU0NsYXNzUmVmIFRl
c3RSdW5uZXI6OndyYXBwZXJDbGFzcygpCiAgICAgcmV0dXJuIEpTVGVzdFJ1bm5lcjo6dGVzdFJ1
bm5lckNsYXNzKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6ZGlzcGxheSgpCit2b2lkIFRlc3RS
dW5uZXI6OmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYg
cGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKICAgICBX
S0J1bmRsZVBhZ2VGb3JjZVJlcGFpbnQocGFnZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjE2MTk0
KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0MCw4ICsxNDAsOCBAQCBwdWJsaWM6CiAgICAgLy8gUmVwYWlu
dCB0ZXN0aW5nLgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFpbnQgPSB0cnVl
OyB9CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRT
d2VlcEhvcml6b250YWxseSA9IHRydWU7IH0KLSAgICB2b2lkIGRpc3BsYXkoKTsKLSAgICAKKyAg
ICB2b2lkIGRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisKICAgICAvLyBVc2VyQ29udGVudCB0
ZXN0aW5nLgogICAgIHZvaWQgYWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wg
cnVuQXRTdGFydCwgYm9vbCBhbGxGcmFtZXMpOwogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQo
SlNTdHJpbmdSZWYgc291cmNlLCBib29sIGFsbEZyYW1lcyk7CkluZGV4OiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwJKHJldmlzaW9uIDIxNjE5NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTk4LDcgKzk4LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIFJlcGFpbnQgdGVz
dGluZy4KICAgICB2b2lkIHRlc3RSZXBhaW50KCk7CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jp
em9udGFsbHkoKTsKLSAgICB2b2lkIGRpc3BsYXkoKTsKKyAgICB2b2lkIGRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCk7CiAKICAgICAvLyBQcmludGluZwogICAgIGJvb2xlYW4gaXNQYWdlQm94Vmlz
aWJsZShsb25nIHBhZ2VJbmRleCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxODAgQEAKKzIwMTct
MDUtMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW5hbWUgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpIHRvIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBhbGwgdGhlIGNhbGxzIHRvIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKSBieSB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFj
a1JlcGFpbnRzKCkKKyAgICAgICAgUmVwbGFjZSBhbGwgdGhlIGNhbGxzIHRvIHRlc3RSdW5uZXIu
ZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCkgYnkKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpIHNpbmNlIHRoZSBmb3JtZXIgaXMgYSBjb3B5IG9mIHRoZSBsYXRl
ci4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZm9yZWdyb3VuZC1vZmZzZXQtY2hhbmdlLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91bmRzLXRyYW5zZm9ybWVk
LW92ZXJmbG93Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9iZWNvbWUtY29t
cG9zaXRlZC1uZXN0ZWQtaWZyYW1lcy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFt
ZXMvYmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS1kZWxheWVkLmh0bWw6CisgICAgICAg
ICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sOgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUy
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5n
LWlmcmFtZTMuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2VudGVyLWNvbXBv
c2l0aW5nLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1l
LWNvbnRlbnQtZmxpcHBpbmcuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2lm
cmFtZS1yZXNpemUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1z
aXplLXRvLXplcm8uaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1z
cmMtY2hhbmdlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9pbnZpc2libGUt
bmVzdGVkLWlmcmFtZS1oaWRlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9p
bnZpc2libGUtbmVzdGVkLWlmcmFtZS1zaG93Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcv
aWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLWlmcmFtZS5odG1sOgorICAgICAgICAqIGNv
bXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBjb21w
b3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbDoKKyAgICAgICAg
KiBjb21wb3NpdGluZy9pZnJhbWVzL3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlv
bi1zdWJmcmFtZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2Vz
L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybWVkLXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogY29t
cG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sOgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMvc2Nyb2xsaW5nLWlmcmFtZS5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtbG9zZXMtc2Nyb2xsYmFy
cy5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2RvLW5vdC1wYWludC1vdXRs
aW5lLWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctY29udGVudHMuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9vdmVyZmxvdy9vdmVyZmxvdy1zY3JvbGxiYXItbGF5ZXJzLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXotb3JkZXItZGVzY2VuZGFudHMt
aW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9vdmVyZmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWw6CisgICAgICAg
ICogY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRl
eHQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3Qt
cGF0dGVybi1jb21wb3NpdGluZy1hZGQtdGV4dC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5n
L3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS1leHBlY3RlZC5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWNoYW5nZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1w
YXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbDoKKyAgICAgICAg
KiBjb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0aC1maXhl
ZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVw
YWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS1zY3JvbGwtcmVwYWludC5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGluZy1pZnJhbWUtd2l0
aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRp
bmcvcmVwYWludC9uZXdseS1jb21wb3NpdGVkLW9uLXNjcm9sbC5odG1sOgorICAgICAgICAqIGNv
bXBvc2l0aW5nL3JlcGFpbnQvbmV3bHktY29tcG9zaXRlZC1yZXBhaW50LXJlY3QuaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9yZXBhaW50L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL3JlcGFpbnQvcmVxdWlyZXMtYmFja2luZy1yZXBhaW50Lmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC90cmFuc2Zvcm0tc3R5bGUtY2hhbmdlLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcnRsL3J0bC1vdmVyZmxvdy1pbnZhbGlkYXRpb24u
aHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zY3JvbGwtcGFpbnRlZC1jb21wb3NpdGVkLWNv
bnRlbnQuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy90aWxpbmcvaHVnZS1sYXllci1yZXNp
emUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy92aWRlby1wYWdlLXZpc2liaWxpdHkuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy92aWRlby92aWRlby13aXRoLWludmFsaWQtc291cmNl
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sOgor
ICAgICAgICAqIGNzczMvZmlsdGVycy9tdWx0aXBsZS1maWx0ZXJzLWludmFsaWRhdGlvbi5odG1s
OgorICAgICAgICAqIGNzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWw6Cisg
ICAgICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWw6
CisgICAgICAgICogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sOgorICAgICAg
ICAqIGNzczMvZmxleGJveC9yZXBhaW50Lmh0bWw6CisgICAgICAgICogZGlzcGxheWxpc3RzL2Nh
bnZhcy1kaXNwbGF5LWxpc3QuaHRtbDoKKyAgICAgICAgKiBkaXNwbGF5bGlzdHMvcmVzb3VyY2Vz
L2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qczoKKyAgICAgICAgKGRvVGVzdCk6CisgICAgICAg
ICogZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdldC1yZXBsYXktbGlzdC5qczoKKyAg
ICAgICAgKGRvVGVzdCk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1p
ZnJhbWUyLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qczoKKyAgICAgICAg
KiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlz
YWJsZWQuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXByZWZpeC5qczoKKyAgICAgICAgKHdpbmRvdy53ZWJraXRSZXF1ZXN0
QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAod2luZG93LnRlc3RSdW5uZXIud2luZG93LnNldFRp
bWVvdXQpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS10aW1lLXVuaXQuanM6CisgICAgICAgICh3aW5kb3cucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzOgorICAgICAgICAod2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICh3aW5kb3cudGVzdFJ1bm5lci53aW5k
b3cuc2V0VGltZW91dCk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanM6CisgICAgICAgICogZmFzdC9hbmlt
YXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFj
ay5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUuanM6CisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNr
Z3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3Qv
YmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5o
dG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1y
ZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJl
cGFpbnQtMi5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1y
ZXBhaW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1w
YWludC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3Jlc291cmNlcy9yZXBhaW50LmpzOgor
ICAgICAgICAocnVuUmVwYWludFRlc3QpOgorICAgICAgICAqIGZhc3QvY2FudmFzL3NjcmlwdC10
ZXN0cy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanM6CisgICAgICAgIChU
ZXN0Q29udHJvbGxlclBhaW50KToKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMt
dGVzdC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsLWxheWVyLXVwZGF0
ZS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3BzZXVkb3N0eWxlLWFub255bW91cy10ZXh0Lmh0
bWw6CisgICAgICAgICogZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNl
LW5vdy5odG1sOgorICAgICAgICAqIGZhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5n
ZS5odG1sOgorICAgICAgICAqIGZhc3QvZHluYW1pYy9sYXllci1uby1sb25nZXItcGFnaW5hdGVk
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1j
YW5jZWwuanM6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVy
ZS1mbGluZy5qczoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2hpZGRlbi1saXN0Ym94Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9saXN0Ym94LWNsaXAuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zy
YW1lcy9pbmxpbmUtb2JqZWN0LWluc2lkZS1mcmFtZXNldC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZnJhbWVzL3RyYW5zcGFyZW50LXNjcm9sbGJhci5odG1sOgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2FuaW1hdGVkLWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2xh
eWVycy9hZGQtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2xheWVycy9pbmxpbmUtZGlydHktei1vcmRlci1saXN0cy5odG1sOgorICAgICAgICAqIGZhc3Qv
bGF5ZXJzL2xheWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9u
ZXN0ZWQtbGF5ZXJzLTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJz
LTMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRt
bDoKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L2hpZGRlbi1zY3JvbGxiYXItcmVzaXplLmh0bWw6
CisgICAgICAgICogZmFzdC9yZWZsZWN0aW9ucy9pbmxpbmUtY3Jhc2guaHRtbDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNjcm9sbC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFuZC1o
ZWlnaHQtY2hhbmdlcy5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1jaGlsZC1t
b3ZlLWFmdGVyLXNjcm9sbC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1jaGls
ZC1vZi1maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC1zdWJmcmFtZS5o
dG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9y
dC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9vYnNjdXJlZC1iYWNrZ3JvdW5kLW5vLXJl
cGFpbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92
ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZW5k
ZXJlci1kZXN0cnVjdGlvbi1ieS1pbnZhbGlkYXRlU2VsZWN0aW9uLWNyYXNoLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbDoK
KyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9h
cmQtc2Nyb2xsLWlmcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9yZXNvdXJjZXMv
aWZyYW1lLXNjcm9sbC1yZXBhaW50LWlmcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC9yZXNvdXJjZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpzOgorICAgICAgICAoYmVnaW5UZXN0
KToKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanM6CisgICAgICAg
IChydW5SZXBhaW50VGVzdCk6CisgICAgICAgICogZmFzdC9yZXBhaW50L3RhYmxlLW92ZXJmbG93
LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3JlcGxhY2VkL3dpZHRoMTAwcGVyY2VudC10ZXh0YXJlYS5odG1sOgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVzdC5odG1sOgorICAgICAgICAqIGZh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLTY5Mjk2Lmh0bWw6CisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5o
dG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5n
ZS1jZWxsLWJvcmRlci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAq
IGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jZWxsLXNsLWJvcmRl
ci1jb2xvci5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2Fj
aGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItd2lkdGguaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY29sZ3Jv
dXAtYm9yZGVyLWNvbG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sOgorICAgICAgICAq
IGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLWNv
bG9yLmh0bWw6CisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQt
Y2hhbmdlLXJvdy1ib3JkZXItd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWw6CisgICAg
ICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJv
cmRlci13aWR0aC5odG1sOgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcv
Y2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdpZHRoLmh0
bWw6CisgICAgICAgICogZmFzdC90YWJsZS9lbXB0eS1zZWN0aW9uLWNyYXNoLmh0bWw6CisgICAg
ICAgICogZmFzdC90ZXh0L2ZvbnQtaW5pdGlhbC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC9p
bnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1nbHlwaC5odG1sOgorICAgICAgICAq
IGZhc3QvdGV4dC90ZXh0LXNoYWRvdy1leHRyZW1lLXZhbHVlLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3Nsb3ctbG9hZGluZy1pbWFnZS1pbi1wYXR0ZXJuLmh0bWw6CisgICAgICAg
ICogbWVkaWEvYXVkaW8tcmVwYWludC5odG1sOgorICAgICAgICAqIG1lZGlhL21lZGlhLWRvY3Vt
ZW50LWF1ZGlvLXJlcGFpbnQuaHRtbDoKKyAgICAgICAgKiBwbHVnaW5zL3dpbmRvd2xlc3NfcGx1
Z2luX3BhaW50X3Rlc3QuaHRtbDoKKyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9sbGJhci1wZXJj
ZW50LXBhZGRpbmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL25vbi1zY2FsaW5n
LXN0cm9rZS11cGRhdGUuc3ZnOgorICAgICAgICAqIHN2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2Ut
ZGF0YS1jcmFzaC5zdmc6CisKIDIwMTctMDUtMDQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkOiBSZXBsYWNlIFdpbmRvd3Mg
bGluZSBlbmRpbmcgKENSTEYpIGJ5IFVuaXggbGluZSBlbmRpbmcgKENSKS4KSW5kZXg6IExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysg
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsNyBAQAogICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgIC8vIFRoZSBjaGFuZ2UgaW4gY2xpcCBzdHlsZSBzaG91bGQg
YmUgcmVmbGVjdGVkIGltbWVkaWF0ZWx5IGluIHRoZSBzaXplCiAgICAgICAvLyBvZiB0aGUgY29t
cG9zaXRlZCBjbGlwcGVyIGxheWVyLiBBZnRlciBjaGFuZ2luZyB0aGUgY2xpcCwgaXQgc2hvdWxk
CiAgICAgICAvLyBlbnRpcmVseSBjb3ZlciB0aGUgaW5kaWNhdG9yLgpJbmRleDogTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50ZWQtY29tcG9zaXRlZC1jb250ZW50Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2Nyb2xsLXBhaW50ZWQtY29tcG9z
aXRlZC1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3Njcm9sbC1wYWludGVkLWNvbXBvc2l0ZWQtY29udGVudC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw3ICsyNSw3IEBACiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgICAgIC8vIEZvcmNlIGEgcGFpbnQgc28gdGhhdCB0aGUgY29udGVudCB3aWxs
IGJlIHBhaW50ZWQgYXQgdGhlIGN1cnJlbnQgc2Nyb2xsIG9mZnNldCAoMHgwKQogICAgICAgICAg
ICAgLy8gYmVmb3JlIHdlIHNjcm9sbC4KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICB9CiAgICAgICAgIHdpbmRvdy5zY3JvbGxCeSgzMDAsIDApOwogICAgIDwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8tcGFnZS12aXNpYmlsaXR5Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8tcGFnZS12aXNpYmls
aXR5Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Zp
ZGVvLXBhZ2UtdmlzaWJpbGl0eS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5ICsyMCw5IEBA
CiAgICAgdmlkZW8uc3JjID0gJ3Jlc291cmNlcy92aWRlby4nICsgKHZpZGVvLmNhblBsYXlUeXBl
KCd2aWRlby9vZ2cnKSA/ICdvZ3YnIDogJ21wNCcpOwogICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQYWdl
VmlzaWJpbGl0eSgiaGlkZGVuIik7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RS
dW5uZXIucmVzZXRQYWdlVmlzaWJpbGl0eSgpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zv
cmVncm91bmQtb2Zmc2V0LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZvcmVncm91bmQtb2Zmc2V0LWNoYW5nZS5odG1sCShyZXZpc2lv
biAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9mb3JlZ3JvdW5k
LW9mZnNldC1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQAogICAg
IGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Ry
ZXRjaCIpLnN0eWxlLmxlZnQgPSAiLTEwMHB4IjsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMtdHJhbnNmb3JtZWQtb3ZlcmZs
b3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9s
aW1pdC1sYXllci1ib3VuZHMtdHJhbnNmb3JtZWQtb3ZlcmZsb3cuaHRtbAkocmV2aXNpb24gMjE2
MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91
bmRzLXRyYW5zZm9ybWVkLW92ZXJmbG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3
LDcgQEAKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgLy8g
V2UgbmVlZCB0byBjYWxsIGRpc3BsYXkoKSBoZXJlIHRvIHN5bmMgdGhlIGNvbXBvc2l0b3Igc3Rh
dGUgYW5kIGF2b2lkIGEgcmFjZSBjb25kaXRpb24uCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cu
aW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZy
YW1lcy9iZWNvbWUtY29tcG9zaXRlZC1uZXN0ZWQtaWZyYW1lcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVk
LWlmcmFtZXMuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9iZWNvbWUtY29tcG9zaXRlZC1uZXN0ZWQtaWZyYW1lcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5jbGFzc05h
bWUgPSAnY29tcG9zaXRlZCc7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMv
YmVjb21lLW92ZXJsYXBwZWQtaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9iZWNvbWUtb3ZlcmxhcHBlZC1pZnJhbWUuaHRtbAkocmV2aXNp
b24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9iZWNvbWUtb3Zl
cmxhcHBlZC1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAg
ICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnb3ZlcmxheScpLnN0eWxlLmhlaWdodCA9ICcxNTBweCc7CiAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsgLy8gUGFpbnRpbmcgaGFzIHRvIGhhcHBlbiB0byBkZXRlY3Qgb3ZlcmxhcC4K
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8v
IFBhaW50aW5nIGhhcyB0byBoYXBwZW4gdG8gZGV0ZWN0IG92ZXJsYXAuCiAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5p
bnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUyLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0
aW5nLWlmcmFtZTIuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb25uZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNyArMzIsNyBAQAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
IAogICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNsYXNzTmFtZSA9ICdj
b21wb3NpdGVkJzsKIApJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9jb25u
ZWN0LWNvbXBvc2l0aW5nLWlmcmFtZTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lMy5odG1sCShyZXZp
c2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3Qt
Y29tcG9zaXRpbmctaWZyYW1lMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpZnJhbWUnKS5jbGFzc05hbWUgPSAnY29tcG9zaXRlZCc7CiAKSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXllZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUtZGVsYXllZC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1l
LWRlbGF5ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogICAgIGZ1bmN0
aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYm94JykuY2xhc3NOYW1lID0gJ2NvbXBvc2l0ZWQnOwogICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVj
dC1jb21wb3NpdGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2Nvbm5lY3QtY29tcG9zaXRpbmctaWZyYW1lLmh0bWwJKHJldmlzaW9u
IDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29ubmVjdC1jb21w
b3NpdGluZy1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudC1pZnJhbWUnKS5jb250ZW50RG9jdW1l
bnQuYm9keS5vZmZzZXRXaWR0aDsgLy8gd29yayBhcm91bmQgYnVnIDQxOTk5LgogCiAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5
ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1l
bnQpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9lbnRlci1jb21wb3Np
dGluZy1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2VudGVyLWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisr
KyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2VudGVyLWNvbXBvc2l0aW5nLWlmcmFt
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgewogICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudC1pZnJhbWUnKS5jb250ZW50RG9jdW1lbnQuYm9k
eS5vZmZzZXRXaWR0aDsgLy8gd29yayBhcm91bmQgYnVnIDQxOTk5LgogICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29u
dGVudC1mbGlwcGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2lmcmFtZXMvaWZyYW1lLWNvbnRlbnQtZmxpcHBpbmcuaHRtbAkocmV2aXNpb24gMjE2MTk0KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29udGVudC1mbGlwcGlu
Zy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgZnVuY3Rpb24gZG9U
ZXN0KCkKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jbGFzc05h
bWUgPSAnY29tcG9zaXRlZCc7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtcmVzaXplLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXJlc2l6ZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsMTEgQEAKICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29u
IHRoaXMgZGVsYXkgaXMgcmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hvcnQtY2lyY3VpdCB0
aGUgZGlzcGxheS4KICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQtaWZyYW1lJyku
Y2xhc3NOYW1lID0gJ2JpZ2dlcic7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRl
cm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNpemUtdG8temVyby5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLXNpemUtdG8temVyby5odG1sCShy
ZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFt
ZS1zaXplLXRvLXplcm8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAg
ICAgICAvLyBGb3Igc29tZSByZWFzb24gdGhpcyBkZWxheSBpcyByZXF1aXJlZCBmb3IgQXBwS2l0
IHRvIG5vdCBzaG9ydC1jaXJjdWl0IHRoZSBkaXNwbGF5LgogICAgICAgICB3aW5kb3cuc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIHZhciBoYWRM
YXllcnMgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAt
NDgsNyArNDgsNyBAQAogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB2YXIg
aGF2ZUxheWVycyA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KSAh
PSAiIjsKICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0OwogICAgICAgICAgICAgICAgIGlmICho
YWRMYXllcnMgJiYgIWhhdmVMYXllcnMpCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
ZnJhbWVzL2lmcmFtZS1zcmMtY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYx
OTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1zcmMtY2hhbmdl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgICAgICAgIHZhciBo
YWRMYXllcnNCZWZvcmUgPSBmYWxzZTsKICAgICAgICAgICAgIHZhciBoYWRMYXllcnNBZnRlciA9
IGZhbHNlOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIE5lZWQgdG8gcGFpbnQgZm9yIG92ZXJsYXAg
dGVzdGluZy4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7IC8vIE5lZWQgdG8gcGFpbnQgZm9yIG92ZXJsYXAgdGVzdGluZy4KICAgICAgICAgICAg
ICAgICBoYWRMYXllcnNCZWZvcmUgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChk
b2N1bWVudCkgIT0gIiI7CiAgICAgICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtaGlkZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1p
ZnJhbWUtaGlkZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLWhpZGUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ludmlzaWJsZScpOwogICAgICAgICBkaXYuc3R5bGUuY3NzVGV4dCA9ICJkaXNw
bGF5Om5vbmU7IjsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7
CiAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaW52aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hv
dy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaW52
aXNpYmxlLW5lc3RlZC1pZnJhbWUtc2hvdy5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2ludmlzaWJsZS1uZXN0ZWQtaWZyYW1lLXNob3cu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmlzaWJsZScpOwogICAgICAgICBkaXYuc3R5bGUu
Y3NzVGV4dCA9ICIiOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVy
cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
KTsKICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQpJbmRleDog
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9sZWF2ZS1jb21wb3NpdGluZy1pZnJhbWUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2xlYXZl
LWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9pZnJhbWVzL2xlYXZlLWNvbXBvc2l0aW5nLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgewogICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3BhcmVudC1pZnJhbWUnKS5jb250ZW50RG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0
aDsgLy8gd29yayBhcm91bmQgYnVnIDQxOTk5LgogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IHdp
bmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKSW5kZXg6IExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1pZnJhbWUtaWZyYW1lLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlm
cmFtZS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9vdmVybGFwcGVkLWlmcmFtZS1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNyArMzUsNyBAQAogICAgICAgICAvLyBmb3Igb3ZlcmxhcCB0ZXN0aW5nIHRvIGtp
Y2sgaW4uCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7
CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1l
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9vdmVy
bGFwcGVkLWlmcmFtZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL292ZXJsYXBwZWQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDcgKzMzLDcgQEAKICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgZGVsYXkgaXMg
cmVxdWlyZWQgZm9yIEFwcEtpdCB0byBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGlzcGxheS4KICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lckhUTUwgPSB3aW5k
b3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1uZXN0ZWQtaWZyYW1lcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1uZXN0ZWQt
aWZyYW1lcy5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL292ZXJsYXBwZWQtbmVzdGVkLWlmcmFtZXMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNyArMzQsNyBAQAogICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxMDApOwogICAg
ICAgICAgIC8vIEZvcmNlIGEgcGFpbnQsIGFuZCBnaXZlIGxheWVycyBhIGNoYW5jZSB0byB1cGRh
dGUuCiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5s
YXllclRyZWVBc1RleHQoZG9jdW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxiYXJzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXBhaW50LWFmdGVyLWxvc2luZy1z
Y3JvbGxiYXJzLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvcmVwYWludC1hZnRlci1sb3Npbmctc2Nyb2xsYmFycy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImJvdGgiKS5jb250ZW50RG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRk
KCJ0YWxsIik7IC8vIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUp
OwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gUGFpbnQgb25jZSB3aXRoIGFsbCBv
dmVyZmxvdyBjb250cm9scyB2aXNpYmxlLgorICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRU
cmFja1JlcGFpbnRzKCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZsb3cgY29udHJvbHMg
dmlzaWJsZS4KICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChmaW5pc2hUZXN0LCA1MDAwKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2lmcmFtZXMvc2Nyb2xsaW5nLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvc2Nyb2xsaW5nLWlmcmFtZS5odG1sCShyZXZpc2lv
biAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Njcm9sbGluZy1p
ZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICAgICAgICAvLyBG
b3Igc29tZSByZWFzb24gdGhpcyBkZWxheSBpcyByZXF1aXJlZCBmb3IgQXBwS2l0IHRvIG5vdCBz
aG9ydC1jaXJjdWl0IHRoZSBkaXNwbGF5LgogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwYXJlbnQtaWZyYW1lJykuY29udGVudFdpbmRvdy5zY3JvbGxUbyg4MCwgODApOwog
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi1zdWJmcmFtZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2Vz
L2ZpeGVkLXBvc2l0aW9uLXN1YmZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2ZpeGVkLXBvc2l0aW9uLXN1YmZy
YW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDIw
MDApOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDE4MDApOwogICAgIH0KICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGRvVGVzdCwgZmFsc2UpOwpJbmRleDogTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvZml4ZWQtcG9zaXRpb24tdHJh
bnNmb3JtZWQtc3ViZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFt
ZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJh
bWVzL3Jlc291cmNlcy9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm1lZC1zdWJmcmFtZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAg
ICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAK
ICAgICAgIC8vIEFueSBzY3JvbGwgc2hvdWxkIGtlZXAgdGhlIGZpeGVkLXBvc2l0aW9uIGVsZW1l
bnQgd2hlcmUgaXQgaXMuCiAgICAgICAvLyBJZiBpdCBzdHV0dGVycyBvciBkaXNhcHBlYXJzIGlu
Y29ycmVjdGx5LCB0aGVuIHRoZSByZWQgYmFja2dyb3VuZCB3aWxsIGJlIHJldmVhbGVkLgpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRj
aGlsZC1pbm5lci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lm
cmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQtaW5uZXIuaHRtbAkocmV2aXNpb24gMjE2
MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xs
Z3JhbmRjaGlsZC1pbm5lci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAg
ICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAvLyBTY3JvbGwgcmVkIGJveCBvZmYgc2NyZWVu
IGFuZCBzY3JvbGwgZ3JlZW4gYm94IGludG8gc2FtZSBwbGFjZS4KICAgICAgIHdpbmRvdy5zY3Jv
bGxUbygwLCA0MDApOwogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1nYWlucy1zY3JvbGxiYXJzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29udGVudC1n
YWlucy1zY3JvbGxiYXJzLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtc2Nyb2xsYmFycy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00OSwxNCArNDksMTQgQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm90aCIpLmNsYXNzTGlzdC5hZGQoInRhbGwiKTsgLy8g
dmVydGljYWwgYW5kIGhvcml6b250YWwgc2Nyb2xsYmFycwogICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb3JuZXIiKS5jbGFzc0xpc3QuYWRkKCJyZXNpemVXaWRnZXQiKTsgLy8gYm90dG9t
IGRpdiBnZXRzIGEgcmVzaXplIGNvcm5lciBidXQgbm8gc2Nyb2xsYmFycwogICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5zdXJl
IGNvbXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEVuc3VyZSBjb21wb3NpdG9yIHRyZWUgaXMgdXAgdG8g
ZGF0ZS4KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVyVHJlZSIpLmlubmVy
VGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICB9
CiB9CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBGb3JjZSBjb21wb3NpdG9yIHN0YXRl
IHRvIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVlZHMgYW55IG92ZXJmbG93IGNv
bnRyb2xzCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGb3Jj
ZSBjb21wb3NpdG9yIHN0YXRlIHRvIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVl
ZHMgYW55IG92ZXJmbG93IGNvbnRyb2xzCiAgICAgZmluaXNoVGVzdCgpOwogfSBlbHNlCiAgICAg
d2luZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWxvc2VzLXNjcm9sbGJhcnMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb250ZW50LWxvc2VzLXNjcm9s
bGJhcnMuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvY29udGVudC1sb3Nlcy1zY3JvbGxiYXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQ5LDE0ICs0OSwxNCBAQCBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJib3RoIikuY2xhc3NMaXN0LnJlbW92ZSgidGFsbCIpOyAvLyB2ZXJ0aWNh
bCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvcm5lciIpLmNsYXNzTGlzdC5yZW1vdmUoInJlc2l6ZVdpZGdldCIpOyAvLyBib3R0b20gZGl2
IGxvc2VzIGEgcmVzaXplIGNvcm5lciBidXQgbm8gc2Nyb2xsYmFycwogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRW5zdXJlIGNv
bXBvc2l0b3IgdHJlZSBpcyB1cCB0byBkYXRlLgorICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7IC8vIEVuc3VyZSBjb21wb3NpdG9yIHRyZWUgaXMgdXAgdG8gZGF0
ZS4KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVyVHJlZSIpLmlubmVyVGV4
dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKICAgICB9CiB9
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBGb3JjZSBjb21wb3NpdG9yIHN0YXRlIHRv
IGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVlZHMgYW55IG92ZXJmbG93IGNvbnRy
b2xzCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBGb3JjZSBj
b21wb3NpdG9yIHN0YXRlIHRvIGJlIHVwZGF0ZWQgYmVmb3JlIHRoZSBjb250YWluZXIgbmVlZHMg
YW55IG92ZXJmbG93IGNvbnRyb2xzCiAgICAgZmluaXNoVGVzdCgpOwogfSBlbHNlCiAgICAgd2lu
ZG93LnNldFRpbWVvdXQoZmluaXNoVGVzdCwgMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9kby1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xs
aW5nLWNvbnRlbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZG8tbm90LXBhaW50LW91dGxpbmUtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1j
b250ZW50cy5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9kby1ub3QtcGFpbnQtb3V0bGluZS1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
LWNvbnRlbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAgICAgIHRl
eHRhcmVhLmZvY3VzKCk7CiAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IHRleHRhcmVh
LnNlbGVjdGlvbkVuZCA9IDA7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRl
c3QsIDEwMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxv
dy9vdmVyZmxvdy1zY3JvbGxiYXItbGF5ZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsYmFyLWxheWVycy5odG1sCShy
ZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9vdmVy
Zmxvdy1zY3JvbGxiYXItbGF5ZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcg
QEAgcmVzaXplOiBib3RoOwogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBF
bnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRvIGRhdGUuCisgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBFbnN1cmUgY29tcG9zaXRvciB0cmVlIGlzIHVwIHRv
IGRhdGUuCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVyVHJlZSIpLmlubmVyVGV4
dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKIH0KIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvcGFpbnQtbmVnLXot
b3JkZXItZGVzY2VuZGFudHMtaW50by1zY3JvbGxpbmctY29udGVudHMtbGF5ZXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9wYWludC1uZWctei1v
cmRlci1kZXNjZW5kYW50cy1pbnRvLXNjcm9sbGluZy1jb250ZW50cy1sYXllci5odG1sCShyZXZp
c2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9wYWludC1u
ZWctei1vcmRlci1kZXNjZW5kYW50cy1pbnRvLXNjcm9sbGluZy1jb250ZW50cy1sYXllci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICB0ZXh0YXJlYS5zY3JvbGxU
b3AgPSA0MDsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgp
OworICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQpAQCAtNDUsNyArNDUsNyBAQAogICAgICAgdGV4
dGFyZWEuZm9jdXMoKTsKICAgICAgIHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ID0gdGV4dGFyZWEu
c2VsZWN0aW9uRW5kID0gMDsKICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgd2luZG93LnNldFRpbWVvdXQoZW5kVGVz
dCwgMTAwKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93
L3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9yZXBhaW50LWFmdGVyLWxvc2luZy1zY3JvbGxi
YXJzLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L3JlcGFpbnQtYWZ0ZXItbG9zaW5nLXNjcm9sbGJhcnMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNjEsNyArNjEsNyBAQCBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0gICAgdGVz
dFJ1bm5lci5kaXNwbGF5KCk7IC8vIFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZsb3cgY29udHJv
bHMgdmlzaWJsZS4KKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8v
IFBhaW50IG9uY2Ugd2l0aCBhbGwgb3ZlcmZsb3cgY29udHJvbHMgdmlzaWJsZS4KICAgICBmaW5p
c2hUZXN0KCk7CiB9IGVsc2UKICAgICB3aW5kb3cuc2V0VGltZW91dChmaW5pc2hUZXN0LCAwKTsK
SW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNv
bXBvc2l0aW5nLWFkZC10ZXh0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRl
eHQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQtZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENo
YW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAg
ICAgICAgYmcuaW5uZXJIVE1MID0gIjEyMyI7CiAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGly
ZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9z
aXRpbmctYWRkLXRleHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAg
ICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAgICAgICAgICAgYmcuaW5uZXJIVE1MID0gIjEyMyI7CiAgICAgICB9CiAKSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0
aW5nLWNoYW5nZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0
ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5
ZXIgdG8gYmVjb21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICBiZy5pbm5lckhUTUwgPSAiPHNwYW4gc3R5bGU9XCJvcGFjaXR5OjBcIj4xMjM8L3Nw
YW4+IjsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0
dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctY2hhbmdlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9z
aXRpbmctY2hhbmdlLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3BhdHRlcm5zL2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWNoYW5nZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogCiAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBs
YXllciB0byBiZWNvbWUgYmFja2dyb3VuZCBvbmx5LgogICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICAgIGJnLmlubmVySFRNTCA9ICIiOwogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1s
b2FkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
cGF0dGVybnMvZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctbG9hZC1leHBlY3RlZC5odG1sCShy
ZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJl
Y3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTE1LDcgKzE1LDcgQEAKIAogICAgICAgICAgIC8vIENoYW5nZSB0aGUgbGF5ZXIgdG8gYmVj
b21lIGJhY2tncm91bmQgb25seS4KICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAg
IHZhciBpbWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAgaW1nLm9ubG9hZCA9IG9uQmFja2dyb3Vu
ZEltYWdlTG9hZDsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5zL2RpcmVj
dC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9wYXR0ZXJucy9kaXJlY3QtcGF0dGVybi1jb21wb3NpdGluZy1sb2FkLmh0
bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhdHRlcm5z
L2RpcmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTUsNyArMTUsNyBAQAogCiAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBsYXllciB0byBiZWNvbWUg
YmFja2dyb3VuZCBvbmx5LgogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgdmFy
IGltZyA9IG5ldyBJbWFnZTsKICAgICAgICAgICBpbWcub25sb2FkID0gb25CYWNrZ3JvdW5kSW1h
Z2VMb2FkOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGx1Z2lucy9pbnZhbGlkYXRl
X3JlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wbHVnaW5z
L2ludmFsaWRhdGVfcmVjdC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9wbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNywxMCArMTcsMTAgQEAKIAogICAgIGZ1bmN0aW9uIG9uTG9hZCgpCiAgICAgewotICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICBwYWludENvdW50ID0gMDsKICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0UGx1Z2luJykuaW52YWxpZGF0ZVJlY3QoMCwgMCwgMjAwLCAyMDApOwotICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgIGlmIChwYWludENvdW50ID4gMCkK
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0g
IlNVQ0NFU1MiOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQv
bmV3bHktY29tcG9zaXRlZC1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtb24tc2Nyb2xsLmh0bWwJKHJl
dmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvbmV3bHkt
Y29tcG9zaXRlZC1vbi1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTEgKzYzLDEx
IEBACiAKICAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJmbG93Jykuc2Nyb2xsVG9wID0gMzA7CiAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ292ZXJmbG93Jykuc2Nyb2xsVG9wID0gNTA7CkluZGV4OiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWludC1yZWN0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9uZXdseS1j
b21wb3NpdGVkLXJlcGFpbnQtcmVjdC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L25ld2x5LWNvbXBvc2l0ZWQtcmVwYWludC1yZWN0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAKICAgICAgICAgLy8gRm9yY2UgRHVt
cFJlbmRlclRyZWUgdG8gZG8gYSBsYXlvdXQgYW5kIHJlcGFpbnQgaGVyZSwgdGhpcyBpcyB3aGVy
ZSB0aGUgcmVwYWludFJlY3QKICAgICAgICAgLy8gZ29lcyB3cm9uZyBiZWNhdXNlIGl0IGRvZXMg
bm90IGdldCB1cGRhdGVkIGZvciBhIG5ld2x5IGNvbXBvc2l0ZWQgZWxlbWVudC4KICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAg
ICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAvLyBTY3Jv
bGxpbmcgYSBsaXR0bGUgd2lsbCBkZW1vbnN0cmF0ZSB3aGV0aGVyIHRoZSByZXBhaW50IHJlY3Qg
aXMgY29ycmVjdCBvciBub3QuCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50
L3BhZ2Utc2NhbGUtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlcGFpbnQvcGFnZS1zY2FsZS1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkK
KysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvcGFnZS1zY2FsZS1yZXBhaW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gcnVu
VGVzdCgpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9yZXBhaW50L3JlcXVpcmVzLWJhY2tpbmctcmVwYWludC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvcmVxdWlyZXMtYmFja2luZy1yZXBhaW50
Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFp
bnQvcmVxdWlyZXMtYmFja2luZy1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDcgQEAKICAgICAgICAgICAgIG92ZXJmbG93LnNjcm9sbFRvcCA9IDUwOwogCiAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgICBvdmVyZmxvdy5zY3JvbGxUb3AgPSA3NTsKSW5kZXg6
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNmb3JtLXN0eWxlLWNoYW5nZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvdHJhbnNm
b3JtLXN0eWxlLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZXBhaW50L3RyYW5zZm9ybS1zdHlsZS1jaGFuZ2UuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogfQogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsgLy8gRm9yY2Ugb25lIGNv
bXBvc2l0ZSB3aXRoIHByZXNlcnZlLTNkCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOyAvLyBGb3JjZSBvbmUgY29tcG9zaXRlIHdpdGggcHJlc2VydmUtM2QKICAgICB0
ZXN0KCk7CiB9IGVsc2UKICAgICB3aW5kb3cuc2V0VGltZW91dCh0ZXN0LCAwKTsKSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS13
aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtd2l0
aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysr
IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFt
ZS13aXRoLWZpeGVkLWJhY2tncm91bmQtZG9jLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNyBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7IC8vIEZsdXNoIHBlbmRpbmcgY29tcG9zaXRpbmcgcmVwYWludHMuCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOyAvLyBG
bHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5nIHJlcGFpbnRzLgogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlmcmFtZS1zY3JvbGwtcmVwYWludC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9j
b21wb3NpdGluZy1pZnJhbWUtc2Nyb2xsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQor
KysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9pZnJhbWVzL2NvbXBvc2l0aW5nLWlm
cmFtZS1zY3JvbGwtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBA
CiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsg
Ly8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7IC8vIEZsdXNoIHBlbmRpbmcgY29t
cG9zaXRpbmcgcmVwYWludHMuCiAKICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXBhaW50L2lmcmFtZXMvY29tcG9zaXRp
bmctaWZyYW1lLXdpdGgtZml4ZWQtYmFja2dyb3VuZC1kb2MtcmVwYWludC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21wb3NpdGlu
Zy1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHJldmlzaW9u
IDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvaWZyYW1lcy9jb21w
b3NpdGluZy1pZnJhbWUtd2l0aC1maXhlZC1iYWNrZ3JvdW5kLWRvYy1yZXBhaW50Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOyAvLyBGbHVzaCBwZW5kaW5nIGNvbXBvc2l0aW5n
IHJlcGFpbnRzLgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsgLy8gRmx1c2ggcGVuZGluZyBjb21wb3NpdGluZyByZXBhaW50cy4KIAogICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3J0bC9ydGwtb3ZlcmZsb3ctaW52YWxpZGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcnRsL3J0bC1vdmVyZmxvdy1pbnZhbGlkYXRpb24uaHRtbAko
cmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcnRsL3J0bC1vdmVy
Zmxvdy1pbnZhbGlkYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAog
PHNjcmlwdD4KICAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gVGhpcyB0ZXN0
IHBhc3NlcyBpZiB0aGlzIGVsZW1lbnQgaXMgcmVwYWludGVkIGNvcnJlY3RseSwgZXZlbgpJbmRl
eDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdGlsaW5nL2h1Z2UtbGF5ZXItcmVzaXplLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdGlsaW5nL2h1Z2UtbGF5ZXIt
cmVzaXplLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3RpbGluZy9odWdlLWxheWVyLXJlc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1
Myw3IEBACiAgICAgICAgICAgICAvLyBGb3JjZSBhIGxheW91dCBhbmQgYSBwYWludCB0byBtYWtl
IHN1cmUgdGhlIGNvbXBvc2l0aW5nIGxheWVycwogICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHVw
ZGF0ZWQuCiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKIAogICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VQcmVmaXggKyB3
aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIH0KSW5k
ZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXdpdGgtaW52YWxpZC1zb3Vy
Y2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRl
by13aXRoLWludmFsaWQtc291cmNlLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXdpdGgtaW52YWxpZC1zb3VyY2UuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHYuYXBw
ZW5kQ2hpbGQoc3JjKTsKICAgICBzcmMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlv
bigpIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBjcmFzaCBoZXJlLCB5YXkh
ICBUZXN0IGlzIGEgc3VjY2VzcwogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUEFTUyIpKTsKICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvd2ViZ2wvd2Vi
Z2wtcmVwYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL3dl
YmdsL3dlYmdsLXJlcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVwYWludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw3ICszNCw3IEBAIGZ1bmN0aW9uIGluaXQoKQogICBnbC5jbGVhckNvbG9yKDEsIDAsIDAsIDEp
OyAvLyByZWQKICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQodHJ1ZSk7CiAgICAgICBkcmF3R3JlZW4oKTsKICAgfSBlbHNlCkBAIC00Niw4ICs0Niw4IEBA
IGZ1bmN0aW9uIGRyYXdHcmVlbigpCiAgIGdsLmNsZWFyQ29sb3IoMCwgMSwgMCwgMSk7IC8vIGdy
ZWVuCiAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwogICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwotICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7Cisg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgIH0gZWxzZQogICAg
ICAgd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY2FudmFzJykuY2xhc3NMaXN0LnRvZ2dsZSgnYm9yZGVyJyk7CkluZGV4OiBM
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVycy1pbnZhbGlkYXRpb24uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbXVsdGlwbGUtZmlsdGVy
cy1pbnZhbGlkYXRpb24uaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL211bHRpcGxlLWZpbHRlcnMtaW52YWxpZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCgpIHsKIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwot
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICBjaGFuZ2VCYWNrZ3JvdW5kKCk7CiB9IGVsc2UgCiAgICAgd2luZG93
LnNldFRpbWVvdXQoY2hhbmdlQmFja2dyb3VuZCwgMjUwKTsKSW5kZXg6IExheW91dFRlc3RzL2Nz
czMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbAkocmV2aXNp
b24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJl
dmVyc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKICAgICAgICAgICAg
ICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZsZXggaXRlbXMgdGhhdCBhcmUgbW92ZWQgbXVs
dGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQgIgpJbmRleDogTGF5b3V0VGVzdHMvY3NzMy9m
bGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtZHVyaW5nLXJlc2l6ZS1uby1mbGV4Lmh0
bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50
LWR1cmluZy1yZXNpemUtbm8tZmxleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3
IEBAIGZ1bmN0aW9uIHJlc2l6ZUZsZXhJdGVtKCkgewogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAogICAg
ICAgICAgICAgIlRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gY2hhbmdpbmcgdGhlIHNpemUg
b2Ygb25lIGZsZXggaXRlbSBjaGFuZ2VzIHRoZSAiCkluZGV4OiBMYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisr
KyBMYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQodHJ1ZSk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2NzczMvZmxleGJveC9y
ZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFp
bnQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Jl
cGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRU
b3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgIH0KICAgICB3aW5kb3cuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKSW5kZXg6IExh
eW91dFRlc3RzL2Rpc3BsYXlsaXN0cy9jYW52YXMtZGlzcGxheS1saXN0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNwbGF5LWxpc3QuaHRtbAko
cmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL2NhbnZhcy1kaXNw
bGF5LWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICAgICAgICAg
ICAgZHJhd0NhbnZhcygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
b3V0cHV0JykudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMucmVwbGF5RGlzcGxheUxpc3RGb3JFbGVt
ZW50KGNhbnZhcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1
bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kaXNw
bGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LWRpc3BsYXktbGlzdC5qcwkocmV2aXNpb24g
MjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1wLXRhcmdl
dC1kaXNwbGF5LWxpc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rp
b24gZG9UZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldEVsZW1lbnRVc2VzRGlzcGxheUxpc3RE
cmF3aW5nKHRhcmdldERpdiwgdHJ1ZSk7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICAgICAgdmFyIGRpc3BsYXlMaXN0ID0gaW50ZXJuYWxzLmRpc3BsYXlMaXN0Rm9yRWxlbWVudCh0
YXJnZXREaXYpOwpJbmRleDogTGF5b3V0VGVzdHMvZGlzcGxheWxpc3RzL3Jlc291cmNlcy9kdW1w
LXRhcmdldC1yZXBsYXktbGlzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kaXNwbGF5
bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJlcGxheS1saXN0LmpzCShyZXZpc2lvbiAyMTYx
OTQpCisrKyBMYXlvdXRUZXN0cy9kaXNwbGF5bGlzdHMvcmVzb3VyY2VzL2R1bXAtdGFyZ2V0LXJl
cGxheS1saXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIGRv
VGVzdCgpCiAgICAgfQogICAgIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIHZhciBk
aXNwbGF5TGlzdCA9IGludGVybmFscy5kaXNwbGF5TGlzdEZvckVsZW1lbnQodGFyZ2V0RGl2KTsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWRldGFjaC1lbGVtZW50Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5p
bWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCShyZXZp
c2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyAr
MTIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogICAgICAgICB9LCA1MCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kZXRhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5kb3cuc2V0
VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAgICB9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
dXJpbmctbW9kYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2aXNpb24gMjE2
MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtZHVyaW5nLW1vZGFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgb25s
b2FkID0gZnVuY3Rpb24oKQogICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rp
b24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsKICAgICBk
ZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeycgKwotICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheSgp
OycgKworICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsnICsKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuY2xvc2UoKTsnICsKICAgICAgICAg
ICAgICAgJ30gZWxzZSB7JysKICAgICAgICAgICAgICAgJyAgICB3aW5kb3cuc2V0VGltZW91dCh3
aW5kb3cuY2xvc2UsIDEwKTsnKwpAQCAtMjMsNyArMjMsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigp
CiAgICAgc2hvd01vZGFsRGlhbG9nKCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PicgKyBzcmMgKyAn
PC8nICsgJ3NjcmlwdD4nKTsKICAgICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2RhbCBkaWFsb2cn
KTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCShyZXZpc2lvbiAy
MTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1pZnJhbWUyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICAgICAg
ICAgZnVuY3Rpb24gZG9EaXNwbGF5KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRvQ2hlY2tSZXN1bHQoKQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvRGlzcGxheSgpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIH0KICAgICAKICAgICAgICAgZnVuY3Rpb24g
ZG9DaGVja1Jlc3VsdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtY2FuY2VsMi5qcwkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgc2Vjb25kQ2FsbGJhY2tJZCA9IHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aQogfSwgZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFp
bnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmVGYWxzZSgiY2Fs
bGJhY2tGaXJlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtY2FuY2VsLmpzCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlv
bkZyYW1lKGZ1CiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5k
aXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
IHNob3VsZEJlRmFsc2UoImNhbGxiYWNrRmlyZWQiKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDIxNjE5NCkKKysr
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1kaXNhYmxlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogfSk7CiAKIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3Bs
YXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgc2hv
dWxkQmVGYWxzZSgiY2FsbGJhY2tJbnZva2VkIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtcHJlZml4LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1wcmVmaXguanMJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1wcmVmaXguanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwxMiBAQCB3aW5kb3cud2Vi
a2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiAKICAgICBidXN5V2FpdCgxMCk7CiAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogfSk7CiAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLXRpbWUtdW5pdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0Lmpz
CShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZS11bml0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0yMCwxMiArMjAsMTIgQEAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlv
bih0aQogICAgICAgICB9KTsKIAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9LCAxKTsKIH0pOwogCiBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNw
bGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHJldmlzaW9u
IDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDExICsyMSwxMSBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KHRpCiAgICAgfSk7CiAgICAgYnVzeVdhaXQoMTApOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0pOwogCiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsK
ICAgICB9KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS10aW1lc3RhbXBzLmpzCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlv
bkZyYW1lKGZ1bmN0aW9uKHRpCiB9KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0
aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTAgQEAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIAogCiAvLyBUaGlzIHNob3VsZCBmaXJl
IHRoZSB0aHJlZSBhbHJlYWR5IHJlZ2lzdGVyZWQgY2FsbGJhY2tzLCBidXQgbm90IHRoZSBvbmUg
ZHluYW1pY2FsbHkgcmVnaXN0ZXJlZC4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0
UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAvLyBUaGlzIHNob3VsZCBmaXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3RlcmVkIGNhbGxi
YWNrLgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCB3aW5kb3cucmVxdWVzdEFuaW1hdGlv
bkZyYW1lKGZ1bmN0aW9uKCkgCiB9LCBlKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZVRydWUoImNh
bGxiYWNrSW52b2tlZCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNj
dXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1j
aGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxl
LWNoYW5nZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiA8
c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBdLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2Jh
KDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsxXS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdi
YSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9vYnNj
dXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHls
ZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNr
Z3JvdW5kcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5nZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiA8c2NyaXB0PgogZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogdmFyIGNoaWxkcmVu
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKTsKIGNoaWxkcmVuWzBd
LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDAsMjU1LDAsMC41KSI7CiBjaGlsZHJlblsx
XS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuNSkiOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJlc3RvcmUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9y
LWNvbnRleHQtcmVzdG9yZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2JhY2tncm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgPC9kaXY+CiAgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RhcmdldCcpOwogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldCwgMSk7CiAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYXMtaW1hZ2UtaW5jcmVtZW50YWwtcmVwYWludC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFn
ZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1hcy1pbWFnZS1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgIGNhbnZhc0NvbnRleHQgPSBk
b2N1bWVudC5nZXRDU1NDYW52YXNDb250ZXh0KCIyZCIsICJzcXVhcmVzIiwgMzAwLCAzMDApOwog
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICByZXBhaW50VGVzdCgpOwogICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0gZWxzZSB7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJl
cGFpbnQtMi5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtaW5jcmVtZW50YWwtcmVwYWludC0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDcgKzIxLDcgQEAKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKICAgICAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1pbmNyZW1lbnRhbC1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVudGFsLXJlcGFpbnQuaHRtbAkocmV2
aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWluY3JlbWVu
dGFsLXJlcGFpbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgIHsK
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAg
cmVwYWludFRlc3QoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
ICAgICB9IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6
ZS1hZnRlci1wYWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKIH0KIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7IC8vIEZvcmNl
IGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9oZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBj
b21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZhcy4KKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7IC8vIEZvcmNlIGEgY29tcG9zaXRlIGF0IG5vcm1hbCB3aWR0aC9o
ZWlnaHQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wb3NpdGluZyBsYXllciBmb3IgdGhlIGNhbnZh
cy4KICAgICByZXNpemUoKTsKIH0gZWxzZQogICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJlc2l6ZSwg
MCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWludC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvcmVwYWludC5q
cwkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2Vz
L3JlcGFpbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGZ1bmN0aW9uIHJ1blJl
cGFpbnRUZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHJlcGFp
bnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2V0VGltZW91dChyZXBhaW50VGVzdCwg
MTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMt
aW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQt
cmVwYWludC5qcwkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
c2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcwkod29y
a2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCB2YXIgZHJhd0l0ZXJhdGlvbnMgPSAyOwogZnVu
Y3Rpb24gVGVzdENvbnRyb2xsZXJQYWludCgpIHsKICAgICB3aGlsZSAoZHJhd0l0ZXJhdGlvbnMg
PiAwKSB7CiAgICAgICAgIGRyYXcoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgZHJh
d0l0ZXJhdGlvbnMgPSBkcmF3SXRlcmF0aW9ucyAtIDE7CiAgICAgfQogICAgIGRyYXcoKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXRlc3QuaHRtbAko
cmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFz
LXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGlmICghZ2wpIHsK
ICAgdmFyIGludGVydmFsSWQ7CiAgIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoZnVu
Y3Rpb24oKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgdGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgaWYgKGNhbnZhcy5jbGllbnRXaWR0aCA9PSAxMDAgJiYKICAgICAgICAgY2FudmFzLmNsaWVu
dEhlaWdodCA9PSAyNSkgewogICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1sYXllci11cGRhdGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1s
YXllci11cGRhdGUuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvd2ViZ2wtbGF5ZXItdXBkYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYs
NyArNiw3IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52YXMn
KVswXS5zdHlsZS50b3AgPSAiNjBweCI7CiAKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBjdHguY2xl
YXJDb2xvcigxLCAwLCAwLCAxKTsKIGN0eC5jbGVhcihjdHguQ09MT1JfQlVGRkVSX0JJVCk7CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0
ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkb3N0eWxlLWFub255bW91
cy10ZXh0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvc3R5
bGUtYW5vbnltb3VzLXRleHQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcHNldWRvc3R5bGUtYW5vbnltb3VzLXRleHQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwogICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQtYmxvY2st
Y3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVs
YXRpdmUtcG9zaXRpb25lZC1ibG9jay1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcg
KzYsNyBAQAogICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwJKHJldmlz
aW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2Ut
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUocG9zdE1lc3NhZ2UpOwogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7CiAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVu
bmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dlYi10aW1pbmctbWluaW1hbC1wZXJmb3JtYW5jZS1ub3cuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZv
cm1hbmNlLW5vdy5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2ViLXRpbWluZy1taW5pbWFsLXBlcmZvcm1hbmNlLW5vdy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsgfQogICAgICAgICAsIDEwMCk7CiAKLSAgICB3aW5kb3cudGVzdFJ1bm5lci5k
aXNwbGF5KCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKIH0KIAogb25sb2FkID0gc3RhcnQoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1p
Yy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZHluYW1pYy9jb250YWluaW5nLWJsb2NrLWNoYW5nZS5odG1sCShyZXZpc2lvbiAyMTYx
OTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY29udGFpbmluZy1ibG9jay1jaGFuZ2Uu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMyArMywxMyBAQAogICAgIHsKICAgICAgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZvcmNlIGxheW91dAogICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdmFy
IHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndCcpOwogICAgICAgICB0LnN0eWxlLnBvc2l0
aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8v
IGZvcmNlIGxheW91dAogICAgICAgICB0Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZCh0Lmxhc3RDaGls
ZC5sYXN0Q2hpbGQpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFu
ZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9sYXllci1uby1sb25nZXItcGFnaW5h
dGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2xheWVyLW5v
LWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9keW5hbWljL2xheWVyLW5vLWxvbmdlci1wYWdpbmF0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDEsIDAp
OwogCiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAg
ICAgIHRlc3QoKTsKICAgICAgICAgfSBlbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3BhZC1nZXN0dXJlLWNhbmNlbC5qcwko
cmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9wYWQtZ2VzdHVyZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIuZ2VzdHVy
ZUZsaW5nU3RhcnQpIHsKICAgICBldmVudFNlbmRlci5nZXN0dXJlRmxpbmdTdGFydCgxMCwgMTEs
IDEwMDAsIDEwMDApOwogICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVGbGluZ0NhbmNlbCgpOwotICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcGFkLWdlc3R1cmUtZmxpbmcuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1m
bGluZy5qcwkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9wYWQtZ2VzdHVyZS1mbGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTgsOSAr
MTgsOSBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIiwgCiAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmV2ZW50U2Vu
ZGVyLmdlc3R1cmVGbGluZ1N0YXJ0KSB7CiAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUZsaW5nU3Rh
cnQoMTAsIDExLCAxMDAwLCAxMDAwKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0
UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOworICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWlu
dHMoKTsKIH0KIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2hpZGRlbi1saXN0Ym94Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaGlkZGVuLWxpc3Rib3guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygp
OwogPC9zY3JpcHQ+CiBUaGlzIHRlc3RzIHRoYXQgdGhlIHdob2xlIGxpc3Rib3ggY29udHJvbCBp
cyBoaWRkZW4gd2hlbiB2aXNpYmlsaXR5IGlzIHNldCB0byBoaWRkZW4uCiA8YnI+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xpcC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGlzdGJveC1jbGlwLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICA8L3NlbGVjdD4KICAgICA8c2NyaXB0PgogICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2lubGluZS1vYmplY3QtaW5zaWRlLWZyYW1lc2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVjdC1pbnNpZGUtZnJhbWVzZXQuaHRtbAko
cmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaW5saW5lLW9iamVj
dC1pbnNpZGUtZnJhbWVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogICAgIGRjb250LmFwcGVuZENoaWxkKGUpOwogICAgIAogICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIH0KIAogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1z
Y3JvbGxiYXIuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvdHJhbnNwYXJlbnQtc2Nyb2xsYmFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEzICsy
MywxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiAKICAgICB3aW5kb3cu
c2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Ag
PSAyMDAwOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAg
ICAgIH0KICAgICB9LCAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVk
LWJhY2tncm91bmQtaW1hZ2UtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9hbmltYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWNyYXNoLmh0bWwJKHJldmlzaW9u
IDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWJhY2tncm91bmQt
aW1hZ2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQAogICAgICAg
ICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikuc3R5bGUuZGlzcGxheT0ibm9uZSI7
CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgIHNldFRp
bWVvdXQoInN0ZXAyKCkiLCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvYWRk
LWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9sYXllcnMvYWRkLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHJldmlz
aW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2FkZC1sYXllci13aXRoLW5l
c3RlZC1zdGFja2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAgICAg
ICAgIHNldFRpbWVvdXQodGVzdCwgMCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0KCk7CiAgICAg
fQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9pbmxpbmUtZGlydHkt
ei1vcmRlci1saXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJz
L2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2lubGluZS1kaXJ0eS16LW9yZGVyLWxpc3RzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRUaW1lb3V0KHRlc3Qs
IDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmls
aXR5LWNoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2xh
eWVyLWNvbnRlbnQtdmlzaWJpbGl0eS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbGF5ZXItY29udGVudC12aXNpYmlsaXR5LWNoYW5nZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgfQogICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRy
YWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdCgpOwogICAgIH0gZWxzZQogICAgICAgICBzZXRU
aW1lb3V0KHRlc3QsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxh
eWVycy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVk
LWxheWVycy0xLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL25lc3RlZC1sYXllcnMtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTIuaHRtbAkocmV2aXNp
b24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy0yLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgICAgZmluaXNoKCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bGF5ZXJzL25lc3RlZC1sYXllcnMtMy5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2xheWVycy9uZXN0ZWQtbGF5ZXJzLTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Niw3ICs2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRU
b3A7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBmaW5pc2goKTsKICAgICB9
IGVsc2UgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy00Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvbmVzdGVkLWxheWVycy00
Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL25lc3Rl
ZC1sYXllcnMtNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKIHsKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgICAgIGZpbmlzaCgpOwogICAgIH0gZWxzZSB7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1uZXN0ZWQtc3RhY2tpbmcuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xheWVycy9yZW1vdmUtbGF5ZXItd2l0aC1u
ZXN0ZWQtc3RhY2tpbmcuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9sYXllcnMvcmVtb3ZlLWxheWVyLXdpdGgtbmVzdGVkLXN0YWNraW5nLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTE1LDcgKzE1LDcgQEAgVGhlIHNxdWFyZSBzaG91bGQgYmUgYSB1bmlmb3JtIHNo
YWRlIG9mIAogICAgICAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwogICAgIGVsc2UgewogICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
dGVzdCgpOwogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxv
dy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3Qvb3ZlcmZsb3cvaGlkZGVuLXNjcm9sbGJhci1yZXNpemUuaHRtbAkocmV2aXNpb24gMjE2
MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9oaWRkZW4tc2Nyb2xsYmFyLXJlc2l6
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdHMgdGhhdCB0
aGUgc2Nyb2xsYmFyIGFuZCByZXNpemUgY29ybmVyIGFyZSBub3QgdmlzaWJsZSBvbiBhbiBlbGVt
ZW50IHRoYXQgaGFzIHZpc2liaWxpdHk6aGlkZGVuLgogPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGF1
dG87IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDcwcHg7IHJlc2l6ZTogYm90aDsgdmlzaWJpbGl0eTog
aGlkZGVuIj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvaW5saW5lLWNyYXNo
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9pbmxpbmUt
Y3Jhc2guaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0
aW9ucy9pbmxpbmUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAKICAg
ICB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgfQogICAgICAgICBzZXRUaW1lb3V0KGNoYW5nZUNvbG9yLCAwKTsKICAgICB9CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYW5pbWF0aW9uLWFmdGVyLWxheWVyLXNjcm9sbC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9hbmltYXRpb24tYWZ0ZXIt
bGF5ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9hbmltYXRpb24tYWZ0ZXItbGF5ZXItc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTgsNyArOCw3IEBACiAgICAgewogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJh
Y2tpbmdSZXBhaW50cygpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xs
ZXInKS5zY3JvbGxUb3AgPSA4MDA7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICAgICAgc2V0
VGltZW91dChsb2dSZXBhaW50cywgMjAwKTsKICAgICB9CkBAIC0yNSw3ICsyNSw3IEBACiAKICAg
ICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNl
dFRpbWVvdXQoc3RhcnRUcmFja2luZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQt
YW5kLWhlaWdodC1jaGFuZ2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdodC1jaGFu
Z2VzLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9i
YWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFuZC1oZWlnaHQtY2hhbmdlcy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICAg
ICAgICByZXR1cm47CiAgICAgICAgIAogICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2lu
Z1JlcGFpbnRzKCk7Ci0gICAgd2luZG93LnRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIHdpbmRv
dy50ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiB9CiAKIGZ1bmN0aW9uIGxv
Z1JlcGFpbnRzKCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxk
LW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L2ZpeGVkLWNoaWxkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE5
NCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1tb3ZlLWFmdGVyLXNj
cm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9s
bEJ5KDAsIDIwMCk7CiAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgICAgICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3Jv
bGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hp
bGQtb2YtZml4ZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWNoaWxkLW9mLWZpeGVkLW1vdmUtYWZ0ZXIt
c2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgICAgICAgc2Ny
b2xsQnkoMCwgMjAwKTsKICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0gICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVwYWludFRlc3QsIDE1KTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFm
dGVyLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9m
aXhlZC1jaGlsZC1vZi10cmFuc2Zvcm1lZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCShyZXZpc2lv
biAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtY2hpbGQtb2YtdHJh
bnNmb3JtZWQtbW92ZS1hZnRlci1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3
LDcgQEAKICAgICAgICAgICBzY3JvbGxCeSgwLCAyMDApOwogICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3Qo
KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgc2V0VGltZW91dChyZXBhaW50
VGVzdCwgMTUpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0
ZXItc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2Zp
eGVkLW1vdmUtYWZ0ZXItc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLXNjcm9sbC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgIHNjcm9sbEJ5KDAsIDIwMCk7CiAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOwotICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAg
ICByZXBhaW50VGVzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICBzZXRU
aW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
bm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQtc3ViZnJhbWUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbm8tYW5pbWF0aW9uLW91dHNpZGUtdmlld3BvcnQt
c3ViZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0LXN1YmZyYW1lLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTksNyArOSw3IEBACiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwog
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICAgICAg
ICB3aW5kb3cuc2Nyb2xsVG8oMCwyMDApOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBz
ZXRUaW1lb3V0KHRlc3RBZnRlclNjcm9sbCwgMjAwKTsKICAgICB9CiAKQEAgLTIyLDcgKzIyLDcg
QEAKIAogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwog
ICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgc2V0VGltZW91dCh0ZXN0QWZ0ZXJTY3JvbGxCYWNrLCAyMDApOwogICAgIH0KIApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1vdXRzaWRlLXZpZXdwb3J0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L25vLWFuaW1hdGlvbi1v
dXRzaWRlLXZpZXdwb3J0Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9uby1hbmltYXRpb24tb3V0c2lkZS12aWV3cG9ydC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC04LDcgKzgsNyBAQAogICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRU
b3A7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlB
bmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgIHNldFRpbWVvdXQobG9nUmVwYWludHMsIDIwMCk7
CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dy
b3VuZC1uby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxOTQp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1yZXBh
aW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAKICAgICB7CiAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0YXJ0
VHJhY2tpbmdSZXBhaW50cygpOwotICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICBzZXRUaW1l
b3V0KGxvZ1JlcGFpbnRzLCAyMDApOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L292ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Nyb2xsZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWlu
LW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvb3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1z
Y3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5zY3JvbGxUb3AgPSAxMDAwOwogCiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsK
ICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlbmRlcmVyLWRlc3Ry
dWN0aW9uLWJ5LWludmFsaWRhdGVTZWxlY3Rpb24tY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0
ZVNlbGVjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvcmVuZGVyZXItZGVzdHJ1Y3Rpb24tYnktaW52YWxpZGF0ZVNlbGVjdGlvbi1j
cmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgPGRpdj48L2Rp
dj4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxh
eUFuZFRyYWNrUmVwYWludHMoKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXBhaW50LWR1cmluZy1zY3JvbGwtd2l0aC16
b29tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQt
ZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3JlcGFpbnQtZHVyaW5nLXNjcm9sbC13aXRoLXpvb20uaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICB9CiAKICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAg
ICAgICAgIHRlc3RTY3JvbGxSZXBhaW50KCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBzZXRUaW1lb3V0KHRlc3RTY3JvbGxSZXBhaW50LCAxMDApOwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RhYmxlLW92ZXJmbG93LWhpZGRlbi1pbi1vdmVyZmxvdy1oaWRkZW4tc2Ny
b2xsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUt
b3ZlcmZsb3ctaGlkZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCShyZXZpc2lv
biAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGFibGUtb3ZlcmZsb3ctaGlk
ZGVuLWluLW92ZXJmbG93LWhpZGRlbi1zY3JvbGxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
OCw3ICs0OCw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIi
KS5zY3JvbGxUb3AgPSAxMDAwOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogCiAgICAgICAgICAgICBzZXRU
aW1lb3V0KHJlcGFpbnRUZXN0LCAwKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3Jlc291cmNlcy9maXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC1pZnJh
bWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2Vz
L2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCShyZXZpc2lvbiAy
MTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2ZpeGVkLW1vdmUt
YWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLWlmcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcg
KzYsNyBAQAogICAgICAgewogICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNr
UmVwYWludHMoKTsKICAgICAgICAgICAgICAgcmVwYWludFRlc3QoKTsKICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlcGFpbnRUZXN0LCAxNSk7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1p
ZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3Vy
Y2VzL2lmcmFtZS1zY3JvbGwtcmVwYWludC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMjE2MTk0KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9pZnJhbWUtc2Nyb2xsLXJlcGFp
bnQtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKIAogd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Ag
PSAyMDsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Jlc291cmNlcy9saW5lLWZsb3ctd2l0aC1mbG9hdHMu
anMJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJj
ZXMvbGluZS1mbG93LXdpdGgtZmxvYXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3
IEBAIGZ1bmN0aW9uIGJlZ2luVGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwog
ICAgICAgICB0ZXN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5jb250ZW50RG9j
dW1lbnQpOwogICAgIH0gZWxzZSBzZXRUaW1lb3V0KAogICAgICAgICBmdW5jdGlvbigpIHsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMJKHJl
dmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVw
YWludC5qcwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gcnVuUmVwYWlu
dFRlc3QoKQogICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpCiAgICAg
ICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0VG9wOwogCi0gICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1Jl
cGFpbnRzKCk7CiAgICAgICAgIHJlcGFpbnRUZXN0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
c2V0VGltZW91dChyZXBhaW50VGVzdCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVw
bGFjZWQvd2lkdGgxMDBwZXJjZW50LXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtdGV4dGFyZWEuaHRtbAkocmV2aXNp
b24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQt
dGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaW1wbGVMaW5lTGF5b3V0RW5h
YmxlZChmYWxzZSk7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3Jp
cHQ+CiAKIFRoZSB0ZXh0YXJlYXMgYmVsb3cgc2hvdWxkIG5vdCBvdmVybGFwLgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2ttYXJrcy1oaXR0ZXN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsYmFyLXRpY2tt
YXJrcy1oaXR0ZXN0Lmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL3Njcm9sbGJhci10aWNrbWFya3MtaGl0dGVzdC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNiw3ICsxNiw3IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5hZGRUZXh0TWF0Y2hNYXJrZXIocmFuZ2UsIHRydWUpOwogICAgIH0KICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh3aW5kb3cuaW5u
ZXJXaWR0aCAtIDEsIHdpbmRvdy5pbm5lckhlaWdodCAtIDEpOwogICAgICAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHktc2VjdGlv
bi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGFibGUvZW1wdHkt
c2VjdGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2VtcHR5LXNlY3Rpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2
LDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgLyogU2luY2UgdGhlIGNyYXNoIGhhcHBlbnMg
aW4gcGFpbnRpbmcgY29kZSwgZm9yY2UgcGFpbnRpbmcuIFRoaXMKICAgICAgICAgICAgICAgIG1h
a2VzIHRoZSB0ZXN0IHdvcmsgZXZlbiB3aGVuIHJ1biB3aXRob3V0IHRoZSAtLXBpeGVsIG9wdGlv
bi4gKi8KLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtNjkyOTYuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC02OTI5Ni5odG1sCShy
ZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC02OTI5Ni5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIENv
bGxhcHNlZCBib3JkZXJzIHNob3VsZCBub3QgZGlzYXBwZWFyLgogICAgICAgICAgICAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAg
ICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAgICAgICByb3cg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm93MScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1hcHBlbmQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
ZWxsLWFwcGVuZC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLWFwcGVuZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgYXBwZW5kIG5ldyBjZWxsLCBleHBlY3QgdGhh
dCBjYWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAg
ICAgICAgICAgIG5ld0NlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwogICAgICAg
ICAgICAgICAgIG5ld0NlbGwuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0gIjZweCI7CiAgICAgICAg
ICAgICAgICAgbmV3Q2VsbC5zdHlsZS5ib3JkZXJMZWZ0U3R5bGUgPSAic29saWQiOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2VsbC1yZW1v
dmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xs
YXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jZWxsLXJlbW92ZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgcmVtb3ZlIGNlbGws
IGV4cGVjdCB0aGF0IGNhY2hlIGkKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBh
aW50cygpOwogICAgICAgICAgICAgICAgIGJhckNlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYmFyIik7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvdyIp
LnJlbW92ZUNoaWxkKGJhckNlbGwpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNv
bG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29s
bGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIx
NjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVk
LWNoYW5nZS1jZWxsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsx
MCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNlbGwgYm9yZGVyIGNvbG9yLCBleHBlY3QKICAgICAgICAg
ICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJsaW1lIjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5n
L2NhY2hlZC1jaGFuZ2UtY2VsbC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTk0KQor
KysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdl
LWNlbGwtYm9yZGVyLXdpZHRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAg
SGVyZSB3ZSBjaGFuZ2UgY2VsbCBib3JkZXIgd2lkdGgsIGV4cGVjdAogICAgICAgICAgICAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImZvbyIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNo
ZWQtY2hhbmdlLWNlbGwtc2wtYm9yZGVyLWNvbG9yLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysr
IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1j
ZWxsLXNsLWJvcmRlci1jb2xvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBA
IEhlcmUgd2U6CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAg
ICAgICAgICAgICAgICAvLyByZW1vdmUgdGV4dCwgdGhpcyByZXF1ZXN0cyBsYXlvdXQgZm9yIERJ
ViwKICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBzaW1wbGlmaWVkIGxheW91dCBmb3IgVEFC
TEUKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvY2tEaXYiKS5p
bm5lclRleHQgPSAiIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNv
bC1ib3JkZXItY29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbC1ib3JkZXItY29sb3Iu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSBjb2wg
Ym9yZGVyIGNvbG9yLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNw
bGF5KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVw
YWludHMoKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29sIiku
c3R5bGUuYm9yZGVyQ29sb3IgPSAieWVsbG93IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2Nh
Y2hlZC1jaGFuZ2UtY29sLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVy
LXdpZHRoLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUv
Ym9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2wtYm9yZGVyLXdpZHRoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgY29sIGJvcmRlciB3
aWR0aCwgZXhwZWN0IAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbCIpLnN0eWxlLmJv
cmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdl
LWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xncm91cC1ib3JkZXIt
Y29sb3IuaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9i
b3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci1jb2xvci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIGNvbGdyb3Vw
IGJvcmRlciBjb2xvciwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXko
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50
cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2xncm91cCIp
LnN0eWxlLmJvcmRlckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9j
YWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1jb2xn
cm91cC1ib3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLWNvbGdyb3VwLWJvcmRl
ci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hh
bmdlIGNvbGdyb3VwIGJvcmRlciB3aWR0aCwgZXgKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5k
VHJhY2tSZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb2xncm91cCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjRweCI7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29s
bGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Ut
cm93LWJvcmRlci1jb2xvci5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRlci1jb2xv
ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHJv
dyBib3JkZXIgY29sb3IsIGV4cGVjdCAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb3ci
KS5zdHlsZS5ib3JkZXJDb2xvciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8
L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcv
Y2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3Jk
ZXItd2lkdGguaHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGguaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSByb3cgYm9yZGVy
IHdpZHRoLCBleHBlY3QgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMo
KTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm93Iikuc3R5bGUu
Ym9yZGVyV2lkdGggPSAiNHB4IjsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFu
Z2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci1jb2xv
ci5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGFibGUtYm9yZGVyLWNvbG9yLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgSGVyZSB3ZSBjaGFuZ2UgdGFibGUgYm9yZGVyIGNv
bG9yLCBleHBlYwogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRibCIpLnN0eWxlLmJvcmRl
ckNvbG9yID0gInllbGxvdyI7CiAgICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdl
LXRhYmxlLWJvcmRlci13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
dGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10YWJsZS1ib3JkZXItd2lkdGgu
aHRtbAkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXIt
Y29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXRhYmxlLWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIEhlcmUgd2UgY2hhbmdlIHRhYmxlIGJvcmRlciB3aWR0
aCwgZXhwZWMKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tSZXBhaW50cygpOwogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YmwiKS5zdHlsZS5ib3JkZXJX
aWR0aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9k
eS1ib3JkZXItY29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLWNvbG9yLmh0bWwJ
KHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItY29sb3IuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgY29sb3IsIGV4
cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3JkZXJDb2xv
ciA9ICJ5ZWxsb3ciOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9k
eS1ib3JkZXItd2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1jaGFuZ2UtdGJvZHktYm9yZGVyLXdpZHRoLmh0bWwJ
KHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvY2FjaGVkLWNoYW5nZS10Ym9keS1ib3JkZXItd2lkdGguaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsNyArMTAsNyBAQCBIZXJlIHdlIGNoYW5nZSB0Ym9keSBib3JkZXIgd2lkdGgsIGV4
cGVjCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGJvZHkiKS5zdHlsZS5ib3JkZXJXaWR0
aCA9ICI0cHgiOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3RleHQvZm9udC1pbml0aWFsLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9mb250LWluaXRpYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Niw1ICs2LDUgQEAKIDxzY3JpcHQ+CiAgICAgLy8gTWFrZXMgdGhlIHJlbmRlcmluZyBjb2RlIHJ1
biBldmVuIHdoZW4gbm90IHJ1bm5pbmcgYXMgYSBwaXhlbCB0ZXN0LgogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L3RleHQtc2hhZG93LWV4dHJlbWUtdmFsdWUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ctZXh0cmVtZS12YWx1ZS5odG1s
CShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC1zaGFkb3ct
ZXh0cmVtZS12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJh
Y2tSZXBhaW50cygpOwogICAgIH0KIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enotcnVucy13aXRoLW5vLWdseXBoLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvaGFyZmJ1enot
cnVucy13aXRoLW5vLWdseXBoLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hhcmZidXp6LXJ1bnMtd2l0aC1uby1nbHlwaC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBAIGJvZHkgewogPHNjcmlwdD4KIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgIC8vIEZvcmNlIGxheW91dC4KLSAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1h
Z2UtaW4tcGF0dGVybi5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4uaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTgsNyArMTgsNyBAQCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwogCiAvLyBS
ZXBhaW50IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZSBhcnJpdmVkCiBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgdGVzdFJ1bm5lci5kaXNwbGF5
QW5kVHJhY2tSZXBhaW50cygpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvbWVkaWEvYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlv
dXRUZXN0cy9tZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcg
KzEyLDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAKICAgICB2YXIgY291bnQg
PSAzOwogICAgIHZhciBhdWRpb0VsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoJ2F1ZGlvJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRp
by1yZXBhaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZG9j
dW1lbnQtYXVkaW8tcmVwYWludC5odG1sCShyZXZpc2lvbiAyMTYxOTQpCisrKyBMYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTcsNyArNyw3IEBACiAgICAgewogICAgICAgICB2YXIgdmlkZW9FbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZyIikuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZp
ZGVvIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5QW5kVHJhY2tS
ZXBhaW50cygpOwogICAgICAgICB2aWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPSB2aWRlb0VsZW1l
bnQuZHVyYXRpb24gKiAwLjUwOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93
aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGx1Z2lucy93aW5kb3dsZXNzX3BsdWdpbl9wYWludF90ZXN0Lmh0bWwJKHJldmlzaW9uIDIx
NjE5NCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93bGVzc19wbHVnaW5fcGFpbnRfdGVz
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgICAgICAgICBwbHVn
aW5EaXYuaW5uZXJIVE1MID0gIjxlbWJlZCBpZD1cInRlc3RQbHVnaW5cIiB0eXBlPVwiYXBwbGlj
YXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZVwiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMjAw
XCIgb25wYWludGV2ZW50PVwiZGlkUGFpbnQoKVwiIHdpbmRvd2VkUGx1Z2luPVwiZmFsc2VcIj48
L2VtYmVkPiI7CiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAg
IGludGVybmFscy51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNBbmRSdW5Qb3N0
TGF5b3V0VGFza3MoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUludmFsaWRhdGVk
UmVnaW9uKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRz
KCk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBub3RpZnlEb25lKCkgewpJbmRleDog
TGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItcGVyY2VudC1wYWRkaW5nLWNyYXNoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItcGVyY2Vu
dC1wYWRkaW5nLWNyYXNoLmh0bWwJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRlc3RzL3Nj
cm9sbGJhcnMvc2Nyb2xsYmFyLXBlcmNlbnQtcGFkZGluZy1jcmFzaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICB9CiB9
OwogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25vbi1zY2FsaW5nLXN0
cm9rZS11cGRhdGUuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vbm9u
LXNjYWxpbmctc3Ryb2tlLXVwZGF0ZS5zdmcJKHJldmlzaW9uIDIxNjE5NCkKKysrIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vbm9uLXNjYWxpbmctc3Ryb2tlLXVwZGF0ZS5zdmcJKHdvcmtpbmcgY29w
eSkKQEAgLTcsNyArNyw3IEBACiAKICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheUFuZFRyYWNrUmVwYWludHMoKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgICAgIHNldFRpbWVvdXQocnVuVGVzdCwgMCk7CiAgICAgfSBlbHNlIHsKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3RhbGUtcmVzb3VyY2UtZGF0YS1jcmFzaC5zdmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdGFsZS1yZXNvdXJjZS1kYXRh
LWNyYXNoLnN2ZwkocmV2aXNpb24gMjE2MTk0KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9z
dGFsZS1yZXNvdXJjZS1kYXRhLWNyYXNoLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEs
NyBAQAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgICAvLyBGb3JjZSBhIHBhaW50IGF0IHRoaXMgcG9pbnQgdG8gZ2VuZXJh
dGUgY2FjaGVkIGZpbHRlciByZXN1bHRzLgotICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgICB0ZXN0UnVubmVyLmRpc3BsYXlBbmRUcmFja1JlcGFpbnRzKCk7CiAgICAgfQogCiAgICAg
ZG9jRWxlbWVudC5hcHBlbmRDaGlsZChuZXdEZWZzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>