<?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>40057</bug_id>
          
          <creation_ts>2010-06-02 06:49:56 -0700</creation_ts>
          <short_desc>IDL bindings should throw TypeError when called with too few arguments</short_desc>
          <delta_ts>2010-06-02 10:38:54 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>21257</dup_id>
          
          <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>39962</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233242</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-02 06:49:56 -0700</bug_when>
    <thetext>See Web IDL spec, 4.3.5 &quot;Operations&quot;:
http://www.w3.org/TR/WebIDL/#es-operations

Essentially, functions should throw a TypeError if called with too few arguments.

This behavior is implemented by Gecko and Opera.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233245</commentid>
    <comment_count>1</comment_count>
      <attachid>57649</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-02 06:57:09 -0700</bug_when>
    <thetext>Created attachment 57649
Proposed patch

First stab at a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233275</commentid>
    <comment_count>2</comment_count>
      <attachid>57649</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-02 08:22:12 -0700</bug_when>
    <thetext>Comment on attachment 57649
Proposed patch

We have made a conscious decision not throw for two few arguments and we should a much larger discussion if we want to change that behavior.  It is very likely that this will break a lot of webkit specific code paths on web. r-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233285</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-02 08:43:10 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 57649 [details])
&gt; We have made a conscious decision not throw for two few arguments and we should a much larger discussion if we want to change that behavior.

I see. Where can I find the original discussion about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233325</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-02 10:38:54 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 21257 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57649</attachid>
            <date>2010-06-02 06:57:09 -0700</date>
            <delta_ts>2010-06-02 08:22:11 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-40057.diff</filename>
            <type>text/plain</type>
            <size>229580</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMzkxNDU5Li5mOGFhZWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcxIEBACisyMDEwLTA2
LTAyICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSURMIGJpbmRpbmdzIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwNTcKKworICAg
ICAgICBGaXhlZCBhIG15cmlhZCBvZiBicm9rZW4gdGVzdHMgKG1pc3NpbmcgZnVuY3Rpb24gYXJn
dW1lbnRzLCBtb3N0bHkuKQorICAgICAgICBVcGRhdGVkIGJhc2VsaW5lcyBhY2NvcmRpbmdseS4K
KworICAgICAgICBTcGVjIGxpbms6CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1dlYklE
TC8jZXMtb3BlcmF0aW9ucworCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRo
YW5kLXJlbW92ZWQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhh
bmQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanM6
CisgICAgICAgIChjaGVja0V4cGVjdGVkVmFsdWUpOgorICAgICAgICAqIGFuaW1hdGlvbnMvY2hh
bmdlLW9uZS1hbmltLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0t
dHJhbnNsYXRlK3NjYWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jb21wdXRlZC1zdHls
ZS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbDoKKyAg
ICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiBh
bmltYXRpb25zL2ZpbGwtbW9kZS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNl
dC1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9mb250LXNpemUtdXNpbmct
ZW1zLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRo
LmFyYy5ub25maW5pdGUuaHRtbDoKKyAgICAgICAgKiBjc3MxL3VuaXRzL3plcm8tZHVyYXRpb24t
d2l0aG91dC11bml0cy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvNTE1NjgwMS5o
dG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC80MjQyMjkzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUuanM6
CisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2luZy5odG1sOgorICAg
ICAgICAqIGZhc3QvY3NzL2JhY2tncm91bmQtY3VycmVudGNvbG9yLmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1pbmhlcml0Lmh0bWw6CisgICAgICAgICogZmFz
dC9jc3MvY2hpbGQtc2VsZWN0b3ItaW1wbGljaXQtdGJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9keW5hbWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9j
c3MvZHluYW1pYy1wc2V1ZG8tY2xhc3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9mb250LWZh
bWlseS1idWlsdGlucy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFuc2Zvcm0uaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL3BlbmRpbmctc3R5bGVzaGVl
dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3Rz
L2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLmpzOgorICAgICAgICAqIGZhc3QvY3Nz
L2hvdmVyLWFmZmVjdHMtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9tYXgtaGVpZ2h0
LWFuZC1tYXgtd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9udGgtY2hpbGQtZHluYW1p
Yy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1sOgorICAg
ICAgICAqIGZhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sOgorICAgICAgICAqIGZh
c3QvY3NzL3pvb20taW4tbGVuZ3RoLXJvdW5kLXRyaXAuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudC1uYW1lc3BhY2UtZXJyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVu
dFR5cGUtZXJyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRh
dGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci5qczoKKyAgICAg
ICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1l
bnRUeXBlLWVyci5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVBdHRyaWJ1
dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1
bWVudC9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0ZU5TLW5hbWVz
cGFjZS1lcnIuanM6CisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2Ny
ZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLmpzOgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxG
b3JtRWxlbWVudC9hZG9wdC1hc3NlcnRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9TZWxl
Y3RvckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vU2VsZWN0b3JBUEkvc2NyaXB0LXRlc3RzL3ZpZXdsZXNzLWRvY3VtZW50LmpzOgor
ICAgICAgICAqIGZhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2RvbS9TdHlsZVNoZWV0L293bmVyTm9kZS1saWZldGltZS5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1zY3JvbGwtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
YXR0cmlidXRlLWRvd25jYXN0LXJpZ2h0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vY29tcHV0
ZWQtc3R5bGUtc2V0LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZS9kdW1wTm9kZUxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vaW1wb3J0Tm9kZS1udWxsLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vbmF2aWdh
dG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9u
b24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9udWxsLWNoYXJkYXRhLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vc2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qczoKKyAgICAgICAgKiBmYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5qczoK
KyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0
aW9ucy5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25z
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUt
cmVtb3ZlLXVucmVuZGVyZWQtZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMv
aG92ZXJlZC1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJz
b2x1dGUtdG8tZml4ZWQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9ldmVudC1s
aXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvaW5p
dC1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL21lc3NhZ2UtcG9y
dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLW91dHNpZGUtd2lu
ZG93LWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4
LWZvY3VzLWJsdXItYWxsLmpzOgorICAgICAgICAodGVzdFByb2dyYW1tYXRpY0ZvY3VzKToKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1ldmVudHMuanM6CisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC5odG1sOgorICAgICAg
ICAqIGZhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRhdGVzLWRvbS5qczoK
KyAgICAgICAgKiBmYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sOgorICAg
ICAgICAqIGZhc3QvaHRtbC9uYXYtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvaHRtbC9z
Y3JpcHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRl
c3RzL2Zvb3Rlci1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3JpcHQtdGVzdHMv
aGVhZGVyLWVsZW1lbnQuanM6CisgICAgICAgICogZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3Jv
dXAtZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24t
ZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2lubGluZS9yZWxhdGl2ZS1wb3NpdGlvbmVkLW92
ZXJmbG93Lmh0bWw6CisgICAgICAgICogZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1k
b20xLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tMy1leGNlcHRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9sb2NhbC1K
YXZhU2NyaXB0LWZyb20tbG9jYWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9sb2NhbC1j
c3MtYWxsb3dlZC1pbi1zdHJpY3QtbW9kZS5odG1sOgorICAgICAgICAqIGZhc3QvbXVsdGljb2wv
Z2FwLW5vbi1uZWdhdGl2ZS5odG1sOgorICAgICAgICAqIGZhc3QvcGFyc2VyL3NjcmlwdC10ZXN0
cy9ibG9jay1uZXN0aW5nLWNhcC10YWJsZS5qczoKKyAgICAgICAgKiBmYXN0L3BhcnNlci9zY3Jp
cHQtdGVzdHMvYmxvY2stbmVzdGluZy1jYXAuanM6CisgICAgICAgICogZmFzdC9wYXJzZXIvc2Ny
aXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanM6CisgICAgICAgICogZmFzdC9wcm9maWxl
ci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jl
c291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qczoKKyAgICAgICAgKGVuZFRlc3Qp
OgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sOgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBhdGguaHRtbDoKKyAgICAgICAg
KiBmYXN0L3RhYmxlL2NvbC13aWR0aC1zcGFuLWV4cGFuZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC90YWJsZS9jb2wtd2lkdGgtc3Bhbi1leHBhbmQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RhYmxlL3RkLWRpc3BsYXktbm93cmFwLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0L3Njcmlw
dC10ZXN0cy9maW5kLWJhY2t3YXJkcy5qczoKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9hbXBl
cnNhbmQtaW4tc3BlY2lhbC10YWcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLWVt
cHR5LXN0cmluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9jc3MtYWNjZXB0LWFu
eS10eXBlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2Nzcy1yZWplY3QtYW55LXR5
cGUtaW4tc3RyaWN0LW1vZGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xv
Y2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
bWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEv
dmlkZW8tY2FuLXBsYXktdHlwZS5odG1sOgorICAgICAgICAqIHN2Zy9jc3MvZ2x5cGgtb3JpZW50
YXRpb24tcm91bmRpbmctdGVzdC54aHRtbDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL2xvYWRldmVu
dHMtY2FwdHVyaW5nLnN2ZzoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLWNv
bnRlbnQueGh0bWw6CisgICAgICAgICogc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNo
YWRvdy10cmVlLWNvbnRlbnQueGh0bWw6CisgICAgICAgICogc3ZnL2N1c3RvbS9yZWxhdGl2ZS1z
aXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sOgorICAgICAgICAqIHN2
Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC54aHRtbDoKKyAgICAg
ICAgKiBzdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXVzZS1vbi1zeW1ib2wueGh0bWw6CisgICAg
ICAgICogc3ZnL2RvbS9mcmFtZS1yZWxhdGVkLWFwaS1kdXJpbmctbG9hZC5odG1sOgorICAgICAg
ICAqIHRyYW5zZm9ybXMvMmQvY29tcHV0ZWQtc3R5bGUtb3JpZ2luLmh0bWw6CisgICAgICAgICog
dHJhbnNmb3Jtcy8yZC9yZXNvdXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanM6CisgICAgICAg
ICh0ZXN0VHJhbnNmb3Jtcyk6CisgICAgICAgICogdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50
ZXJmYWNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1p
bnRlcmZhY2UueGh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvY2FuY2VsLXRyYW5zaXRpb24u
aHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0
aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvZXh0cmEtdHJhbnNpdGlvbi5odG1sOgor
ICAgICAgICAqIHRyYW5zaXRpb25zL2luaGVyaXQtb3RoZXItcHJvcHMuaHRtbDoKKyAgICAgICAg
KiB0cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvaW50ZXJy
dXB0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvaW50
ZXJydXB0LXplcm8tZHVyYXRpb24uaHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9pbnRlcnJ1
cHRlZC1hbGwtdHJhbnNpdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL21hdGNoZWQt
dHJhbnNmb3JtLWZ1bmN0aW9ucy5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL3JlcGVhdGVk
LWZpcmluZy1iYWNrZ3JvdW5kLWNvbG9yLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvcmV0
YXJnZXR0ZWQtdHJhbnNpdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL3N0YXJ0LXRy
YW5zZm9ybS10cmFuc2l0aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1kcnQtYXBpLWRlbGF5Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1k
dXJhdGlvbi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiB0
cmFuc2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5odG1sOgorICAgICAgICAqIHRy
YW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzOgorICAgICAgICAoZXhwZWN0ZWQp
OgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLmh0bWw6
CisgICAgICAgICogdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRoLW5vbi16ZXJvLWRlbGF5
LXN0YXJ0Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0
LXVuaXRzLmh0bWw6CisgICAgICAgICogdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA5Lmh0bWw6
CisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2NrZXQtZXZlbnQt
dGFyZ2V0LmpzOgorCiAyMDEwLTA2LTAyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXNob3J0aGFuZC1yZW1vdmVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhhbmQtcmVtb3ZlZC5odG1s
CmluZGV4IDE1YmY5NjguLjgwNTljZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLXNob3J0aGFuZC1yZW1vdmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLXJlbW92ZWQuaHRtbApAQCAtNzUsNyArNzUsNyBA
QAogICAgICAgdmFyIHJlc3VsdHNTdHJpbmcgPSAiIjsKICAgICAgIGtFbGVtZW50cy5mb3JFYWNo
KGZ1bmN0aW9uKGN1ckVsKSB7CiAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGN1ckVsLmlkKTsKLSAgICAgICAgdmFyIGVsU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCk7CisgICAgICAgIHZhciBlbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZWwsIG51bGwpOwogCiAgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGtQcm9wZXJ0aWVzLmxlbmd0
aDsgaSsrKSB7CiAgICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSBlbFN0eWxlW2tQcm9wZXJ0
aWVzW2ldXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXNo
b3J0aGFuZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5k
Lmh0bWwKaW5kZXggYWRmMzcxOS4uOTk1YmY0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLmh0bWwKQEAgLTcxLDcgKzcxLDcgQEAKICAgICAgIHZh
ciByZXN1bHRzU3RyaW5nID0gIiI7CiAgICAgICBrRXhwZWN0ZWRSZXN1bHRzLmZvckVhY2goZnVu
Y3Rpb24oY3VySXRlbSkgewogICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChjdXJJdGVtLmlkKTsKLSAgICAgICAgdmFyIGVsU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCk7CisgICAgICAgIHZhciBlbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZWwsIG51bGwpOwogICAgICAgICAKICAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwga1Byb3BlcnRp
ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGVsU3R5bGVb
a1Byb3BlcnRpZXNbaV1dOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tdGVzdC1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
dGVzdC1oZWxwZXJzLmpzCmluZGV4IGFiNjA2YWEuLmVlN2YzNTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMKQEAgLTc3LDkgKzc3LDkg
QEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAgICB2YXIg
Y29tcHV0ZWRWYWx1ZSwgY29tcHV0ZWRWYWx1ZTI7CiAgICAgdmFyIHBhc3MgPSB0cnVlOwogICAg
IGlmICghcHJvcGVydHkuaW5kZXhPZigid2Via2l0VHJhbnNmb3JtIikpIHsKLSAgICAgICAgY29t
cHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCkpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgICAgY29tcHV0ZWRWYWx1ZSA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCksIG51bGwpLndlYmtpdFRyYW5zZm9ybTsKICAgICAgICAgaWYgKGNvbXBhcmVFbGVtZW50cykg
ewotICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSkud2Via2l0VHJhbnNmb3JtOworICAg
ICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAg
ICAgICAgICAgdmFyIG0xID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21wdXRlZFZhbHVlKTsKICAg
ICAgICAgICAgIHZhciBtMiA9IG1hdHJpeFN0cmluZ1RvQXJyYXkoY29tcHV0ZWRWYWx1ZTIpOwog
ICAgICAgICAgICAgCkBAIC0xMDYsMTggKzEwNiwxOCBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVk
VmFsdWUoZXhwZWN0ZWQsIGluZGV4KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChwcm9wZXJ0eSA9PSAibGluZUhlaWdodCIpIHsKLSAgICAgICAgY29tcHV0ZWRWYWx1
ZSA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCkpLmxpbmVIZWlnaHQpOworICAgICAgICBjb21wdXRlZFZhbHVlID0gcGFy
c2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElkKSwgbnVsbCkubGluZUhlaWdodCk7CiAgICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMp
IHsKLSAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkMikpLmxpbmVIZWlnaHQp
OworICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSwgbnVsbCkubGluZUhl
aWdodCk7CiAgICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBj
b21wdXRlZFZhbHVlMiwgdG9sZXJhbmNlKTsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVl
LCB0b2xlcmFuY2UpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KSkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CisgICAgICAgIHZhciBjb21wdXRlZFN0
eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElkKSwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgIGNv
bXB1dGVkVmFsdWUgPSBjb21wdXRlZFN0eWxlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWUuQ1NTX05VTUJFUik7CiAgICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKLSAgICAgICAg
ICAgIHZhciBjb21wdXRlZFN0eWxlMiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5
KTsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlMiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpLCBudWxsKS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKHByb3BlcnR5KTsKICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0gY29tcHV0
ZWRTdHlsZTIuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKTsKICAg
ICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkVmFsdWUsIGNvbXB1dGVkVmFs
dWUyLCB0b2xlcmFuY2UpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2NoYW5nZS1vbmUtYW5pbS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFu
Z2Utb25lLWFuaW0uaHRtbAppbmRleCBiNThiYjE3Li40NWEwODg1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1vbmUtYW5pbS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvY2hhbmdlLW9uZS1hbmltLmh0bWwKQEAgLTM5LDcgKzM5LDcgQEAKICAgICAg
ICAgZnVuY3Rpb24gcmVtb3ZlQW5pbSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94Iik7Ci0gICAgICAgICAgICB2YXIgbGVm
dCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkubGVmdDsKKyAgICAgICAgICAgIHZh
ciBsZWZ0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKS5sZWZ0OwogICAg
ICAgICAgICAgdGFyZ2V0LnN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUgPSAidmVydCI7CiAgICAg
ICAgICAgICB0YXJnZXQuc3R5bGUubGVmdCA9IGxlZnQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tYm8tdHJhbnNmb3JtLXRyYW5zbGF0ZStzY2FsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3Nj
YWxlLmh0bWwKaW5kZXggNmE3OGEzMS4uYzQ5NzU1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxlLmh0bWwK
QEAgLTQyLDcgKzQyLDcgQEAKICAgICAKICAgICBmdW5jdGlvbiBzbmFwc2hvdCh3aGljaCkKICAg
ICB7Ci0gICAgICAgIHZhciB0ID0gbmV3IFdlYktpdENTU01hdHJpeCh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybSk7
CisgICAgICAgIHZhciB0ID0gbmV3IFdlYktpdENTU01hdHJpeCh3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JyksIG51bGwpLndlYmtpdFRyYW5zZm9y
bSk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA2OyArK2kpIHsKICAgICAgICAgICAgIGlmICgh
aXNFcXVhbCh0W3Byb3BbaV1dLCBleHBlY3RlZFt3aGljaF1baV0sIHRvbGVyYW5jZVtpXSkpCiAg
ICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMKCciK3Byb3BbaV0rIicgd2FzOiIrdFtwcm9w
W2ldXSsiLCBleHBlY3RlZDoiK2V4cGVjdGVkW3doaWNoXVtpXSsiKSI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggODljOGVlZC4uNGU4MjA1NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtNTMsOCArNTMs
OCBAQCBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjb21wdXRlZCBzdHlsZSB2YWx1ZXMgZnJvbSBh
bmltYXRpb24gcHJvcGVydGllcy4iKTsKIHZhciB0ZXN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0MSIpOwogdmFyIHRlc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qy
Iik7CiAKLXZhciB0ZXN0MVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDEpOwot
dmFyIHRlc3QyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0Mik7Cit2YXIgdGVz
dDFTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3QxLCBudWxsKTsKK3ZhciB0ZXN0
MlN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDIsIG51bGwpOwogCiBzaG91bGRC
ZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwgIidhbmltMSciKTsKIHNob3VsZEJl
KCJ0ZXN0MlN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUiLCAiJ2FuaW0yLCBhbmltMyciKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbAppbmRleCA2NjM1
NDY0Li5jN2I1N2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9k
ZS1yZW1vdmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtcmVt
b3ZlZC5odG1sCkBAIC02Nyw3ICs2Nyw3IEBACiAgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4
cGVjdGVkRW5kVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICB2YXIgZWwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZEVuZFZhbHVlc1tpXS5pZCk7CiAgICAgICAgICAg
ICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkRW5kVmFsdWVzW2ldLnZhbHVlOwotICAgICAg
ICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
TlVNQkVSKTsKKyAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZsb2F0VmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CiAgICAgICAgICAgICBpZiAoTWF0aC5hYnMo
ZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCA1KSB7CiAgICAgICAgICAgICAgIHJlc3VsdCAr
PSAiUEFTUyI7CiAgICAgICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbAppbmRleCAxYWY4MWUwLi4wN2NjNWE5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbApAQCAt
NzUsNyArNzUsNyBAQAogICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5s
ZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwogICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUg
PSBleHBlY3RlZFZhbHVlc1tpXS5lbmQ7Ci0gICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS53ZWJraXRUcmFuc2Zvcm07CisgICAgICAgICAg
ICB2YXIgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS53
ZWJraXRUcmFuc2Zvcm07CiAgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gcGFyc2VGbG9hdChj
b21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQoIiwiKVs0XSk7CiAgICAgICAgICAgICBp
ZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCBhbGxvd2FuY2UpIHsKICAg
ICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKQEAgLTk0LDcgKzk0LDcgQEAKICAgICAgIGZv
ciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAg
dmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwog
ICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1ZXNbaV0uc3RhcnQ7Ci0g
ICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCku
d2Via2l0VHJhbnNmb3JtOworICAgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLndlYmtpdFRyYW5zZm9ybTsKICAgICAgICAgICB2YXIg
cmVhbFZhbHVlID0gcGFyc2VGbG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQo
IiwiKVs0XSk7CiAgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFs
dWUpIDwgYWxsb3dhbmNlKSB7CiAgICAgICAgICAgICByZXN1bHQgKz0gIlBBU1MiOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvZmlsbC1tb2RlLmh0bWwKaW5kZXggNmM3NDFhNS4uZDJlNGIyOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sCkBAIC03NCw3ICs3NCw3IEBACiAgICAgICAg
IGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAg
ICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZFZhbHVlc1tpXS5p
ZCk7CiAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWVzW2ldLmVu
ZDsKLSAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShl
bCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZl
VmFsdWUuQ1NTX05VTUJFUik7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5Q1NTVmFsdWUoImxlZnQiKS5nZXRG
bG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOwogICAgICAgICAgICAgaWYg
KE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7CiAgICAg
ICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtOTIs
NyArOTIsNyBAQAogICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5n
dGg7IGkrKykgewogICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwogICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBl
eHBlY3RlZFZhbHVlc1tpXS5zdGFydDsKLSAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZs
b2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CisgICAgICAgICAgICB2YXIg
cmVhbFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5
Q1NTVmFsdWUoImxlZnQiKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1C
RVIpOwogICAgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUp
IDwgYWxsb3dhbmNlKSB7CiAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CiAgICAgICAg
ICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVu
c2V0LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1w
cm9wZXJ0aWVzLmh0bWwKaW5kZXggYTQ5ZGVjYS4uOTk4MzdmZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCkBAIC00MCw3ICs0MCw3
IEBACiAgICAgewogICAgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jv
eCcpOwogICAgICAgICB2YXIgcmVzdWx0c1N0cmluZyA9ICIiOwotICAgICAgICB2YXIgYm94U3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gpOworICAgICAgICB2YXIgYm94U3R5bGUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gsIG51bGwpOwogICAgICAgICAKICAgICAgICAg
a0V4cGVjdGVkUmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uKGN1ckl0ZW0pIHsKICAgICAgICAgICB2
YXIgY29tcHV0ZWRWYWx1ZSA9IGJveFN0eWxlW2N1ckl0ZW0ucHJvcGVydHldOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXNpemUtdXNpbmctZW1zLmh0bWwtZGlzYWJs
ZWQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNh
YmxlZAppbmRleCAzNThlMmEzLi5iZjIwNzJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNhYmxlZAorKysgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNhYmxlZApAQCAtNDksNyAr
NDksNyBAQAogICAgICAgICBpZiAocmVzdWx0ICE9ICJQQVNTIikKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIAotICAgICAgICB2YXIgZm9udFNpemUgPSBwYXJzZUludCh3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLmZvbnRTaXpl
KTsKKyAgICAgICAgdmFyIGZvbnRTaXplID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxsKS5mb250U2l6ZSk7CiAgICAg
ICAgIGlmICghaXNFcXVhbChmb250U2l6ZSwgZXhwZWN0ZWQpKSB7CiAgICAgICAgICAgICByZXN1
bHQgPSAiRkFJTCh3YXM6Iitmb250U2l6ZSsiLCBleHBlY3RlZDoiK2V4cGVjdGVkKyIpIjsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXRoLmFyYy5ub25maW5pdGUuaHRtbCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0aC5hcmMubm9uZmluaXRlLmh0bWwKaW5kZXggNDU3ZmUxYi4uMzY0NmIwMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyYy5ub25maW5p
dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJj
Lm5vbmZpbml0ZS5odG1sCkBAIC0yOSwyOSArMjksMjkgQEAgY3R4LmZpbGxTdHlsZSA9ICcjZjAw
JzsKIGN0eC5maWxsUmVjdCgwLCAwLCAxMDAsIDUwKTsKIGN0eC5tb3ZlVG8oMCwgMCk7CiBjdHgu
bGluZVRvKDEwMCwgMCk7Ci1jdHguYXJjKEluZmluaXR5LCA1MCwgMCwgMipNYXRoLlBJLCB0cnVl
KTsKLWN0eC5hcmMoLUluZmluaXR5LCA1MCwgMCwgMipNYXRoLlBJLCB0cnVlKTsKLWN0eC5hcmMo
TmFOLCA1MCwgMCwgMipNYXRoLlBJLCB0cnVlKTsKLWN0eC5hcmMoMCwgSW5maW5pdHksIDAsIDIq
TWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIC1JbmZpbml0eSwgMCwgMipNYXRoLlBJLCB0cnVl
KTsKLWN0eC5hcmMoMCwgTmFOLCAwLCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYygwLCA1MCwg
SW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCAtSW5maW5pdHksIDIq
TWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCBOYU4sIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1j
dHguYXJjKDAsIDUwLCAwLCBJbmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCAwLCAtSW5m
aW5pdHksIHRydWUpOwotY3R4LmFyYygwLCA1MCwgMCwgTmFOLCB0cnVlKTsKLWN0eC5hcmMoSW5m
aW5pdHksIEluZmluaXR5LCAwLCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwg
SW5maW5pdHksIEluZmluaXR5LCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwg
SW5maW5pdHksIEluZmluaXR5LCBJbmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKEluZmluaXR5LCBJ
bmZpbml0eSwgMCwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwgNTAsIEluZmlu
aXR5LCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwgNTAsIEluZmluaXR5LCBJ
bmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKEluZmluaXR5LCA1MCwgMCwgSW5maW5pdHksIHRydWUp
OwotY3R4LmFyYygwLCBJbmZpbml0eSwgSW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1jdHgu
YXJjKDAsIEluZmluaXR5LCBJbmZpbml0eSwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYygwLCBJ
bmZpbml0eSwgMCwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYygwLCA1MCwgSW5maW5pdHksIElu
ZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUwLCAxMCwgMCwgMipNYXRoLlBJLCB0
cnVlKTsKK2N0eC5hcmMoLUluZmluaXR5LCA1MCwgMTAsIDAsIDIqTWF0aC5QSSwgdHJ1ZSk7Citj
dHguYXJjKE5hTiwgNTAsIDEwLCAwLCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYygwLCBJbmZp
bml0eSwgMTAsIDAsIDIqTWF0aC5QSSwgdHJ1ZSk7CitjdHguYXJjKDAsIC1JbmZpbml0eSwgMTAs
IDAsIDIqTWF0aC5QSSwgdHJ1ZSk7CitjdHguYXJjKDAsIE5hTiwgMCwgMTAsIDIqTWF0aC5QSSwg
dHJ1ZSk7CitjdHguYXJjKDAsIDUwLCAxMCwgSW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7Citj
dHguYXJjKDAsIDUwLCAxMCwgLUluZmluaXR5LCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYygw
LCA1MCwgMTAsIE5hTiwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoMCwgNTAsIDEwLCAwLCBJ
bmZpbml0eSwgdHJ1ZSk7CitjdHguYXJjKDAsIDUwLCAxMCwgMCwgLUluZmluaXR5LCB0cnVlKTsK
K2N0eC5hcmMoMCwgNTAsIDEwLCAwLCBOYU4sIHRydWUpOworY3R4LmFyYyhJbmZpbml0eSwgSW5m
aW5pdHksIDEwLCAwLCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYyhJbmZpbml0eSwgSW5maW5p
dHksIDEwLCBJbmZpbml0eSwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIElu
ZmluaXR5LCAxMCwgSW5maW5pdHksIEluZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHks
IEluZmluaXR5LCAxMCwgMCwgSW5maW5pdHksIHRydWUpOworY3R4LmFyYyhJbmZpbml0eSwgNTAs
IDEwLCBJbmZpbml0eSwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUwLCAx
MCwgSW5maW5pdHksIEluZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUwLCAxMCwg
MCwgSW5maW5pdHksIHRydWUpOworY3R4LmFyYygwLCBJbmZpbml0eSwgMTAsIEluZmluaXR5LCAy
Kk1hdGguUEksIHRydWUpOworY3R4LmFyYygwLCBJbmZpbml0eSwgMTAsIEluZmluaXR5LCBJbmZp
bml0eSwgdHJ1ZSk7CitjdHguYXJjKDAsIEluZmluaXR5LCAxMCwgMCwgSW5maW5pdHksIHRydWUp
OworY3R4LmFyYygwLCA1MCwgMTAsIEluZmluaXR5LCBJbmZpbml0eSwgdHJ1ZSk7CiBjdHgubGlu
ZVRvKDEwMCwgNTApOwogY3R4LmxpbmVUbygwLCA1MCk7CiBjdHguZmlsbFN0eWxlID0gJyMwZjAn
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMS91bml0cy96ZXJvLWR1cmF0aW9uLXdpdGhv
dXQtdW5pdHMuaHRtbCBiL0xheW91dFRlc3RzL2NzczEvdW5pdHMvemVyby1kdXJhdGlvbi13aXRo
b3V0LXVuaXRzLmh0bWwKaW5kZXggOTczYzVkOC4uZGQzZmYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvY3NzMS91bml0cy96ZXJvLWR1cmF0aW9uLXdpdGhvdXQtdW5pdHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MxL3VuaXRzL3plcm8tZHVyYXRpb24td2l0aG91dC11bml0cy5odG1sCkBA
IC0yNSw3ICsyNSw3IEBACiAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewogICAgICAgICB2YXIg
Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpOwotICAgICAgICB2YXIgZHVyID0g
cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94KS53ZWJraXRUcmFuc2l0aW9uRHVy
YXRpb24pOworICAgICAgICB2YXIgZHVyID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUoYm94LCBudWxsKS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24pOwogICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gKGR1ciA9PSAwKSA/ICJQQVNT
IiA6ICJGQUlMIjsKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvNTE1NjgwMS5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKaW5kZXggMTEzOTQzNS4uZjAxOGRkYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKQEAgLTE4LDcgKzE4LDcg
QEAgZnVuY3Rpb24gcmVtb3ZlSGFuZGxlcigpIHsKICAgICByZW1vdmVtZS5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKHJlbW92ZW1lKTsKIH0KIAotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIp
LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVSZW1vdmVkIiwgcmVtb3ZlSGFuZGxlcik7Citkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZm9vIikuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92
ZWQiLCByZW1vdmVIYW5kbGVyLCBmYWxzZSk7CiB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlv
bigpOwogc2VsLnNldEJhc2VBbmRFeHRlbnQoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb28n
KSwgMCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpLCAxICk7CiBkb2N1bWVudC5leGVj
Q29tbWFuZCgiRGVsZXRlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kLzUxMjA1OTEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEy
MDU5MS5odG1sCmluZGV4IGEyOTZmY2MuLjE0YWY5YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sCkBAIC03LDcgKzcsNyBAQCBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKLWRpdi5hZGRF
dmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCBmdW5jdGlvbiAoKSB7O30pOworZGl2
LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTVN1YnRyZWVNb2RpZmllZCcsIGZ1bmN0aW9uICgpIHs7fSwg
ZmFsc2UpOwogZGl2LmZvY3VzKCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7
CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3JlYXRlTGluayIsIGZhbHNlLCAiIyIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC80MjQyMjkzLmh0bWwKaW5kZXggZDBkZWZhNC4uNzE5
NDk2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDI0MjI5My5odG1sCkBA
IC05LDkgKzksOSBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogPGRpdiBpZD0i
cGFzdGUiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci13aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHki
KSk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvcHkiKSwgMCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CiBk
b2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOwotd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBv
c2l0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXN0ZSIpKTsKK3dpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzdGUiKSwgMCk7
CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sCmluZGV4IGY4NjZmNDYu
LjI2ODBhMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zdHls
ZWQtZWxlbWVudC1tYXJrdXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvc3R5bGVkLWVsZW1lbnQtbWFya3VwLmh0bWwKQEAgLTgsOSArOCw5IEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiA8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgaWQ9InBh
c3RlIj48L2Rpdj4KIAogPHNjcmlwdD47Ci13aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRp
b24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKSk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKSwgMCk7CiBkb2N1
bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29w
eSIpOwotd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJwYXN0ZSIpKTsKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGFzdGUiKSwgMCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgi
UGFzdGUiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4cGVjdGVkLnR4
dAppbmRleCAyZTk4NjIzLi4zYzFhZDM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4
cGVjdGVkLnR4dApAQCAtMywxMyArMywxNCBAQCBUZXN0IHRvIGNoZWNrIGlmIHNldEJhc2VBbmRF
eHRlbnQgZ3VhcmQgbm9kZSB3aXRoIG51bGwgb3duZXIgZG9jdW1lbnQgKEJ1ZyAzMTY4MAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mgc2VsLnNldEJhc2VBbmRFeHRlbnQoZG9j
VHlwZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQ
QVNTIHNlbC5hbmNob3JOb2RlIGlzIG51bGwKIFBBU1Mgc2VsLmFuY2hvck5vZGUgaXMgbnVsbAog
UEFTUyBzZWwuYW5jaG9yTm9kZSBpcyBudWxsCiBQQVNTIHNlbC5hbmNob3JOb2RlIGlzIG51bGwK
IFBBU1Mgc2VsLmFuY2hvck5vZGUgaXMgbnVsbAogUEFTUyBzZWwuYW5jaG9yTm9kZSBpcyBudWxs
Ci1QQVNTIHNlbC5jb250YWluc05vZGUoZG9jVHlwZSkgaXMgZmFsc2UKK1BBU1Mgc2VsLmNvbnRh
aW5zTm9kZShkb2NUeXBlLCBmYWxzZSkgaXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZXh0ZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2V4dGVuZC1leHBlY3RlZC50eHQKaW5kZXggMGE0NWNmZS4uYTI5ZjkzNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtZXhwZWN0ZWQudHh0CkBA
IC00LDUgKzQsNSBAQCBTdWNjZXNzOiBzLmV4dGVuZChzcGFuMi5maXJzdENoaWxkLCA0KSByYWlz
ZWQgRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aQogU3VjY2Vzczogcy5leHRlbmQo
c3BhbjIuZmlyc3RDaGlsZCwgLTEpIHJhaXNlZCBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KIFN1Y2Nlc3M6IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSBpcyBiLgogU3VjY2Vz
czogd2luZG93LmdldFNlbGVjdGlvbigpIGlzIGFyYmF6LgotU3VjY2Vzczogcy5leHRlbmQoKSBy
YWlzZWQgRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorU3VjY2Vz
czogcy5leHRlbmQoKSByYWlzZWQgVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFN1
Y2Nlc3M6IHMuZXh0ZW5kKG51bGwsIDApIHJhaXNlZCBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qcyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9jdW1lbnRU
eXBlLmpzCmluZGV4IDc5NTQ1ZGQuLjRiZTFlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLmpz
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxl
Y3Rpb24tRG9jdW1lbnRUeXBlLmpzCkBAIC0xLDE1ICsxLDE1IEBACiBkZXNjcmlwdGlvbigiVGVz
dCB0byBjaGVjayBpZiBzZXRCYXNlQW5kRXh0ZW50IGd1YXJkIG5vZGUgd2l0aCBudWxsIG93bmVy
IGRvY3VtZW50IChCdWcgMzE2ODApIik7CiAKIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCk7Ci12YXIgZG9jVHlwZSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
VHlwZSgnYycpOwordmFyIGRvY1R5cGUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudFR5cGUoJ2MnLCBudWxsLCBudWxsKTsKIAotc2VsLnNldEJhc2VBbmRFeHRlbnQoZG9j
VHlwZSk7CitzaG91bGRUaHJvdygic2VsLnNldEJhc2VBbmRFeHRlbnQoZG9jVHlwZSkiKTsKIHNo
b3VsZEJlTnVsbCgic2VsLmFuY2hvck5vZGUiKTsKIAogc2VsLnNldEJhc2VBbmRFeHRlbnQobnVs
bCwgMCwgZG9jVHlwZSwgMCk7CiBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7CiAKLXNl
bC5jb2xsYXBzZShkb2NUeXBlKTsKK3NlbC5jb2xsYXBzZShkb2NUeXBlLCAwKTsKIHNob3VsZEJl
TnVsbCgic2VsLmFuY2hvck5vZGUiKTsKIAogc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRvY1R5cGUp
OwpAQCAtMTgsOSArMTgsOSBAQCBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7CiBzZWwu
ZXh0ZW5kKGRvY1R5cGUsIDApOwogc2hvdWxkQmVOdWxsKCJzZWwuYW5jaG9yTm9kZSIpOwogCi1z
ZWwuY29udGFpbnNOb2RlKGRvY1R5cGUpOworc2VsLmNvbnRhaW5zTm9kZShkb2NUeXBlLCBmYWxz
ZSk7CiBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7CiAKLXNob3VsZEJlRmFsc2UoInNl
bC5jb250YWluc05vZGUoZG9jVHlwZSkiKTsKK3Nob3VsZEJlRmFsc2UoInNlbC5jb250YWluc05v
ZGUoZG9jVHlwZSwgZmFsc2UpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2lu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2luZy5o
dG1sCmluZGV4IDk4NzQ1OTAuLjI5YzkxN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Ym9yZGVycy9ib3JkZXItcmFkaXVzLXBhcnNpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy1wYXJzaW5nLmh0bWwKQEAgLTExLDggKzExLDggQEAKIAog
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotICAgICAgICBlbGVtZW50
LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7Ci0gICAgICAgIHZhciBjb21wdXRl
ZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgZWxlbWVudC5zdHls
ZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUsIG51bGwpOworICAgICAgICB2YXIgY29tcHV0
ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7CiAgICAgICAgIHZhciBw
cm9wZXJ0aWVzID0gWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10b3AtcmlnaHQt
cmFkaXVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImJvcmRlci1ib3R0b20tcmlnaHQt
cmFkaXVzIiwgImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiXTsKICAgICAgICAgdmFyIGZhaWxl
ZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dyb3VuZC1j
dXJyZW50Y29sb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtY3VycmVu
dGNvbG9yLmh0bWwKaW5kZXggNTVkOGU1Ny4uYWFjNjUwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvYmFja2dyb3VuZC1jdXJyZW50Y29sb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLWN1cnJlbnRjb2xvci5odG1sCkBAIC0xNiwxMiArMTYsMTIg
QEAKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0d28iKTsKICAgICAgIGRpdi5zdHlsZS5j
b2xvciA9ICJncmVlbiI7Ci0gICAgICBpZiAod2luZG93LmdldENvbXB1dGVkU3R5bGUoZGl2KS5i
YWNrZ3JvdW5kQ29sb3IgIT0gInJnYigwLCAxMjgsIDApIikgeworICAgICAgaWYgKHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRpdiwgbnVsbCkuYmFja2dyb3VuZENvbG9yICE9ICJyZ2IoMCwgMTI4
LCAwKSIpIHsKICAgICAgICAgICBsb2coIkZBSUxFRCIpOwogICAgICAgICAgIHJldHVybjsKICAg
ICAgIH0KICAgICAgIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aHJlZSIpOwotICAg
ICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdikuY29sb3IgIT0gInJnYigwLCAxMjgs
IDApIikgeworICAgICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdiwgbnVsbCkuY29s
b3IgIT0gInJnYigwLCAxMjgsIDApIikgewogICAgICAgICAgIGxvZygiRkFJTEVEIik7CiAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
YmFja2dyb3VuZC1wb3NpdGlvbi1pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9i
YWNrZ3JvdW5kLXBvc2l0aW9uLWluaGVyaXQuaHRtbAppbmRleCBhYzU5N2MxLi43OGVmYTg4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWluaGVy
aXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWlu
aGVyaXQuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAot
ICAgIHZhciB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb24gPSBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuYmFja2dyb3VuZFBvc2l0aW9uLGNzc1RleHQ7
CisgICAgdmFyIHRhcmdldEJhY2tncm91bmRQb3NpdGlvbiA9IGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLCBudWxsKS5iYWNrZ3JvdW5kUG9zaXRpb24s
Y3NzVGV4dDsKIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRl
eHQgPSB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb24gPT0gIjI1JSA3NSUiID8gIlBBU1MiIDogIkZB
SUw6IFRoZSBpbmhlcml0ZWQgdmFsdWUgd2FzICIgKyB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb247
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NoaWxkLXNlbGVj
dG9yLWltcGxpY2l0LXRib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jaGlsZC1zZWxl
Y3Rvci1pbXBsaWNpdC10Ym9keS5odG1sCmluZGV4IDJjZmU1ZjQuLjFlMjU4NDkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NoaWxkLXNlbGVjdG9yLWltcGxpY2l0LXRib2R5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2hpbGQtc2VsZWN0b3ItaW1wbGljaXQtdGJv
ZHkuaHRtbApAQCAtNiw4ICs2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwogICAgIHJlc3VsdCA9ICJURVNUIEZBSUxFRCI7Ci0gICAgaWYgKGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwxIikpLmZvbnRXZWlnaHQgPT0gIm5v
cm1hbCIpCi0gICAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjZWxsMiIpKS5mb250V2VpZ2h0ID09ICJib2xkIikKKyAgICBpZiAoZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbDEiKSwgbnVsbCkuZm9udFdlaWdodCA9
PSAibm9ybWFsIikKKyAgICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNlbGwyIiksIG51bGwpLmZvbnRXZWlnaHQgPT0gImJvbGQiKQogICAgICAgICAg
ICAgcmVzdWx0ID0gIlRFU1QgUEFTU0VEOiBDaGlsZCBydWxlIGRpZCBub3QgYWZmZWN0IHRoZSB0
YWJsZS4iOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5maXJzdENoaWxk
LmRhdGEgPSByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5h
bWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5h
bWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQKaW5kZXggYWMwNTJlMy4uMmQzMGQzZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1wc2V1ZG8tY2xhc3MtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtcHNldWRvLWNsYXNzLWV4
cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0cyBlbGVtZW50cyBhZmZlY3RlZCBi
eSBDU1MgcHNldWRvIGNsYXNzIHNlbGVjdG9ycyBhcmUgdXBkYXRlZCBhZnRlciBhIGQKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm9yaWciKSlbImNvbG9yIl0gaXMgInJnYigyNTUsIDAsIDApIgotUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIikpWyJjb2xv
ciJdIGlzICJyZ2IoMCwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm9yaWciKSwgbnVsbClbImNvbG9yIl0gaXMgInJnYigyNTUsIDAsIDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51
bGwpWyJjb2xvciJdIGlzICJyZ2IoMCwgMCwgMCkiCiBHZW5lcmF0ZWQgY29udGVudC4KIE9yaWdp
bmFsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1wc2V1ZG8tY2xh
c3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtcHNldWRvLWNsYXNzLmh0bWwK
aW5kZXggYjgwYWQ2NC4uYmEwYzRhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
ZHluYW1pYy1wc2V1ZG8tY2xhc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5h
bWljLXBzZXVkby1jbGFzcy5odG1sCkBAIC0yMCw5ICsyMCw5IEBAIGZ1bmN0aW9uIG1ha2VEeW5h
bWljQ2hhbmdlcygpIHsKICAgICB1bC5pbnNlcnRCZWZvcmUoeCwgdWwuZmlyc3RDaGlsZCk7CiB9
CiAKLXNob3VsZEJlKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
cmlnIikpWyJjb2xvciJdJywgJyJyZ2IoMjU1LCAwLCAwKSInKTsKK3Nob3VsZEJlKCdnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51bGwpWyJjb2xvciJd
JywgJyJyZ2IoMjU1LCAwLCAwKSInKTsKIG1ha2VEeW5hbWljQ2hhbmdlcygpOwotc2hvdWxkQmUo
J2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9yaWciKSlbImNvbG9y
Il0nLCAnInJnYigwLCAwLCAwKSInKTsKK3Nob3VsZEJlKCdnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51bGwpWyJjb2xvciJdJywgJyJyZ2IoMCwgMCwg
MCkiJyk7CiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1mYW1pbHktYnVpbHRpbnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnQtZmFtaWx5LWJ1aWx0aW5zLmh0bWwKaW5k
ZXggODQ0NTI3NC4uM2FiODg2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9u
dC1mYW1pbHktYnVpbHRpbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250LWZh
bWlseS1idWlsdGlucy5odG1sCkBAIC0yNiw3ICsyNiw3IEBACiAgICAgICAgICAgICBkaXYuc2V0
QXR0cmlidXRlKCJzdHlsZSIsICJmb250LWZhbWlseTogIiArIGZhbWlseSk7CiAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CiAKLSAgICAgICAgICAgIHZhciByZXR1
cm5lZEZhbWlseSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdikuZm9udEZhbWlseQorICAg
ICAgICAgICAgdmFyIHJldHVybmVkRmFtaWx5ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZGl2
LCBudWxsKS5mb250RmFtaWx5CiAgICAgICAgICAgICBpZiAoZmFtaWx5ID09IHJldHVybmVkRmFt
aWx5KQogICAgICAgICAgICAgICAgIGxvZygiUEFTUzogVGhlIGNvbXB1dGVkIHN0eWxlIGZvciBh
IHNwZWNpZmllZCBmb250LWZhbWlseSBvZiAnIiArIGZhbWlseSArICInIG1hdGNoZWQuIik7CiAg
ICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21w
dXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtcGFn
ZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0CmluZGV4IGY0NmRkNGEuLjNiN2VkZmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5
bGUtcGFnZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUtZXhw
ZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0IHRoYXQgcGFnZS1icmVhay1pbnNpZGUgcHJv
cGVydHkgaXMgbm90IGluaGVyaXRlZAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdw
YWdlLWJyZWFrLWluc2lkZScpLmdldFN0cmluZ1ZhbHVlKCkgaXMgImF2b2lkIgotUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVh
ay1pbnNpZGUnKS5nZXRTdHJpbmdWYWx1ZSgpIGlzICJhdXRvIgorUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShwYXJlbnQsIG51bGwpLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3BhZ2UtYnJlYWst
aW5zaWRlJykuZ2V0U3RyaW5nVmFsdWUoKSBpcyAiYXZvaWQiCitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGNoaWxkLCBudWxsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdwYWdlLWJyZWFrLWlu
c2lkZScpLmdldFN0cmluZ1ZhbHVlKCkgaXMgImF1dG8iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFuc2Zvcm0uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFu
c2Zvcm0uaHRtbAppbmRleCA0NWU2ODY3Li4xOGI4MjcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdHJhbnNmb3JtLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRl
ZFN0eWxlLXRyYW5zZm9ybS5odG1sCkBAIC00NCwxMSArNDQsMTEgQEAKICAgICAgICAgLy8gc2V0
IG9uZSBvZiBvdXIgdGVzdCB0cmFuc2Zvcm1zCiAgICAgICAgIHRlc3RCb3guc3R5bGUud2Via2l0
VHJhbnNmb3JtID0gY3VyVGVzdC50cmFuc2Zvcm07CiAgICAgICAgIC8vIHJlYWQgYmFjayBjb21w
dXRlZCBzdHlsZQotICAgICAgICB2YXIgb2xkVHJhbnNmb3JtID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3JtOworICAgICAgICB2YXIgb2xkVHJhbnNmb3Jt
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCwgbnVsbCkud2Via2l0VHJhbnNmb3Jt
OwogICAgICAgICAvLyBzZXQgdGhhdCBtYXRyaXgoKSBiYWNrIG9uIHRoZSBlbGVtZW50CiAgICAg
ICAgIHRlc3RCb3guc3R5bGUud2Via2l0VHJhbnNmb3JtID0gb2xkVHJhbnNmb3JtOwogICAgICAg
ICAvLyByZWFkIGJhY2sgY29tcHV0ZWQgc3R5bGUKLSAgICAgICAgdmFyIGNvbXB1dGVkVHJhbnNm
b3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3JtOwor
ICAgICAgICB2YXIgY29tcHV0ZWRUcmFuc2Zvcm0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXN0Qm94LCBudWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAgIAogICAgICAgICB2YXIgc3Vj
Y2VzcyA9IChvbGRUcmFuc2Zvcm0gPT0gY29tcHV0ZWRUcmFuc2Zvcm0pOwogICAgICAgICB2YXIg
cmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHls
ZS9wZW5kaW5nLXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvcGVuZGluZy1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggZjA3MWY2NS4uMDY5ODAwYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9wZW5kaW5n
LXN0eWxlc2hlZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0
eWxlL3BlbmRpbmctc3R5bGVzaGVldC5odG1sCkBAIC05LDYgKzksNiBAQAogICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKIAotICAgIHZhciBjb21wdXRlZFdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLndpZHRoOworICAgIHZhciBjb21wdXRl
ZFdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IiksIG51bGwpLndpZHRoOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5p
bm5lclRleHQgPSBjb21wdXRlZFdpZHRoID09PSAiMTAwcHgiID8gIlBBU1MiIDogIkZBSUwiCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvc2NyaXB0LXRlc3RzL2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvY29tcHV0ZWQt
c3R5bGUtcGFnZS1icmVhay1pbnNpZGUuanMKaW5kZXggNDUyZmY0Ni4uMjY0OWI2YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMv
Y29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvY29tcHV0ZWQtc3R5bGUtcGFnZS1i
cmVhay1pbnNpZGUuanMKQEAgLTcsOCArNyw4IEBAIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogcGFyZW50LmFwcGVuZENoaWxkKGNoaWxkKTsKIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKIAotc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHBhcmVudCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUnKS5nZXRT
dHJpbmdWYWx1ZSgpIiwgJyJhdm9pZCInKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShjaGlsZCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUnKS5nZXRT
dHJpbmdWYWx1ZSgpIiwgJyJhdXRvIicpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHBhcmVudCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUn
KS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdm9pZCInKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShjaGlsZCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1p
bnNpZGUnKS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdXRvIicpOwogCiBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKHBhcmVudCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hv
dmVyLWFmZmVjdHMtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLWFmZmVj
dHMtY2hpbGQuaHRtbAppbmRleCBjZWVhOGE2Li5iMDY1ZWFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9ob3Zlci1hZmZlY3RzLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvaG92ZXItYWZmZWN0cy1jaGlsZC5odG1sCkBAIC0zMCw3ICszMCw3IEBACiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB0ZXN0ZWRIb3ZlclN0YXRl
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB2YXIgaW5uZXJFbGVtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2lubmVyRWxlbScpOwotICAgICAgICAgICAgICAgIHZhciBjYWxjdWxhdGVkU3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbm5lckVsZW0pOworICAgICAgICAgICAgICAg
IHZhciBjYWxjdWxhdGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbm5lckVsZW0s
IG51bGwpOwogICAgIAogICAgICAgICAgICAgICAgIGlmIChjYWxjdWxhdGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgnbGVmdCcpID09ICJhdXRvIikKICAgICAgICAgICAgICAgICAgICAgbG9nKCJQ
QVNTRUQ6IENhbGN1bGF0ZWQgc3R5bGUgb2YgaW5uZXIgZWxlbWVudCBpcyBjb3JyZWN0Iik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9tYXgtaGVpZ2h0LWFuZC1tYXgtd2lkdGgu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1s
CmluZGV4IDg5MWJlZWEuLjg2YjRjOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9u
IGRvVGVzdCgpCiAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmFwcGVuZENo
aWxkKGJveCk7ICAgIAogCi0gICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Ym94KTsKKyAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gsIG51bGwp
OwogICAgIGlmKHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1heC1oZWlnaHQiKSA9PSBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCJtYXgtd2lkdGgiKSkKICAgICAgICAgdGVzdEZhaWxlZCgibWF4LXdp
ZHRoIGlzIE5PVCBpbmRlcGVuZGVudCBvZiBtYXgtaGVpZ2h0LiIpOwogICAgIGVsc2UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1keW5hbWljLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtZHluYW1pYy5odG1sCmluZGV4IDE1YjA5OGMuLjQw
ZWRlYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1keW5hbWlj
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLWR5bmFtaWMuaHRtbApA
QCAtNjcsNyArNjcsNyBAQAogICAgICAgICBuICs9IDE7CiAgICAgICB9CiAgICAgICBpZiAodGVz
dENvbG9ycykgewotICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRlc3RFbHNbaV0pLmNvbG9yOworICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbHNbaV0sIG51bGwpLmNvbG9yOwogICAgICAgICB2
YXIgbWVzc2FnZTsKICAgICAgICAgaWYgKGNvbXB1dGVkQ29sb3IgIT0gZXhwZWN0ZWRDb2xvcikK
ICAgICAgICAgICBtZXNzYWdlID0gJ0ZBSUw6IGZvdW5kIGNvbG9yICcgKyBjb21wdXRlZENvbG9y
ICsgJywgZXhwZWN0ZWQgJyArIGV4cGVjdGVkQ29sb3I7CkBAIC04OSw3ICs4OSw3IEBACiAgICAg
ICAgIHZhciBleHBlY3RlZENvbG9yID0gJ3JnYigxNTMsIDE1MywgMjU1KSc7CiAKICAgICAgICAg
aWYgKHRlc3RDb2xvcnMpIHsKLSAgICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGJsdWVzW2ldKS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICAgICAgdmFy
IGNvbXB1dGVkQ29sb3IgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShibHVlc1tpXSwgbnVsbCku
YmFja2dyb3VuZENvbG9yOwogICAgICAgICAgIHZhciBtZXNzYWdlOwogICAgICAgICAgIGlmIChj
b21wdXRlZENvbG9yICE9IGV4cGVjdGVkQ29sb3IpCiAgICAgICAgICAgICBtZXNzYWdlID0gJ0ZB
SUw6IGZvdW5kIGNvbG9yICcgKyBjb21wdXRlZENvbG9yICsgJywgZXhwZWN0ZWQgJyArIGV4cGVj
dGVkQ29sb3I7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNpemUtc2luZ2xl
LWF4aXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1s
CmluZGV4IGMyYWVkMmMuLmRiY2E2ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6
ZS1zaW5nbGUtYXhpcy5odG1sCkBAIC00NCw3ICs0NCw3IEBACiAKICAgICBmdW5jdGlvbiBhc3Nl
cnRTaXplKHRhcmdldCwgd2lkdGgsIGhlaWdodCkKICAgICB7Ci0gICAgICAgIHZhciBjb21wdXRl
ZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICB2YXIgY29tcHV0ZWRT
dHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKTsKICAgICAgICAgdmFyIGFjdHVh
bFdpZHRoID0gY29tcHV0ZWRTdHlsZS53aWR0aDsKICAgICAgICAgdmFyIGFjdHVhbEhlaWdodCA9
IGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9yZXNpemUtdmFsdWUtY29tcGFyZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6
ZS12YWx1ZS1jb21wYXJlZC5odG1sCmluZGV4IDhjNmNhOGYuLmNhODJjOTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sCkBAIC0xOCw2ICsx
OCw2IEBACiAKICAgICB0YXJnZXQuc3R5bGUucmVzaXplID0gImJvdGgiOwogICAgIHZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7Ci0gICAgdmFyIGNvbXB1dGVk
U3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7CisgICAgdmFyIGNvbXB1dGVkU3R5bGUg
PSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCwgbnVsbCk7CiAgICAgbG9nKGNvbXB1dGVkU3R5bGUu
cmVzaXplID09PSAiYm90aCIgPyAiUEFTUyIgOiAiRkFJTCIpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy96b29tLWluLWxlbmd0aC1yb3VuZC10cmlwLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy96b29tLWluLWxlbmd0aC1yb3VuZC10cmlwLmh0bWwKaW5k
ZXggMDI2NzlkOC4uNWM5NTIyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvem9v
bS1pbi1sZW5ndGgtcm91bmQtdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3pv
b20taW4tbGVuZ3RoLXJvdW5kLXRyaXAuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogICAgIHZhciBm
YWlsZWQgPSBmYWxzZTsKICAgICAKICAgICBmb3IgKHpvb20gPSAxMDA7IHpvb20gPD0gMjAwOyB6
b29tICs9IDEpIHsKLSAgICAgICAgY29udGFpbmVyU3R5bGUuc2V0UHJvcGVydHkoInpvb20iLCB6
b29tIC8gMTAwKTsKKyAgICAgICAgY29udGFpbmVyU3R5bGUuc2V0UHJvcGVydHkoInpvb20iLCB6
b29tIC8gMTAwLCBudWxsKTsKICAgICAgICAgdmFyIHdpZHRoID0gdGFyZ2V0Lm9mZnNldFdpZHRo
OwogICAgICAgICB2YXIgaGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDsKICAgICAgICAgaWYg
KHdpZHRoICE9PSAxIHx8IGhlaWdodCAhPT0gMTApIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFjZS1lcnIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3Jl
YXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKaW5kZXggMDlkNGJkYy4uZDJh
ODhjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24v
Y3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVy
ci1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw4IEBAIGNyZWF0ZURvY3VtZW50IHRlc3RzIG1vZGVs
ZWQgYWZ0ZXIgY3JlYXRlRWxlbWVudE5TIHRlc3RzIGZyb20gbW96aWxsYSB3aGljaCB3ZXJlCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudCgpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgRG9jdW1lbnRdIgotUEFT
UyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbSIpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgRG9jdW1lbnRdIgorUEFTUyBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgpLnRvU3RyaW5nKCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikudG9TdHJp
bmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBB
U1MgY3JlYXRlRG9jdW1lbnQoLCAsIG51bGwpCiBQQVNTIGNyZWF0ZURvY3VtZW50KG51bGwsICwg
bnVsbCkKIEZBSUwgY3JlYXRlRG9jdW1lbnQoLCBudWxsLCBudWxsKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9jdW1lbnRUeXBlLWVy
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9j
cmVhdGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dAppbmRleCBhMzk4ODcwLi4xMmY5ODQ3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9jcmVh
dGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dApA
QCAtMywxNyArMywxNyBAQCBjcmVhdGVEb2N1bWVudCB0ZXN0cyBtb2RlbGVkIGFmdGVyIG1vemls
bGEncyB0ZXN0aW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRvU3RyaW5nKCkgaXMg
IltvYmplY3QgRG9jdW1lbnRUeXBlXSIKLVBBU1MgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnRUeXBlKCdmb28nLCBudWxsKS50b1N0cmluZygpIGlzICJbb2JqZWN0IERvY3Vt
ZW50VHlwZV0iCi1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZSgsICk7IHRocmV3IElOVkFMSURfQ0hB
UkFDVEVSX0VSUgotUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUobnVsbCwgKTsgdGhyZXcgSU5WQUxJ
RF9DSEFSQUNURVJfRVJSCi1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZSgsIG51bGwpOyB0aHJldyBJ
TlZBTElEX0NIQVJBQ1RFUl9FUlIKK1BBU1MgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
RG9jdW1lbnRUeXBlKCdmb28nKS50b1N0cmluZygpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudFR5cGUoJ2ZvbycsIG51bGwpLnRvU3RyaW5nKCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZSgs
ICk7IGV4cGVjdGVkIElOVkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5kZWZpbmVkCitGQUlM
IGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCApOyBleHBlY3RlZCBJTlZBTElEX0NIQVJBQ1RFUl9F
UlIsIHRocmV3IHVuZGVmaW5lZAorRkFJTCBjcmVhdGVEb2N1bWVudFR5cGUoLCBudWxsKTsgZXhw
ZWN0ZWQgSU5WQUxJRF9DSEFSQUNURVJfRVJSLCB0aHJldyB1bmRlZmluZWQKIFBBU1MgY3JlYXRl
RG9jdW1lbnRUeXBlKCwgLCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJSCi1QQVNT
IGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJf
RVJSCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCBudWxsKTsgZXhwZWN0ZWQgSU5WQUxJ
RF9DSEFSQUNURVJfRVJSLCB0aHJldyB1bmRlZmluZWQKIFBBU1MgY3JlYXRlRG9jdW1lbnRUeXBl
KG51bGwsIG51bGwsIG51bGwpOyB0aHJldyBJTlZBTElEX0NIQVJBQ1RFUl9FUlIKLVBBU1MgY3Jl
YXRlRG9jdW1lbnRUeXBlKG51bGwsICIiKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJSCi1Q
QVNTIGNyZWF0ZURvY3VtZW50VHlwZSgiIiwgbnVsbCk7IHRocmV3IElOVkFMSURfQ0hBUkFDVEVS
X0VSUgotUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUoIiIsICIiKTsgdGhyZXcgSU5WQUxJRF9DSEFS
QUNURVJfRVJSCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCAiIik7IGV4cGVjdGVkIElO
VkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5kZWZpbmVkCitGQUlMIGNyZWF0ZURvY3VtZW50
VHlwZSgiIiwgbnVsbCk7IGV4cGVjdGVkIElOVkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5k
ZWZpbmVkCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZSgiIiwgIiIpOyBleHBlY3RlZCBJTlZBTElE
X0NIQVJBQ1RFUl9FUlIsIHRocmV3IHVuZGVmaW5lZAogUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUo
ImE6IiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKIFBBU1MgY3JlYXRlRG9jdW1l
bnRUeXBlKCI6Zm9vIiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKIFBBU1MgY3Jl
YXRlRG9jdW1lbnRUeXBlKCI6IiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3NjcmlwdC10
ZXN0cy9jcmVhdGVEb2N1bWVudC1uYW1lc3BhY2UtZXJyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRE9NSW1wbGVtZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFj
ZS1lcnIuanMKaW5kZXggNjY4M2Y4Yi4uZDQyYzhhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5h
bWVzcGFjZS1lcnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRp
b24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFjZS1lcnIuanMKQEAgLTEzNyw5
ICsxMzcsOCBAQCBmdW5jdGlvbiBydW5OU1Rlc3RzKHRlc3RzLCBkb2MsIGNyZWF0ZUZ1bmN0aW9u
TmFtZSkKICAgICB9CiB9CiAKLS8vIE1veiB0aHJvd3MgYSAiTm90IGVub3VnaCBhcmd1bWVudHMi
IGV4Y2VwdGlvbiBpbiB0aGVzZSwgd2UgZG9uJ3Q6Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCkudG9TdHJpbmcoKSIsICJbb2Jq
ZWN0IERvY3VtZW50XSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudChcImh0dHA6Ly93d3cuZXhhbXBsZS5jb21cIikudG9TdHJp
bmcoKSIsICJbb2JqZWN0IERvY3VtZW50XSIpOworc2hvdWxkVGhyb3coImRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCkudG9TdHJpbmcoKSIpOworc2hvdWxkVGhyb3coImRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KFwiaHR0cDovL3d3dy5leGFtcGxl
LmNvbVwiKS50b1N0cmluZygpIik7CiAKIHJ1bk5TVGVzdHMoYWxsTlNUZXN0cywgZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24sICJjcmVhdGVEb2N1bWVudCIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1l
bnRUeXBlLWVyci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3Nj
cmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLmpzCmluZGV4IDllZjdlN2MuLjFmYzdk
MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3Nj
cmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUt
ZXJyLmpzCkBAIC05Miw5ICs5Miw4IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKHRlc3RzLCBjcmVhdGVG
dW5jdGlvbk5hbWUpCiAgICAgfQogfQogCi0vLyBNb3ogdGhyb3dzIGEgIk5vdCBlbm91Z2ggYXJn
dW1lbnRzIiBleGNlcHRpb24gaW4gdGhlc2UsIHdlIGRvbid0Ogotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRv
U3RyaW5nKCkiLCAiW29iamVjdCBEb2N1bWVudFR5cGVdIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50VHlwZSgnZm9vJywgbnVs
bCkudG9TdHJpbmcoKSIsICJbb2JqZWN0IERvY3VtZW50VHlwZV0iKTsKK3Nob3VsZFRocm93KCJk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRvU3RyaW5n
KCkiKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dFR5cGUoJ2ZvbycsIG51bGwpLnRvU3RyaW5nKCkiKTsKIHJ1blRlc3RzKGFsbFRlc3RzLCAiY3Jl
YXRlRG9jdW1lbnRUeXBlIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvY3JlYXRlQXR0cmlidXRlTlMt
bmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVu
dC9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dAppbmRleCBmMDJj
YTU1Li5hYjgwZTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9j
cmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4
cGVjdGVkLnR4dApAQCAtMyw4ICszLDggQEAgY3JlYXRlQXR0aXJidXRlTlMgdGVzdHMgYWRhcHRl
ZCBmcm9tIGNyZWF0ZUVsZW1lbnROUyB0ZXN0cyBhdHRhY2hlZCB0byB3ZWJraXQgYnUKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZU5T
KCkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBBdHRyXSIKLVBBU1MgZG9jdW1lbnQuY3JlYXRlQXR0
cmlidXRlTlMoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKS50b1N0cmluZygpIGlzICJbb2JqZWN0
IEF0dHJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGVOUygpLnRvU3RyaW5nKCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikudG9TdHJpbmco
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mg
Y3JlYXRlQXR0cmlidXRlTlModW5kZWZpbmVkLCB1bmRlZmluZWQpCiBQQVNTIGNyZWF0ZUF0dHJp
YnV0ZU5TKG51bGwsIHVuZGVmaW5lZCkKIFBBU1MgY3JlYXRlQXR0cmlidXRlTlModW5kZWZpbmVk
LCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJSCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVFbGVtZW50TlMt
bmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKaW5kZXggZjdlZGE4Yi4uYzFjYzg2ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvY3JlYXRlRWxlbWVudE5TLW5hbWVz
cGFjZS1lcnItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50
L2NyZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dApAQCAtMyw4ICszLDgg
QEAgY3JlYXRlRWxlbWVudE5TIHRlc3RzIGZyb20gbW96aWxsYSwgYXR0YWNoZWQgdG8gd2Via2l0
IGJ1ZyAxNjgzMwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBFbGVtZW50XSIKLVBBU1Mg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikudG9TdHJp
bmcoKSBpcyAiW29iamVjdCBFbGVtZW50XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5T
KCkudG9TdHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tIikudG9TdHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KIEhUTUwgdGVzdHM6CiBQQVNTIGNyZWF0ZUVsZW1lbnROUygsICkKIFBBU1MgY3Jl
YXRlRWxlbWVudE5TKG51bGwsICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Rv
Y3VtZW50L3NjcmlwdC10ZXN0cy9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0
ZU5TLW5hbWVzcGFjZS1lcnIuanMKaW5kZXggODU0YTE3NS4uOWEwMzE4YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0
ZU5TLW5hbWVzcGFjZS1lcnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQv
c2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0ZU5TLW5hbWVzcGFjZS1lcnIuanMKQEAgLTEyMiw5
ICsxMjIsOCBAQCBmdW5jdGlvbiBydW5OU1Rlc3RzKCkKICAgICB9CiB9CiAKLS8vIE1veiB0aHJv
d3MgYSAiTm90IGVub3VnaCBhcmd1bWVudHMiIGV4Y2VwdGlvbiBpbiB0aGVzZSwgd2UgZG9uJ3Q6
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKCkudG9T
dHJpbmcoKSIsICJbb2JqZWN0IEF0dHJdIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3Vt
ZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNvbVwiKS50b1N0cmlu
ZygpIiwgIltvYmplY3QgQXR0cl0iKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5jcmVhdGVBdHRy
aWJ1dGVOUygpLnRvU3RyaW5nKCkiKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5jcmVhdGVBdHRy
aWJ1dGVOUyhcImh0dHA6Ly93d3cuZXhhbXBsZS5jb21cIikudG9TdHJpbmcoKSIpOwogCiBydW5O
U1Rlc3RzKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3Nj
cmlwdC10ZXN0cy9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNl
LWVyci5qcwppbmRleCA5MDA0NjcwLi4yNzFjZTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvY3JlYXRlRWxlbWVudE5TLW5hbWVzcGFjZS1l
cnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2Ny
ZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLmpzCkBAIC0xNTcsOSArMTU3LDggQEAgZnVuY3Rp
b24gcnVuTlNUZXN0cyh0ZXN0cywgZG9jLCBjcmVhdGVGdW5jdGlvbk5hbWUpCiAgICAgfQogfQog
Ci0vLyBNb3ogdGhyb3dzIGEgIk5vdCBlbm91Z2ggYXJndW1lbnRzIiBleGNlcHRpb24gaW4gdGhl
c2UsIHdlIGRvbid0Ogotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoKS50b1N0cmluZygpIiwgIltvYmplY3QgRWxlbWVudF0iKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygiZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNv
bVwiKS50b1N0cmluZygpIiwgIltvYmplY3QgRWxlbWVudF0iKTsKK3Nob3VsZFRocm93KCJkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoKS50b1N0cmluZygpIik7CitzaG91bGRUaHJvdygiZG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNvbVwiKS50b1N0cmluZygp
Iik7CiAKIGRlYnVnKCJIVE1MIHRlc3RzOiIpCiBydW5OU1Rlc3RzKGFsbE5TVGVzdHMsIGRvY3Vt
ZW50LCAiY3JlYXRlRWxlbWVudE5TIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MRm9ybUVsZW1lbnQvYWRvcHQtYXNzZXJ0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRm9ybUVsZW1lbnQvYWRvcHQtYXNzZXJ0aW9uLmh0bWwKaW5kZXggODBhOTlkNS4u
ODk1YzI2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50
L2Fkb3B0LWFzc2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb3Jt
RWxlbWVudC9hZG9wdC1hc3NlcnRpb24uaHRtbApAQCAtMTEsNiArMTEsNiBAQAogICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKIAotICAgIHZhciBvdGhlckRvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVt
ZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgdmFyIG90aGVyRG9jdW1lbnQgPSBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogICAgIG90aGVy
RG9jdW1lbnQuYWRvcHROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSk7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3Jl
c2lnLVNlbGVjdG9yc0FQSS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1NlbGVjdG9yQVBJL3Jlc2lnLVNlbGVjdG9yc0FQSS10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCA2
NWVjYzMzLi41OGUwNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3Rv
ckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvcmVzaWctU2VsZWN0b3JzQVBJLXRlc3QtZXhwZWN0ZWQu
dHh0CkBAIC00LDE3ICs0LDE3IEBAIFRlc3RydW5uZXIgYnkgSm9obiBSZXNpZywgdGVzdHMgYnkg
Sm9obiBSZXNpZywgRGlzcnVwdGl2ZSBJbm5vdmF0aW9ucywgVzNDIENTUyBXCiAKICBTaG93IG9u
bHkgZmFpbGluZyB0ZXN0cy4KIAotOTkuMiU6IDIxNDcgcGFzc2VkLCAxNyBmYWlsZWQKKzEwMC4w
JTogMjE2MyBwYXNzZWQsIDEgZmFpbGVkCiBQQVNTIEVsZW1lbnQgc3VwcG9ydHMgcXVlcnlTZWxl
Y3RvcgogUEFTUyBFbGVtZW50IHN1cHBvcnRzIHF1ZXJ5U2VsZWN0b3JBbGwKIFBBU1MgRWxlbWVu
dC5xdWVyeVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwgbnVsbAogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVkCi1GQUlM
IEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQorUEFTUyBFbGVtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5IFN0cmlu
ZwogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBFbGVtZW50LnF1ZXJ5U2Vs
ZWN0b3IgdW5kZWZpbmVkCi1GQUlMIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQorUEFT
UyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVj
dG9yQWxsOiAudGFyZ2V0IDp0YXJnZXQKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIFdo
aXRlc3BhY2UgVHJpbTogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIEVsZW1lbnQucXVlcnlTZWxlY3Rv
cjogLnRhcmdldCA6dGFyZ2V0CkBAIC01NTAsMTEgKzU1MCwxMSBAQCBQQVNTIE91dHNpZGUgRWxl
bWVudDogKyBjb21iaW5hdG9yCiBQQVNTIFN5bnRheCBFcnJvcjogRWxlbWVudC5xdWVyeVNlbGVj
dG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxl
Y3RvckFsbCBudWxsCiBQQVNTIFN5bnRheCBFcnJvcjogRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxs
IHVuZGVmaW5lZAotRkFJTCBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBu
byB2YWx1ZQorUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2
YWx1ZQogUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvciBFbXB0eSBTdHJp
bmcKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBT
eW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgU3ludGF4
IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKK1BBU1MgU3ludGF4IEVycm9y
OiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IC5ibG94MTY6bm90KC5ibG94MTVbZm9vPSJibG94MTQiXSkK
IFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3I6IC5ibG94MTY6bm90KC5i
bG94MTVbZm9vPSJibG94MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGw6IGRpdjpub3QoOm5vdChkaXYpKQpAQCAtNzI2LDExICs3MjYsMTEgQEAgUEFTUyBE
aXNjb25uZWN0ZWQgRWxlbWVudCBzdXBwb3J0cyBxdWVyeVNlbGVjdG9yQWxsCiBQQVNTIERpc2Nv
bm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgRW1wdHkgU3RyaW5nCiBQQVNTIERpc2Nv
bm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbnVsbAogUEFTUyBEaXNjb25uZWN0ZWQg
RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIHVuZGVmaW5lZAotRkFJTCBEaXNjb25uZWN0ZWQgRWxl
bWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVlCitQQVNTIERpc2Nvbm5lY3RlZCBFbGVtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVl
cnlTZWxlY3RvciBFbXB0eSBTdHJpbmcKIFBBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlT
ZWxlY3RvciBudWxsCiBQQVNTIERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgdW5k
ZWZpbmVkCi1GQUlMIERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUK
K1BBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQogUEFTUyBE
aXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsOiAudGFyZ2V0IDp0YXJnZXQKIFBB
U1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBXaGl0ZXNwYWNlIFRyaW06
IC50YXJnZXQgOnRhcmdldAogUEFTUyBEaXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9y
OiAudGFyZ2V0IDp0YXJnZXQKQEAgLTExNDgsMTEgKzExNDgsMTEgQEAgUEFTUyBEaXNjb25uZWN0
ZWQgRWxlbWVudDogU3RhdGljTm9kZUxpc3QKIFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0
ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJy
b3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbnVsbAogUEFTUyBTeW50
YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVk
Ci1GQUlMIFN5bnRheCBFcnJvcjogRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvckFs
bCBubyB2YWx1ZQorUEFTUyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0ZWQgRWxl
bWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJyb3I6IERpc2Nv
bm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBTeW50YXggRXJyb3I6IERp
c2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgdW5kZWZpbmVkCi1GQUlMIFN5bnRheCBF
cnJvcjogRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQorUEFTUyBT
eW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUK
IFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxs
OiAuYmxveDE2Om5vdCguYmxveDE1W2Zvbz0iYmxveDE0Il0pCiBQQVNTIFN5bnRheCBFcnJvcjog
RGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvcjogLmJsb3gxNjpub3QoLmJsb3gxNVtm
b289ImJsb3gxNCJdKQogUEFTUyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1
ZXJ5U2VsZWN0b3JBbGw6IGRpdjpub3QoOm5vdChkaXYpKQpAQCAtMTMyNCwxMSArMTMyNCwxMSBA
QCBQQVNTIEZyYWdtZW50IHN1cHBvcnRzIHF1ZXJ5U2VsZWN0b3JBbGwKIFBBU1MgRnJhZ21lbnQu
cXVlcnlTZWxlY3RvckFsbCBFbXB0eSBTdHJpbmcKIFBBU1MgRnJhZ21lbnQucXVlcnlTZWxlY3Rv
ckFsbCBudWxsCiBQQVNTIEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVkCi1GQUlM
IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKK1BBU1MgRnJhZ21lbnQucXVlcnlT
ZWxlY3RvckFsbCBubyB2YWx1ZQogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5IFN0
cmluZwogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG51bGwKIFBBU1MgRnJhZ21lbnQucXVl
cnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgRnJhZ21lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1
ZQorUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCiBQQVNTIEZyYWdtZW50LnF1
ZXJ5U2VsZWN0b3JBbGw6IC50YXJnZXQgOnRhcmdldAogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVj
dG9yQWxsIFdoaXRlc3BhY2UgVHJpbTogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIEZyYWdtZW50LnF1
ZXJ5U2VsZWN0b3I6IC50YXJnZXQgOnRhcmdldApAQCAtMTYyOSwxMSArMTYyOSwxMSBAQCBQQVNT
IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3I6IC5wbHVzIC50MTpob3ZlciArIC51bml0VGVzdCArIC51
bml0VGVzdAogUEFTUyBTeW50YXggRXJyb3I6IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgRW1w
dHkgU3RyaW5nCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCBu
dWxsCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCB1bmRlZmlu
ZWQKLUZBSUwgU3ludGF4IEVycm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVl
CitQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQog
UEFTUyBTeW50YXggRXJyb3I6IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IgRW1wdHkgU3RyaW5nCiBQ
QVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvciBudWxsCiBQQVNTIFN5bnRh
eCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgU3ludGF4IEVy
cm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCitQQVNTIFN5bnRheCBFcnJvcjog
RnJhZ21lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQogUEFTUyBTeW50YXggRXJyb3I6IEZyYWdt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IC5ibG94MTY6bm90KC5ibG94MTVbZm9vPSJibG94MTQiXSkK
IFBBU1MgU3ludGF4IEVycm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yOiAuYmxveDE2Om5vdCgu
YmxveDE1W2Zvbz0iYmxveDE0Il0pCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlT
ZWxlY3RvckFsbDogZGl2Om5vdCg6bm90KGRpdikpCkBAIC0xNjg3LDExICsxNjg3LDExIEBAIFBB
U1MgRG9jdW1lbnQgc3VwcG9ydHMgcXVlcnlTZWxlY3RvckFsbAogUEFTUyBEb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
IG51bGwKIFBBU1MgRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCB1bmRlZmluZWQKLUZBSUwgRG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQorUEFTUyBEb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsIG5vIHZhbHVlCiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IgRW1wdHkgU3RyaW5n
CiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBEb2N1bWVudC5xdWVyeVNl
bGVjdG9yIHVuZGVmaW5lZAotRkFJTCBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCitQ
QVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgRG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbDogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwgV2hpdGVzcGFjZSBUcmltOiAudGFyZ2V0IDp0YXJnZXQKIFBBU1MgRG9jdW1lbnQucXVlcnlT
ZWxlY3RvcjogLnRhcmdldCA6dGFyZ2V0CkBAIC0xOTkyLDExICsxOTkyLDExIEBAIFBBU1MgRG9j
dW1lbnQucXVlcnlTZWxlY3RvcjogLnBsdXMgLnQxOmhvdmVyICsgLnVuaXRUZXN0ICsgLnVuaXRU
ZXN0CiBQQVNTIFN5bnRheCBFcnJvcjogRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCBFbXB0eSBT
dHJpbmcKIFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIG51bGwK
IFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIHVuZGVmaW5lZAot
RkFJTCBTeW50YXggRXJyb3I6IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKK1BB
U1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVlCiBQQVNT
IFN5bnRheCBFcnJvcjogRG9jdW1lbnQucXVlcnlTZWxlY3RvciBFbXB0eSBTdHJpbmcKIFBBU1Mg
U3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIG51bGwKIFBBU1MgU3ludGF4IEVy
cm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIHVuZGVmaW5lZAotRkFJTCBTeW50YXggRXJyb3I6
IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKK1BBU1MgU3ludGF4IEVycm9yOiBEb2N1
bWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCiBQQVNTIFN5bnRheCBFcnJvcjogRG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbDogLmJsb3gxNjpub3QoLmJsb3gxNVtmb289ImJsb3gxNCJdKQogUEFT
UyBTeW50YXggRXJyb3I6IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3I6IC5ibG94MTY6bm90KC5ibG94
MTVbZm9vPSJibG94MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsOiBkaXY6bm90KDpub3QoZGl2KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1NlbGVjdG9yQVBJL3NjcmlwdC10ZXN0cy92aWV3bGVzcy1kb2N1bWVudC5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3NjcmlwdC10ZXN0cy92aWV3bGVzcy1kb2N1bWVu
dC5qcwppbmRleCA2NDA2MWIyLi5mZDQxNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9TZWxlY3RvckFQSS9zY3JpcHQtdGVzdHMvdmlld2xlc3MtZG9jdW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvc2NyaXB0LXRlc3RzL3ZpZXdsZXNzLWRv
Y3VtZW50LmpzCkBAIC0yLDcgKzIsNyBAQCBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3RzIHRoYXQg
cXVlcnlTZWxlY3RvciwgcXVlcnlTZWxlY3RvckFsbCBhbmQgbWF0Y2hlc1NlbGVjdG9yICh3ZWJr
aXRNYXRjaGVzU2VsZWN0b3IpIGRvbid0IGNyYXNoIHdoZW4gdXNlZCBpbiBhIHZpZXdsZXNzIGRv
Y3VtZW50LiIKICk7CiAKLXZhciB0ZXN0RG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnQoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIpOwordmFy
IHRlc3REb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7CiB0ZXN0RG9jLmRvY3VtZW50
RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXN0RG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7CiB0ZXN0
RG9jLmJvZHkuYXBwZW5kQ2hpbGQodGVzdERvYy5jcmVhdGVFbGVtZW50KCJwIikpLmlkID0gInAx
IjsKIHRlc3REb2MuZ2V0RWxlbWVudEJ5SWQoInAxIikuYXBwZW5kQ2hpbGQodGVzdERvYy5jcmVh
dGVFbGVtZW50KCJzcGFuIikpLmlkID0gInMxIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbAppbmRleCBjYTZm
YTE2Li5jYjVlYjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0
L293bmVyTm9kZS1saWZldGltZS0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5
bGVTaGVldC9vd25lck5vZGUtbGlmZXRpbWUtMi5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQ0KICAg
ICAgIG5ldyBPYmplY3QoKTsNCiAgIH0gDQotICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5v
ZGUoKTsNCisgIHN0eWxlU2hlZXQub3duZXJOb2RlLmNsb25lTm9kZSh0cnVlKTsNCiANCiAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiVGVzdCBwYXNzZWQu
IjsNCiB9DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9vd25l
ck5vZGUtbGlmZXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvb3du
ZXJOb2RlLWxpZmV0aW1lLmh0bWwKaW5kZXggNTRiMWFjNC4uNGYxODY2MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9vd25lck5vZGUtbGlmZXRpbWUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0L293bmVyTm9kZS1saWZldGltZS5o
dG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICBzID0gcyAr
ICIgIjsKICAgICB9CiAKLSAgICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5vZGUoKTsKKyAg
ICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5vZGUodHJ1ZSk7CiAKICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIlRlc3QgcGFzc2VkLiI7CiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYWxlcnQtdW5kZWZpbmVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQt
ZXhwZWN0ZWQudHh0CmluZGV4IDM0YmVjNWYuLjgyN2U5MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0CkBA
IC00LDcgKzQsNCBAQCBDT05GSVJNOiB1bmRlZmluZWQKIENPTkZJUk06IG51bGwKIFBST01QVDog
dW5kZWZpbmVkLCBkZWZhdWx0IHRleHQ6IAogUFJPTVBUOiBudWxsLCBkZWZhdWx0IHRleHQ6IAot
QUxFUlQ6IHVuZGVmaW5lZAotQ09ORklSTTogdW5kZWZpbmVkCi1QUk9NUFQ6IHVuZGVmaW5lZCwg
ZGVmYXVsdCB0ZXh0OiAKIFRoZSBhbGVydHMgdGhhdCBzaG93IHVwIChvciBpZiB0aGlzIGlzIHJ1
bm5pbmcgdW5kZXIgRFJULCB0aGF0IGlzIGR1bXBlZCkgc2hvdWxkIGNvbnRhaW4gdGV4dDsgbm9u
ZSBzaG91bGQgYmUgZW1wdHkuIFRoaXMgaXNuJ3QgZW50aXJlbHkgY29uc2lzdGVudCB3aXRoIG90
aGVyIGJyb3dzZXJzIGluIGV2ZXJ5IGNhc2UsIGJ1dCBzaW5jZSB0aGVyZSdzIG5vIHJlYWwgdXNl
IGNhc2UgZm9yIHRoaXMsIGl0J3MgYmVzdCB0byBiZSBleHBsaWNpdCByYXRoZXIgdGhhbiBzdWJ0
bGUgYW5kIGVtcHR5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Fs
ZXJ0LXVuZGVmaW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2FsZXJ0LXVu
ZGVmaW5lZC5odG1sCmluZGV4IDM5NDYyMjYuLjJhNGIyNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvYWxlcnQtdW5kZWZpbmVkLmh0bWwKQEAgLTEzLDEwICsxMyw2IEBA
CiAgICAgICAgICAgICBjb25maXJtKG51bGwpOwogICAgICAgICAgICAgcHJvbXB0KHVuZGVmaW5l
ZCk7CiAgICAgICAgICAgICBwcm9tcHQobnVsbCk7Ci0KLSAgICAgICAgICAgIGFsZXJ0KCk7Ci0g
ICAgICAgICAgICBjb25maXJtKCk7Ci0gICAgICAgICAgICBwcm9tcHQoKTsKICAgICAgICAgfQog
ICAgIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAppbmRleCBjZWY3NmE3Li5iYmVlZGQzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dApA
QCAtMTEsNyArMTEsNyBAQCBQQVNTIHdpbmRvdy5idG9hKCJhYmNkIikgaXMgIllXSmpaQT09Igog
UEFTUyB3aW5kb3cuYnRvYSgiYWJjZGUiKSBpcyAiWVdKalpHVT0iCiBQQVNTIHdpbmRvdy5idG9h
KCJhYmNkZWYiKSBpcyAiWVdKalpHVm0iCiBQQVNTIHR5cGVvZiB3aW5kb3cuYnRvYSBpcyAiZnVu
Y3Rpb24iCi1QQVNTIHdpbmRvdy5idG9hKCkgaXMgImRXNWtaV1pwYm1WayIKK1BBU1Mgd2luZG93
LmJ0b2EoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
IFBBU1Mgd2luZG93LmJ0b2EoIiIpIGlzICIiCiBQQVNTIHdpbmRvdy5idG9hKG51bGwpIGlzICIi
CiBQQVNTIHdpbmRvdy5idG9hKHVuZGVmaW5lZCkgaXMgImRXNWtaV1pwYm1WayIKQEAgLTIyLDcg
KzIyLDcgQEAgUEFTUyB3aW5kb3cuYnRvYSgi0YLQtdGB0YIiKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEUKIFBBU1Mgd2luZG93LmJ0b2EgaXMgMAog
UEFTUyB0eXBlb2Ygd2luZG93LmJ0b2EgaXMgIm51bWJlciIKIFBBU1MgdHlwZW9mIHdpbmRvdy5h
dG9iIGlzICJmdW5jdGlvbiIKLVBBU1Mgd2luZG93LmF0b2IoKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3aW5kb3cu
YXRvYigpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgog
UEFTUyB3aW5kb3cuYXRvYigiIikgaXMgIiIKIFBBU1Mgd2luZG93LmF0b2IobnVsbCkgaXMgIiIK
IFBBU1Mgd2luZG93LmF0b2IodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L2F0b2ItYnRvYS5odG1sCmluZGV4IGY2YWJiOTguLjNiYzk2OWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAgc2hv
dWxkQmUoJ3dpbmRvdy5idG9hKCJhYmNkZSIpJywgJyJZV0pqWkdVPSInKTsKIHNob3VsZEJlKCd3
aW5kb3cuYnRvYSgiYWJjZGVmIiknLCAnIllXSmpaR1ZtIicpOwogCiBzaG91bGRCZSgndHlwZW9m
IHdpbmRvdy5idG9hJywgJyJmdW5jdGlvbiInKTsKLXNob3VsZEJlKCd3aW5kb3cuYnRvYSgpJywg
JyJkVzVrWldacGJtVmsiJyk7CitzaG91bGRUaHJvdygnd2luZG93LmJ0b2EoKScpOwogc2hvdWxk
QmUoJ3dpbmRvdy5idG9hKCIiKScsICciIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5idG9hKG51bGwp
JywgJyIiJyk7CiBzaG91bGRCZSgnd2luZG93LmJ0b2EodW5kZWZpbmVkKScsICciZFc1a1pXWnBi
bVZrIicpOwpAQCAtMzUsNyArMzUsNyBAQCBzaG91bGRCZSgnd2luZG93LmJ0b2EnLCAnMCcpOwog
c2hvdWxkQmUoJ3R5cGVvZiB3aW5kb3cuYnRvYScsICcibnVtYmVyIicpOwogCiBzaG91bGRCZSgn
dHlwZW9mIHdpbmRvdy5hdG9iJywgJyJmdW5jdGlvbiInKTsKLXNob3VsZFRocm93KCd3aW5kb3cu
YXRvYigpJyk7IC8vICd1bmRlZmluZWQnIAorc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCknKTsK
IHNob3VsZEJlKCd3aW5kb3cuYXRvYigiIiknLCAnIiInKTsKIHNob3VsZEJlKCd3aW5kb3cuYXRv
YihudWxsKScsICciIicpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKHVuZGVmaW5lZCknKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcmVzaXplLWFu
ZC1tb3ZlLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKaW5kZXggOWNhZTFkMi4uOTdlNjFiNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1yZXNpemUtYW5k
LW1vdmUtYXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKQEAgLTQyLDEzICs0MiwxOSBAQAog
ICAgIGRlYnVnKCcnKTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIC0gcmVzaXplVG8gd2l0aCAwIGFy
Z3VtZW50cyIpOwotICAgIHdpbmRvdy5yZXNpemVUbygpOworICAgIHRyeSB7CisgICAgICAgIHdp
bmRvdy5yZXNpemVUbygpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJl
KCd3aW5kb3cub3V0ZXJXaWR0aCcsICdyZXNldFdpZHRoJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRv
dy5vdXRlckhlaWdodCcsICdyZXNldEhlaWdodCcpOwogICAgIHJlc2V0KCk7CiAKICAgICBkZWJ1
ZygiVGVzdGluZyAtIHJlc2l6ZVRvIHdpdGggMSBhcmd1bWVudCIpOwotICAgIHdpbmRvdy5yZXNp
emVUbyh4KTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cucmVzaXplVG8oeCk7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRoJywgJ3Jl
c2V0V2lkdGgnKTsKICAgICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgJ3Jlc2V0SGVp
Z2h0Jyk7CiAgICAgcmVzZXQoKTsKQEAgLTY1LDEzICs3MSwxOSBAQAogICAgIGRlYnVnKCcnKTsK
IAogICAgIGRlYnVnKCJUZXN0aW5nIC0gcmVzaXplQnkgd2l0aCAwIGFyZ3VtZW50cyIpOwotICAg
IHdpbmRvdy5yZXNpemVCeSgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5yZXNpemVCeSgp
OworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cub3V0ZXJX
aWR0aCcsICdyZXNldFdpZHRoJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlckhlaWdodCcs
ICdyZXNldEhlaWdodCcpOwogICAgIHJlc2V0KCk7CiAKICAgICBkZWJ1ZygiVGVzdGluZyAtIHJl
c2l6ZUJ5IHdpdGggMSBhcmd1bWVudCIpOwotICAgIHdpbmRvdy5yZXNpemVCeSh4KTsKKyAgICB0
cnkgeworICAgICAgICB3aW5kb3cucmVzaXplQnkoeCk7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAg
ICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRoJywgJ3Jlc2V0V2lkdGgnKTsKICAg
ICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgJ3Jlc2V0SGVpZ2h0Jyk7CiAgICAgcmVz
ZXQoKTsKQEAgLTg5LDEzICsxMDEsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBkZWJ1Zygi
VGVzdGluZyAtIG1vdmVUbyB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93Lm1vdmVUbygp
OworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlVG8oKTsKKyAgICB9IGNhdGNoIChleCkg
eworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcmVlblgnLCAncmVzZXRYJyk7CiAgICAg
c2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5ZJywgJ3Jlc2V0WScpOwogICAgIHJlc2V0KCk7CiAKICAg
ICBkZWJ1ZygiVGVzdGluZyAtIG1vdmVUbyB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3aW5kb3cu
bW92ZVRvKHgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlVG8oeCk7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5YJywgJ3Jlc2V0
WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2NyZWVuWScsICdyZXNldFknKTsKICAgICByZXNl
dCgpOwpAQCAtMTE0LDEzICsxMzIsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBkZWJ1Zygi
VGVzdGluZyAtIG1vdmVCeSB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93Lm1vdmVCeSgp
OworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlQnkoKTsKKyAgICB9IGNhdGNoIChleCkg
eworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcmVlblgnLCAncmVzZXRYJyk7CiAgICAg
c2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5ZJywgJ3Jlc2V0WScpOwogICAgIHJlc2V0KCk7CiAKICAg
ICBkZWJ1ZygiVGVzdGluZyAtIG1vdmVCeSB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3aW5kb3cu
bW92ZUJ5KHgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlQnkoeCk7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5YJywgJ3Jlc2V0
WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2NyZWVuWScsICdyZXNldFknKTsKICAgICByZXNl
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1zY3Jv
bGwtYXJndW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNj
cm9sbC1hcmd1bWVudHMuaHRtbAppbmRleCBhMzFmYzBmLi44ODNiOTFiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNjcm9sbC1hcmd1bWVudHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNjcm9sbC1hcmd1bWVudHMu
aHRtbApAQCAtMzYsMTMgKzM2LDE5IEBACiAgICAgZGVidWcoJycpOwogCiAgICAgZGVidWcoIlRl
c3RpbmcgLSBzY3JvbGxUbyB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93LnNjcm9sbFRv
KCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbFRvKCk7CisgICAgfSBjYXRjaCAo
ZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxYJywgJ3Jlc2V0WCcpOwog
ICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWScsICdyZXNldFknKTsKICAgICByZXNldCgpOwog
CiAgICAgZGVidWcoIlRlc3RpbmcgLSBzY3JvbGxUbyB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3
aW5kb3cuc2Nyb2xsVG8oeCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbFRvKHgp
OworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xs
WCcsICdyZXNldFgnKTsKICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFknLCAncmVzZXRZJyk7
CiAgICAgcmVzZXQoKTsKQEAgLTU5LDEzICs2NSwxOSBAQAogICAgIGRlYnVnKCcnKTsKIAogICAg
IGRlYnVnKCJUZXN0aW5nIC0gc2Nyb2xsIHdpdGggMCBhcmd1bWVudHMiKTsKLSAgICB3aW5kb3cu
c2Nyb2xsKCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbCgpOworICAgIH0gY2F0
Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWCcsICdyZXNldFgn
KTsKICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFknLCAncmVzZXRZJyk7CiAgICAgcmVzZXQo
KTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIC0gc2Nyb2xsIHdpdGggMSBhcmd1bWVudCIpOwotICAg
IHdpbmRvdy5zY3JvbGwoeCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbCh4KTsK
KyAgICB9IGNhdGNoIChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFgn
LCAncmVzZXRYJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxZJywgJ3Jlc2V0WScpOwog
ICAgIHJlc2V0KCk7CkBAIC04MiwxMyArOTQsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBk
ZWJ1ZygiVGVzdGluZyAtIHNjcm9sbEJ5IHdpdGggMCBhcmd1bWVudHMiKTsKLSAgICB3aW5kb3cu
c2Nyb2xsQnkoKTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoKTsKKyAgICB9
IGNhdGNoIChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFgnLCAncmVz
ZXRYJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxZJywgJ3Jlc2V0WScpOwogICAgIHJl
c2V0KCk7CiAKICAgICBkZWJ1ZygiVGVzdGluZyAtIHNjcm9sbEJ5IHdpdGggMSBhcmd1bWVudCIp
OwotICAgIHdpbmRvdy5zY3JvbGxCeSh4KTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cuc2Ny
b2xsQnkoeCk7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRv
dy5zY3JvbGxYJywgJ3Jlc2V0WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWScsICdy
ZXNldFknKTsKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
YXR0cmlidXRlLWRvd25jYXN0LXJpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRy
aWJ1dGUtZG93bmNhc3QtcmlnaHQuaHRtbAppbmRleCAwYmM2NDFkLi43NmM1YjFkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRyaWJ1dGUtZG93bmNhc3QtcmlnaHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRyaWJ1dGUtZG93bmNhc3QtcmlnaHQuaHRtbApA
QCAtMywxMCArMywxMCBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAogdmFyIG9FbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgicyIpCi12YXIgb0VsZW1lbnROUyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygpOwotb0VsZW1lbnROUy5zZXRBdHRyaWJ1dGVOUygpOwotdmFyIG9BdHRyaWJ1dGVO
UyA9IG9FbGVtZW50TlMuZ2V0QXR0cmlidXRlTm9kZU5TKCk7Ci12YXIgb0F0dHJpYnV0ZU5TQ2xv
bmUgPSBvQXR0cmlidXRlTlMuY2xvbmVOb2RlKCk7Cit2YXIgb0VsZW1lbnROUyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImh0bWw6cyIp
Oworb0VsZW1lbnROUy5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIsInRpdGxlIiwgImZvbyIpOwordmFyIG9BdHRyaWJ1dGVOUyA9IG9FbGVtZW50TlMuZ2V0QXR0
cmlidXRlTm9kZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwidGl0bGUiKTsKK3Zh
ciBvQXR0cmlidXRlTlNDbG9uZSA9IG9BdHRyaWJ1dGVOUy5jbG9uZU5vZGUodHJ1ZSk7CiBvRWxl
bWVudC5zZXRBdHRyaWJ1dGVOb2RlKG9BdHRyaWJ1dGVOU0Nsb25lKTsKIDwvU0NSSVBUPgogPEJP
RFk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb21wdXRlZC1zdHlsZS1zZXQt
cHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1w
cm9wZXJ0eS5odG1sCmluZGV4IDE3NWE2YmUuLmE1N2Q0MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1wcm9wZXJ0eS5odG1sCkBAIC0xNCw3
ICsxNCw3IEBAIHRyeSB7CiB9CiAKIHRyeSB7Ci0gIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSwgbnVsbCkuc2V0UHJvcGVydHkoImNvbG9yIiwgImJs
dWUiKTsKKyAgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5i
b2R5LCBudWxsKS5zZXRQcm9wZXJ0eSgiY29sb3IiLCAiYmx1ZSIsIG51bGwpOwogICBkb2N1bWVu
dC53cml0ZSgiPHA+RkFJTDogZGlkIG5vdCBnZXQgYW4gZXhjZXB0aW9uIHdoZW4gdHJ5aW5nIHRv
IGNoYW5nZSBhIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0aW9uIHZpYSBzZXRQcm9wZXJ0eS4iKTsK
IH0gY2F0Y2ggKGV4KSB7CiAgIGRvY3VtZW50LndyaXRlKCI8cD5QQVNTOiBnb3QgYW4gZXhjZXB0
aW9uIHdoZW4gdHJ5aW5nIHRvIGNoYW5nZSBhIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0aW9uIHZp
YSBzZXRQcm9wZXJ0eSwgIiArIGV4KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0LWV4cGVj
dGVkLnR4dAppbmRleCAzNzNmZmJjLi5mMGYwOTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS9kdW1wTm9k
ZUxpc3QtZXhwZWN0ZWQudHh0CkBAIC0xMyw3ICsxMyw2IEBAIGxlbmd0aDogMAogbGVuZ3RoOiAw
CiBsZW5ndGg6IDAKIGxlbmd0aDogMAotbGVuZ3RoOiAwCiBbb2JqZWN0IEhUTUxEaXZFbGVtZW50
XSwgbGVuZ3RoOiAxCiBbb2JqZWN0IEhUTUxEaXZFbGVtZW50XSwgW29iamVjdCBIVE1MUGFyYWdy
YXBoRWxlbWVudF0sIGxlbmd0aDogMgogW29iamVjdCBIVE1MRGl2RWxlbWVudF0sIGxlbmd0aDog
MQpAQCAtMjIsNSArMjEsNCBAQCBsZW5ndGg6IDAKIGxlbmd0aDogMAogbGVuZ3RoOiAwCiBsZW5n
dGg6IDAKLWxlbmd0aDogMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRF
bGVtZW50c0J5Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS9kdW1wTm9kZUxpc3QuaHRtbAppbmRleCA4NmJkNDJl
Li5jZmZmMTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dl
dEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0Lmh0bWwKQEAgLTMzLDcgKzMzLDYgQEAK
ICAgICAgICAgbG9nKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm9uZVx0XHRcbiBc
ZnR3byIpLmR1bXAoKSk7CiAgICAgICAgIGxvZyhkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKCIiKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgib25ldHdvIikuZHVtcCgpKTsKLSAgICAgICAgbG9nKGRvY3VtZW50LmdldEVsZW1lbnRz
QnlDbGFzc05hbWUoKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZShudWxsKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSh1bmRlZmluZWQpLmR1bXAoKSk7CiAKQEAgLTQzLDcgKzQyLDYgQEAKICAg
ICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJvbmVcdFx0XG4gXGZ0d28iKS5k
dW1wKCkpOwogICAgICAgICBsb2coZWxtLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIiIpLmR1bXAo
KSk7CiAgICAgICAgIGxvZyhlbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgib25ldHdvIikuZHVt
cCgpKTsKLSAgICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCkuZHVtcCgpKTsK
ICAgICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKG51bGwpLmR1bXAoKSk7CiAg
ICAgICAgIGxvZyhlbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh1bmRlZmluZWQpLmR1bXAoKSk7
CiAgICAgfSBjYXRjaCAoZXgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lt
cG9ydE5vZGUtbnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW1wb3J0Tm9kZS1udWxs
Lmh0bWwKaW5kZXggOGIyZWRjMC4uMTkxODczNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vaW1wb3J0Tm9kZS1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW1w
b3J0Tm9kZS1udWxsLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgCiAgICAgdHJ5
IHsKLSAgICAgICAgZG9jdW1lbnQuaW1wb3J0Tm9kZShudWxsKTsKKyAgICAgICAgZG9jdW1lbnQu
aW1wb3J0Tm9kZShudWxsLCB0cnVlKTsKICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgcHJpbnQo
ImNhdWdodCBleGNlcHRpb246ICIgKyBlKTsKICAgICB9IGZpbmFsbHkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC1l
eHBlY3RlZC50eHQKaW5kZXggODg1YzgzMS4uNDgyN2JlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9uYXZpZ2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2gtZXhwZWN0
ZWQudHh0CkBAIC0xMyw4ICsxMyw4IEBAIG5hdmlnYXRvci5wbGF0Zm9ybSBpcyBPSwogbmF2aWdh
dG9yLnBsdWdpbnMgaXMgT0sKIG5hdmlnYXRvci5wcm9kdWN0IGlzIE9LCiBuYXZpZ2F0b3IucHJv
ZHVjdFN1YiBpcyBPSwotbmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBl
cnIgRXJyb3I6IFNZTlRBWF9FUlI6IERPTSBFeGNlcHRpb24gMTIKLW5hdmlnYXRvci5yZWdpc3Rl
clByb3RvY29sSGFuZGxlcigpIHRocmV3IGVyciBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMgorbmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBlcnIgVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cworbmF2aWdhdG9yLnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKCkgdGhyZXcgZXJyIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMKIG5hdmln
YXRvci51c2VyQWdlbnQgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3IgaXMgT0sKIG5hdmlnYXRvci52
ZW5kb3JTdWIgaXMgT0sKQEAgLTMxLDggKzMxLDggQEAgbmF2aWdhdG9yLnBsYXRmb3JtIGlzIE9L
CiBuYXZpZ2F0b3IucGx1Z2lucyBpcyBPSwogbmF2aWdhdG9yLnByb2R1Y3QgaXMgT0sKIG5hdmln
YXRvci5wcm9kdWN0U3ViIGlzIE9LCi1uYXZpZ2F0b3IucmVnaXN0ZXJDb250ZW50SGFuZGxlcigp
IGlzIE9LCi1uYXZpZ2F0b3IucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoKSBpcyBPSworbmF2aWdh
dG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBlcnIgVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cworbmF2aWdhdG9yLnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKCkgdGhyZXcg
ZXJyIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMKIG5hdmlnYXRvci51c2VyQWdlbnQg
aXMgT0sKIG5hdmlnYXRvci52ZW5kb3IgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3JTdWIgaXMgT0sK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vbi1udW1lcmljLXZhbHVlcy1udW1l
cmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51
bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKaW5kZXggNjhiNWI2
Ny4uYWQyMDY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51bWVyaWMt
dmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50
eHQKQEAgLTQsMjUgKzQsMjUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuc3Vic3RyaW5nRGF0
YSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLnN1YnN0cmluZ0RhdGEoMCwgeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImEiKS5zdWJzdHJpbmdEYXRhKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJhIikuaW5zZXJ0RGF0YSh4LCAiYiIpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCiBQ
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuZGVsZXRl
RGF0YSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5
KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLmRlbGV0ZURhdGEoMCwgeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImEiKS5kZWxldGVEYXRhKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBu
b3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJhIikucmVwbGFjZURhdGEoeCwgMCwgImIiKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwog
UEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLnJlcGxh
Y2VEYXRhKDAsIHgsICJiIiknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnY3JlYXRlQ1NTTWVkaWFSdWxlKCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSBp
cyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTTWVk
aWFSdWxlKCkuZGVsZXRlUnVsZSh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25O
dW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxlTGlzdCgpLml0ZW0oeCknKSBpcyAnYW55IHR5cGUg
YWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlv
bigpLml0ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGlj
eSgnY3JlYXRlQ1NTU3R5bGVTaGVldCgpLmluc2VydFJ1bGUocnVsZVRleHQsIHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hl
ZXQoKS5kZWxldGVSdWxlKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVy
aWNQb2xpY3koJ2NyZWF0ZUNTU01lZGlhUnVsZSgpLmluc2VydFJ1bGUocnVsZVRleHQsIHgpJykg
aXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQ
b2xpY3koJ2NyZWF0ZUNTU01lZGlhUnVsZSgpLmRlbGV0ZVJ1bGUoeCknKSBpcyAnYW55IHR5cGUg
YWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRl
Q1NTUnVsZUxpc3QoKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21p
dHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24o
KS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNT
IG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5pbnNlcnRSdWxlKHJ1bGVU
ZXh0LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJworUEFTUyBu
b25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkuZGVsZXRlUnVsZSh4KScpIGlz
ICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwogUEFTUyBub25OdW1lcmljUG9s
aWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkuYWRkUnVsZShzZWxlY3Rvciwgc3R5bGVUZXh0LCB4
KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVD
U1NTdHlsZVNoZWV0KCkucmVtb3ZlUnVsZSh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFT
UyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NWYWx1ZUxpc3QoKS5pdGVtKHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hl
ZXQoKS5yZW1vdmVSdWxlKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRl
ZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1ZhbHVlTGlzdCgpLml0ZW0oeCkn
KSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCAwKScpIGlzICdhbnkgdHlwZSBh
bGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50
KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmJvZHkuc2Nyb2xsQnlMaW5lcyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFT
UyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5UGFnZXMoeCknKSBpcyAn
YW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuZWxlbWVu
dEZyb21Qb2ludCgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JworUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCkn
KSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxCeVBhZ2VzKHgpJykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmJvZHkuc2Nyb2xsTGVmdCA9IHgnKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKIFBBU1Mgbm9uTnVt
ZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSB4JykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmltYWdlcy5pdGVtKHgpJykg
aXMgJ2FueSB0eXBlIGFsbG93ZWQnCkBAIC0zMCw1NyArMzAsNTcgQEAgUEFTUyBub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLnNldFNlbGVjdGlvblJhbmdl
KHgsIDApJykKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW5wdXQiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwog
UEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5hZGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIiksIHgpJykgaXMgJ251bWJlciBvciBudWxs
IGFsbG93ZWQgKG9yIG9taXR0ZWQsIGJ1dCBub3QgaW5maW5pdGUpJwogUEFTUyBub25OdW1lcmlj
UG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5yZW1vdmUoeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVs
ZW1lbnQoKS5yZW1vdmUoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1lbnQo
KS5pbnNlcnRSb3coeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1Bv
bGljeSgnY3JlYXRlSFRNTFRhYmxlRWxlbWVudCgpLmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlw
ZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVt
ZW50KCkuaW5zZXJ0Q2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1l
cmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkuZGVsZXRlQ2VsbCh4KScpIGlz
ICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCgpLmluc2VydFJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwot
UEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVudCgpLmRl
bGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworRkFJTCBub25OdW1lcmljUG9saWN5
KCdjcmVhdGVIVE1MU2VsZWN0RWxlbWVudCgpLnJlbW92ZSh4KScpIHNob3VsZCBiZSBhbnkgdHlw
ZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpLiBXYXMgYW55IHR5cGUgYWxsb3dlZC4KK1BBU1Mg
bm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykgaXMg
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xp
Y3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1lbnQoKS5pbnNlcnRSb3coeCknKSBpcyAnYW55IHR5cGUg
YWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRl
SFRNTFRhYmxlRWxlbWVudCgpLmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChi
dXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVS
b3dFbGVtZW50KCkuaW5zZXJ0Q2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90
IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVt
ZW50KCkuZGVsZXRlQ2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0
ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCgpLmluc2VydFJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVudCgp
LmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwog
UEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIp
LnNldFNlbGVjdGlvblJhbmdlKHgsIDApJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIikuc2V0U2Vs
ZWN0aW9uUmFuZ2UoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKS5zZXRTZWxlY3Rpb25S
YW5nZSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwogUEFT
UyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiS2V5Ym9hcmRFdmVudCIp
LmluaXRLZXlib2FyZEV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAiYiIsIHgsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlTWVkaWFMaXN0KCkuaXRlbSh4KScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVNZWRpYUxpc3QoKS5p
dGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50IikuaW5pdE1v
dXNlRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgsIDAsIDAsIDAsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwogUEFT
UyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpLmlu
aXRNb3VzZUV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAwLCB4LCAwLCAwLCAwLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgbnVsbCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcK
IFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQi
KS5pbml0TW91c2VFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgbnVsbCwgMCwgMCwgeCwgMCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2
ZW50IikuaW5pdE1vdXNlRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIDAsIDAsIDAsIHgs
IDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKScpIGlzICdhbnkgdHlwZSBh
bGxvd2VkJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91
c2VFdmVudCIpLmluaXRNb3VzZUV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAwLCAwLCAw
LCAwLCB4LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgbnVsbCknKSBpcyAnYW55IHR5
cGUgYWxsb3dlZCcKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQo
Ik1vdXNlRXZlbnQiKS5pbml0TW91c2VFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgbnVsbCwgMCwg
MCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHgsIG51bGwpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmJvZHkuYXR0
cmlidXRlcy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQ
b2xpY3koJ2RvY3VtZW50LmJvZHkuYXR0cmlidXRlcy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMgJ2FueSB0
eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJkaXYiKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKS5pdGVt
KHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51
bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJQcm9ncmVzc0V2ZW50IikuaW5pdFBy
b2dyZXNzRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB4LCAwKScpIGlzICdhbnkgdHlw
ZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgi
UHJvZ3Jlc3NFdmVudCIpLmluaXRQcm9ncmVzc0V2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5zZXRTdGFydChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5
cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2Uo
KS5zZXRFbmQoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51
bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY29tcGFyZVBvaW50KGRvY3VtZW50
LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1
bWVudC5jcmVhdGVSYW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4KScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5jb2xs
YXBzZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlByb2dyZXNzRXZlbnQiKS5pbml0UHJvZ3Jl
c3NFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIHgpJykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmNyZWF0ZVJhbmdlKCkuc2V0U3RhcnQoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNy
ZWF0ZVJhbmdlKCkuc2V0RW5kKGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChi
dXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVS
YW5nZSgpLmNvbXBhcmVQb2ludChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
UmFuZ2UoKS5pc1BvaW50SW5SYW5nZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dl
ZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9u
KCkuY29sbGFwc2UoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoZG9jdW1lbnQsIHgsIGRvY3VtZW50LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
JwotUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50
KGRvY3VtZW50LCAwLCBkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mg
bm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQsIHgp
JykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVj
dGlvbigpLmV4dGVuZChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mg
bm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCh4KScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5zdHlsZVNoZWV0
cy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3ko
J2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuc3BsaXRUZXh0KHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
IChidXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24o
KS5zZXRQb3NpdGlvbihkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZXh0ZW5k
KGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwor
UEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgpJykgaXMg
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xp
Y3koJ2RvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoImEiKS5zcGxpdFRleHQoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1Q
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJVSUV2ZW50IikuaW5p
dFVJRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJVSUV2ZW50
IikuaW5pdFVJRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRv
dy5zY3JvbGxCeSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmlj
UG9saWN5KCd3aW5kb3cuc2Nyb2xsQnkoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRv
dy5zY3JvbGxUbyh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmlj
UG9saWN5KCd3aW5kb3cuc2Nyb2xsVG8oMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKDAsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRv
dy5zY3JvbGwoeCwgMCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1Bv
bGljeSgnd2luZG93LnNjcm9sbCgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBu
b25OdW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3Zl
QnkoeCwgMCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
d2luZG93Lm1vdmVCeSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1l
cmljUG9saWN5KCd3aW5kb3cubW92ZUJ5KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlVG8oeCwg
MCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93
Lm1vdmVUbygwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1lcmljUG9s
aWN5KCd3aW5kb3cubW92ZVRvKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5yZXNpemVCeSh4LCAwKScp
IGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCd3aW5kb3cucmVz
aXplQnkoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGlj
eSgnd2luZG93LnJlc2l6ZUJ5KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5yZXNpemVUbyh4LCAwKScp
IGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCd3aW5kb3cucmVz
aXplVG8oMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGlj
eSgnd2luZG93LnJlc2l6ZVRvKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL251bGwtY2hhcmRhdGEtY3Jhc2gu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL251bGwtY2hhcmRhdGEtY3Jhc2guaHRtbAppbmRl
eCBiMDg4NTdmLi43MDQ5ZGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9udWxs
LWNoYXJkYXRhLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbnVsbC1jaGFy
ZGF0YS1jcmFzaC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogCi0gICAgdmFyIG8gPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgpOworICAgIHZhciBv
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobnVsbCk7CiAgICAgdHJ5IHsKICAgICAgIG8uZGF0
YSA9IG51bGw7CiAgICAgICBvLnNwbGl0VGV4dCgxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21MaXN0RW51bWVyYXRpb24uanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCmluZGV4IGQzYTA0
NDkuLmM0ZjMzODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0
cy9kb21MaXN0RW51bWVyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0
LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwpAQCAtMTg0LDcgKzE4NCw3IEBAIHNob3VsZEJl
KCJyZXN1bHRBcnJheVsyXS5pIiwgIicyJyIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzJdLml0
ZW0iLCAiY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDIpIik7CiAKIC8vIENTU1ZhbHVlTGlzdAot
dmFyIGNzc1ZhbHVlTGlzdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdvbCcpWzBdKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdib3JkZXItc3Bh
Y2luZycpOwordmFyIGNzc1ZhbHVlTGlzdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvbCcpWzBdLCBudWxsKS5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKCdib3JkZXItc3BhY2luZycpOwogcmVzdWx0QXJyYXkgPSBpdGVyYXRlTGlzdChjc3NWYWx1
ZUxpc3QpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxMCIpOwogc2hvdWxkQmUo
InJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMt
bnVtZXJpYy1wYXJhbWV0ZXJzLmpzCmluZGV4IDYwZWM3OWUuLmIxZWI1ZGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVt
ZXJpYy1wYXJhbWV0ZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0
cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCkBAIC0xODYsNDYgKzE4
Niw0NiBAQCBmdW5jdGlvbiBjcmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkKIC8vIENoYXJhY3Rl
ckRhdGEKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKFwiYVwiKS5zdWJzdHJpbmdEYXRhKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7
Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJh
XCIpLnN1YnN0cmluZ0RhdGEoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuc3Vi
c3RyaW5nRGF0YSgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JyIpOwogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KFwiYVwiKS5pbnNlcnREYXRhKHgsIFwiYlwiKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwog
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwi
KS5kZWxldGVEYXRhKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJhXCIpLmRlbGV0ZURh
dGEoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuZGVsZXRlRGF0YSgwLCB4KScp
IiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwiKS5yZXBsYWNlRGF0
YSh4LCAwLCBcImJcIiknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKIHNob3VsZEJlKCJub25O
dW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikucmVwbGFjZURhdGEo
MCwgeCwgXCJiXCIpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiAKIC8vIENTU01lZGlhUnVs
ZQogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTTWVkaWFSdWxlKCkuaW5z
ZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJl
KCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NNZWRpYVJ1bGUoKS5kZWxldGVSdWxlKHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3Jl
YXRlQ1NTTWVkaWFSdWxlKCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUg
YWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5
KCdjcmVhdGVDU1NNZWRpYVJ1bGUoKS5kZWxldGVSdWxlKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIENTU1J1bGVMaXN0CiAKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxlTGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxl
TGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSci
KTsKIAogLy8gQ1NTU3R5bGVEZWNsYXJhdGlvbgogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxs
b3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZURlY2xh
cmF0aW9uKCkuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JyIpOwogCiAvLyBDU1NTdHlsZVNoZWV0CiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdj
cmVhdGVDU1NTdHlsZVNoZWV0KCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHls
ZVNoZWV0KCkuZGVsZXRlUnVsZSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5pbnNlcnRSdWxlKHJ1
bGVUZXh0LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwor
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5kZWxldGVS
dWxlKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91
bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVTaGVldCgpLmFkZFJ1bGUoc2Vs
ZWN0b3IsIHN0eWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJl
KCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkucmVtb3ZlUnVsZSh4KScp
IiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2Ny
ZWF0ZUNTU1N0eWxlU2hlZXQoKS5yZW1vdmVSdWxlKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQg
KGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIENTU1ZhbHVlTGlzdAogCi1zaG91bGRCZSgibm9u
TnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTVmFsdWVMaXN0KCkuaXRlbSh4KScpIiwgIidhbnkgdHlw
ZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1ZhbHVl
TGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSci
KTsKIAogLy8gRG9jdW1lbnQKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmVsZW1lbnRGcm9tUG9pbnQoeCwgMCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KDAsIHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9j
dW1lbnQuZWxlbWVudEZyb21Qb2ludCgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQg
bm90IG9taXR0ZWQpJyIpOwogCiAvLyBFbGVtZW50CiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dl
ZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5
UGFnZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCknKSIsICInYW55IHR5cGUgYWxs
b3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdk
b2N1bWVudC5ib2R5LnNjcm9sbEJ5UGFnZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0
IG5vdCBvbWl0dGVkKSciKTsKIHNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5i
b2R5LnNjcm9sbExlZnQgPSB4JykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiBzaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSB4JykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQnIik7CiAKQEAgLTI0OSwyOCArMjQ5LDI4IEBAIHNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5yZW1vdmUoeCknKSIsICIn
YW55IHR5CiAKIC8vIEhUTUxTZWxlY3RFbGVtZW50CiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdjcmVhdGVIVE1MU2VsZWN0RWxlbWVudCgpLnJlbW92ZSh4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxTZWxlY3RF
bGVtZW50KCkuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxTZWxlY3RFbGVtZW50KCkucmVtb3ZlKHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIEhUTUxUYWJsZUVsZW1lbnQK
IAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1lbnQoKS5p
bnNlcnRSb3coeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVFbGVtZW50KCkuZGVsZXRlUm93KHgpJykiLCAiJ2Fu
eSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRN
TFRhYmxlRWxlbWVudCgpLmluc2VydFJvdyh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQg
bm90IG9taXR0ZWQpJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxU
YWJsZUVsZW1lbnQoKS5kZWxldGVSb3coeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKSciKTsKIAogLy8gSFRNTFRhYmxlUm93RWxlbWVudAogCi1zaG91bGRCZSgibm9u
TnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFRhYmxlUm93RWxlbWVudCgpLmluc2VydENlbGwoeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdj
cmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkuZGVsZXRlQ2VsbCh4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZVJv
d0VsZW1lbnQoKS5pbnNlcnRDZWxsKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFRhYmxl
Um93RWxlbWVudCgpLmRlbGV0ZUNlbGwoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKSciKTsKIAogLy8gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIAotc2hvdWxkQmUo
Im5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KCkuaW5zZXJ0
Um93KHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1Bv
bGljeSgnY3JlYXRlSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoKS5kZWxldGVSb3coeCknKSIsICIn
YW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVI
VE1MVGFibGVTZWN0aW9uRWxlbWVudCgpLmluc2VydFJvdyh4KScpIiwgIidhbnkgdHlwZSBhbGxv
d2VkIChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2Ny
ZWF0ZUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KCkuZGVsZXRlUm93KHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIEhUTUxJbnB1dEVsZW1lbnQKIAog
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0
YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIp
Owotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0
ZXh0YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2Vk
JyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
XCJ0ZXh0YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxv
d2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogCiAvLyBLZXlib2FyZEV2ZW50CiAKQEAgLTI3OCw3
ICsyNzgsNyBAQCBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZl
bnQoXCJLZXlib2FyZEV2ZW50XCIpLmluaXRLZXlib2FyZAogCiAvLyBNZWRpYUxpc3QKIAotc2hv
dWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZU1lZGlhTGlzdCgpLml0ZW0oeCknKSIsICIn
YW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVN
ZWRpYUxpc3QoKS5pdGVtKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRl
ZCknIik7CiAKIC8vIE1vdXNlRXZlbnQKIApAQCAtMjkxLDcgKzI5MSw3IEBAIHNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudChcIk1vdXNlRXZlbnRcIikuaW5p
dE1vdXNlRXZlbnQoCiAKIC8vIE5hbWVkTm9kZU1hcAogCi1zaG91bGRCZSgibm9uTnVtZXJpY1Bv
bGljeSgnZG9jdW1lbnQuYm9keS5hdHRyaWJ1dGVzLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxs
b3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LmF0dHJp
YnV0ZXMuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIp
OwogCiAvLyBOb2RlSXRlcmF0b3IKIApAQCAtMjk5LDI4ICsyOTksMjggQEAgc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgeCwg
bnVsbCwgZmFsc2UKIAogLy8gTm9kZUxpc3QKIAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3ko
J2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZGl2XCIpLml0ZW0oeCknKSIsICInYW55
IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZShcImRpdlwiKS5pdGVtKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFByb2dyZXNzRXZlbnQKIAogc2hvdWxkQmUo
Im5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KFwiUHJvZ3Jlc3NFdmVudFwi
KS5pbml0UHJvZ3Jlc3NFdmVudChcImFcIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgeCwgMCknKSIs
ICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1
bWVudC5jcmVhdGVFdmVudChcIlByb2dyZXNzRXZlbnRcIikuaW5pdFByb2dyZXNzRXZlbnQoXCJh
XCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7
CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJQcm9n
cmVzc0V2ZW50XCIpLmluaXRQcm9ncmVzc0V2ZW50KFwiYVwiLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCAwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogCiAv
LyBSYW5nZQogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFu
Z2UoKS5zZXRTdGFydChkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNo
b3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLnNldEVuZChk
b2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNvbXBhcmVQb2ludChkb2N1bWVudCwg
eCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5
KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4KScpIiwg
IidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3Vt
ZW50LmNyZWF0ZVJhbmdlKCkuc2V0U3RhcnQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgn
ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5zZXRFbmQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jb21wYXJlUG9pbnQoZG9jdW1lbnQsIHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5pc1BvaW50SW5SYW5nZShkb2N1bWVu
dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKIAogLy8g
U2VsZWN0aW9uCiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5j
b2xsYXBzZShkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJl
KCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5jb2xsYXBzZShkb2N1bWVudCwgeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKIHNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50
LCB4LCBkb2N1bWVudCwgMCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50
LCAwLCBkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudCwgeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdn
ZXRTZWxlY3Rpb24oKS5leHRlbmQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQn
Iik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VB
dCh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3VtZW50
LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50
LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLmV4dGVuZChkb2N1bWVudCwgeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFNRTFJlc3VsdFNldFJvd0xp
c3QKIApAQCAtMzI4LDExICszMjgsMTEgQEAgc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dl
dFNlbGVjdGlvbigpLmdldFJhbmdlQXQoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCcKIAogLy8g
U3R5bGVTaGVldExpc3QKIAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LnN0
eWxlU2hlZXRzLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFRleHQKIAotc2hvdWxkQmUo
Im5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwiKS5zcGxpdFRl
eHQoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuc3BsaXRUZXh0KHgpJykiLCAiJ2Fu
eSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFRpbWVSYW5nZXMKIApA
QCAtMzQ0LDI0ICszNDQsMjQgQEAgc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIHgsIG51bGwsIGZhbHNlKScKIAogLy8gVUlFdmVu
dAogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJV
SUV2ZW50XCIpLmluaXRVSUV2ZW50KFwiYVwiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1l
bnQuY3JlYXRlRXZlbnQoXCJVSUV2ZW50XCIpLmluaXRVSUV2ZW50KFwiYVwiLCBmYWxzZSwgZmFs
c2UsIG51bGwsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7
CiAKIC8vIFdpbmRvdwogCiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9s
bEJ5KHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJp
Y1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7
CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQn
Iik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKDAsIHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2lu
ZG93LnNjcm9sbFRvKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRl
ZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbCh4LCAwKScp
IiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ3dp
bmRvdy5zY3JvbGwoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2lu
ZG93Lm1vdmVCeSh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlQnkoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dl
ZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCd3aW5kb3cubW92ZUJ5KDAsIHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9u
TnVtZXJpY1BvbGljeSgnd2luZG93Lm1vdmVUbyh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2Vk
JyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlVG8oMCwgeCknKSIs
ICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCd3aW5k
b3cubW92ZVRvKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCkn
Iik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZUJ5KHgsIDApJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2lu
ZG93LnJlc2l6ZUJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZUJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgn
d2luZG93LnJlc2l6ZVRvKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRC
ZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZVRvKDAsIHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZVRv
KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAvLyBO
b3QgdGVzdGVkOiBvcGVuRGF0YWJhc2UuCiAKIHdpbmRvdy5yZXNpemVUbygxMDAwMCwgMTAwMDAp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3NldFByaW1p
dGl2ZVZhbHVlLWV4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVz
dHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcwppbmRleCBmOTNhYTllLi5hNzc3MGZj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvc2V0UHJpbWl0
aXZlVmFsdWUtZXhjZXB0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQt
dGVzdHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcwpAQCAtNDQsNyArNDQsNyBAQCBz
aG91bGRUaHJvdygiZm9udEZhbWlseS5zZXRTdHJpbmdWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfVU5LTk9XTiwgJ0hpIHRoZXJlIQogc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuc2V0U3RyaW5n
VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RJTUVOU0lPTiwgXCJHJ2RheSFcIikiKTsKIHNo
b3VsZFRocm93KCJmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19DT1VOVEVSLCAnSGVsbG8sIHdvcmxkIScpIik7CiAKLXNob3VsZFRocm93KCJmb250RmFtaWx5
LmdldEZsb2F0VmFsdWUoKSIpOworc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuZ2V0RmxvYXRWYWx1
ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIik7CiBzaG91bGRUaHJvdygiZm9udEZhbWlseS5n
ZXRDb3VudGVyVmFsdWUoKSIpOwogc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuZ2V0UmVjdFZhbHVl
KCkiKTsKIHNob3VsZFRocm93KCJmb250RmFtaWx5LmdldFJHQkNvbG9yVmFsdWUoKSIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1l
eGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA0NDZmMmU4Li45NzAwODczIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNl
cHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTgsNyArMTgsNyBAQCBQQVNTIGZvbnRGYW1pbHkuZ2V0
U3RyaW5nVmFsdWUoKSBpcyAiRydkYXkhIgogUEFTUyBmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVl
KENTU1ByaW1pdGl2ZVZhbHVlLkNTU19VTktOT1dOLCAnSGkgdGhlcmUhJykgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZv
bnRGYW1pbHkuc2V0U3RyaW5nVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RJTUVOU0lPTiwg
IkcnZGF5ISIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00g
RXhjZXB0aW9uIDE1LgogUEFTUyBmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVlKENTU1ByaW1pdGl2
ZVZhbHVlLkNTU19DT1VOVEVSLCAnSGVsbG8sIHdvcmxkIScpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgotUEFTUyBmb250RmFtaWx5
LmdldEZsb2F0VmFsdWUoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZm9udEZhbWlseS5nZXRGbG9hdFZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlLkNTU19QWCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VT
U19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZvbnRGYW1pbHkuZ2V0Q291bnRlclZhbHVl
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRp
b24gMTUuCiBQQVNTIGZvbnRGYW1pbHkuZ2V0UmVjdFZhbHVlKCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZvbnRGYW1p
bHkuZ2V0UkdCQ29sb3JWYWx1ZSgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NF
U1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc3R5bGUtc2hlZXQtY2FuZGlkYXRlLXJlbW92ZS11bnJlbmRlcmVkLWRvY3VtZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUtcmVtb3ZlLXVucmVu
ZGVyZWQtZG9jdW1lbnQuaHRtbAppbmRleCBhYzU3YWFhLi4wYjc2ZTA2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUtcmVtb3ZlLXVucmVuZGVy
ZWQtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1j
YW5kaWRhdGUtcmVtb3ZlLXVucmVuZGVyZWQtZG9jdW1lbnQuaHRtbApAQCAtMTEsNyArMTEsNyBA
QAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICAgIHZhciBvdGhlckRvY3VtZW50ID0gZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgdmFyIG90aGVy
RG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIp
OwogICAgIG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICI8bGluaz4i
OwogICAgIG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICIiOwogICAg
IG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKG90aGVyRG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaGVhZCIpKS5hcHBlbmRDaGlsZChvdGhlckRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInN0eWxlIikpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2hv
dmVyZWQtZGV0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvaG92ZXJlZC1kZXRh
Y2guaHRtbAppbmRleCBkNDk4MWQyLi5kZTI2NDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2R5bmFtaWMvaG92ZXJlZC1kZXRhY2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2R5
bmFtaWMvaG92ZXJlZC1kZXRhY2guaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBhLnN0eWxlLmRpc3BsYXkgPSAn
aW5saW5lJzsKICAgICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsK
LSAgICB2YXIgY29sID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhKS5j
b2xvcjsKKyAgICB2YXIgY29sID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHls
ZShhLCBudWxsKS5jb2xvcjsKICAgICByLmlubmVyVGV4dCA9IGNvbCA9PSAicmdiKDAsIDAsIDAp
IiA/ICJQQVNTIiA6ICJGQUlMOiAiK2NvbDsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9keW5hbWljL3Bvc2l0aW9uLWFic29sdXRlLXRvLWZpeGVkLWNyYXNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4ZWQt
Y3Jhc2guaHRtbAppbmRleCAwYjQ2MDI4Li4yZGZjZDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4ZWQtY3Jhc2guaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4ZWQtY3Jh
c2guaHRtbApAQCAtNywxMyArNywxMyBAQAogICAgICAgICB7CiAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpLnN0eWxlOwotICAgICAgICAgICAgcy5zZXRQcm9wZXJ0eSgicG9zaXRp
b24iLCAiZml4ZWQiKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoInBvc2l0aW9uIiwgImZp
eGVkIiwgbnVsbCk7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAg
ICAgICAgIHMuc2V0UHJvcGVydHkoIm92ZXJmbG93IiwgImhpZGRlbiIpOwotICAgICAgICAgICAg
cy5zZXRQcm9wZXJ0eSgiaGVpZ2h0IiwgIjAiKTsKLSAgICAgICAgICAgIHMuc2V0UHJvcGVydHko
IndpZHRoIiwgIjAiKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoIm92ZXJmbG93IiwgImhp
ZGRlbiIsIG51bGwpOworICAgICAgICAgICAgcy5zZXRQcm9wZXJ0eSgiaGVpZ2h0IiwgIjAiLCBu
dWxsKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoIndpZHRoIiwgIjAiLCBudWxsKTsKICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgcy5zZXRQcm9w
ZXJ0eSgiZGlzcGxheSIsICJub25lIik7CisgICAgICAgICAgICBzLnNldFByb3BlcnR5KCJkaXNw
bGF5IiwgIm5vbmUiLCBudWxsKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJl
aGFzaC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXIt
bWFwLXJlaGFzaC1jcmFzaC5odG1sCmluZGV4IDRlODFlMTQuLjE5ZmY1MmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2gu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVo
YXNoLWNyYXNoLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICAgICAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImJvb20iICsgaSwgc3R1YiwgZmFsc2UpOwogICAgIH0sIGZhbHNlKTsK
IAotICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBzdHVi
KTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgc3R1
YiwgZmFsc2UpOwogCiAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2luaXQtZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2luaXQtZXZlbnRzLWV4cGVjdGVkLnR4
dAppbmRleCA4MmUyYmE5Li42MjVmYzZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pbml0LWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvaW5pdC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xMjYsMjAgKzEyNiwyMCBAQCBQQVNTIHRl
c3RJbml0RXZlbnQoJ1Byb2dyZXNzJywgJyJhIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMTAwMSwg
MTAwMicpLmxlbmd0aENvbQogUEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVzcycsICciYSIsIGZh
bHNlLCBmYWxzZSwgdHJ1ZSwgMTAwMSwgMTAwMicpLmxlbmd0aENvbXB1dGFibGUgaXMgdHJ1ZQog
UEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVzcycsICciYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IDEwMDEsIDEwMDInKS5sb2FkZWQgaXMgMTAwMQogUEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVz
cycsICciYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDEwMDEsIDEwMDInKS50b3RhbCBpcyAxMDAy
Ci1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwg
ImMiLCAiZCIsICJlIicpLnR5cGUgaXMgJ2EnCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2Un
LCAnbnVsbCwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSInKS50eXBlIGlzICdudWxs
JwotUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIs
ICJjIiwgImQiLCAiZSInKS5idWJibGVzIGlzIGZhbHNlCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0
b3JhZ2UnLCAnImEiLCB0cnVlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykuYnViYmxlcyBp
cyB0cnVlCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2Us
ICJiIiwgImMiLCAiZCIsICJlIicpLmNhbmNlbGFibGUgaXMgZmFsc2UKLVBBU1MgdGVzdEluaXRF
dmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCB0cnVlLCAiYiIsICJjIiwgImQiLCAiZSInKS5j
YW5jZWxhYmxlIGlzIHRydWUKLVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZh
bHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykua2V5IGlzICdiJwotUEFTUyB0ZXN0SW5p
dEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAiYyIsICJkIiwgImUi
Jykua2V5IGlzICdudWxsJwotUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFs
c2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSInKS5vbGRWYWx1ZSBpcyAnYycKLVBBU1MgdGVz
dEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCBudWxsLCAiZCIs
ICJlIicpLm9sZFZhbHVlIGlzIG51bGwKLVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICci
YSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykubmV3VmFsdWUgaXMgJ2QnCi1Q
QVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMi
LCBudWxsLCAiZSInKS5uZXdWYWx1ZSBpcyBudWxsCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3Jh
Z2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIicpLnVybCBpcyAnZScK
LVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAi
YyIsICJkIiwgbnVsbCcpLnVybCBpcyAnbnVsbCcKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFn
ZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiLCBudWxsJykudHlwZSBp
cyAnYScKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdudWxsLCBmYWxzZSwgZmFsc2Us
ICJiIiwgImMiLCAiZCIsICJlIiwgbnVsbCcpLnR5cGUgaXMgJ251bGwnCitQQVNTIHRlc3RJbml0
RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIiwg
bnVsbCcpLmJ1YmJsZXMgaXMgZmFsc2UKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICci
YSIsIHRydWUsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSIsIG51bGwnKS5idWJibGVzIGlzIHRy
dWUKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIi
LCAiYyIsICJkIiwgImUiLCBudWxsJykuY2FuY2VsYWJsZSBpcyBmYWxzZQorUEFTUyB0ZXN0SW5p
dEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIHRydWUsICJiIiwgImMiLCAiZCIsICJlIiwg
bnVsbCcpLmNhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywg
JyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSIsIG51bGwnKS5rZXkgaXMgJ2In
CitQQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsIG51bGws
ICJjIiwgImQiLCAiZSIsIG51bGwnKS5rZXkgaXMgJ251bGwnCitQQVNTIHRlc3RJbml0RXZlbnQo
J1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIiwgbnVsbCcp
Lm9sZFZhbHVlIGlzICdjJworUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFs
c2UsIGZhbHNlLCAiYiIsIG51bGwsICJkIiwgImUiLCBudWxsJykub2xkVmFsdWUgaXMgbnVsbAor
UEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJj
IiwgImQiLCAiZSIsIG51bGwnKS5uZXdWYWx1ZSBpcyAnZCcKK1BBU1MgdGVzdEluaXRFdmVudCgn
U3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsIG51bGwsICJlIiwgbnVsbCcp
Lm5ld1ZhbHVlIGlzIG51bGwKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZh
bHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiLCBudWxsJykudXJsIGlzICdlJworUEFTUyB0
ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQi
LCBudWxsLCBudWxsJykudXJsIGlzICdudWxsJwogUEFTUyB0ZXN0SW5pdEV2ZW50KCdUZXh0Jywg
JyJhIiwgZmFsc2UsIGZhbHNlLCB3aW5kb3csICJiIicpLnR5cGUgaXMgJ2EnCiBQQVNTIHRlc3RJ
bml0RXZlbnQoJ1RleHQnLCAnbnVsbCwgZmFsc2UsIGZhbHNlLCB3aW5kb3csICJiIicpLnR5cGUg
aXMgJ251bGwnCiBQQVNTIHRlc3RJbml0RXZlbnQoJ1RleHQnLCAnImEiLCBmYWxzZSwgZmFsc2Us
IHdpbmRvdywgImIiJykuYnViYmxlcyBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9t
ZXNzYWdlLXBvcnQuaHRtbAppbmRleCBlYjgwMTgzLi5jMDVmZjk1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQuaHRtbApAQCAtNTQsNyArNTQsNyBAQCBmdW5jdGlvbiB0
ZXN0MygpCiAgICAgICAgICAgICB0ZXN0NCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IGxvZygiRXZlbnQgTGlzdGVuZXI6IEZBSUwuIEV2ZW50IGxpc3RlbmVyIGNhbGxlZCBiZWZvcmUg
c3RhcnQoKSIpOwotICAgfSk7CisgICB9LCBmYWxzZSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewogICAgICAgY2hhbm5lbC5wb3J0Mi5zdGFydCgpOwogICAgICAgc3RhcnRlZCA9IHRydWU7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRz
aWRlLXdpbmRvdy1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2Vz
L2RyYWctb3V0c2lkZS13aW5kb3ctZnJhbWUuaHRtbAppbmRleCA0N2ZlMmFlLi41MTI2YmI3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRzaWRl
LXdpbmRvdy1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNl
cy9kcmFnLW91dHNpZGUtd2luZG93LWZyYW1lLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1kb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBtb3VzZW1vdmVkKTsKK2RvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG1vdXNlbW92ZWQsIGZhbHNlKTsKIAogdmFyIHJl
c3VsdCA9ICJGQUlMIjsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVz
b3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmpzCmluZGV4IDMzNTU2MzAuLjM5
NTU3Y2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy90YWJp
bmRleC1mb2N1cy1ibHVyLWFsbC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNv
dXJjZXMvdGFiaW5kZXgtZm9jdXMtYmx1ci1hbGwuanMKQEAgLTEwNyw3ICsxMDcsNyBAQCBmdW5j
dGlvbiB0ZXN0UHJvZ3JhbW1hdGljRm9jdXMoZWxlbSkKICAgICAgICAgZWxlbVRoYXRTaG91bGRG
b2N1cyA9IGVsZW07CiAKICAgICAvLyBIaWRkZW4gZWxlbWVudHMgc2hvdWxkIG5vdCBiZSBmb2N1
c2FibGUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzA5OQotICAg
IGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW0pLmRpc3BsYXkg
PT0gIm5vbmUiICYmICFub0Rpc3BsYXlUYWdOYW1lc1dpdGhGb2N1cy5maW5kKGVsZW0udGFnTmFt
ZSkpCisgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwg
bnVsbCkuZGlzcGxheSA9PSAibm9uZSIgJiYgIW5vRGlzcGxheVRhZ05hbWVzV2l0aEZvY3VzLmZp
bmQoZWxlbS50YWdOYW1lKSkKICAgICAgICAgZWxlbVRoYXRTaG91bGRGb2N1cyA9IG51bGw7CiAK
ICAgICBpZiAodGFnTmFtZXNUcmFuc2ZlckZvY3VzZWQuZmluZChlbGVtLnRhZ05hbWUpKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1ldmVu
dHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1ldmVudHMu
anMKaW5kZXggMGEzMjQwNy4uMjg4ZTk2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NyaXB0LXRlc3RzL2luaXQtZXZlbnRzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NjcmlwdC10ZXN0cy9pbml0LWV2ZW50cy5qcwpAQCAtMTQ1LDIwICsxNDUsMjAgQEAg
c2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1Byb2dyZXNzJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2Us
IHRydWUsIDEwMDEsIDEwMDInKS5sZW4KIHNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdQcm9ncmVz
cycsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMTAwMSwgMTAwMicpLmxvYWRlZCIsICIx
MDAxIik7CiBzaG91bGRCZSgidGVzdEluaXRFdmVudCgnUHJvZ3Jlc3MnLCAnXCJhXCIsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIDEwMDEsIDEwMDInKS50b3RhbCIsICIxMDAyIik7CiAKLXNob3VsZEJl
KCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBc
ImNcIiwgXCJkXCIsIFwiZVwiJykudHlwZSIsICInYSciKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2
ZW50KCdTdG9yYWdlJywgJ251bGwsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwg
XCJlXCInKS50eXBlIiwgIidudWxsJyIpOwotc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3Jh
Z2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5i
dWJibGVzIiwgImZhbHNlIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdc
ImFcIiwgdHJ1ZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiJykuYnViYmxlcyIs
ICJ0cnVlIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFs
c2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIicpLmNhbmNlbGFibGUiLCAiZmFs
c2UiKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwg
dHJ1ZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5jYW5jZWxhYmxlIiwgInRydWUiKTsK
LXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2Us
IFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiJykua2V5IiwgIidiJyIpOwotc2hvdWxkQmUoInRl
c3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgbnVsbCwgXCJjXCIs
IFwiZFwiLCBcImVcIicpLmtleSIsICInbnVsbCciKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50
KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwi
ZVwiJykub2xkVmFsdWUiLCAiJ2MnIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFn
ZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgbnVsbCwgXCJkXCIsIFwiZVwiJykub2xk
VmFsdWUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJh
XCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5uZXdWYWx1ZSIs
ICInZCciKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxz
ZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgbnVsbCwgXCJlXCInKS5uZXdWYWx1ZSIsICJudWxsIik7
Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNl
LCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIicpLnVybCIsICInZSciKTsKLXNob3VsZEJlKCJ0
ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNc
IiwgXCJkXCIsIG51bGwnKS51cmwiLCAiJ251bGwnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVu
dCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBc
ImVcIiwgbnVsbCcpLnR5cGUiLCAiJ2EnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3Rv
cmFnZScsICdudWxsLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBu
dWxsJykudHlwZSIsICInbnVsbCciKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdl
JywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBudWxs
JykuYnViYmxlcyIsICJmYWxzZSIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2Un
LCAnXCJhXCIsIHRydWUsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwgbnVsbCcp
LmJ1YmJsZXMiLCAidHJ1ZSIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAn
XCJhXCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS5j
YW5jZWxhYmxlIiwgImZhbHNlIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScs
ICdcImFcIiwgZmFsc2UsIHRydWUsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBudWxsJyku
Y2FuY2VsYWJsZSIsICJ0cnVlIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScs
ICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwgbnVsbCcp
LmtleSIsICInYiciKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwi
LCBmYWxzZSwgZmFsc2UsIG51bGwsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS5rZXkiLCAi
J251bGwnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFs
c2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwgbnVsbCcpLm9sZFZhbHVlIiwg
IidjJyIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNl
LCBmYWxzZSwgXCJiXCIsIG51bGwsIFwiZFwiLCBcImVcIiwgbnVsbCcpLm9sZFZhbHVlIiwgIm51
bGwiKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwg
ZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBudWxsJykubmV3VmFsdWUiLCAiJ2Qn
Iik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZh
bHNlLCBcImJcIiwgXCJjXCIsIG51bGwsIFwiZVwiLCBudWxsJykubmV3VmFsdWUiLCAibnVsbCIp
Oworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxz
ZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS51cmwiLCAiJ2UnIik7CitzaG91
bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJc
IiwgXCJjXCIsIFwiZFwiLCBudWxsLCBudWxsJykudXJsIiwgIidudWxsJyIpOwogCiBzaG91bGRC
ZSgidGVzdEluaXRFdmVudCgnVGV4dCcsICdcImFcIiwgZmFsc2UsIGZhbHNlLCB3aW5kb3csIFwi
YlwiJykudHlwZSIsICInYSciKTsKIHNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdUZXh0JywgJ251
bGwsIGZhbHNlLCBmYWxzZSwgd2luZG93LCBcImJcIicpLnR5cGUiLCAiJ251bGwnIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJy
b3ItMDA0Lmh0bWwKaW5kZXggZGZhYThmYi4uZGJkM2JjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQuaHRtbApA
QCAtMTUsNyArMTUsNyBAQAogICAgICAgICAvLyBCbGFuawogICAgICAgICBmb3IgKGkgPSAwOyBp
IDwgdi5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgi
Q3VzdG9tIHN0cmluZyIpOwotICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgpOwor
ICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKICAgICAgICAgICAgIGxv
ZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7CiAg
ICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJvbmUiLCAidHdvIiwgInRocmVlIik7
CiAgICAgICAgICAgICBsb2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6
ICJGQUlMVVJFIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xlZ2VuZC1k
aXNwbGF5LW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXkt
bm9uZS5odG1sCmluZGV4IDI3OGFhZjYuLmQzMWViNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sCkBAIC0xMSw2ICsxMSw2IEBACiAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAogICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgIGRpc3BsYXkgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuZGlzcGxheTsKKyAgICBkaXNwbGF5ID0gZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IiksIG51bGwpLmRpc3BsYXk7
CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9IGRpc3Bs
YXkgPT09ICJub25lIiA/ICJQQVNTIiA6ICgiRkFJTDogZGlzcGxheSB3YXMgJyIgKyBkaXNwbGF5
ICsgIicuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRhdGVzLWRvbS5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRh
dGVzLWRvbS5qcwppbmRleCBiNGNiZmI0Li5hY2VkYjA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9jaGVja1ZhbGlkaXR5LWhhbmRsZXItdXBkYXRlcy1k
b20uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvY2hlY2tWYWxp
ZGl0eS1oYW5kbGVyLXVwZGF0ZXMtZG9tLmpzCkBAIC03NCw3ICs3NCw3IEBAIHNob3VsZEJlRmFs
c2UoJ2hhbmRsZXIyQ2FsbGVkJyk7CiBkZWJ1ZygnJyk7CiBkZWJ1ZygnQSBjb250cm9sIGlzIG1v
dmVkIHRvIGFub3RoZXIgZG9jdW1lbnQuJyk7CiBwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtIGlk
PWYxPjxpbnB1dCBuYW1lPWkxIGlkPWkxIHJlcXVpcmVkPjwvZm9ybT4nOwotdmFyIGRvYzIgPSBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBkb2MyID0g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKIGhhbmRsZXIx
ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICBkb2MyLmJvZHkuYXBwZW5kQ2hpbGQoZG9jMi5hZG9w
dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJykpKTsKIH07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJyaWRlLXByZWZlcmVuY2VzLTIuaHRtbAppbmRleCBi
ZGI3MTY0Li5kMDllZmQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3Zl
cnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9v
dmVycmlkZS1wcmVmZXJlbmNlcy0yLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICBZb3Ugc2hv
dWxkIHNlZSAiUEFTUyIgYmVsb3cuPC9wPgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHZhciBwID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKVswXTsKLSAgICAgICAgaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgd2luZG93LmdldENvbXB1dGVkU3R5bGUocCkuZm9u
dFNpemUgPT0gIjI0cHgiKQorICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ciB8fCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwLCBudWxsKS5mb250U2l6ZSA9PSAiMjRweCIp
CiAgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiUEFTUyIpOwogICAgIDwvc2NyaXB0PgogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25hdi1lbGVtZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbAppbmRleCA1NzNlNDE2Li5h
MWU4ZjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbApAQCAtNTAsNyAr
NTAsNyBAQCB2YXIgZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdGFibGUiKTsKIHZh
ciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxs
Q2hpbGRyZW4oZWQpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkZvcm1hdEJsb2NrIiwgZmFsc2Us
ICJuYXYiKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGws
IDApOwogZWQuYmx1cigpOwogCiB2YXIgdGVzdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdEFyZWEiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvYXJ0aWNsZS1lbGVtZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0
cy9hcnRpY2xlLWVsZW1lbnQuanMKaW5kZXggODZkNDQ5OS4uZTVhYWE4ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hcnRpY2xlLWVsZW1lbnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hcnRpY2xlLWVsZW1lbnQuanMK
QEAgLTM1LDcgKzM1LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBz
ZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hp
bGRyZW4oZWRpdGFibGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFs
c2UsICdhcnRpY2xlJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBz
ZShudWxsLCAwKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5w
YXJlbnROb2RlLm5vZGVOYW1lJywgJyJBUlRJQ0xFIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQt
dGVzdHMvYXNpZGUtZWxlbWVudC5qcwppbmRleCBmOGMwMTNkLi41OGNjZDY1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hc2lkZS1lbGVtZW50LmpzCkBA
IC0zNSw3ICszNSw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2Vs
ZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxk
cmVuKGVkaXRhYmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNl
LCAnYXNpZGUnKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51
bGwsIDApOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVu
dE5vZGUubm9kZU5hbWUnLCAnIkFTSURFIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvZm9vdGVyLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3Rz
L2Zvb3Rlci1lbGVtZW50LmpzCmluZGV4IDYxYjdmYTIuLjI2NTY4MGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvZm9vdGVyLWVsZW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qcwpAQCAt
MzgsNyArMzgsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVj
dGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJl
bihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwg
J2Zvb3RlcicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50
Tm9kZS5ub2RlTmFtZScsICciRk9PVEVSIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvaGVhZGVyLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3Rz
L2hlYWRlci1lbGVtZW50LmpzCmluZGV4IDRlODkwMjEuLmNlMTdhNTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZWFkZXItZWxlbWVudC5qcwpAQCAt
MzgsNyArMzgsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVj
dGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJl
bihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwg
J2hlYWRlcicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50
Tm9kZS5ub2RlTmFtZScsICciSEVBREVSIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvaGdyb3VwLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3Rz
L2hncm91cC1lbGVtZW50LmpzCmluZGV4IGQ3ZjMwMDQuLjI3NjNhNjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAtZWxlbWVudC5qcwpAQCAt
MzYsNyArMzYsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVj
dGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJl
bihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwg
J2hncm91cCcpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50
Tm9kZS5ub2RlTmFtZScsICciSEdST1VQIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvc2VjdGlvbi1lbGVtZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0
cy9zZWN0aW9uLWVsZW1lbnQuanMKaW5kZXggMTc2MzIyNS4uYTE3MDBlYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9zZWN0aW9uLWVsZW1lbnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9zZWN0aW9uLWVsZW1lbnQuanMK
QEAgLTM1LDcgKzM1LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBz
ZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hp
bGRyZW4oZWRpdGFibGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFs
c2UsICdzZWN0aW9uJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBz
ZShudWxsLCAwKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5w
YXJlbnROb2RlLm5vZGVOYW1lJywgJyJTRUNUSU9OIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL3Jl
bGF0aXZlLXBvc2l0aW9uZWQtb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5l
L3JlbGF0aXZlLXBvc2l0aW9uZWQtb3ZlcmZsb3cuaHRtbAppbmRleCBkNzlkMzg0Li4yZGMyOWQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9yZWxhdGl2ZS1wb3NpdGlvbmVk
LW92ZXJmbG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvcmVsYXRpdmUtcG9z
aXRpb25lZC1vdmVyZmxvdy5odG1sCkBAIC0zLDcgKzMsNyBAQAogICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgICAgIGV2ZW50LnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiZ3Jl
ZW4iOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJQQVNTIikpOwotICAgIH0pOworICAgIH0sIGZhbHNlKTsKIAogICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQt
ZG9tMS1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQv
dW5jYXVnaHQtZG9tMS1leGNlcHRpb24uaHRtbAppbmRleCAwNWU4YzliLi42ZDBlNTQzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTEt
ZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91
bmNhdWdodC1kb20xLWV4Y2VwdGlvbi5odG1sCkBAIC04LDcgKzgsNyBAQCBmdW5jdGlvbiBvbmxv
YWQoKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKICAgICAv
LyBGb2xsb3dpbmcgY29kZSBnZW5lcmF0ZXMgYW4gZXhjZXB0aW9uLgotICAgIHZhciBwID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoKTsKKyAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG51bGwpOwogICAgIHAudGV4dENvbnRlbnQgPSAiZm9vIjsKICAgICBwLnNwbGl0VGV4dCgx
MDAwMCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0
L3VuY2F1Z2h0LWRvbTMtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rv
ci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTMtZXhjZXB0aW9uLmh0bWwKaW5kZXggYWQ0NDUxYS4uZTAz
N2JmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNh
dWdodC1kb20zLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9y
LXN1cHBvcnQvdW5jYXVnaHQtZG9tMy1leGNlcHRpb24uaHRtbApAQCAtNiw3ICs2LDcgQEAgZnVu
Y3Rpb24gb25sb2FkKCkKIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgZG9jdW1lbnQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgpKTsKKyAgICBkb2N1bWVudC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJykpOwogfQogCiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2FsLUphdmFTY3JpcHQtZnJvbS1s
b2NhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9t
LWxvY2FsLmh0bWwKaW5kZXggNGU3MGRkNS4uMGY0OTFkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9tLWxvY2FsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9tLWxvY2FsLmh0bWwKQEAg
LTI0LDE0ICsyNCwxNCBAQAogCiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKLSAgICAgICAgfSk7CisgICAgICAgIH0sIGZhbHNlKTsKICAgICAgICAgbG9jYWxTY3JpcHRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB2YXIgdGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwogICAgICAgICAg
ICAgdGFnLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogTG9jYWwgc2NyaXB0IG5vdCBsb2FkZWQu
IjsKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0p
OworICAgICAgICB9LCBmYWxzZSk7CiAKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChsb2NhbFNjcmlwdEVsZW1lbnQpCiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvbG9jYWwtY3NzLWFsbG93ZWQtaW4tc3RyaWN0LW1vZGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL2xvY2FsLWNzcy1hbGxvd2VkLWluLXN0cmljdC1tb2RlLmh0bWwKaW5k
ZXggYzIyNmNmMi4uNGY0NzBmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
bG9jYWwtY3NzLWFsbG93ZWQtaW4tc3RyaWN0LW1vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9sb2NhbC1jc3MtYWxsb3dlZC1pbi1zdHJpY3QtbW9kZS5odG1sCkBAIC0xMCw3
ICsxMCw3IEBACiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOwotICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0Q29tcHV0
ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQsIG51bGwpOwogICAgICAgICAgICAgdGFyZ2V0LmlubmVyVGV4dCA9IHN0eWxlLnBv
c2l0aW9uID09ICJyZWxhdGl2ZSIgPyAiU1VDQ0VTUyIgOiAiRkFJTCI7CiAgICAgICAgIH0KICAg
ICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvZ2FwLW5v
bi1uZWdhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0
aXZlLmh0bWwKaW5kZXggMzkxMmFlNS4uZTc2MDE5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0aXZlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0aXZlLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAKLSAgICB2YXIgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSk7CisgICAgdmFyIHN0eWxlID0gZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IiksIG51bGwpOwogICAg
IHZhciBjb2x1bW5HYXAgPSBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LWNvbHVtbi1n
YXAiKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0g
KGNvbHVtbkdhcCA9PSAiMCIgfHwgY29sdW1uR2FwID09ICJub3JtYWwiKSA/ICJQQVNTIiA6ICJG
QUlMOiBjb2x1bW4tZ2FwIGlzICIgKyBjb2x1bW5HYXA7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0aW5nLWNhcC10
YWJsZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0
aW5nLWNhcC10YWJsZS5qcwppbmRleCBhMzUzYjU4Li44NjAxZTAwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3BhcnNlci9zY3JpcHQtdGVzdHMvYmxvY2stbmVzdGluZy1jYXAtdGFibGUu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3RzL2Jsb2NrLW5lc3Rp
bmctY2FwLXRhYmxlLmpzCkBAIC01LDcgKzUsNyBAQCB2YXIgbWFya3VwID0gIiI7CiB2YXIgaTsK
IGZvciAoaSA9IDA7IGkgPCBkZXB0aDsgKytpKQogICAgIG1hcmt1cCArPSAiPHRhYmxlIGlkPSd0
IiArIGkgKyAiJz48dGJvZHk+PHRyPjx0ZCBpZD0ndGQiICsgaSArICInPiI7Ci12YXIgZG9jID0g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Cit2YXIgZG9jID0g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKIGRvYy5ib2R5
LmlubmVySFRNTCA9IG1hcmt1cDsKIAogdmFyIHQxMDIzID0gZG9jLmdldEVsZW1lbnRCeUlkKCJ0
MTAyMyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3Rz
L2Jsb2NrLW5lc3RpbmctY2FwLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRl
c3RzL2Jsb2NrLW5lc3RpbmctY2FwLmpzCmluZGV4IGYwN2Y1ODAuLmFkYWIwYzggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0aW5nLWNh
cC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9zY3JpcHQtdGVzdHMvYmxvY2stbmVz
dGluZy1jYXAuanMKQEAgLTUsNyArNSw3IEBAIHZhciBtYXJrdXAgPSAiIjsKIHZhciBpOwogZm9y
IChpID0gMDsgaSA8IGRlcHRoOyArK2kpCiAgICAgbWFya3VwICs9ICI8ZGl2IGlkPSdkIiArIGkg
KyAiJz4iOwotdmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1
bWVudCgpOwordmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1
bWVudCgiIik7CiBkb2MuYm9keS5pbm5lckhUTUwgPSBtYXJrdXA7CiAKIHZhciBkNDA5NCA9IGRv
Yy5nZXRFbGVtZW50QnlJZCgiZDQwOTQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cGFyc2VyL3NjcmlwdC10ZXN0cy9lbGVtZW50LW5lc3RpbmctY2FwLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKaW5kZXggYjYy
ODlmYi4uZTljODhmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0
LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJz
ZXIvc2NyaXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKQEAgLTQsNyArNCw3IEBAIHZh
ciBkZXB0aCA9IDUxMDA7CiB2YXIgbWFya3VwID0gIiI7CiBmb3IgKHZhciBpID0gMzsgaSA8IGRl
cHRoOyArK2kpCiAgICAgbWFya3VwICs9ICI8c3BhbiBpZD0ncyIgKyBpICsgIic+IjsKLXZhciBk
b2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBk
b2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogZG9j
LmJvZHkuaW5uZXJIVE1MID0gbWFya3VwOwogCiB2YXIgczEgPSBkb2MuZ2V0RWxlbWVudEJ5SWQo
InM1MDAxIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUt
d2l0aC1uby10aXRsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdp
dGgtbm8tdGl0bGUuaHRtbAppbmRleCBiMDRkMjdiLi4zNWE4ZGU1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKQEAgLTks
NyArOSw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIAogZnVuY3Rpb24g
c3RhcnRUZXN0KCkKIHsKLSAgICBjb25zb2xlLnByb2ZpbGUoKTsKKyAgICBjb25zb2xlLnByb2Zp
bGUobnVsbCk7CiAgICAgZW5kVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzCmluZGV4IDI3MDFjMzMuLjMyNTk3OWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzCkBAIC0xLDUgKzEsNSBAQAogZnVuY3Rpb24gZW5kVGVzdCgpIHsK
LSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQobnVsbCk7
CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogCiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwKaW5kZXggMDkyYWVkZS4uZTRhOTVkYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hh
bmdlLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzQW5k
U3RvcHNUaGVQcm9maWxlcigpCiAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
Iik7CiAKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQo
bnVsbCk7CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29u
dGV4dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250
ZXh0cy5odG1sCmluZGV4IGMzZTkxYjUuLjkyYmUwODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCkBAIC0zMSw3ICsz
MSw3IEBAIHRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byAo
cHJvZ3JhbSkgZWxlbWVudHMuCiA8L2JvZHk+CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdEVuZCgp
IHsKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQobnVs
bCk7CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogfQogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250
YWluZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNv
bnRhaW5lci5odG1sCmluZGV4IDBhMGIxNzUuLjUzZjc4YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCkBA
IC03MSwxOCArNzEsMTggQEAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rp
b24gKGV2KSB7CiAgICAgICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAg
YXJtZWQgPSB7IG5vZGU6IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudCB9OwotICAgICAgICB9KTsK
KyAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhcm1lZCA9IG51bGw7Ci0gICAgICAgIH0p
OworICAgICAgICB9LCBmYWxzZSk7CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW1vdmUnLCBmdW5jdGlvbiAoZXYpIHsKICAgICAgICAgaWYgKGFybWVkKSB7CiAgICAg
ICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAgc2V0Q2VudGVyUG9zaXRp
b24oYXJtZWQubm9kZSwgZS5jbGllbnRYLCBlLmNsaWVudFkpOwogICAgICAgICB9Ci0gICAgfSk7
Ci19KTsKKyAgICB9LCBmYWxzZSk7Cit9LCBmYWxzZSk7CiAKIC8vLS0+CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBhdGgu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBhdGguaHRt
bAppbmRleCA3N2M1NjNlLi4xNzI3YjcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvbW92aW5nLXNoYWRvdy1vbi1wYXRoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L21vdmluZy1zaGFkb3ctb24tcGF0aC5odG1sCkBAIC03MSwxOCArNzEsMTggQEAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIG5vZGUu
YWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24gKGV2KSB7CiAgICAgICAgICAg
ICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAgYXJtZWQgPSB7IG5vZGU6IGUudGFy
Z2V0IHx8IGUuc3JjRWxlbWVudCB9OwotICAgICAgICB9KTsKKyAgICAgICAgfSwgZmFsc2UpOwog
ICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhcm1lZCA9IG51bGw7Ci0gICAgICAgIH0pOworICAgICAgICB9LCBmYWxzZSk7
CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlv
biAoZXYpIHsKICAgICAgICAgaWYgKGFybWVkKSB7CiAgICAgICAgICAgICB2YXIgZSA9IGV2IHx8
IGV2ZW50OwogICAgICAgICAgICAgc2V0Q2VudGVyUG9zaXRpb24oYXJtZWQubm9kZSwgZS5jbGll
bnRYLCBlLmNsaWVudFkpOwogICAgICAgICB9Ci0gICAgfSk7Ci19KTsKKyAgICB9LCBmYWxzZSk7
Cit9LCBmYWxzZSk7CiAKIC8vLS0+CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLWV4cGVjdGVkLnR4dAppbmRleCAx
NWViMWZjLi4yMWVmMWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NvbC13
aWR0aC1zcGFuLWV4cGFuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9jb2wtd2lkdGgtc3Bhbi1leHBhbmQtZXhwZWN0ZWQudHh0CkBAIC01LDggKzUsOCBAQCBUaGlz
IHRlc3RzIEJ1ZyAxNDg1ODogPGNvbD4gd2lkdGggaWdub3JlZCB3aGVuIG5vdCB0aWVkIHRvIGEg
c2luZ2xlIGNlbGwuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAotUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0Q2VsbCkud2lkdGggaXMgJzI1MHB4JwotUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0VGFibGUpLndpZHRoIGlzICc1MDBweCcKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGVzdENlbGwsIG51bGwpLndpZHRoIGlzICcyNTBweCcKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdFRhYmxlLCBudWxsKS53aWR0aCBpcyAnNTAwcHgn
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NvbC13aWR0aC1zcGFuLWV4cGFuZC5odG1sCmluZGV4
IDQxYWZmZjYuLmEyYjY3OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvY29s
LXdpZHRoLXNwYW4tZXhwYW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jb2wt
d2lkdGgtc3Bhbi1leHBhbmQuaHRtbApAQCAtMTUsOCArMTUsOCBAQCBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICB2YXIgdGVzdENlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdENlbGwn
KTsKICAgICB2YXIgdGVzdFRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RUYWJs
ZScpOwogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIDxhIGhyZWY9J2h0dHA6Ly93ZWJraXQu
b3JnL2IvMTQ4NTgnPkJ1ZyAxNDg1ODogJmx0O2NvbCZndDsgd2lkdGggaWdub3JlZCB3aGVuIG5v
dCB0aWVkIHRvIGEgc2luZ2xlIGNlbGw8L2E+LiIpOwotICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXN0Q2VsbCkud2lkdGgiLCAiJzI1MHB4JyIpOwotICAgIHNob3VsZEJl
KCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0VGFibGUpLndpZHRoIiwgIic1MDBweCciKTsK
KyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdENlbGwsIG51bGwpLndp
ZHRoIiwgIicyNTBweCciKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGVzdFRhYmxlLCBudWxsKS53aWR0aCIsICInNTAwcHgnIik7CiAgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS90ZC1kaXNwbGF5LW5vd3JhcC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS90ZC1kaXNwbGF5LW5vd3JhcC5odG1sCmluZGV4IDkyNTgwODkuLjFiYzUz
ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvdGQtZGlzcGxheS1ub3dyYXAu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL3RkLWRpc3BsYXktbm93cmFwLmh0bWwK
QEAgLTEwLDggKzEwLDggQEAKICAgICAgIHZhciB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3REaXYnKTsKICAgICAgIAogICAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsKLSAgICAgIHJlc3VsdC5pbm5lckhUTUwgPSAnQ29tcHV0
ZWQgd2hpdGUtc3BhY2Ugc3R5bGUgb2YgJmx0O3RoJmd0OzogJyArIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRlc3RIZWFkZXIpLndoaXRlU3BhY2UgKyAnPGJyPic7Ci0gICAgICByZXN1bHQuaW5u
ZXJIVE1MICs9ICdDb21wdXRlZCB3aGl0ZS1zcGFjZSBzdHlsZSBvZiAmbHQ7ZGl2Jmd0OzogJyAr
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLndoaXRlU3BhY2UgKyAnPGJyPic7Cisg
ICAgICByZXN1bHQuaW5uZXJIVE1MID0gJ0NvbXB1dGVkIHdoaXRlLXNwYWNlIHN0eWxlIG9mICZs
dDt0aCZndDs6ICcgKyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0SGVhZGVyLCBudWxsKS53
aGl0ZVNwYWNlICsgJzxicj4nOworICAgICAgcmVzdWx0LmlubmVySFRNTCArPSAnQ29tcHV0ZWQg
d2hpdGUtc3BhY2Ugc3R5bGUgb2YgJmx0O2RpdiZndDs6ICcgKyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXN0RGl2LCBudWxsKS53aGl0ZVNwYWNlICsgJzxicj4nOwogICAgIH0KICAgPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc2NyaXB0LXRl
c3RzL2ZpbmQtYmFja3dhcmRzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NjcmlwdC10ZXN0
cy9maW5kLWJhY2t3YXJkcy5qcwppbmRleCA1NDk2M2MwLi4wY2QyM2JmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvc2NyaXB0LXRlc3RzL2ZpbmQtYmFja3dhcmRzLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zY3JpcHQtdGVzdHMvZmluZC1iYWNrd2FyZHMuanMKQEAg
LTQyLDYgKzQyLDcgQEAgZm9yIChpID0gMDsgaSA8IDEwOyArK2kpCiAgICAgbWFueUNoYXJhY3Rl
cnMgKz0gbWFueUNoYXJhY3RlcnM7CiB2YXIgdGVuVGhvdXNhbmRDaGFyYWN0ZXJzID0gbWFueUNo
YXJhY3RlcnMuc3Vic3RyaW5nKDAsIDEwMDAwKTsKIAordGVzdEZpbmQoJ2FiYycsICdhJywgZm9y
d2FyZCk7CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdhJywgZm9yd2FyZCkiLCAiJzAsIDEn
Iik7CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdiJywgZm9yd2FyZCkiLCAiJzEsIDInIik7
CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdjJywgZm9yd2FyZCkiLCAiJzIsIDMnIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9hbXBlcnNhbmQtaW4tc3BlY2lh
bC10YWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVj
aWFsLXRhZy5odG1sCmluZGV4IDdlNjFmN2YuLjUwOTJjYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVjaWFsLXRhZy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVjaWFsLXRhZy5odG1sCkBA
IC0xNCw3ICsxNCw3IEBACiAKICAgICBmdW5jdGlvbiB0ZXN0VGl0bGUodGV4dCwgZXhwZWN0ZWQp
CiAgICAgewotICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCk7CisgICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogICAgICAgICBkb2Mub3BlbigpOwogICAgICAgICBk
b2Mud3JpdGUoIjx0aXRsZT4iICsgdGV4dCArICI8L3RpdGxlPnRleHQ8L3RpdGxlPiIpOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWVtcHR5LXN0cmluZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1lbXB0eS1zdHJpbmcuaHRtbAppbmRleCAw
NmE2NTE5Li5lZjk0ZWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRo
LWVtcHR5LXN0cmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtZW1w
dHktc3RyaW5nLmh0bWwKQEAgLTUsNyArNSw3IEBACiAgICAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRvY3VtZW50LmV2
YWx1YXRlKCIvL2FbQGlkPScnXSIsZG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5ldmFs
dWF0ZSgiLy9hW0BpZD0nJ10iLCBkb2N1bWVudCwgbnVsbCwgbnVsbCwgbnVsbCkKICAgICAgICAg
fQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpAQCAtMTQsNCArMTQsNCBAQAogICAgIFNVQ0NFU1M6
IERpZG4ndCBjcmFzaCEKICAgICAKIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvY3NzLWFjY2VwdC1hbnktdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2Nzcy1hY2NlcHQtYW55LXR5cGUuaHRtbAppbmRleCBkNmI5NzY2Li40ODFhYjZlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvY3NzLWFjY2VwdC1hbnktdHlwZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9jc3MtYWNjZXB0LWFueS10eXBlLmh0
bWwKQEAgLTksNyArOSw3IEBACiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwotICAgICAgICAgICAgdmFyIHN0eWxlID0g
Z2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0Q29t
cHV0ZWRTdHlsZSh0YXJnZXQsIG51bGwpOwogICAgICAgICAgICAgdGFyZ2V0LmlubmVyVGV4dCA9
IHN0eWxlLnBvc2l0aW9uID09ICJyZWxhdGl2ZSIgPyAiU1VDQ0VTUyIgOiAiRkFJTCI7CiAgICAg
ICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9jc3MtcmVqZWN0LWFueS10eXBlLWluLXN0cmljdC1tb2RlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvY3NzLXJlamVjdC1hbnktdHlwZS1pbi1zdHJpY3QtbW9kZS5odG1s
CmluZGV4IDMxNTIzMDQuLjg4NzU3OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9jc3MtcmVqZWN0LWFueS10eXBlLWluLXN0cmljdC1tb2RlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2Nzcy1yZWplY3QtYW55LXR5cGUtaW4tc3RyaWN0LW1v
ZGUuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLSAgICAgICAgICAgIHZhciBz
dHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTsKKyAgICAgICAgICAgIHZhciBzdHlsZSA9
IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKTsKICAgICAgICAgICAgIHRhcmdldC5pbm5l
clRleHQgPSBzdHlsZS5wb3NpdGlvbiA9PSAic3RhdGljIiA/ICJTVUNDRVNTIiA6ICJGQUlMIjsK
ICAgICAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9sb2NhbC1KYXZhU2NyaXB0LWZyb20tcmVtb3RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRt
bAppbmRleCAyMzEyNThlLi4wODJhODc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUu
aHRtbApAQCAtMTksMTIgKzE5LDEyIEBACiAgICAgICAgICAgICAgICAgICAgIHRhZy5pbm5lckhU
TUwgPSAiVGVzdCBGYWlsZWQuIExvY2FsIHNjcmlwdCBsb2FkZWQgYW5kIHJ1bi4iOwogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGFnLmlubmVySFRNTCA9ICJUZXN0
IEZhaWxlZC4gTG9jYWwgc2NyaXB0IGxvYWRlZCwgYnV0IG5vdCBzdWNjZXNzZnVsbHkgcnVuLiI7
Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKIAogICAgICAgICAgICAg
bG9jYWxTY3JpcHRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgdmFyIHRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKTsKICAgICAgICAgICAgICAgICB0YWcuaW5uZXJIVE1MID0gIlRlc3QgUGFzc2VkOiBMb2Nh
bCBzY3JpcHQgbm90IGxvYWRlZC4iOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCBm
YWxzZSk7CiAKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9jYWxTY3Jp
cHRFbGVtZW50KQogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC12aWRlby1zcmMtZnJvbS1yZW1vdGUuaHRtbAppbmRl
eCA2OGI1YTUxLi44YjllODQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLmh0bWwKQEAg
LTcyLDkgKzcyLDkgQEAKIAogICAgICAgICAgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInZpZCIpOwogCi0gICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5l
cigiZXJyb3IiLCBlcnJvcik7CisgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5l
cigiZXJyb3IiLCBlcnJvciwgZmFsc2UpOwogCi0gICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZl
bnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBsb2FkZWRtZXRhZGF0YSk7CisgICAgICAgICAg
ICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBsb2FkZWRtZXRh
ZGF0YSwgZmFsc2UpOwogCiAgICAgICAgICAgICAgICAgdmlkZW8uc3JjPWxvY2FsTW92aWU7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2V4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9leGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA4Nzk5MjM2Li5mYjM0
NjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2V4
Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTQsMTEgKzQsMTEgQEAgbmV3IFhN
TEh0dHBSZXF1ZXN0KCkKIFBBU1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iLCAiYmFyIikg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MS4KIFBBU1M6IHJlcS5zZW5kKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCiBvcGVuKCkKLVBBU1M6IHJlcS5zZXRSZXF1ZXN0
SGVhZGVyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KLVBBU1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUzogcmVxLnNldFJlcXVlc3RIZWFk
ZXIoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1M6IHJlcS5zdGF0dXMoKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgogUEFTUzogcmVx
LnN0YXR1c1RleHQoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgogc2VuZCgpCiBQQVNTOiByZXEuc2VuZChudWxsKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgogUEFTUzog
cmVxLnNldFJlcXVlc3RIZWFkZXIoIkZvbyIsICJiYXIiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgotUEFTUzogcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1M6IHJlcS5nZXRSZXNwb25zZUhlYWRlcigpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVkLnR4dAppbmRleCAxNjZiMjhiLi41MmU5NDYzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDUgQEAKIFRlc3QgSFRNTE1lZGlhRWxlbWVudCBjYW5QbGF5VHlwZSgp
IG1ldGhvZC4KIAotRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCkgPT0gJycpIE9LCiBFWFBF
Q1RFRCAodmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvLycpID09ICcnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLmNhblBsYXlUeXBlKCd2aWRlby9ibGFoYmxhaCcpID09ICcnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLmNhblBsYXlUeXBlKCd2aWRlby9tcGVnOyBjb2RlY3M9ImF2YzEuNEQ0MDBDIicpID09ICdw
cm9iYWJseScpIE9LCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxh
eS10eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLmh0bWwK
aW5kZXggMmJmOGE3NS4uMWI4MGMxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tY2FuLXBsYXktdHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbi1w
bGF5LXR5cGUuaHRtbApAQCAtMTUsNyArMTUsNiBAQAogICAgICAgICAKICAgICAgICAgICAgIHZp
ZGVvID0gbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVv
JylbMF07CiAKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUoKSIs
ICIiKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVv
LycpIiwgIiIpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jYW5QbGF5VHlwZSgn
dmlkZW8vYmxhaGJsYWgnKSIsICIiKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
Y2FuUGxheVR5cGUoJ3ZpZGVvL21wZWc7IGNvZGVjcz0mcXVvdDthdmMxLjRENDAwQyZxdW90Oycp
IiwgInByb2JhYmx5Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL2dseXBoLW9y
aWVudGF0aW9uLXJvdW5kaW5nLXRlc3QueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dseXBo
LW9yaWVudGF0aW9uLXJvdW5kaW5nLXRlc3QueGh0bWwKaW5kZXggNmZjNWY5Mi4uNjZhZmU0NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nbHlwaC1vcmllbnRhdGlvbi1yb3VuZGlu
Zy10ZXN0LnhodG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2x5cGgtb3JpZW50YXRpb24t
cm91bmRpbmctdGVzdC54aHRtbApAQCAtMTQsNyArMTQsNyBAQCB2YXIgY29tcHV0ZWRTdHlsZTsK
IGZ1bmN0aW9uIHBhcnNlR2x5cGhPcmllbnRhdGlvbkhlbHBlcihwcm9wZXJ0eSwgYW5nbGVWYWx1
ZSwgZXhwZWN0ZWRWYWx1ZSkKIHsKICAgICB0ZXh0RWxlbWVudC5zZXRBdHRyaWJ1dGVOUyhudWxs
LCBwcm9wZXJ0eSwgYW5nbGVWYWx1ZSk7Ci0gICAgY29tcHV0ZWRTdHlsZSA9IHRleHRFbGVtZW50
Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0RWxlbWVudCk7
CisgICAgY29tcHV0ZWRTdHlsZSA9IHRleHRFbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0RWxlbWVudCwgbnVsbCk7CiAKICAgICBkZWJ1ZygiVGVz
dCBhbmdsZVZhbHVlOiAnIiArIGFuZ2xlVmFsdWUgKyAiJyIpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL2xvYWRldmVudHMtY2FwdHVyaW5nLnN2ZyBiL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0dXJpbmcuc3ZnCmluZGV4IDY4MWY4N2UuLjI2MzMy
ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0dXJp
bmcuc3ZnCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0dXJpbmcu
c3ZnCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIH0KICAgICAgICAgY29uc29sZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUGFzc2VkIikpOwogICAgICAgfQotICAgICAg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCByZXBvcnRS
ZXN1bHRzKTsKKyAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgcmVwb3J0UmVzdWx0cywgZmFsc2UpOwogICAgIF1dPgogICA8L3NjcmlwdD4KICAg
PGc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLWNv
bnRlbnQueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLWNvbnRl
bnQueGh0bWwKaW5kZXggZjQ4MzBkOC4uNTY2OTU2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1jb250ZW50LnhodG1sCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtY29udGVudC54aHRtbApAQCAtMTEsNyArMTEsNyBA
QAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiAg
ICAgICAgIGZ1bmN0aW9uIHJlc2l6ZUJveCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0
eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIsIG51bGwpOwogICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtZGVlcC1zaGFkb3ctdHJlZS1jb250ZW50Lnho
dG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNoYWRvdy10
cmVlLWNvbnRlbnQueGh0bWwKaW5kZXggN2VlYjgwYy4uZGQxODQzOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNoYWRvdy10cmVlLWNvbnRl
bnQueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVw
LXNoYWRvdy10cmVlLWNvbnRlbnQueGh0bWwKQEAgLTE1LDcgKzE1LDcgQEAKICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgICBmdW5jdGlv
biByZXNpemVCb3goKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
dGVudEJveCIpLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIpOworICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQcm9wZXJ0
eSgid2lkdGgiLCAiNDAwcHgiLCBudWxsKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wueGh0bWwgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQt
d2l0aC1zeW1ib2wueGh0bWwKaW5kZXggMTA4MWIyNi4uMzMyYjM5NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdp
dGgtc3ltYm9sLnhodG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6
ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC54aHRtbApAQCAtMTcsNyArMTcsNyBA
QAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiAg
ICAgICAgIGZ1bmN0aW9uIHJlc2l6ZUJveCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0
eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIsIG51bGwpOwogICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC54aHRtbCBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVu
dC54aHRtbAppbmRleCAxZTk4Mjg4Li4yODgzNzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQueGh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50
LnhodG1sCkBAIC0xNyw3ICsxNyw3IEBACiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CiAKICAgICAgICAgZnVuY3Rpb24gcmVzaXplQm94KCkgewotICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQ
cm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4Iiwg
bnVsbCk7CiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC11c2Ut
b24tc3ltYm9sLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC11
c2Utb24tc3ltYm9sLnhodG1sCmluZGV4IGY1OGJlMjUuLjdhMWY1YWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtdXNlLW9uLXN5bWJvbC54aHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXVzZS1vbi1zeW1ib2wu
eGh0bWwKQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgICBmdW5jdGlvbiByZXNpemVCb3goKSB7Ci0gICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0eWxlLnNldFBy
b3BlcnR5KCJ3aWR0aCIsICI0MDBweCIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQcm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiLCBu
dWxsKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL2ZyYW1lLXJlbGF0ZWQtYXBpLWR1cmlu
Zy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2ZyYW1lLXJlbGF0ZWQtYXBpLWR1cmlu
Zy1sb2FkLmh0bWwKaW5kZXggYzM0YjE0Ni4uMjQ1ZDI2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9mcmFtZS1yZWxhdGVkLWFwaS1kdXJpbmctbG9hZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N2Zy9kb20vZnJhbWUtcmVsYXRlZC1hcGktZHVyaW5nLWxvYWQuaHRtbApAQCAtNiw3
ICs2LDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKIAogZnVuY3Rpb24gdGVz
dCgpCiB7Ci0gICAgaHRtbERvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCk7CisgICAgaHRtbERvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKICAgICBzdmdFbGVtZW50ID0gaHRtbERvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTsKICAg
ICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgZm9sbG93aW5nIEFQSXMgYWNjZXNzIEZyYW1lIG9iamVj
dCwgd2hpY2ggY2FuIGJlIE5VTEwuCiAgICAgc3ZnRWxlbWVudC5kZXNlbGVjdEFsbCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9jb21wdXRlZC1zdHlsZS1vcmlnaW4u
aHRtbCBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvY29tcHV0ZWQtc3R5bGUtb3JpZ2luLmh0
bWwKaW5kZXggNzM3MDM1NC4uYThkN2NiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNm
b3Jtcy8yZC9jb21wdXRlZC1zdHlsZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFu
c2Zvcm1zLzJkL2NvbXB1dGVkLXN0eWxlLW9yaWdpbi5odG1sCkBAIC01MywxMCArNTMsMTAgQEAg
dmFyIHRlc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QyIik7CiB2YXIgdGVzdDMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDMiKTsKIHZhciB0ZXN0NCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0NCIpOwogCi12YXIgdGVzdDFTdHlsZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKHRlc3QxKTsKLXZhciB0ZXN0MlN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdDIpOwotdmFyIHRlc3QzU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXN0Myk7Ci12YXIgdGVzdDRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3Q0KTsK
K3ZhciB0ZXN0MVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDEsIG51bGwpOwor
dmFyIHRlc3QyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0MiwgbnVsbCk7Cit2
YXIgdGVzdDNTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3QzLCBudWxsKTsKK3Zh
ciB0ZXN0NFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDQsIG51bGwpOwogCiBz
aG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRUcmFuc2Zvcm1PcmlnaW4iLCAiJzEwcHggMTBweCci
KTsKIHNob3VsZEJlKCJ0ZXN0MlN0eWxlLndlYmtpdFRyYW5zZm9ybU9yaWdpbiIsICInMTBweCAx
MHB4JyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9yZXNvdXJjZXMv
dHJhbnNmb3JtLXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291
cmNlcy90cmFuc2Zvcm0tdGVzdC11dGlscy5qcwppbmRleCBhZTA3YjBlLi5hNTFiYjY3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291cmNlcy90cmFuc2Zvcm0tdGVz
dC11dGlscy5qcworKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291cmNlcy90cmFu
c2Zvcm0tdGVzdC11dGlscy5qcwpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiB0ZXN0VHJhbnNm
b3JtcygpCiAgIGdUZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKGN1clRlc3QpIHsKICAgICB0ZXN0Qm94
LnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICdub25lJzsgLy8gcmVzZXQgdGhlIHRyYW5zZm9ybSBq
dXN0IGluIGNhc2UgdGhlIG5leHQgc3RlcCBmYWlscwogICAgIHRlc3RCb3guc3R5bGUud2Via2l0
VHJhbnNmb3JtID0gY3VyVGVzdC50cmFuc2Zvcm07Ci0gICAgdmFyIGNvbXB1dGVkVHJhbnNmb3Jt
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3JtOworICAg
IHZhciBjb21wdXRlZFRyYW5zZm9ybSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RCb3gs
IG51bGwpLndlYmtpdFRyYW5zZm9ybTsKIAogICAgIHZhciBzdWNjZXNzID0gY29tcGFyZU1hdHJp
Y2VzKGNvbXB1dGVkVHJhbnNmb3JtLCBjdXJUZXN0LnJlc3VsdCk7CiAgICAgdmFyIHJlc3VsdDsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFj
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRl
cmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDU5YTQ4NTYuLmNlNzAwNDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFjZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50ZXJmYWNlLWV4cGVj
dGVkLnR4dApAQCAtMTUyLDkgKzE1Miw2IEBAIFBBU1Mgc3guZCBpcyAxCiBQQVNTIHN4LmUgaXMg
MAogUEFTUyBzeC5mIGlzIDAKIAotVGVzdCBtdWx0aXBseSB3aXRoIG1pc3NpbmcgYXJndW1lbnQK
LVBBU1MgbTIgaXMgbnVsbAotCiBUZXN0IGludmVyc2UKIFBBU1MgcGFyc2VGbG9hdChtMi5hKSBp
cyAwLjUKIFBBU1MgcGFyc2VGbG9hdChtMi5iKSBpcyAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRlcmZhY2UueGh0bWwgYi9MYXlvdXRUZXN0cy90
cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRlcmZhY2UueGh0bWwKaW5kZXggODc4OGMzYy4uZjM3
ZWE2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50
ZXJmYWNlLnhodG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWlu
dGVyZmFjZS54aHRtbApAQCAtMjIyLDEyICsyMjIsNiBAQCBzaG91bGRCZSgnc3guZScsICcwJyk7
CiBzaG91bGRCZSgnc3guZicsICcwJyk7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUZXN0IG11bHRp
cGx5IHdpdGggbWlzc2luZyBhcmd1bWVudCIpOwotbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoIm1h
dHJpeCgxLCAyLCAzLCA0LCA1LCA2KSIpOwotbTIgPSBtLm11bHRpcGx5KCk7Ci1zaG91bGRCZSgn
bTInLCAnbnVsbCcpOwotCi1kZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCBpbnZlcnNlIik7CiBtID0g
bmV3IFdlYktpdENTU01hdHJpeCgibWF0cml4KDIsIDAsIDAsIDIsIDEwLCAyMCkiKTsKIG0yID0g
bS5pbnZlcnNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jYW5jZWwt
dHJhbnNpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvY2FuY2VsLXRyYW5zaXRp
b24uaHRtbAppbmRleCBlYWViZjFjLi4wOWY0YmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9jYW5jZWwtdHJhbnNpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL2NhbmNlbC10cmFuc2l0aW9uLmh0bWwKQEAgLTY4LDcgKzY4LDcgQEAKIAogICAgICAg
ICBmdW5jdGlvbiBjaGVjaygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBsZWZ0ID0gcGFy
c2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YScpKS5sZWZ0KTsKKyAgICAgICAgICAgIHZhciBsZWZ0ID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYScpLCBudWxsKS5sZWZ0KTsK
ICAgICAgICAgICAgIHJlc3VsdCA9ICJsZWZ0OiI7CiAgICAgICAgICAgICBpZiAoIWlzRXF1YWwo
bGVmdCwgMjUwLCA1MCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICI8c3BhbiBzdHlsZT0n
Y29sb3I6cmVkJz5GQUlMKHdhczoiICsgbGVmdCArICIsIHMvYjoxNTApPC9zcGFuPiI7CkBAIC03
Nyw3ICs3Nyw3IEBACiAgICAgICAgICAgICAKICAgICAgICAgICAgIHJlc3VsdCArPSAiLCB3ZWJr
aXRUcmFuc2Zvcm06IjsKICAgICAgICAgICAgIAotICAgICAgICAgICAgdmFyIHRyYW5zZm9ybSA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiJykpLndl
YmtpdFRyYW5zZm9ybTsKKyAgICAgICAgICAgIHZhciB0cmFuc2Zvcm0gPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLCBudWxsKS53ZWJraXRUcmFu
c2Zvcm07CiAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0uc3BsaXQoIigiKTsKICAg
ICAgICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybVsxXS5zcGxpdCgiLCIpOwogICAgICAgICAg
ICAgaWYgKCFpc0VxdWFsKHRyYW5zZm9ybVs0XSwgMjAwLCA1MCkpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0aW9u
Lmh0bWwKaW5kZXggZGYwMDM4Zi4uYzNlMGIzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvY2hhbmdlLXZhbHVlcy1kdXJpbmctdHJhbnNpdGlvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL2NoYW5nZS12YWx1ZXMtZHVyaW5nLXRyYW5zaXRpb24uaHRtbApA
QCAtMzgsNyArMzgsNyBAQAogICAgIAogICAgIGZ1bmN0aW9uIGdldFhQb3NpdGlvbigpCiAgICAg
ewotICAgICAgICB2YXIgdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdib3gnKSkud2Via2l0VHJhbnNmb3JtOworICAgICAgICB2YXIgdCA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKSwgbnVsbCku
d2Via2l0VHJhbnNmb3JtOwogICAgICAgICB0ID0gdC5zcGxpdCgiKCIpOwogICAgICAgICB0ID0g
dFsxXS5zcGxpdCgiLCIpOwogICAgICAgICByZXR1cm4gdFs0XTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL2V4dHJhLXRyYW5zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL2V4dHJhLXRyYW5zaXRpb24uaHRtbAppbmRleCBhOWQ3ZTFiLi5jOGE5YWRkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9leHRyYS10cmFuc2l0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvZXh0cmEtdHJhbnNpdGlvbi5odG1sCkBAIC03
OCw3ICs3OCw3IEBACiAKICAgZnVuY3Rpb24gY2hlY2soKQogICB7Ci0gICAgICB2YXIgdHJhbnNm
b3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rl
c2NyaXB0aW9uJykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0cmFuc2Zvcm0gPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24n
KSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgaWYgKHRyYW5zZm9ybSA9PSAibWF0cml4
KDEsIDAsIDAsIDEsIDEwMCwgMCkiKQogICAgICAgICAgIGxvZygndHJhbnNmb3JtPSInK3RyYW5z
Zm9ybSsnIiBhcyBleHBlY3RlZDogUEFTUycpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0LW90aGVyLXByb3BzLmh0bWwgYi9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0LW90aGVyLXByb3BzLmh0bWwKaW5kZXggYTc1YTViOC4u
NzI5YTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW5oZXJpdC1vdGhl
ci1wcm9wcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2luaGVyaXQtb3RoZXIt
cHJvcHMuaHRtbApAQCAtNzAsOSArNzAsOSBAQAogICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQu
Ym9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGN1ckJveCA9IGJveGVzW2ld
OwotICAgICAgICB0ZXN0VmFsdWUoaSsxLCAicHJvcGVydHkiLCB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShjdXJCb3gpLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSwga0V4cGVjdGVkUHJvcFtpXSk7
Ci0gICAgICAgIHRlc3RWYWx1ZShpKzEsICJkdXJhdGlvbiIsIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGN1ckJveCkud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uLCBrRXhwZWN0ZWREdXJhdGlvbltp
XSk7Ci0gICAgICAgIHRlc3RWYWx1ZShpKzEsICJ0aW1pbmcgZnVuY3Rpb24iLCB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShjdXJCb3gpLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwga0V4
cGVjdGVkVGltaW5nRnVuY3Rpb25baV0pOworICAgICAgICB0ZXN0VmFsdWUoaSsxLCAicHJvcGVy
dHkiLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjdXJCb3gsIG51bGwpLndlYmtpdFRyYW5zaXRp
b25Qcm9wZXJ0eSwga0V4cGVjdGVkUHJvcFtpXSk7CisgICAgICAgIHRlc3RWYWx1ZShpKzEsICJk
dXJhdGlvbiIsIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGN1ckJveCwgbnVsbCkud2Via2l0VHJh
bnNpdGlvbkR1cmF0aW9uLCBrRXhwZWN0ZWREdXJhdGlvbltpXSk7CisgICAgICAgIHRlc3RWYWx1
ZShpKzEsICJ0aW1pbmcgZnVuY3Rpb24iLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjdXJCb3gs
IG51bGwpLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwga0V4cGVjdGVkVGltaW5nRnVu
Y3Rpb25baV0pOwogICAgICAgfQogCiAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSk7CkBAIC0xMDEsNCArMTAxLDQgQEAK
IDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CiAKIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy9pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWwK
aW5kZXggNDYzM2IzYy4uZjAyODNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvaW5oZXJpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2luaGVyaXQuaHRt
bApAQCAtNDAsNyArNDAsNyBAQAogICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9keS5nZXRF
bGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm94
ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGN1ckJveCA9IGJveGVzW2ldOwotICAgICAg
ICB2YXIgY3VyUHJvcCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGN1ckJveCkud2Via2l0VHJh
bnNpdGlvblByb3BlcnR5OworICAgICAgICB2YXIgY3VyUHJvcCA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGN1ckJveCwgbnVsbCkud2Via2l0VHJhbnNpdGlvblByb3BlcnR5OwogICAgICAgICBp
ZiAoY3VyUHJvcCA9PSBrRXhwZWN0ZWRzW2ldKQogICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyAt
LSAiOwogICAgICAgICBlbHNlCkBAIC03NCw0ICs3NCw0IEBACiA8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgogCiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXRyYW5z
Zm9ybS10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQt
dHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbAppbmRleCA4MWVhMTY5Li5mYTUzY2M2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQtdHJhbnNmb3JtLXRyYW5zaXRp
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQtdHJhbnNmb3Jt
LXRyYW5zaXRpb24uaHRtbApAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0ID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxs
KS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRoZSB4IHZhbHVlIGZyb20gdGhlIG1h
dHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFtcLlxkXSspLFteLF0rXCkkLzsKICAg
ICAgIHZhciB4VHJhbnNsYXRlID0gbGFzdFZhbHVlUkUuZXhlYyh0KVsxXTsKQEAgLTUzLDQgKzUz
LDQgQEAKICAgPGRpdiBpZD0icmVzdWx0Ij4KICAgPC9kaXY+CiA8L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXplcm8tZHVyYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL2ludGVycnVwdC16ZXJvLWR1cmF0aW9uLmh0bWwKaW5kZXggNWZiODMyNy4u
ZTQ1NWZhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXpl
cm8tZHVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQt
emVyby1kdXJhdGlvbi5odG1sCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgIGlmIChyZXN1bHQg
IT0gIlBBU1MiKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCi0gICAgICAgIHZh
ciBsZWZ0ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JveCcpKS5sZWZ0KTsKKyAgICAgICAgdmFyIGxlZnQgPSBwYXJzZUludCh3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JyksIG51bGwp
LmxlZnQpOwogICAgICAgICBpZiAoIWlzRXF1YWwobGVmdCwgZXhwZWN0ZWQsIHRvbGVyYW5jZSkp
CiAgICAgICAgICAgICByZXN1bHQgPSAiRkFJTCh3YXM6IitsZWZ0KyIsIGV4cGVjdGVkOiIrZXhw
ZWN0ZWQrIikiOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2lu
dGVycnVwdGVkLWFsbC10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9p
bnRlcnJ1cHRlZC1hbGwtdHJhbnNpdGlvbi5odG1sCmluZGV4IGMyZGFkNjQuLmFkZTAzOWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdGVkLWFsbC10cmFuc2l0
aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0ZWQtYWxsLXRy
YW5zaXRpb24uaHRtbApAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICBib3guc3R5bGUubGVmdCA9
ICcwcHgnOwogICAgICAgICAKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgdmFyIGJveFBvcyA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGJveCkubGVmdCk7CisgICAgICAgICAgdmFyIGJveFBvcyA9IHBhcnNlSW50KHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGJveCwgbnVsbCkubGVmdCk7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IChib3hQb3MgPCAyMDApID8gIlBBU1MiIDog
IkZBSUwiOwogICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL21hdGNoZWQtdHJhbnNmb3JtLWZ1bmN0aW9ucy5odG1s
IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0
bWwKaW5kZXggYjQxOThmMC4uYzRlYzQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0bWwKQEAgLTI0LDcgKzI0
LDcgQEAKIAogICAgIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKLSAgICAgIHZhciB0ID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpKS53ZWJraXRU
cmFuc2Zvcm07CisgICAgICB2YXIgdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3gnKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgLy8g
Z3JhYiB0aGUgbGFzdCB2YWx1ZSBmcm9tIHRoZSBtYXRyaXgoKQogICAgICAgdmFyIGxhc3RWYWx1
ZVJFID0gLyhcZCspXCkkLzsKICAgICAgIHZhciB5VHJhbnNsYXRlID0gcGFyc2VJbnQobGFzdFZh
bHVlUkUuZXhlYyh0KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXBl
YXRlZC1maXJpbmctYmFja2dyb3VuZC1jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvcmVwZWF0ZWQtZmlyaW5nLWJhY2tncm91bmQtY29sb3IuaHRtbAppbmRleCAwOTU3NTcwLi4y
ZWEyODlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXBlYXRlZC1maXJp
bmctYmFja2dyb3VuZC1jb2xvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jl
cGVhdGVkLWZpcmluZy1iYWNrZ3JvdW5kLWNvbG9yLmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAKIAog
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb28nKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJr
aXRUcmFuc2l0aW9uRW5kJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGNoZWNrUnVubmluZygpCi0g
ICAgfSk7CisgICAgfSwgZmFsc2UpOwogCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZv
byIpLmNsYXNzTmFtZT0idHJhbnMiOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy9yZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9yZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwKaW5kZXggNmUzMGNiNy4uN2Jh
ZDg0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmV0YXJnZXR0ZWQtdHJh
bnNpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3JldGFyZ2V0dGVkLXRy
YW5zaXRpb24uaHRtbApAQCAtMjMsNyArMjMsNyBAQAogCiAgICAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0ID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxsKS53
ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRoZSBsYXN0IHZhbHVlIGZyb20gdGhlIG1h
dHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFxkKylcKSQvOwogICAgICAgdmFyIHlU
cmFuc2xhdGUgPSBwYXJzZUludChsYXN0VmFsdWVSRS5leGVjKHQpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3RyYW5zaXRpb25zL3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zdGFydC10cmFuc2Zvcm0tdHJhbnNpdGlvbi5odG1sCmlu
ZGV4IDg4MTMzYTYuLjZlNzI2ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvc3RhcnQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbApAQCAtMjQsNyArMjQsNyBAQAog
CiAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9y
bTsKKyAgICAgIHZhciB0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JveCcpLCBudWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRo
ZSB4IHZhbHVlIGZyb20gdGhlIG1hdHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFtc
LlxkXSspLFteLF0rXCkkLzsKICAgICAgIHZhciB4VHJhbnNsYXRlID0gbGFzdFZhbHVlUkUuZXhl
Yyh0KVsxXTsKQEAgLTUzLDQgKzUzLDQgQEAKICAgPGRpdiBpZD0icmVzdWx0Ij4KICAgPC9kaXY+
CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kcnQtYXBpLWRl
bGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVs
YXkuaHRtbAppbmRleCA1ODlmNTk5Li5iZWUyMmYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbApAQCAtMjYsNyArMjYs
NyBAQAogICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7CiAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNlVHJhbnNp
dGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgibGVmdCIsIDIuMCwgInRhcmdldCIpOwotICAgICAg
ICB2YXIgbGVmdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0YXJnZXQnKSkubGVmdDsKKyAgICAgICAgdmFyIGxlZnQgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JyksIG51bGwpLmxlZnQ7CiAg
ICAgICAgIHZhciByZXN1bHQgPSAiUEFTUyI7CiAgICAgICAgIGlmIChsZWZ0ICE9ICIxMjVweCIp
IHsKICAgICAgICAgICByZXN1bHQgPSAiRkFJTCAtIGV4cGVjdGVkIDEyNXB4IGdvdCAiICsgbGVm
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRp
b24tY2xlYXJlZC1pbi10cmFuc2l0aW9uZW5kLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWR1cmF0aW9uLWNsZWFyZWQtaW4tdHJhbnNpdGlvbmVuZC1jcmFz
aC5odG1sCmluZGV4IGM0MzA2NjIuLjgxZjMxZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRpb24tY2xlYXJlZC1pbi10cmFuc2l0aW9uZW5kLWNy
YXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kdXJhdGlv
bi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbApAQCAtMTUsNyArMTUsNyBAQAog
ICAgICAgICAgICAgICAgIGVsLnN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiA9ICcnOwog
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgZWwuc3R5bGUuY3Nz
VGV4dCArPSAnOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7YmFja2dy
b3VuZC1jb2xvcjojZmZmJwogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5o
dG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1zaG9ydGhhbmQtZGVsYXku
aHRtbAppbmRleCA1OGQ1Y2I4Li41MjlmODkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL3RyYW5zaXRpb24tc2hvcnRoYW5kLWRlbGF5Lmh0bWwKQEAgLTI3LDcgKzI3
LDcgQEAKICAgICBmdW5jdGlvbiBlbmRUZXN0KCkgewogICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXVzZVRyYW5z
aXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImxlZnQiLCAyLjAsICJ0YXJnZXQiKTsKLSAgICAg
ICAgdmFyIGxlZnQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0JykpLmxlZnQ7CisgICAgICAgIHZhciBsZWZ0ID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLCBudWxsKS5sZWZ0Owog
ICAgICAgICB2YXIgcmVzdWx0ID0gIlBBU1MiOwogICAgICAgICBpZiAobGVmdCAhPSAiMTI1cHgi
KSB7CiAgICAgICAgICAgcmVzdWx0ID0gIkZBSUwgLSBleHBlY3RlZCAxMjVweCBnb3QgIiArIGxl
ZnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXRlc3Qt
aGVscGVycy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxw
ZXJzLmpzCmluZGV4IDZjNDBhYjguLmZjNjI0ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC02MCw3ICs2MCw3IEBAIGZ1
bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZShleHBlY3RlZCwgaW5kZXgpCiAgICAgdmFyIHBhc3Mg
PSBmYWxzZTsKICAgICB2YXIgdHJhbnNmb3JtUmVnRXhwID0gL14td2Via2l0LXRyYW5zZm9ybShc
LlxkKyk/JC87CiAgICAgaWYgKHRyYW5zZm9ybVJlZ0V4cC50ZXN0KHByb3BlcnR5KSkgewotICAg
ICAgICBjb21wdXRlZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKSkud2Via2l0VHJhbnNmb3JtOworICAgICAgICBjb21wdXRl
ZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElkKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgICBpZiAodHlwZW9mIGV4
cGVjdGVkVmFsdWUgPT0gInN0cmluZyIpCiAgICAgICAgICAgICBwYXNzID0gKGNvbXB1dGVkVmFs
dWUgPT0gZXhwZWN0ZWRWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZFZh
bHVlID09ICJudW1iZXIiKSB7CkBAIC03NywxMCArNzcsMTAgQEAgZnVuY3Rpb24gY2hlY2tFeHBl
Y3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0gZWxzZSBpZiAocHJvcGVydHkgPT0gImxpbmVIZWlnaHQiKSB7Ci0gICAgICAgIGNvbXB1dGVk
VmFsdWUgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChlbGVtZW50SWQpKS5saW5lSGVpZ2h0KTsKKyAgICAgICAgY29tcHV0ZWRWYWx1ZSA9
IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJZCksIG51bGwpLmxpbmVIZWlnaHQpOwogICAgICAgICBwYXNzID0gaXNDbG9zZUVu
b3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0UHJvcGVydHlDU1NWYWx1ZShw
cm9wZXJ0eSk7CisgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSwgbnVsbCkuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgIGlmIChjb21wdXRlZFN0eWxlLmNzc1ZhbHVl
VHlwZSA9PSBDU1NWYWx1ZS5DU1NfVkFMVUVfTElTVCkgewogICAgICAgICAgICAgdmFyIHZhbHVl
cyA9IFtdOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wdXRlZFN0eWxlLmxl
bmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0
aW9uLXRpbWluZy1mdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi10aW1pbmctZnVuY3Rpb24uaHRtbAppbmRleCAzZDNiMDY4Li42Y2IwOWQ2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0
aW9uLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm94
ZXMubGVuZ3RoOyArK2kpCiAgICAgICB7CiAgICAgICAgIHZhciBjdXJCb3ggPSBib3hlc1tpXTsK
LSAgICAgICAgdmFyIGN1ckxlZnQgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShj
dXJCb3gpLmxlZnQpOworICAgICAgICB2YXIgY3VyTGVmdCA9IHBhcnNlSW50KHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGN1ckJveCwgbnVsbCkubGVmdCk7CiAgICAgICAgIAogICAgICAgICB2YXIg
ZXhwZWN0ZWQgPSBrRXhwZWN0ZWRzW2N1ckJveC5pZF07CiAgICAgICAgIHZhciBwYXNzZWQgPSAo
TWF0aC5hYnMoY3VyTGVmdCAtIGV4cGVjdGVkKSAvIGV4cGVjdGVkKSA8IDAuMDU7CkBAIC04MCw0
ICs4MCw0IEBACiA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgogCiA8L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRoLW5vbi16ZXJvLWRlbGF5LXN0YXJ0Lmh0
bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9uLXplcm8t
ZGVsYXktc3RhcnQuaHRtbAppbmRleCA0YTU5NzI1Li43ODc3MWI4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9uLXplcm8tZGVsYXktc3Rh
cnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgt
bm9uLXplcm8tZGVsYXktc3RhcnQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogICAgCiAgICAgZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgIHZhciBleHBlY3RlZCA9IDIwMDsKLSAgICAgIHZh
ciBjdXJyZW50ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpKS5sZWZ0KTsKKyAgICAgIHZhciBjdXJyZW50ID0gcGFyc2VJ
bnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rhcmdl
dCcpLCBudWxsKS5sZWZ0KTsKICAgICAgIGlmIChjdXJyZW50ID09IGV4cGVjdGVkKQogICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gIlBBU1MgLSBs
ZWZ0IHByb3BlcnR5IGlzICIgKyBjdXJyZW50ICsgInB4IGFzIGV4cGVjdGVkIjsKICAgICAgIGVs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3plcm8tZHVyYXRpb24td2l0
aG91dC11bml0cy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13
aXRob3V0LXVuaXRzLmh0bWwKaW5kZXggZWY4Mzc0Mi4uYTk5ZmM3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0LXVuaXRzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0LXVuaXRzLmh0
bWwKQEAgLTIyLDcgKzIyLDcgQEAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAg
IHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7Ci0gICAgICAgIHZhciBk
dXIgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gpLndlYmtpdFRyYW5zaXRp
b25EdXJhdGlvbik7CisgICAgICAgIHZhciBkdXIgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShib3gsIG51bGwpLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbik7CiAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAiRHVyYXRpb24gd2Fz
ICIgKyBkdXIgKyAiIChzaG91bGQgYmUgMCk6ICIgKyAoZHVyID09IDAgPyAiUEFTUyIgOiAiRkFJ
TCIpOwogICAgIH0KICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRlc3QsIGZh
bHNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA5
Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0wMDkuaHRtbAppbmRl
eCA5NTQxZjkyLi5kNGJlZGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9k
ZS1pdGVyYXRvci0wMDkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVy
YXRvci0wMDkuaHRtbApAQCAtMzQsNyArMzQsNyBAQAogCiAgICAgICBmdW5jdGlvbiB3YWxrWE1M
KHhtbERvYykKICAgICAgIHsKLSAgICAgICAgdmFyIGl0ZXIgPSBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgdGVzdE5vZGVGaXRlcik7
CisgICAgICAgIHZhciBpdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHRlc3ROb2RlRml0ZXIsIGZhbHNlKTsKICAgICAgICAg
dmFyIGN1ck5vZGU7CiAgICAgICAgIHdoaWxlIChjdXJOb2RlID0gaXRlci5uZXh0Tm9kZSgpKSB7
CiAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoJzxoMz4nICsgY3VyTm9kZS50YWdOYW1lICsgJzwv
aDM+PHA+JyArIGN1ck5vZGUudGV4dENvbnRlbnQgKyAnPC9wPicpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2NrZXQtZXZlbnQtdGFy
Z2V0LmpzIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2Nr
ZXQtZXZlbnQtdGFyZ2V0LmpzCmluZGV4IDY0NjhjNGMuLjY3ZDgwNzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvd2Vic29ja2V0LWV2ZW50LXRh
cmdldC5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvc2NyaXB0LXRlc3RzL3dl
YnNvY2tldC1ldmVudC10YXJnZXQuanMKQEAgLTI4LDcgKzI4LDcgQEAgd3MuZGlzcGF0Y2hFdmVu
dChldnQpOwogc2hvdWxkQmUoIm9wZW5fZXZlbnRfaGFuZGxlZCIsICJ0cnVlIik7CiAKIG9wZW5f
ZXZlbnRfaGFuZGxlZCA9IGZhbHNlOwotd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3BlbicsIG9w
ZW5MaXN0ZW5lcik7Cit3cy5yZW1vdmVFdmVudExpc3RlbmVyKCdvcGVuJywgb3Blbkxpc3RlbmVy
LCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBzaG91bGRCZSgib3Blbl9ldmVudF9o
YW5kbGVkIiwgImZhbHNlIik7CiAKQEAgLTM4LDcgKzM4LDcgQEAgd3MuZGlzcGF0Y2hFdmVudChl
dnQpOwogc2hvdWxkQmUoIm1lc3NhZ2VfZXZlbnRfaGFuZGxlZCIsICJ0cnVlIik7CiAKIG1lc3Nh
Z2VfZXZlbnRfaGFuZGxlZCA9IGZhbHNlOwotd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2Fn
ZScsIG1lc3NhZ2VMaXN0ZW5lcik7Cit3cy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywg
bWVzc2FnZUxpc3RlbmVyLCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBzaG91bGRC
ZSgibWVzc2FnZV9ldmVudF9oYW5kbGVkIiwgImZhbHNlIik7CiAKQEAgLTQ4LDcgKzQ4LDcgQEAg
d3MuZGlzcGF0Y2hFdmVudChldnQpOwogc2hvdWxkQmUoImNsb3NlX2V2ZW50X2hhbmRsZWQiLCAi
dHJ1ZSIpOwogCiBjbG9zZV9ldmVudF9oYW5kbGVkID0gZmFsc2U7Ci13cy5yZW1vdmVFdmVudExp
c3RlbmVyKCdjbG9zZScsIGNsb3NlTGlzdGVuZXIpOword3MucmVtb3ZlRXZlbnRMaXN0ZW5lcign
Y2xvc2UnLCBjbG9zZUxpc3RlbmVyLCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBz
aG91bGRCZSgiY2xvc2VfZXZlbnRfaGFuZGxlZCIsICJmYWxzZSIpOwogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkzZjYyZmIuLmFlNjg4
YjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsODAgQEAKKzIwMTAtMDYtMDIgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmts
aW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJREwgYmluZGluZ3Mgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDA1NworCisgICAgICAgIEFsbCBJREwgb3BlcmF0aW9ucyBhcmUgbm93
IHdoYXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkICJSZXF1aXJlc0FsbEFyZ3VtZW50PVJhaXNlIgor
ICAgICAgICBTb21lIGludGVyZmFjZXMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcHJlc2VydmUgYmVo
YXZpb3Igd2hlcmUgYSBtaXNzaW5nIGFyZ3VtZW50CisgICAgICAgIHdvdWxkIHByZXZpb3VzbHkg
aW1wbHkgbnVsbC9mYWxzZS9OYU4vZXRjLgorCisgICAgICAgIFNwZWMgbGluazoKKyAgICAgICAg
aHR0cDovL3d3dy53My5vcmcvVFIvV2ViSURMLyNlcy1vcGVyYXRpb25zCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0
aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25JbnRNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQXJnc0FuZEV4Y2VwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0
aER5bmFtaWNGcmFtZUFuZEFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2Vz
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhE
eW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFy
Zyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
Myk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2Q0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
ZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXgu
aDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTTWF0cml4LmlkbDoKKyAgICAgICAgKiBkb20vQ2xp
cGJvYXJkLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1l
bnQ6OmFkZCk6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3Rv
dHlwZS5jcmVhdGVDZWxsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJv
dG90eXBlLmlzRXZlbnRXaXRoaW5EaXNjbG9zdXJlVHJpYW5nbGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNQYW5lbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVk
U2NyaXB0LmpzOgorICAgICAgICAoaW5qZWN0ZWRTY3JpcHRDb25zdHJ1Y3Rvci4pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUucmVmcmVzaExhYmVsUG9zaXRpb25zKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZS5yZWZyZXNoKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLl9jcmVhdGVU
aW1lbGluZUNhdGVnb3J5U3RhdHVzQmFyQ2hlY2tib3gpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lQ2F0ZWdvcnlHcmFwaC5wcm90b3R5cGUuYWRkQ2h1bmspOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZEdyYXBoUm93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5hZGRQYW5lbFRvb2xiYXJJY29u
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5hbmltYXRlU3R5bGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoRWxlbWVudC5wcm90b3R5cGUu
cXVlcnkpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luQXJyYXkuaDoKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpbkFycmF5LmlkbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRs
OgorCiAyMDEwLTA2LTAyICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1NzE5NWZjLi4xYjM5NTJj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE4
NDIsMTYgKzE4NDIsMjcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbFR5cGUqIGltcCA9IHN0YXRpY19jYXN0
PCRpbXBsVHlwZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAkcG9kVHlwZSBwb2RJbXAoKmltcCk7XG4iKSBpZiAkcG9k
VHlwZTsKIAorICAgICAgICAgICAgICAgIG15ICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDA7Cisg
ICAgICAgICAgICAgICAgbXkgJGZpcnN0T3B0aW9uYWxBcmd1bWVudCA9IDA7CisgICAgICAgICAg
ICAgICAgbXkgJGkgPSAwOworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFy
YW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwifSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGhhc09wdGlvbmFsQXJndW1lbnRzID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRmaXJzdE9wdGlvbmFsQXJndW1lbnQgPSAkaTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxhc3Q7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKysk
aTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVy
cyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKIAotICAgICAgICAgICAgICAgIG15ICRyZXF1
aXJlc0FsbEFyZ3VtZW50cyA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmVxdWlyZXNBbGxBcmd1bWVudHMifTsKLSAgICAgICAgICAgICAgICBpZiAoJHJlcXVp
cmVzQWxsQXJndW1lbnRzKSB7CisgICAgICAgICAgICAgICAgaWYgKCRudW1QYXJhbWV0ZXJzID4g
MCAmJiAoISRoYXNPcHRpb25hbEFyZ3VtZW50cyB8fCAoJGhhc09wdGlvbmFsQXJndW1lbnRzICYm
ICRmaXJzdE9wdGlvbmFsQXJndW1lbnQgPiAwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRoYXNPcHRpb25hbEFyZ3VtZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8ICRmaXJzdE9wdGlv
bmFsQXJndW1lbnQpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAkbnVtUGFyYW1ldGVycylcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRyZXF1aXJlc0FsbEFyZ3VtZW50cyBlcSAiUmFpc2UiKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIFN5bnRheEVycm9yLCBcIk5vdCBlbm91Z2ggYXJndW1lbnRzXCIpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBUeXBlRXJyb3IsIFwiTm90IGVub3VnaCBhcmd1bWVudHNcIik7XG4iKTsKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4
Y2VwdGlvbnN9KSB7CkBAIC0xODcyLDggKzE4ODMsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JbmRleCA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICgkcG9kVHlwZSA/ICJwb2RJbXAuIiA6ICJp
bXAtPiIpIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIigiOwogCi0gICAgICAgICAg
ICAgICAgICAgIG15ICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDA7Ci0KICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBTY3JpcHRDYWxsU3RhY2sgY2FsbFN0YWNrKGV4ZWMsICRudW1QYXJh
bWV0ZXJzKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU2Ny
aXB0Q2FsbFN0YWNrLmgifSA9IDE7CkBAIC0xODk1LDEzICsxOTA0LDEzIEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JbmRleCsrOwog
ICAgICAgICAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRoYXNPcHRp
b25hbEFyZ3VtZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgIyBHZW5lcmF0ZSBlYXJs
eSBjYWxsIGlmIHRoZXJlIGFyZSBlbm91Z2ggcGFyYW1ldGVycy4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgaW50IGFyZ3NDb3VudCA9IGV4ZWMtPmFy
Z3VtZW50Q291bnQoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAg
ICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiT3B0aW9uYWwifSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgR2Vu
ZXJhdGUgZWFybHkgY2FsbCBpZiB0aGVyZSBhcmUgZW5vdWdoIHBhcmFtZXRlcnMuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCEkaGFzT3B0aW9uYWxBcmd1bWVudHMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiAgICBpbnQg
YXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpO1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDE7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChhcmdzQ291bnQgPCAiIC4gKCRwYXJhbUluZGV4ICsgMSkgLiAiKSB7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
RnVuY3Rpb25DYWxsKCRmdW5jdGlvbiwgJGZ1bmN0aW9uU3RyaW5nLCAkcGFyYW1JbmRleCwgIiAg
ICAiIHggMiwgJHBvZFR5cGUsICRpbXBsQ2xhc3NOYW1lKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG5cbiIpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5j
cHAKaW5kZXggMTY1MGU4YS4uMDAxODI5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTcs
NDIgKzExNyw2IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZywKICAgICByZXR1cm4gcmVzOwogfQog
Ci1XZWJLaXRET01UZXN0T2JqKiAKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3RoYXRfcmVx
dWlyZXNfYWxsX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2NoYXIqICBzdHJfYXJnLCBX
ZWJLaXRET01UZXN0T2JqKiAgb2JqX2FyZykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAo
c2VsZiwgMCk7Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHN0cl9hcmcsIDApOwotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsIChvYmpfYXJnLCAwKTsKLSAgICBXZWJDb3JlOjpTdHJpbmcgX2dfc3RyX2Fy
ZyA9IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7Ci0gICAgV2ViQ29yZTo6VGVz
dE9iaiAqIF9nX29ial9hcmcgPSBXZWJLaXQ6OmNvcmUob2JqX2FyZyk7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKF9nX29ial9hcmcsIDApOwotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGVz
dE9iaj4gZ19yZXMgPSBXVEY6OmdldFB0cihpdGVtLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdz
KF9nX3N0cl9hcmcsIF9nX29ial9hcmcpKTsKLSAgICBXZWJLaXRET01UZXN0T2JqKiAgcmVzID0g
c3RhdGljX2Nhc3Q8V2ViS2l0RE9NVGVzdE9iaiogPihXZWJLaXQ6OmtpdChnX3Jlcy5nZXQoKSkp
OwotICAgIHJldHVybiByZXM7Ci19Ci0KLVdlYktpdERPTVRlc3RPYmoqIAotd2Via2l0X2RvbV90
ZXN0X29ial9tZXRob2RfdGhhdF9yZXF1aXJlc19hbGxfYXJnc19hbmRfdGhyb3dzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdjaGFyKiAgc3RyX2FyZywgV2ViS2l0RE9NVGVzdE9iaiogIG9ial9h
cmcsIEdFcnJvciAqKmVycm9yKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAw
KTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoc3RyX2FyZywgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwgKG9ial9hcmcsIDApOwotICAgIFdlYkNvcmU6OlN0cmluZyBfZ19zdHJfYXJnID0gV2Vi
Q29yZTo6U3RyaW5nOjpmcm9tVVRGOChzdHJfYXJnKTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICog
X2dfb2JqX2FyZyA9IFdlYktpdDo6Y29yZShvYmpfYXJnKTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAoX2dfb2JqX2FyZywgMCk7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9IFdURjo6Z2V0UHRyKGl0
ZW0tPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoX2dfc3RyX2FyZywgX2dfb2Jq
X2FyZywgZWMpKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uIGVjZGVzYzsKLSAgICAgICAgV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uKGVjLCBlY2Rlc2MpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9y
LCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2Mu
bmFtZSk7Ci0gICAgfQotICAgIFdlYktpdERPTVRlc3RPYmoqICByZXMgPSBzdGF0aWNfY2FzdDxX
ZWJLaXRET01UZXN0T2JqKiA+KFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKSk7Ci0gICAgcmV0dXJu
IHJlczsKLX0KLQogdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXJpYWxpemVkX3ZhbHVlKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogIHNl
cmlhbGl6ZWRfYXJnKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCA3MTVmZDIyLi44OWM0Yjg0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouaApAQCAtNjQsMTIgKzY0LDYgQEAgd2Via2l0X2RvbV90ZXN0X29ial9v
YmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogV0VCS0lUX0FQSSBXZWJLaXRET01U
ZXN0T2JqKiAKIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZywgZ2NoYXIqICBzdHJfYXJnLCBXZWJLaXRE
T01UZXN0T2JqKiAgb2JqX2FyZyk7CiAKLVdFQktJVF9BUEkgV2ViS2l0RE9NVGVzdE9iaiogCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF90aGF0X3JlcXVpcmVzX2FsbF9hcmdzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdjaGFyKiAgc3RyX2FyZywgV2ViS2l0RE9NVGVzdE9iaiogIG9ial9h
cmcpOwotCi1XRUJLSVRfQVBJIFdlYktpdERPTVRlc3RPYmoqIAotd2Via2l0X2RvbV90ZXN0X29i
al9tZXRob2RfdGhhdF9yZXF1aXJlc19hbGxfYXJnc19hbmRfdGhyb3dzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdjaGFyKiAgc3RyX2FyZywgV2ViS2l0RE9NVGVzdE9iaiogIG9ial9hcmcsIEdF
cnJvciAqKmVycm9yKTsKLQogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
cmlhbGl6ZWRfdmFsdWUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKiAgc2VyaWFsaXplZF9hcmcpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA4MTkxYzFiLi40OTdhMDY3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEy
MSw3ICsxMjEsNyBAQCBib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudAogI2RlZmluZSBUSFVOS19HRU5F
UkFUT1IoZ2VuZXJhdG9yKQogI2VuZGlmCiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1syOV0gPQorc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzWzI3XSA9CiB7CiAgICAgeyAidm9p
ZE1ldGhvZCIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QpLCAoaW50
cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3Mi
LCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpLCAoaW50
cHRyX3QpMyBUSFVOS19HRU5FUkFUT1IoMCkgfSwKQEAgLTEyOSw4ICsxMjksNiBAQCBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbMjldID0K
ICAgICB7ICJpbnRNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkludE1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMgVEhVTktfR0VORVJBVE9SKDApIH0sCiAg
ICAgeyAib2JqTWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9k
KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAib2JqTWV0aG9kV2l0
aEFyZ3MiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyks
IChpbnRwdHJfdCkzIFRIVU5LX0dFTkVSQVRPUigwKSB9LAotICAgIHsgIm1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3MiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVx
dWlyZXNBbGxBcmdzKSwgKGludHB0cl90KTIgVEhVTktfR0VORVJBVE9SKDApIH0sCi0gICAgeyAi
bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyIsIERvbnREZWxldGUgfCBGdW5jdGlv
biwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MpLCAoaW50cHRyX3Qp
MiBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJzZXJpYWxpemVkVmFsdWUiLCBEb250RGVs
ZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUpLCAoaW50cHRyX3QpMSBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJtZXRob2RXaXRoRXhjZXB0aW9uIiwgRG9udERlbGV0
ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkwIFRI
VU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgImN1c3RvbU1ldGhvZCIsIERvbnREZWxldGUgfCBG
dW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRP
UigwKSB9LApAQCAtMTU1LDcgKzE1Myw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1syOV0gPQogfTsKIAogI3VuZGVmIFRIVU5LX0dF
TkVSQVRPUgotc3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlID0geyA2OSwgNjMsIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzLCAw
IH07CitzdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90
eXBlVGFibGUgPSB7IDY3LCA2MywgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAgfTsK
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPYmpQ
cm90b3R5cGUiLCAwLCAmSlNUZXN0T2JqUHJvdG90eXBlVGFibGUsIDAgfTsKIAogSlNPYmplY3Qq
IEpTVGVzdE9ialByb3RvdHlwZTo6c2VsZihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCkBAIC00MTUsNiArNDEzLDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSog
ZXgKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlz
VmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKKyAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVu
dHMiKTsKICAgICBpbnQgaW50QXJnID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsK
ICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVu
dCgxKS50b1N0cmluZyhleGVjKSk7CiAgICAgVGVzdE9iaiogb2JqQXJnID0gdG9UZXN0T2JqKGV4
ZWMtPmFyZ3VtZW50KDIpKTsKQEAgLTQ0Myw2ICs0NDMsOCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25JbnRNZXRob2RXaXRoQXJncyhFeGVjU3RhdGUq
IGV4ZQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRo
aXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQorICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3Vt
ZW50cyIpOwogICAgIGludCBpbnRBcmcgPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMp
OwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3Vt
ZW50KDEpLnRvU3RyaW5nKGV4ZWMpKTsKICAgICBUZXN0T2JqKiBvYmpBcmcgPSB0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMikpOwpAQCAtNDcyLDYgKzQ3NCw4IEBAIEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0
ZSogZXhlCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qo
dGhpc1ZhbHVlKSk7CiAgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCisg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJn
dW1lbnRzIik7CiAgICAgaW50IGludEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhl
Yyk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJn
dW1lbnQoMSkudG9TdHJpbmcoZXhlYykpOwogICAgIFRlc3RPYmoqIG9iakFyZyA9IHRvVGVzdE9i
aihleGVjLT5hcmd1bWVudCgyKSk7CkBAIC00ODEsNDIgKzQ4NSw2IEBAIEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNT
dGF0ZSogZXhlCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncyhFeGVj
U3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkK
LSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKLSAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKLSAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKLSAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5n
VG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpOwotICAgIFRlc3RPYmoq
IG9iakFyZyA9IHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSk7Ci0KLQotICAgIEpTQzo6SlNW
YWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6
OmdldFB0cihpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3Moc3RyQXJnLCBvYmpBcmcpKSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhFeGVj
U3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkK
LSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKLSAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKLSAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKLSAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgU3ludGF4RXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGNvbnN0IFN0cmluZyYgc3RyQXJn
ID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKTsKLSAg
ICBUZXN0T2JqKiBvYmpBcmcgPSB0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpOwotCi0KLSAg
ICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgV1RGOjpnZXRQdHIoaW1wLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
KHN0ckFyZywgb2JqQXJnLCBlYykpKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CkBAIC01MjQsNiArNDky
LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2Vy
aWFsaXplZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
ZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2Fz
dDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlw
ZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBzZXJpYWxpemVkQXJnID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOwogCiAgICAgaW1wLT5zZXJpYWxpemVkVmFsdWUoc2Vy
aWFsaXplZEFyZyk7CkBAIC01NjksNiArNTM5LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQXJnc0FuZEV4Y2VwdGlvbihFeGVjU3RhdGUK
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMi
KTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRDYWxsU3RhY2sgY2FsbFN0
YWNrKGV4ZWMsIDEpOwogICAgIGxvZyogaW50QXJnID0gdG9sb2coZXhlYy0+YXJndW1lbnQoMCkp
OwpAQCAtNTg1LDYgKzU1Nyw4IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjCiAgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAg
VGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7CiAgICAgSlNW
YWx1ZSBsaXN0ZW5lciA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNP
YmplY3QoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC01OTksNiArNTczLDgg
QEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3Zl
RXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGUKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhl
YywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVy
cm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gZXhl
Yy0+YXJndW1lbnQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTYyOCw2ICs2MDQsOCBAQCBKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kQXJnKEV4
ZWNTdGF0ZQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0
KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFy
Z3VtZW50cyIpOwogICAgIEZyYW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVj
KTsKICAgICBpZiAoIWR5bmFtaWNGcmFtZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CkBAIC02NDQsMTIgKzYyMiwxNCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoRQogICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAg
IFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIEZy
YW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKICAgICBpZiAoIWR5bmFt
aWNGcmFtZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgaW50IGludEFyZyA9
IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAKICAgICBpbnQgYXJnc0NvdW50ID0g
ZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIGludCBpbnRBcmcgPSBleGVjLT5hcmd1bWVudCgx
KS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChhcmdzQ291bnQgPCAzKSB7CiAgICAgICAgIGltcC0+
d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnKGR5bmFtaWNGcmFtZSwgaW50QXJnKTsKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC02NjgsNiArNjQ4LDggQEAgSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFu
ZFVzZXJHZXN0dXJlKEUKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9y
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihh
c09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0
T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVu
b3VnaCBhcmd1bWVudHMiKTsKICAgICBGcmFtZSogZHluYW1pY0ZyYW1lID0gdG9EeW5hbWljRnJh
bWUoZXhlYyk7CiAgICAgaWYgKCFkeW5hbWljRnJhbWUpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwpAQCAtNjg0LDEyICs2NjYsMTQgQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlQVMKICAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUp
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsK
ICAgICBGcmFtZSogZHluYW1pY0ZyYW1lID0gdG9EeW5hbWljRnJhbWUoZXhlYyk7CiAgICAgaWYg
KCFkeW5hbWljRnJhbWUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIGludCBp
bnRBcmcgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwogCiAgICAgaW50IGFyZ3ND
b3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBpbnQgaW50QXJnID0gZXhlYy0+YXJn
dW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoYXJnc0NvdW50IDwgMykgewogICAgICAg
ICBpbXAtPndpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQoZHluYW1pY0ZyYW1lLCBp
bnRBcmcpOwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTc4Niw5ICs3NzAsMTEg
QEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW8KICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhl
YywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBpbnQgbm9uT3B0ID0g
ZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAi
Tm90IGVub3VnaCBhcmd1bWVudHMiKTsKIAogICAgIGludCBhcmdzQ291bnQgPSBleGVjLT5hcmd1
bWVudENvdW50KCk7CisgICAgaW50IG5vbk9wdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIo
ZXhlYyk7CiAgICAgaWYgKGFyZ3NDb3VudCA8IDIpIHsKICAgICAgICAgaW1wLT5tZXRob2RXaXRo
Tm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhub25PcHQpOwogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKQEAgLTgwNyw5ICs3OTMsMTEgQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3AK
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBpbnQgbm9uT3B0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihl
eGVjKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKIAog
ICAgIGludCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7CisgICAgaW50IG5vbk9w
dCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CiAgICAgaWYgKGFyZ3NDb3VudCA8
IDIpIHsKICAgICAgICAgaW1wLT5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25h
bEFyZ3Mobm9uT3B0KTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC04MjksNiAr
ODE3LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZDEoRXhlY1N0YXRlKiBleGUKICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
VHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBUZXN0T2JqKiBvYmpBcmcg
PSB0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJn
ID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpKTsKIApA
QCAtODQzLDkgKzgzMywxMSBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMihFeGVjU3RhdGUqIGV4ZQogICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIFRlc3RPYmoqIG9iakFyZyA9IHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSk7CisgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7CiAKICAgICBpbnQgYXJn
c0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIFRlc3RPYmoqIG9iakFyZyA9IHRv
VGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKGFyZ3NDb3VudCA8IDIpIHsKICAg
ICAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZyk7CiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwpAQCAtODY0LDYgKzg1Niw4IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QzKEV4ZWNTdGF0ZSogZXhlCiAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVl
KSk7CiAgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1l
bnQoMCkudG9TdHJpbmcoZXhlYykpOwogCiAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKHN0ckFy
Zyk7CkBAIC04NzcsNiArODcxLDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDQoRXhlY1N0YXRlKiBleGUKICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAg
ICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgp
KTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBp
bnQgaW50QXJnID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKIAogICAgIGltcC0+
b3ZlcmxvYWRlZE1ldGhvZChpbnRBcmcpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAppbmRleCAzOGNmOGMyLi4yOGJmMGNlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtOTIsOCArOTIsNiBAQCBKU0M6
OkpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkludE1ldGhv
ZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25JbnRNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwogSlND
OjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRo
b2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKLUpT
Qzo6SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
VGhhdFJlcXVpcmVzQWxsQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSopOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZChKU0M6OkV4
ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaAppbmRleCAyNDdmNGEzLi5kZDlkMmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtNjIsOCArNjIsNiBAQAogLSAoaW50
KWludE1ldGhvZFdpdGhBcmdzOihpbnQpaW50QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcg
b2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZDsK
IC0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJnczooaW50KWludEFyZyBzdHJBcmc6KE5T
U3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKLS0gKERPTVRlc3RP
YmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmc7Ci0tIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJnc0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICop
b2JqQXJnOwogLSAodm9pZClzZXJpYWxpemVkVmFsdWU6KE5TU3RyaW5nICopc2VyaWFsaXplZEFy
ZzsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
Lm1tIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmlu
ZGV4IDBmM2ZiNjYuLjRjMjM4ZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTI0OCwyMSArMjQ4LDYgQEAKICAgICByZXR1cm4g
a2l0KFdURjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZFdpdGhBcmdzKGludEFyZywgc3RyQXJnLCBj
b3JlKG9iakFyZykpKSk7CiB9CiAKLS0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKLXsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtp
dChXVEY6OmdldFB0cihJTVBMLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzKHN0ckFyZywgY29y
ZShvYmpBcmcpKSkpOwotfQotCi0tIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2Jq
QXJnCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIERPTVRlc3RPYmogKnJlc3VsdCA9IGtp
dChXVEY6OmdldFB0cihJTVBMLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKHN0
ckFyZywgY29yZShvYmpBcmcpLCBlYykpKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3Io
ZWMpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIC0gKHZvaWQpc2VyaWFsaXplZFZhbHVlOihO
U1N0cmluZyAqKXNlcmlhbGl6ZWRBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmlu
ZGV4IGJkYTI1ODYuLjU2MzVlMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsCkBAIC00OCwxMCArNDgsNiBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIFRlc3RP
Ymogb2JqTWV0aG9kKCk7CiAgICAgICAgIFRlc3RPYmogb2JqTWV0aG9kV2l0aEFyZ3MoaW4gbG9u
ZyBpbnRBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2JqQXJnKTsKIAotICAg
ICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIFRlc3RPYmogbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJncyhpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFyZyk7Ci0gICAgICAgIFtS
ZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gVGVzdE9iaiBtZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzKGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2JqQXJnKQotICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KICAgICAgICAgdm9pZCBzZXJpYWxpemVk
VmFsdWUoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNlcmlhbGl6ZWRBcmcpOwogCiAgICAgICAg
IC8vIEV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwCmluZGV4IDQ0OWUwODYuLjNlOGQyNmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMjcxLDM3ICsyNzEsNiBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncwogICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFy
Z3MoaW50QXJnLCBzdHJBcmcsIG9iakFyZykpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0aG9kVGhhdFJlcXVp
cmVzQWxsQXJncyIpOwotICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgVjhQYXJhbWV0ZXI8PiBzdHJBcmcgPSBhcmdz
WzBdOwotICAgIFRlc3RPYmoqIG9iakFyZyA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoYXJnc1sx
XSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJn
c1sxXSkpIDogMDsKLSAgICByZXR1cm4gdG9WOChpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFy
Z3Moc3RyQXJnLCBvYmpBcmcpKTsKLX0KLQotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3MiKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5
bnRheEVycm9yKTsKLSAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHsKLSAgICBWOFBhcmFt
ZXRlcjw+IHN0ckFyZyA9IGFyZ3NbMF07Ci0gICAgVGVzdE9iaiogb2JqQXJnID0gVjhUZXN0T2Jq
OjpIYXNJbnN0YW5jZShhcmdzWzFdKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzFdKSkgOiAwOwotICAgIFJlZlB0cjxUZXN0T2JqPiByZXN1
bHQgPSBpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Moc3RyQXJnLCBvYmpB
cmcsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAg
cmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7Ci0gICAgfQotICAgIGZhaWw6Ci0gICAgVjhQ
cm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKLSAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7Ci19Ci0KIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2VyaWFsaXplZFZhbHVl
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLnNlcmlhbGl6ZWRWYWx1ZSIpOwpAQCAtNjg3LDE4ICs2NTYsNiBAQCBzdGF0aWMg
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRl
bXBsYXRlKHY4OjpQZXJzaQogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gb2JqTWV0aG9k
V2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgb2JqTWV0aG9kV2l0
aEFyZ3NBcmdjLCBvYmpNZXRob2RXaXRoQXJnc0FyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0
cmluZzo6TmV3KCJvYmpNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3
KFRlc3RPYmpJbnRlcm5hbDo6b2JqTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+KCksIG9iak1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKLSAgICAvLyBDdXN0
b20gU2lnbmF0dXJlICdtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzJwotICAgIGNvbnN0IGludCBt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQXJnYyA9IDI7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FyZ3ZbbWV0aG9kVGhhdFJl
cXVpcmVzQWxsQXJnc0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigp
LCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKCkgfTsKLSAgICB2ODo6SGFuZGxlPHY4OjpTaWdu
YXR1cmU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJl
OjpOZXcoZGVzYywgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FyZ2MsIG1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBcmd2KTsKLSAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygibWV0aG9k
VGhhdFJlcXVpcmVzQWxsQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJ
bnRlcm5hbDo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0NhbGxiYWNrLCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4oKSwgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc1NpZ25hdHVyZSkpOwotCi0gICAg
Ly8gQ3VzdG9tIFNpZ25hdHVyZSAnbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cycK
LSAgICBjb25zdCBpbnQgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0FyZ2MgPSAy
OwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1ldGhvZFRoYXRSZXF1aXJl
c0FsbEFyZ3NBbmRUaHJvd3NBcmd2W21ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NB
cmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpH
ZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBtZXRob2RU
aGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3
KGRlc2MsIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NBcmdjLCBtZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJndik7Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5n
OjpOZXcoIm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MiKSwgdjg6OkZ1bmN0aW9u
VGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6Om1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NB
bmRUaHJvd3NDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIG1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3NTaWduYXR1cmUpKTsKLQogICAgIC8vIEN1c3RvbSBTaWduYXR1
cmUgJ2N1c3RvbUFyZ3NBbmRFeGNlcHRpb24nCiAgICAgY29uc3QgaW50IGN1c3RvbUFyZ3NBbmRF
eGNlcHRpb25BcmdjID0gMTsKICAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBj
dXN0b21BcmdzQW5kRXhjZXB0aW9uQXJndltjdXN0b21BcmdzQW5kRXhjZXB0aW9uQXJnY10gPSB7
IFY4bG9nOjpHZXRSYXdUZW1wbGF0ZSgpIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NNYXRyaXguaCBiL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCmluZGV4IDU2YmY3
NmIuLjcyYTk1ZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCisr
KyBiL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCkBAIC0xMTksMjEgKzExOSwyMSBAQCBw
dWJsaWM6CiAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIFRoaXMg
YWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKICAgICAvLyBPcGVy
YXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGll
ZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhlIHRyYW5zbGF0aW9uIHZhbHVlcyBvbiB0aGUg
bGVmdCAocmVzdWx0ID0gdHJhbnNsYXRpb24oeCx5LHopICogdGhpcykKLSAgICBQYXNzUmVmUHRy
PFdlYktpdENTU01hdHJpeD4gdHJhbnNsYXRlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHop
IGNvbnN0OworICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiB0cmFuc2xhdGUoZG91Ymxl
IHgsIGRvdWJsZSB5LCBkb3VibGUgeiA9IE5BTikgY29uc3Q7CiAgICAgCiAgICAgLy8gUmV0dXJu
cyB0aGlzIG1hdHJpeCBzY2FsZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgLy8gUGFzc2lu
ZyBzY2FsZVggb3Igc2NhbGVaIGFzIE5hTiB1c2VzIGEgdmFsdWUgb2YgMSwgYnV0IHBhc3Npbmcg
c2NhbGVZIG9mIE5hTiAKICAgICAvLyBtYWtlcyBpdCB0aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMg
YWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKICAgICAvLyBPcGVy
YXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGll
ZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhlIHNjYWxlIHZhbHVlcyBvbiB0aGUgbGVmdCAo
cmVzdWx0ID0gc2NhbGUoeCx5LHopICogdGhpcykKLSAgICBQYXNzUmVmUHRyPFdlYktpdENTU01h
dHJpeD4gc2NhbGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91YmxlIHNjYWxlWikg
Y29uc3Q7CisgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IHNjYWxlKGRvdWJsZSBzY2Fs
ZVgsIGRvdWJsZSBzY2FsZVkgPSBOQU4sIGRvdWJsZSBzY2FsZVogPSBOQU4pIGNvbnN0OwogCiAg
ICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgog
ICAgIC8vIElmIHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9MCwg
cm90YXRlWT0wLCByb3RhdGVaPXJvdFgpLgogICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlv
biB2YWx1ZSBvZiAwIGZvciBhbnkgcGFzc2VkIE5hTi4gICAgCiAgICAgLy8gT3BlcmF0aW9uIGlz
IHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBt
YXRyaXggd2l0aAogICAgIC8vIHRoZSByb3RhdGlvbiB2YWx1ZXMgb24gdGhlIGxlZnQgKHJlc3Vs
dCA9IHJvdGF0aW9uKHgseSx6KSAqIHRoaXMpCi0gICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRy
aXg+IHJvdGF0ZShkb3VibGUgcm90WCwgZG91YmxlIHJvdFksIGRvdWJsZSByb3RaKSBjb25zdDsK
KyAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gcm90YXRlKGRvdWJsZSByb3RYLCBkb3Vi
bGUgcm90WSA9IE5BTiwgZG91YmxlIHJvdFogPSBOQU4pIGNvbnN0OwogICAgIAogICAgIC8vIFJl
dHVybnMgdGhpcyBtYXRyaXggcm90YXRlZCBhYm91dCB0aGUgcGFzc2VkIGF4aXMgYnkgdGhlIHBh
c3NlZCBhbmdsZS4KICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4g
SWYgdGhlIGF4aXMgaXMgKDAsMCwwKSB1c2UgYSB2YWx1ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTTWF0cml4LmlkbCBiL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwK
aW5kZXggOWQ2Yzg5Ny4uYTExZmIyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
TWF0cml4LmlkbAorKysgYi9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCkBAIC02Mywx
NyArNjMsMTcgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIAogICAgICAgICAvLyBSZXR1cm4gdGhp
cyBtYXRyaXggdHJhbnNsYXRlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gUGFz
c2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3Jt
IHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMgICAgCi0gICAgICAgIFtJbW11dGFibGVdIFdlYktp
dENTU01hdHJpeCB0cmFuc2xhdGUoaW4gZG91YmxlIHgsIGluIGRvdWJsZSB5LCBpbiBkb3VibGUg
eik7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCB0cmFuc2xhdGUoaW4gZG91
YmxlIHgsIGluIGRvdWJsZSB5LCBpbiBbT3B0aW9uYWxdIGRvdWJsZSB6KTsKICAgICAgICAgCiAg
ICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXggc2NhbGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVz
LgogICAgICAgICAvLyBQYXNzaW5nIHNjYWxlWCBvciBzY2FsZVogYXMgTmFOIHVzZXMgYSB2YWx1
ZSBvZiAxLCBidXQgcGFzc2luZyBzY2FsZVkgb2YgTmFOIAogICAgICAgICAvLyBtYWtlcyBpdCB0
aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJE
IG9wZXJhdGlvbnMKLSAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNjYWxlKGlu
IGRvdWJsZSBzY2FsZVgsIGluIGRvdWJsZSBzY2FsZVksIGluIGRvdWJsZSBzY2FsZVopOworICAg
ICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggc2NhbGUoaW4gZG91YmxlIHNjYWxlWCwg
aW4gW09wdGlvbmFsXSBkb3VibGUgc2NhbGVZLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSBzY2FsZVop
OwogICAgICAgICAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5IHRo
ZSBwYXNzZWQgdmFsdWVzLgogICAgICAgICAvLyBJZiByb3RZIGFuZCByb3RaIGFyZSBOYU4sIHJv
dGF0ZSBhYm91dCBaIChyb3RYPTAsIHJvdGF0ZVk9MCwgcm90YXRlWj1yb3RYKS4KICAgICAgICAg
Ly8gT3RoZXJ3aXNlIHVzZSBhIHJvdGF0aW9uIHZhbHVlIG9mIDAgZm9yIGFueSBwYXNzZWQgTmFO
LiAgICAKLSAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHJvdGF0ZShpbiBkb3Vi
bGUgcm90WCwgaW4gZG91YmxlIHJvdFksIGluIGRvdWJsZSByb3RaKTsKKyAgICAgICAgW0ltbXV0
YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHJvdGF0ZShpbiBkb3VibGUgcm90WCwgaW4gW09wdGlvbmFs
XSBkb3VibGUgcm90WSwgaW4gW09wdGlvbmFsXSBkb3VibGUgcm90Wik7CiAgICAgICAgIAogICAg
ICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQgYWJvdXQgdGhlIHBhc3NlZCBheGlz
IGJ5IHRoZSBwYXNzZWQgYW5nbGUuCiAgICAgICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2Ug
YSB2YWx1ZSBvZiAwLiBJZiB0aGUgYXhpcyBpcyAoMCwwLDApIHVzZSBhIHZhbHVlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsIGIvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlk
bAppbmRleCAxMDI0YTM2Li5lYjY4YTNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9DbGlwYm9h
cmQuaWRsCisrKyBiL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKQEAgLTM4LDggKzM4LDcgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IFtDdXN0b21dIHZvaWQgZ2V0RGF0YShpbiBET01TdHJpbmcgdHlwZSkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAvLyBGSVhNRTogUmVxdWlyZXNBbGxBcmd1bWVu
dHMgaXMgcHJvYmFibHkgYm9ndXMgaGVyZS4KLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRz
XSBib29sZWFuIHNldERhdGEoaW4gRE9NU3RyaW5nIHR5cGUsIGluIERPTVN0cmluZyBkYXRhKTsK
KyAgICAgICAgYm9vbGVhbiBzZXREYXRhKGluIERPTVN0cmluZyB0eXBlLCBpbiBET01TdHJpbmcg
ZGF0YSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0RHJhZ0ltYWdlKGluIEhUTUxJbWFnZUVs
ZW1lbnQgaW1hZ2UsIGluIGxvbmcgeCwgaW4gbG9uZyB5KQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCBjZDg3N2IzLi4zNjlmODM3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCkBAIC0xMjgsMTUgKzEyOCwxOCBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgLy8g
Q29tbW9uIGV4dGVuc2lvbnMKIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYm
IExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29t
bWFuZChpbiBET01TdHJpbmcgY29tbWFuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIGJvb2xlYW4gdXNlckludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgdmFsdWUpOwotCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykg
JiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgdGhl
c2UgdHdvIHZlcnNpb25zIG9uY2UgW09wdGlvbmFsXSBpcyBpbXBsZW1lbnRlZCBmb3IgT2JqZWN0
aXZlLUMuCiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29tbWFuZChpbiBET01TdHJp
bmcgY29tbWFuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gdXNlckludGVyZmFjZSk7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29t
bWFuZChpbiBET01TdHJpbmcgY29tbWFuZCk7CisjZWxzZQorICAgICAgICBib29sZWFuICAgICAg
ICAgICAgZXhlY0NvbW1hbmQoaW4gRE9NU3RyaW5nIGNvbW1hbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlckludGVyZmFj
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbCwg
Q29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKICNl
bmRpZgogCiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRFbmFibGVkKGlu
IERPTVN0cmluZyBjb21tYW5kKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDRj
MTI0ZTAuLmU3Y2ZkNGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMTQ0LDYg
KzE0NCwxMSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQgKmVsZW1l
bnQsIEhUTUxFbGVtZW50ICpiZWZvcmUsIEV4Y2VwdGlvbgogICAgIGluc2VydEJlZm9yZShlbGVt
ZW50LCBiZWZvcmUsIGVjKTsKIH0KIAordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxF
bGVtZW50ICplbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBhZGQoZWxlbWVudCwg
MCwgZWMpOworfQorCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoaW50IGluZGV4KQog
ewogICAgIGludCBsaXN0SW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleChpbmRleCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5oCmluZGV4IDU5Yzk0M2EuLjc1ZWRlMzcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbXVs
dGlwbGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEubXVsdGlwbGUoKTsgfQogCiAgICAgdm9pZCBh
ZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVtZW50KiBiZWZvcmUsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIGFkZChIVE1MRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgcmVtb3ZlKGludCBpbmRleCk7CiAKICAgICBTdHJpbmcgdmFsdWUoKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDMzMDMyNzIuLmY5MmRiZGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNTQsNyArNTQsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgc2l6ZTsKICAgICAgICAg
CiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgYWRkKGluIEhUTUxFbGVtZW50IGVsZW1lbnQs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEhUTUxFbGVtZW50IGJlZm9yZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIEhUTUxFbGVtZW50
IGJlZm9yZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggMWVjYzRmMi4uYmQyZGI4NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwpAQCAtOTg3LDcgKzk4Nyw3IEBAIFdl
Ykluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewogICAgICAgICBpZiAoY29sdW1u
SWRlbnRpZmllciA9PT0gdGhpcy5kYXRhR3JpZC5kaXNjbG9zdXJlQ29sdW1uSWRlbnRpZmllcikg
ewogICAgICAgICAgICAgY2VsbC5hZGRTdHlsZUNsYXNzKCJkaXNjbG9zdXJlIik7CiAgICAgICAg
ICAgICBpZiAodGhpcy5kZXB0aCkKLSAgICAgICAgICAgICAgICBjZWxsLnN0eWxlLnNldFByb3Bl
cnR5KCJwYWRkaW5nLWxlZnQiLCAodGhpcy5kZXB0aCAqIHRoaXMuZGF0YUdyaWQuaW5kZW50V2lk
dGgpICsgInB4Iik7CisgICAgICAgICAgICAgICAgY2VsbC5zdHlsZS5zZXRQcm9wZXJ0eSgicGFk
ZGluZy1sZWZ0IiwgKHRoaXMuZGVwdGggKiB0aGlzLmRhdGFHcmlkLmluZGVudFdpZHRoKSArICJw
eCIsIG51bGwpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIGNlbGw7CkBAIC0xMTk5LDcg
KzExOTksNyBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdmFyIGNlbGwgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFt
ZSgidGQiKTsKICAgICAgICAgaWYgKCFjZWxsLmhhc1N0eWxlQ2xhc3MoImRpc2Nsb3N1cmUiKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdmFyIGNvbXB1dGVkTGVmdFBhZGRp
bmcgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjZWxsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCJw
YWRkaW5nLWxlZnQiKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCk7Cisg
ICAgICAgIHZhciBjb21wdXRlZExlZnRQYWRkaW5nID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Y2VsbCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgicGFkZGluZy1sZWZ0IikuZ2V0RmxvYXRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpOwogICAgICAgICB2YXIgbGVmdCA9IGNlbGwu
dG90YWxPZmZzZXRMZWZ0ICsgY29tcHV0ZWRMZWZ0UGFkZGluZzsKICAgICAgICAgcmV0dXJuIGV2
ZW50LnBhZ2VYID49IGxlZnQgJiYgZXZlbnQucGFnZVggPD0gbGVmdCArIHRoaXMuZGlzY2xvc3Vy
ZVRvZ2dsZVdpZHRoOwogICAgIH0sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRHJhd2VyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwpp
bmRleCAzZjgyN2ZiLi41NzFjMGZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRHJhd2VyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIu
anMKQEAgLTE1OSw3ICsxNTksNyBAQCBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsK
IAogICAgICAgICAvLyBUZW1wb3JhcmlseSBzZXQgcHJvcGVydGllcyBhbmQgY2xhc3NlcyB0byBt
aW1pYyB0aGUgcG9zdC1hbmltYXRpb24gdmFsdWVzIHNvIHBhbmVscwogICAgICAgICAvLyBsaWtl
IEVsZW1lbnRzIGluIHRoZWlyIHVwZGF0ZVN0YXR1c0Jhckl0ZW1zIGNhbGwgd2lsbCBzaXplIHRo
aW5ncyB0byBmaXQgdGhlIGZpbmFsIGxvY2F0aW9uLgotICAgICAgICB0aGlzLm1haW5TdGF0dXNC
YXIuc3R5bGUuc2V0UHJvcGVydHkoInBhZGRpbmctbGVmdCIsIChhbmNob3JlZEl0ZW1zLm9mZnNl
dFdpZHRoIC0gMSkgKyAicHgiKTsKKyAgICAgICAgdGhpcy5tYWluU3RhdHVzQmFyLnN0eWxlLnNl
dFByb3BlcnR5KCJwYWRkaW5nLWxlZnQiLCAoYW5jaG9yZWRJdGVtcy5vZmZzZXRXaWR0aCAtIDEp
ICsgInB4IiwgbnVsbCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlU3R5bGVDbGFzcygi
ZHJhd2VyLXZpc2libGUiKTsKICAgICAgICAgaWYgKCJ1cGRhdGVTdGF0dXNCYXJJdGVtcyIgaW4g
V2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJy
ZW50UGFuZWwudXBkYXRlU3RhdHVzQmFySXRlbXMoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggYzg1MzQ0MC4uOWQ0M2I0NiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTE5MSw5ICsxOTEs
OSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
ICghaW5zcGVjdGVkUm9vdERvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IGluc3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQi
LCB0aGlzLl9ub2RlSW5zZXJ0ZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgIGluc3BlY3RlZFJvb3RE
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZCIsIHRoaXMuX25vZGVSZW1v
dmVkLmJpbmQodGhpcykpOwotICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiRE9NQXR0ck1vZGlmaWVkIiwgdGhpcy5fYXR0cmlidXRlc1VwZGF0ZWQuYmluZCh0
aGlzKSk7CisgICAgICAgIGluc3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJE
T01Ob2RlSW5zZXJ0ZWQiLCB0aGlzLl9ub2RlSW5zZXJ0ZWQuYmluZCh0aGlzKSwgZmFsc2UpOwor
ICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJl
bW92ZWQiLCB0aGlzLl9ub2RlUmVtb3ZlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICAgIGlu
c3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01BdHRyTW9kaWZpZWQiLCB0
aGlzLl9hdHRyaWJ1dGVzVXBkYXRlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICAgICAgdGhp
cy50cmVlT3V0bGluZS5zdXBwcmVzc1NlbGVjdEhpZ2hsaWdodCA9IHRydWU7CiAgICAgICAgIHRo
aXMucm9vdERPTU5vZGUgPSBpbnNwZWN0ZWRSb290RG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggZTNiZTZhMy4uOGI0Yjc0OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0Lmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwpAQCAt
NDUwLDcgKzQ1MCw3IEBAIEluamVjdGVkU2NyaXB0LnBlcmZvcm1TZWFyY2ggPSBmdW5jdGlvbih3
aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBydW5TeW5jaHJvbm91c2x5CiAgICAgewogICAgICAgICBp
ZiAoIXRhZ05hbWVRdWVyeSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY29uc3QgcmVz
dWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vKltjb250YWlucyhuYW1l
KCksICciICsgZXNjYXBlZFRhZ05hbWVRdWVyeSArICInKV0iLCBkb2MsIG51bGwsIFhQYXRoUmVz
dWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAgICAgICAgY29uc3QgcmVzdWx0ID0g
ZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vKltjb250YWlucyhuYW1lKCksICci
ICsgZXNjYXBlZFRhZ05hbWVRdWVyeSArICInKV0iLCBkb2MsIG51bGwsIFhQYXRoUmVzdWx0Lk9S
REVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKICAgICAgICAgYWRkTm9kZXNUb1Jlc3Vs
dHMuY2FsbCh0aGlzLCByZXN1bHQsIHJlc3VsdC5zbmFwc2hvdExlbmd0aCwgcmVzdWx0LnNuYXBz
aG90SXRlbSk7CiAgICAgfQogCkBAIC00NTgsNyArNDU4LDcgQEAgSW5qZWN0ZWRTY3JpcHQucGVy
Zm9ybVNlYXJjaCA9IGZ1bmN0aW9uKHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIHJ1blN5bmNocm9u
b3VzbHkKICAgICB7CiAgICAgICAgIGlmICghdGFnTmFtZVF1ZXJ5KQogICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1YXRlLmNhbGwo
ZG9jLCAiLy8qW3N0YXJ0cy13aXRoKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5ICsg
IicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUp
OworICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1YXRlLmNhbGwoZG9j
LCAiLy8qW3N0YXJ0cy13aXRoKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5ICsgIicp
XSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51
bGwpOwogICAgICAgICBhZGROb2Rlc1RvUmVzdWx0cy5jYWxsKHRoaXMsIHJlc3VsdCwgcmVzdWx0
LnNuYXBzaG90TGVuZ3RoLCByZXN1bHQuc25hcHNob3RJdGVtKTsKICAgICB9CiAKQEAgLTQ2OSwx
MyArNDY5LDEzIEBAIEluamVjdGVkU2NyaXB0LnBlcmZvcm1TZWFyY2ggPSBmdW5jdGlvbih3aGl0
ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBydW5TeW5jaHJvbm91c2x5CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1
YXRlLmNhbGwoZG9jLCAiLy8qW2NvbnRhaW5zKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1
ZXJ5ICsgIicpIG9yIGNvbnRhaW5zKEAqLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0iLCBkb2Ms
IG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAgICAgICAg
Y29uc3QgcmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vKltjb250
YWlucyhuYW1lKCksICciICsgZXNjYXBlZFRhZ05hbWVRdWVyeSArICInKSBvciBjb250YWlucyhA
KiwgJyIgKyBlc2NhcGVkUXVlcnkgKyAiJyldIiwgZG9jLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRF
UkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CiAgICAgICAgIGFkZE5vZGVzVG9SZXN1bHRz
LmNhbGwodGhpcywgcmVzdWx0LCByZXN1bHQuc25hcHNob3RMZW5ndGgsIHJlc3VsdC5zbmFwc2hv
dEl0ZW0pOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIG1hdGNoUGFydGlhbEF0dHJpYnV0ZVZhbHVl
cyhkb2MpCiAgICAgewotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1
YXRlLmNhbGwoZG9jLCAiLy8qW2NvbnRhaW5zKEAqLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0i
LCBkb2MsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAg
ICAgICAgY29uc3QgcmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8v
Kltjb250YWlucyhAKiwgJyIgKyBlc2NhcGVkUXVlcnkgKyAiJyldIiwgZG9jLCBudWxsLCBYUGF0
aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CiAgICAgICAgIGFkZE5v
ZGVzVG9SZXN1bHRzLmNhbGwodGhpcywgcmVzdWx0LCByZXN1bHQuc25hcHNob3RMZW5ndGgsIHJl
c3VsdC5zbmFwc2hvdEl0ZW0pOwogICAgIH0KIApAQCAtNDg3LDEzICs0ODcsMTMgQEAgSW5qZWN0
ZWRTY3JpcHQucGVyZm9ybVNlYXJjaCA9IGZ1bmN0aW9uKHdoaXRlc3BhY2VUcmltbWVkUXVlcnks
IHJ1blN5bmNocm9ub3VzbHkKIAogICAgIGZ1bmN0aW9uIG1hdGNoUGxhaW5UZXh0KGRvYykKICAg
ICB7Ci0gICAgICAgIGNvbnN0IHJlc3VsdCA9IGRvYy5fX3Byb3RvX18uZXZhbHVhdGUuY2FsbChk
b2MsICIvL3RleHQoKVtjb250YWlucyguLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0gfCAvL2Nv
bW1lbnQoKVtjb250YWlucyguLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0iLCBkb2MsIG51bGws
IFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAgICAgICAgY29uc3Qg
cmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vdGV4dCgpW2NvbnRh
aW5zKC4sICciICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSB8IC8vY29tbWVudCgpW2NvbnRhaW5zKC4s
ICciICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJF
RF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOwogICAgICAgICBhZGROb2Rlc1RvUmVzdWx0cy5j
YWxsKHRoaXMsIHJlc3VsdCwgcmVzdWx0LnNuYXBzaG90TGVuZ3RoLCByZXN1bHQuc25hcHNob3RJ
dGVtKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBtYXRjaFhQYXRoUXVlcnkoZG9jKQogICAgIHsK
LSAgICAgICAgY29uc3QgcmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywg
d2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgZG9jLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05P
REVfU05BUFNIT1RfVFlQRSk7CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRvYy5fX3Byb3RvX18u
ZXZhbHVhdGUuY2FsbChkb2MsIHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIGRvYywgbnVsbCwgWFBh
dGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOwogICAgICAgICBhZGRO
b2Rlc1RvUmVzdWx0cy5jYWxsKHRoaXMsIHJlc3VsdCwgcmVzdWx0LnNuYXBzaG90TGVuZ3RoLCBy
ZXN1bHQuc25hcHNob3RJdGVtKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCBiMmRmYTE1Li5mMzZhZDRhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0xMjgzLDIxICsx
MjgzLDIxIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgaWYgKGxhYmVsQmVmb3JlKSB7CiAgICAgICAgICAgICBpZiAobGVmdEhpZGRlbikKICAgICAg
ICAgICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIp
OwotICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgi
cmlnaHQiLCAoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMuc3RhcnQpICsgIiUiKTsKKyAgICAgICAg
ICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEw
MCAtIHRoaXMuX3BlcmNlbnRhZ2VzLnN0YXJ0KSArICIlIiwgbnVsbCk7CiAgICAgICAgICAgICB0
aGlzLl9sYWJlbExlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImJlZm9yZSIpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9w
ZXJ0eSgibGVmdCIsIHRoaXMuX3BlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKLSAgICAgICAgICAg
IHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAt
IHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRsZSkgKyAiJSIpOworICAgICAgICAgICAgdGhpcy5fbGFi
ZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHRoaXMuX3BlcmNlbnRhZ2Vz
LnN0YXJ0ICsgIiUiLCBudWxsKTsKKyAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQu
c3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAtIHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRs
ZSkgKyAiJSIsIG51bGwpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGxhYmVsQWZ0ZXIpIHsK
ICAgICAgICAgICAgIGlmIChyaWdodEhpZGRlbikKICAgICAgICAgICAgICAgICB0aGlzLl9sYWJl
bFJpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKLSAgICAgICAgICAgIHRoaXMu
X2xhYmVsUmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2Vu
dGFnZXMuZW5kICsgIiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LnN0
eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2VudGFnZXMuZW5kICsgIiUiLCBudWxs
KTsKICAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImFm
dGVyIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxl
bWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRsZSAr
ICIlIik7Ci0gICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9w
ZXJ0eSgicmlnaHQiLCAoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMuZW5kKSArICIlIik7CisgICAg
ICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIs
IHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRsZSArICIlIiwgbnVsbCk7CisgICAgICAgICAgICB0aGlz
Ll9sYWJlbFJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAwIC0gdGhp
cy5fcGVyY2VudGFnZXMuZW5kKSArICIlIiwgbnVsbCk7CiAgICAgICAgIH0KICAgICB9LAogCkBA
IC0xMzE1LDEyICsxMzE1LDEyIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2dyYXBoRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJyZXNv
dXJjZXMtY2F0ZWdvcnktIiArIHRoaXMucmVzb3VyY2UuY2F0ZWdvcnkubmFtZSk7CiAgICAgICAg
IH0KIAotICAgICAgICB0aGlzLl9iYXJMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVm
dCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKLSAgICAgICAgdGhpcy5fYmFyUmlnaHRFbGVt
ZW50LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsg
IiUiKTsKKyAgICAgICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxl
ZnQiLCBwZXJjZW50YWdlcy5zdGFydCArICIlIiwgbnVsbCk7CisgICAgICAgIHRoaXMuX2JhclJp
Z2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAwIC0gcGVyY2VudGFnZXMu
ZW5kKSArICIlIiwgbnVsbCk7CiAKICAgICAgICAgaWYgKCFpc0Jhck9wYXF1ZUF0TGVmdCkgewot
ICAgICAgICAgICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0
IiwgKDEwMCAtIHBlcmNlbnRhZ2VzLmVuZCkgKyAiJSIpOwotICAgICAgICAgICAgdGhpcy5fYmFy
UmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgcGVyY2VudGFnZXMubWlkZGxl
ICsgIiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0eWxlLnNldFByb3Bl
cnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsgIiUiLCBudWxsKTsKKyAgICAg
ICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHBl
cmNlbnRhZ2VzLm1pZGRsZSArICIlIiwgbnVsbCk7CiAKICAgICAgICAgICAgIGlmICh0aGlzLl9p
c0Jhck9wYXF1ZUF0TGVmdCAhPSBpc0Jhck9wYXF1ZUF0TGVmdCkgewogICAgICAgICAgICAgICAg
IHRoaXMuX2JhckxlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhaXRpbmciKTsKQEAgLTEzMjks
OCArMTMyOSw4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ3
YWl0aW5nLXJpZ2h0Iik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICB0aGlzLl9iYXJMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAw
IC0gcGVyY2VudGFnZXMubWlkZGxlKSArICIlIik7Ci0gICAgICAgICAgICB0aGlzLl9iYXJSaWdo
dEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJjZW50YWdlcy5zdGFydCArICIl
Iik7CisgICAgICAgICAgICB0aGlzLl9iYXJMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgi
cmlnaHQiLCAoMTAwIC0gcGVyY2VudGFnZXMubWlkZGxlKSArICIlIiwgbnVsbCk7CisgICAgICAg
ICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJj
ZW50YWdlcy5zdGFydCArICIlIiwgbnVsbCk7CiAKICAgICAgICAgICAgIGlmICh0aGlzLl9pc0Jh
ck9wYXF1ZUF0TGVmdCAhPSBpc0Jhck9wYXF1ZUF0TGVmdCkgewogICAgICAgICAgICAgICAgIHRo
aXMuX2JhckxlZnRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoIndhaXRpbmciKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwppbmRleCAzNWQy
NWQ0Li5lYjA2MjBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU2lkZWJhclBhbmUuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxl
c1NpZGViYXJQYW5lLmpzCkBAIC01ODcsNyArNTg3LDcgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVk
U3R5bGVTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWQiLCBzZXR0aW5nc0xv
YWRlZC5iaW5kKHRoaXMpKTsKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZGVkIiwgc2V0dGluZ3NMb2FkZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogCiAgICAg
ZnVuY3Rpb24gc2hvd0luaGVyaXRlZFRvZ2dsZUZ1bmN0aW9uKGV2ZW50KQogICAgIHsKQEAgLTEx
MjksNyArMTEyOSw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgIHZhciBzd2F0Y2hFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgIHN3YXRjaEVsZW1lbnQudGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsaWNrIHRvIGNoYW5nZSBjb2xvciBmb3JtYXQi
KTsKICAgICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50LmNsYXNzTmFtZSA9ICJzd2F0Y2giOwot
ICAgICAgICAgICAgICAgIHN3YXRjaEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImJhY2tncm91
bmQtY29sb3IiLCB0ZXh0KTsKKyAgICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50LnN0eWxlLnNl
dFByb3BlcnR5KCJiYWNrZ3JvdW5kLWNvbG9yIiwgdGV4dCwgbnVsbCk7CiAKICAgICAgICAgICAg
ICAgICBzd2F0Y2hFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgY2hhbmdlQ29sb3JE
aXNwbGF5LCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgc3dhdGNoRWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJkYmxjbGljayIsIGZ1bmN0aW9uKGV2ZW50KSB7IGV2ZW50LnN0b3BQcm9wYWdhdGlv
bigpIH0sIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZU92ZXJ2aWV3UGFuZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU92ZXJ2aWV3UGFuZS5qcwppbmRleCAzZTgzZjYyLi5hMzc0ZGQ1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCkBAIC0z
NDMsNyArMzQzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgY2hlY2tFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICBj
aGVja0VsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLWNhdGVnb3J5LWNoZWNrYm94IjsKICAg
ICAgICAgY2hlY2tFbGVtZW50LmNoZWNrZWQgPSB0cnVlOwotICAgICAgICBjaGVja0VsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNoZWNrYm94Q2xpY2tlZCk7CisgICAgICAgIGNo
ZWNrRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2hlY2tib3hDbGlja2VkLCBm
YWxzZSk7CiAgICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKGNoZWNrRWxlbWVudCk7CiAKICAgICAg
ICAgdmFyIHR5cGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpAQCAt
NDI2LDggKzQyNiw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5R3JhcGgucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgY2h1bmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKICAgICAgICAgY2h1bmsuY2xhc3NOYW1lID0gInRpbWVsaW5lLWdyYXBoLWJhciI7CiAgICAg
ICAgIHRoaXMuX2JhckFyZWFFbGVtZW50LmFwcGVuZENoaWxkKGNodW5rKTsKLSAgICAgICAgY2h1
bmsuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBzdGFydCArICIlIik7Ci0gICAgICAgIGNodW5r
LnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsIChlbmQgLSBzdGFydCkgKyAiJSIpOworICAgICAg
ICBjaHVuay5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHN0YXJ0ICsgIiUiLCBudWxsKTsKKyAg
ICAgICAgY2h1bmsuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgKGVuZCAtIHN0YXJ0KSArICIl
IiwgbnVsbCk7CiAgICAgfSwKIAogICAgIGNsZWFyQ2h1bmtzOiBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDI5ZWZkNzkuLmQ1
ZWFjMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
CkBAIC03OTQsNyArNzk0LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkR3JhcGhSb3cg
PSBmdW5jdGlvbihncmFwaENvbnRhaW5lciwgc2NoZWR1bGVSZWZyZXNoKQogICAgIHRoaXMuX2Jh
ckFyZWFFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JhckVsZW1lbnQpOwogCiAgICAgdGhpcy5f
ZXhwYW5kRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVFeHBhbmRhYmxlRWxlbWVu
dChncmFwaENvbnRhaW5lcik7Ci0gICAgdGhpcy5fZXhwYW5kRWxlbWVudC5fZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSk7CisgICAgdGhp
cy5fZXhwYW5kRWxlbWVudC5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMu
X29uQ2xpY2suYmluZCh0aGlzKSwgZmFsc2UpOwogCiAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNo
ID0gc2NoZWR1bGVSZWZyZXNoOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKaW5kZXggOGMyNWJlNS4uMTljOGYxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC01MzAsNyArNTMwLDcgQEAgV2ViSW5zcGVjdG9yLmFkZFBhbmVs
VG9vbGJhckljb24gPSBmdW5jdGlvbih0b29sYmFyRWxlbWVudCwgcGFuZWwsIHByZXZpb3VzVG9v
bGIKIHsKICAgICB2YXIgcGFuZWxUb29sYmFySXRlbSA9IHBhbmVsLnRvb2xiYXJJdGVtOwogICAg
IHRoaXMucGFuZWxPcmRlci5wdXNoKHBhbmVsKTsKLSAgICBwYW5lbFRvb2xiYXJJdGVtLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9vbGJhckl0ZW1DbGlja2VkLmJpbmQodGhpcykp
OworICAgIHBhbmVsVG9vbGJhckl0ZW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90
b29sYmFySXRlbUNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIGlmIChwcmV2aW91c1Rv
b2xiYXJJdGVtKQogICAgICAgICB0b29sYmFyRWxlbWVudC5pbnNlcnRCZWZvcmUocGFuZWxUb29s
YmFySXRlbSwgcHJldmlvdXNUb29sYmFySXRlbS5uZXh0U2libGluZyk7CiAgICAgZWxzZQpAQCAt
ODk3LDE0ICs4OTcsMTQgQEAgV2ViSW5zcGVjdG9yLmFuaW1hdGVTdHlsZSA9IGZ1bmN0aW9uKGFu
aW1hdGlvbnMsIGR1cmF0aW9uLCBjYWxsYmFjaykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmICghc3RhcnQpIHsKLSAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gZWxl
bWVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7
CisgICAgICAgICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpOwogICAgICAgICAgICAg
c3RhcnQgPSB7fTsKICAgICAgICAgICAgIGZvciAoa2V5IGluIGVuZCkKICAgICAgICAgICAgICAg
ICBzdGFydFtrZXldID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGtl
eSkpOwogICAgICAgICAgICAgYW5pbWF0aW9uLnN0YXJ0ID0gc3RhcnQ7CiAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgZm9yIChrZXkgaW4gc3RhcnQpCi0gICAgICAgICAgICAgICAgZWxlbWVu
dC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHN0YXJ0W2tleV0gKyAoa2V5IGluIHByb3BlcnR5VW5p
dCA/IHByb3BlcnR5VW5pdFtrZXldIDogZGVmYXVsdFVuaXQpKTsKKyAgICAgICAgICAgICAgICBl
bGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgc3RhcnRba2V5XSArIChrZXkgaW4gcHJvcGVy
dHlVbml0ID8gcHJvcGVydHlVbml0W2tleV0gOiBkZWZhdWx0VW5pdCksIG51bGwpOwogICAgIH0K
IAogICAgIGZ1bmN0aW9uIGFuaW1hdGVMb29wKCkKQEAgLTkyOCw5ICs5MjgsOSBAQCBXZWJJbnNw
ZWN0b3IuYW5pbWF0ZVN0eWxlID0gZnVuY3Rpb24oYW5pbWF0aW9ucywgZHVyYXRpb24sIGNhbGxi
YWNrKQogICAgICAgICAgICAgICAgIGlmIChuZXh0IDwgZHVyYXRpb24pIHsKICAgICAgICAgICAg
ICAgICAgICAgdmFyIHN0YXJ0VmFsdWUgPSBzdGFydFtrZXldOwogICAgICAgICAgICAgICAgICAg
ICB2YXIgbmV3VmFsdWUgPSBjdWJpY0luT3V0KGNvbXBsZXRlLCBzdGFydFZhbHVlLCBlbmRWYWx1
ZSAtIHN0YXJ0VmFsdWUsIGR1cmF0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUuc2V0
UHJvcGVydHkoa2V5LCBuZXdWYWx1ZSArIChrZXkgaW4gcHJvcGVydHlVbml0ID8gcHJvcGVydHlV
bml0W2tleV0gOiBkZWZhdWx0VW5pdCkpOworICAgICAgICAgICAgICAgICAgICBzdHlsZS5zZXRQ
cm9wZXJ0eShrZXksIG5ld1ZhbHVlICsgKGtleSBpbiBwcm9wZXJ0eVVuaXQgPyBwcm9wZXJ0eVVu
aXRba2V5XSA6IGRlZmF1bHRVbml0KSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KGtleSwgZW5kVmFsdWUgKyAoa2V5
IGluIHByb3BlcnR5VW5pdCA/IHByb3BlcnR5VW5pdFtrZXldIDogZGVmYXVsdFVuaXQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoa2V5LCBlbmRWYWx1ZSArIChrZXkg
aW4gcHJvcGVydHlVbml0ID8gcHJvcGVydHlVbml0W2tleV0gOiBkZWZhdWx0VW5pdCksIG51bGwp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBhMWY0MGE4Li5jMzNi
NTA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCkBAIC0xMzksMTEgKzEzOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdm9pZCBhbGVydChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgICAgICBi
b29sIGNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICAgICAgU3RyaW5nIHByb21w
dChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKTsKKyAg
ICAgICAgU3RyaW5nIHByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlID0gU3RyaW5nKCkpOwogICAgICAgICBTdHJpbmcgYnRvYShjb25zdCBTdHJp
bmcmIHN0cmluZ1RvRW5jb2RlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIFN0cmluZyBhdG9i
KGNvbnN0IFN0cmluZyYgZW5jb2RlZFN0cmluZywgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgICAg
IGJvb2wgZmluZChjb25zdCBTdHJpbmcmLCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgYmFja3dh
cmRzLCBib29sIHdyYXAsIGJvb2wgd2hvbGVXb3JkLCBib29sIHNlYXJjaEluRnJhbWVzLCBib29s
IHNob3dEaWFsb2cpIGNvbnN0OworICAgICAgICBib29sIGZpbmQoY29uc3QgU3RyaW5nJiwgYm9v
bCBjYXNlU2Vuc2l0aXZlID0gZmFsc2UsIGJvb2wgYmFja3dhcmRzID0gZmFsc2UsIGJvb2wgd3Jh
cCA9IGZhbHNlLCBib29sIHdob2xlV29yZCA9IGZhbHNlLCBib29sIHNlYXJjaEluRnJhbWVzID0g
ZmFsc2UsIGJvb2wgc2hvd0RpYWxvZyA9IGZhbHNlKSBjb25zdDsKIAogICAgICAgICBib29sIG9m
ZnNjcmVlbkJ1ZmZlcmluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGI0NzY1MTQuLmQ2
YmEwNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC04MiwxNSArODIsMTUgQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIHZvaWQgYWxlcnQoaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOwogICAgICAgICBib29s
ZWFuIGNvbmZpcm0oaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOwogICAgICAgICBbQ29udmVydE51bGxT
dHJpbmdUbz1OdWxsXSBET01TdHJpbmcgcHJvbXB0KGluIERPTVN0cmluZyBtZXNzYWdlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252
ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZGVmYXVsdFZhbHVlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWxdIERPTVN0cmluZyBkZWZhdWx0VmFsdWUpOwogCiAgICAgICAgIGJvb2xlYW4gZmlu
ZChpbiBET01TdHJpbmcgc3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBj
YXNlU2Vuc2l0aXZlLAotICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBiYWNrd2FyZHMs
Ci0gICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHdyYXAsCi0gICAgICAgICAgICAgICAg
ICAgICBpbiBib29sZWFuIHdob2xlV29yZCwKLSAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xl
YW4gc2VhcmNoSW5GcmFtZXMsCi0gICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHNob3dE
aWFsb2cpOworICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGNhc2VT
ZW5zaXRpdmUsCisgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gYmFj
a3dhcmRzLAorICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHdyYXAs
CisgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gd2hvbGVXb3JkLAor
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHNlYXJjaEluRnJhbWVz
LAorICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHNob3dEaWFsb2cp
OwogCiAgICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGJvb2xlYW4gb2Zmc2NyZWVuQnVm
ZmVyaW5nOwogCkBAIC0xMDcsMTMgKzEwNywxMyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcGFnZVhPZmZzZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nIHBhZ2VZT2Zmc2V0OwogCi0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50
c10gdm9pZCBzY3JvbGxCeShpbiBsb25nIHgsIGluIGxvbmcgeSk7Ci0gICAgICAgIFtSZXF1aXJl
c0FsbEFyZ3VtZW50c10gdm9pZCBzY3JvbGxUbyhpbiBsb25nIHgsIGluIGxvbmcgeSk7Ci0gICAg
ICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10gdm9pZCBzY3JvbGwoaW4gbG9uZyB4LCBpbiBsb25n
IHkpOwotICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIHZvaWQgbW92ZUJ5KGluIGZsb2F0
IHgsIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxv
YXRzLgotICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIHZvaWQgbW92ZVRvKGluIGZsb2F0
IHgsIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxv
YXRzLgotICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIHZvaWQgcmVzaXplQnkoaW4gZmxv
YXQgeCwgaW4gZmxvYXQgeSk7IC8vIEZJWE1FOiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBm
bG9hdHMuCi0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10gdm9pZCByZXNpemVUbyhpbiBm
bG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRha2Ug
bG9uZ3Mgbm90IGZsb2F0cy4KKyAgICAgICAgdm9pZCBzY3JvbGxCeShpbiBsb25nIHgsIGluIGxv
bmcgeSk7CisgICAgICAgIHZvaWQgc2Nyb2xsVG8oaW4gbG9uZyB4LCBpbiBsb25nIHkpOworICAg
ICAgICB2b2lkIHNjcm9sbChpbiBsb25nIHgsIGluIGxvbmcgeSk7CisgICAgICAgIHZvaWQgbW92
ZUJ5KGluIGZsb2F0IHgsIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBs
b25ncyBub3QgZmxvYXRzLgorICAgICAgICB2b2lkIG1vdmVUbyhpbiBmbG9hdCB4LCBpbiBmbG9h
dCB5KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRha2UgbG9uZ3Mgbm90IGZsb2F0cy4KKyAgICAg
ICAgdm9pZCByZXNpemVCeShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsgLy8gRklYTUU6IHRoaXMg
c2hvdWxkIHRha2UgbG9uZ3Mgbm90IGZsb2F0cy4KKyAgICAgICAgdm9pZCByZXNpemVUbyhpbiBm
bG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRha2Ug
bG9uZ3Mgbm90IGZsb2F0cy4KIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0RvTm90Q2hl
Y2tEb21haW5TZWN1cml0eV0gYm9vbGVhbiBjbG9zZWQ7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5BcnJheS5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmgKaW5k
ZXggNDM1ZGI1MC4uMTcxYjliMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFy
cmF5LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGNhbkdldEl0ZW1zRm9yTmFtZShj
b25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIFBhc3NSZWZQdHI8UGx1
Z2luPiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwogCi0gICAg
ICAgIHZvaWQgcmVmcmVzaChib29sIHJlbG9hZCk7CisgICAgICAgIHZvaWQgcmVmcmVzaChib29s
IHJlbG9hZCA9IGZhbHNlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFBsdWdpbkFycmF5KEZy
YW1lKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luQXJyYXkuaWRsIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmlkbAppbmRleCBkNGMxMGFjLi5lZmVlNzc1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luQXJyYXkuaWRsCisrKyBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5BcnJheS5pZGwKQEAgLTI3LDcgKzI3LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAg
UGx1Z2luIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIFBsdWdpbiBuYW1l
ZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOwotICAgICAgICB2b2lkIHJlZnJlc2goaW4gYm9vbGVh
biByZWxvYWQpOworICAgICAgICB2b2lkIHJlZnJlc2goaW4gW09wdGlvbmFsXSBib29sZWFuIHJl
bG9hZCk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaWRsIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCmluZGV4IDM1NzQ3NjYuLjc1
ZmQ0ZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKQEAgLTYzLDcgKzYzLDcgQEAgbW9kdWxlIHht
bCB7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgb3BlbihpbiBET01TdHJpbmcgbWV0aG9kLCBpbiBE
T01TdHJpbmcgdXJsLCBpbiBib29sZWFuIGFzeW5jLCBpbiBET01TdHJpbmcgdXNlciwgaW4gRE9N
U3RyaW5nIHBhc3N3b3JkKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAg
ICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldFJlcXVlc3RIZWFkZXIo
aW4gRE9NU3RyaW5nIGhlYWRlciwgaW4gRE9NU3RyaW5nIHZhbHVlKQorICAgICAgICB2b2lkIHNl
dFJlcXVlc3RIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlciwgaW4gRE9NU3RyaW5nIHZhbHVlKQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gdm9pZCBzZW5k
KCk7CkBAIC03OCw3ICs3OCw3IEBAIG1vZHVsZSB4bWwgewogICAgICAgICAvLyByZXNwb25zZQog
ICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0cmluZyBnZXRBbGxS
ZXNwb25zZUhlYWRlcnMoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZSwgQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
XSBET01TdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlcikKKyAgICAg
ICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGdldFJlc3BvbnNlSGVhZGVy
KGluIERPTVN0cmluZyBoZWFkZXIpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJdIERPTVN0cmluZyByZXNw
b25zZVRleHQ7IC8vIFRoZSBjdXN0b20gZ2V0dGVyIGltcGxlbWVudHMgQ29udmVydE51bGxTdHJp
bmdUbz1OdWxsCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCByZXNwb25zZVhN
TDsKQEAgLTg4LDcgKzg4LDcgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgICAgICBnZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRXh0ZW5zaW9uCi0gICAgICAgIFtSZXF1
aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBvdmVycmlkZU1pbWVUeXBlKGluIERPTVN0cmlu
ZyBvdmVycmlkZSk7CisgICAgICAgIHZvaWQgb3ZlcnJpZGVNaW1lVHlwZShpbiBET01TdHJpbmcg
b3ZlcnJpZGUpOwogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2
b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAo=
</data>
<flag name="review"
          id="42286"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>