<?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>153284</bug_id>
          
          <creation_ts>2016-01-20 13:47:26 -0800</creation_ts>
          <short_desc>Modern IDB: Make storage/indexeddb/modern tests more modern</short_desc>
          <delta_ts>2016-01-20 14:27:42 -0800</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 Misc.</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1157032</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-20 13:47:26 -0800</bug_when>
    <thetext>Modern IDB: Make storage/indexeddb/modern tests more modern

This primarily means adopting indexedDBTest() in most cases to handle deleting the database before the test starts, but also leads to a lot more standardization of test styles throughout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157037</commentid>
    <comment_count>1</comment_count>
      <attachid>269382</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-20 13:52:19 -0800</bug_when>
    <thetext>Created attachment 269382
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157052</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-20 14:27:42 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/195380</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269382</attachid>
            <date>2016-01-20 13:52:19 -0800</date>
            <delta_ts>2016-01-20 14:00:27 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>164315</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlODY4M2MzLi42NzM2YWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQyIEBACisyMDE2LTAx
LTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4g
SURCOiBNYWtlIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybiB0ZXN0cyBtb3JlIG1vZGVybi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzI4NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2Fib3J0LXJlcXVlc3RzLWNhbmNlbGxlZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0ZWQtcHV0LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYXV0b2luY3JlbWVudC1hYm9y
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2lj
LWFkZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jh
c2ljLXB1dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2NyZWF0ZS1pbmRleC1mYWlsdXJlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlb2JqZWN0c3RvcmUtZmFpbHVy
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJz
b3ItMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1
cnNvci0yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
Y3Vyc29yLTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9jdXJzb3ItNC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2N1cnNvci01LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vY3Vyc29yLTYtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9jdXJzb3ItNy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2N1cnNvci04LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vZGF0ZS1iYXNpYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS0yLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVv
YmplY3RzdG9yZS0xLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vZG91YmxlLWFib3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vZ2V0LWluZGV4LWZhaWx1cmVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJhbmdlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtZGVsZXRlb2JqZWN0c3Rv
cmUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9pZGJkYXRhYmFzZS10cmFuc2FjdGlvbi1mYWlsdXJlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LXByb3BlcnRpZXMtYmFzaWMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmpl
Y3RzdG9yZS1jbGVhci0xLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMi1leHBlY3RlZC50eHQ6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LTEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1j
b3VudC1mYWlsdXJlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1k
ZWxldGUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXQtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1wdXQtYW5kLWNsZWFy
LWZhaWx1cmVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaWRidHJhbnNhY3Rpb24tb2JqZWN0c3RvcmUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC00LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNvci0xLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29y
LTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRl
eC1jdXJzb3ItMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2luZGV4LWdldC1jb3VudC1iYXNpYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWdldC1jb3VudC1mYWlsdXJlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2tleXBhdGgtYmFzaWMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vb2JqZWN0c3RvcmUtY3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItY29udGlu
dWUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9vcGVuY3Vyc29yLWZhaWx1cmVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXN1Y2Nlc3MtYWZ0ZXItdmVyc2lvbmNoYW5n
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5k
YXRhYmFzZS12ZXJzaW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3Jlc291cmNlcy9hYm9ydC1yZXF1ZXN0cy1jYW5jZWxsZWQuanM6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9hYm9ydGVkLXB1dC5qczoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2F1dG9pbmNyZW1lbnQt
YWJvcnQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9i
YXNpYy1hZGQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy9iYXNpYy1wdXQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291
cmNlcy9jcmVhdGUtaW5kZXgtZmFpbHVyZXMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3Jlc291cmNlcy9jcmVhdGVvYmplY3RzdG9yZS1iYXNpYy5qczoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2NyZWF0ZW9iamVjdHN0b3JlLWZh
aWx1cmVzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMv
Y3Vyc29yLTEuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy9jdXJzb3ItMi5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL2N1cnNvci0zLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvY3Vyc29yLTQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9jdXJzb3ItNS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
cmVzb3VyY2VzL2N1cnNvci02LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvY3Vyc29yLTcuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9jdXJzb3ItOC5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vcmVzb3VyY2VzL2RhdGUtYmFzaWMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS0xLmpzOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGVsZXRlZGF0YWJhc2UtMi5qczoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLW51
bGwtbmFtZS1leGNlcHRpb24uanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LmpzOgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC5q
czoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWlu
ZGV4LTEuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9k
ZWxldGVpbmRleC0yLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvZGVsZXRlb2JqZWN0c3RvcmUtMS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2RvdWJsZS1hYm9ydC5qczoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RvdWJsZS1vcGVuLmpzOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZ2V0LWluZGV4LWZhaWx1cmVzLmpzOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZ2V0LWtleXJhbmdlLmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRiZGF0YWJh
c2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJkYXRhYmFzZS10cmFuc2FjdGlvbi1mYWlsdXJlcy5q
czoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYmluZGV4
LXByb3BlcnRpZXMtYmFzaWMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1jbGVhci0xLmpzOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtY2xlYXItMi5qczoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3Jl
LWNvdW50LTEuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy9pZGJvYmplY3RzdG9yZS1jb3VudC1mYWlsdXJlcy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLmpzOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUt
ZGVsZXRlLTIuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy9pZGJvYmplY3RzdG9yZS1kZWxldGUtZmFpbHVyZXMuanM6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1nZXQtZmFpbHVyZXMuanM6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3Rz
dG9yZS1wdXQtYW5kLWNsZWFyLWZhaWx1cmVzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvaWRidHJhbnNhY3Rpb24tb2JqZWN0c3RvcmUtZmFpbHVyZXMu
anM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRleC0x
LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5kZXgt
Mi5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4
LTMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRl
eC00LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5k
ZXgtNS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lu
ZGV4LWN1cnNvci0xLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvaW5kZXgtY3Vyc29yLTIuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9pbmRleC1jdXJzb3ItMy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LWdldC1jb3VudC1iYXNpYy5qczoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LWdldC1jb3VudC1mYWls
dXJlcy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2tl
eXBhdGgtYmFzaWMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291
cmNlcy9vYmplY3RzdG9yZS1hdHRyaWJ1dGVzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtY3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMu
anM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9vYmplY3Rz
dG9yZS1jdXJzb3ItY29udGludWUtZmFpbHVyZXMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9vcGVuY3Vyc29yLWZhaWx1cmVzLmpzOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvb3BlbmRhdGFiYXNlLXJlcXVlc3Qt
ZXZlbnQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9v
cGVuZGF0YWJhc2UtcmVxdWVzdC5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL29wZW5kYXRhYmFzZS1zdWNjZXNzLWFmdGVyLXZlcnNpb25jaGFuZ2UuanM6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9vcGVuZGF0YWJh
c2UtdmVyc2lvbnMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291
cmNlcy9yZXF1ZXN0LXJlYWR5c3RhdGUuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zY2hlZHVsZXItMS5qczoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0y
LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvdHJhbnNh
Y3Rpb24tc2NoZWR1bGVyLTMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy90cmFuc2FjdGlvbi1zY2hlZHVsZXItNS5qczoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci02LmpzOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvdmVyc2lvbmNoYW5n
ZS1hYm9ydC10aGVuLXJlb3Blbi5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL3ZlcnNpb25jaGFuZ2UtZXZlbnQuanM6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0xLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2Fj
dGlvbi1zY2hlZHVsZXItMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci01LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTYtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdl
LWFib3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6CisKIDIwMTYtMDEt
MTkgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogRml4IGluc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0Lmh0bWwgdGVzdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0LXJl
cXVlc3RzLWNhbmNlbGxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vYWJvcnQtcmVxdWVzdHMtY2FuY2VsbGVkLWV4cGVjdGVkLnR4dAppbmRleCA2
NjAzODRhLi4wNTJiZDg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vYWJvcnQtcmVxdWVzdHMtY2FuY2VsbGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYWJvcnQtcmVxdWVzdHMtY2FuY2VsbGVk
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQg
dW4taGFuZGxlZCByZXF1ZXN0cyBpbiBhIHRyYW5zYWN0aW9uIHJlY2VpdmUgb25lcnJvciBjCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBP
bGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBFcnJvciBoYW5kbGluZzogIm9iamVjdFN0
b3JlLnB1dCh7IGJhcjogJ0EnIH0sIDEpOyIgKGVycm9yKQogRXJyb3IgaGFuZGxpbmc6ICJvYmpl
Y3RTdG9yZS5wdXQoeyBiYXI6ICdCJyB9LCAyKTsiIChlcnJvcikKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9hYm9ydGVkLXB1dC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYWJvcnRlZC1wdXQtZXhwZWN0
ZWQudHh0CmluZGV4IDQzNGU5NzAuLmVkZDRiM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9hYm9ydGVkLXB1dC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0ZWQtcHV0LWV4cGVjdGVkLnR4
dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBjcmVhdGVzIHNvbWUgb2JqZWN0IHN0b3Jlcywg
cHV0dGluZyBzb21lIHZhbHVlcyBpbiB0aGVtLCBjb21taXR0aW5nIHRoCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRl
eGVkREIub3BlbihkYm5hbWUpCiBGaXJzdCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAw
IE5ldyB2ZXJzaW9uIC0gMQogW29iamVjdCBJREJUcmFuc2FjdGlvbl0gLSB2ZXJzaW9uY2hhbmdl
CiBbb2JqZWN0IElEQkRhdGFiYXNlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2F1dG9pbmNyZW1lbnQtYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2F1dG9pbmNyZW1lbnQtYWJvcnQtZXhwZWN0
ZWQudHh0CmluZGV4IDVhNGE5YzQuLjk4YWIxM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9hdXRvaW5jcmVtZW50LWFib3J0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYXV0b2luY3JlbWVudC1h
Ym9ydC1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3QgY3JlYXRlcyBhIG5l
dyBkYXRhYmFzZSB3aXRoIGFuIG9iamVjdHN0b3JlIHRoYXQgYXV0b2luY3JlbWVudHMuIEl0IHRo
ZQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRl
ZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogSW5pdGlhbCB1cGdyYWRlIHZlcnNp
b25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxldGUKIE9wZW5pbmcgcmVhZHdyaXRlIHRyYW5zYWN0
aW9uIHRvIGJ1bXAgdGhlIGtleSBnZW5lcmF0b3IsIGJ1dCBpdCB3aWxsIGJlIGFib3J0ZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1hZGQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2lj
LWFkZC1leHBlY3RlZC50eHQKaW5kZXggYmYyMjIxYy4uYWM1NzE3OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLWFkZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLWFkZC1leHBl
Y3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3QgZG9lcyBiYXNpYyB0ZXN0aW5nIG9m
IElEQk9iamVjdFN0b3JlLmFkZCgpLCBtYWtpbmcgc3VyZSB0aGF0IGFuIGF0dGVtcAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogVXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0g
MCBOZXcgdmVyc2lvbiAtIDEKIFtvYmplY3QgSURCVHJhbnNhY3Rpb25dIC0gdmVyc2lvbmNoYW5n
ZQogW29iamVjdCBJREJEYXRhYmFzZV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9iYXNpYy1wdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLXB1dC1leHBlY3RlZC50eHQKaW5kZXggYzY1OGM3
Zi4uMzQ1MGI2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2Jhc2ljLXB1dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2Jhc2ljLXB1dC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw3IEBACitpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIFVw
Z3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBbb2JqZWN0IElE
QlRyYW5zYWN0aW9uXSAtIHZlcnNpb25jaGFuZ2UKIFtvYmplY3QgSURCRGF0YWJhc2VdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlLWluZGV4
LWZhaWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9jcmVhdGUtaW5kZXgtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CmluZGV4IDdkNDFkN2YuLjZj
NzBjZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9j
cmVhdGUtaW5kZXgtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGUtaW5kZXgtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CkBA
IC0zLDYgKzMsMTAgQEAgVGhpcyB0ZXN0cyBzb21lIG9idmlvdXMgZmFpbHVyZXMgdGhhdCBjYW4g
aGFwcGVuIHdoaWxlIGNhbGxpbmcgSURCT2JqZWN0U3RvcmUuY3IKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBO
ZXcgdmVyc2lvbiAtIDEKIEZhaWxlZCB0byBjcmVhdGUgaW5kZXggd2l0aCBudWxsIG5hbWUKIEZh
aWxlZCB0byBjcmVhdGUgaW5kZXggd2l0aCBpbnZhbGlkIGtleSBwYXRoCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlb2JqZWN0c3RvcmUtYmFz
aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Ny
ZWF0ZW9iamVjdHN0b3JlLWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCA1OTZkMjU5Li44MDZmNzdl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRl
b2JqZWN0c3RvcmUtYmFzaWMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9yZS1iYXNpYy1leHBlY3RlZC50eHQKQEAg
LTMsNiArMywxMCBAQCBUaGlzIHRlc3Qgc3RhcnRzIHNvbWUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNh
Y3Rpb25zLCBjcmVhdGVzIHNvbWUgb2JqZWN0IHN0b3JlcywgYQogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5k
ZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5P
SW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5l
dyB2ZXJzaW9uIC0gMQogT2JqZWN0IHN0b3JlIG5hbWVzOgogRmlyc3RBYm9ydGVkT2JqZWN0U3Rv
cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jcmVh
dGVvYmplY3RzdG9yZS1mYWlsdXJlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDc4YTQ3NzAuLmEwMjkwZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9yZS1mYWlsdXJlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2NyZWF0ZW9iamVjdHN0
b3JlLWZhaWx1cmVzLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBleGVy
Y2lzZXMgdGhlIG9idmlvdXMgd2F5cyB0aGF0IElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
IGNhbiBmYWlsCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3Jh
ZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBGYWlsZWQgdG8gY3Jl
YXRlIG9iamVjdCBzdG9yZSB3aXRoIGJvdGggYXV0b2luY3JlbWVudCBhbmQgYW4gZW1wdHkga2V5
cGF0aDogRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdjcmVhdGVPYmplY3RTdG9yZScgb24gJ0lE
QkRhdGFiYXNlJzogVGhlIGF1dG9JbmNyZW1lbnQgb3B0aW9uIHdhcyBzZXQgYnV0IHRoZSBrZXlQ
YXRoIG9wdGlvbiB3YXMgZW1wdHkgb3IgYW4gYXJyYXkuCiBPYmplY3Qgc3RvcmUgbmFtZXM6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNv
ci0xLWV4cGVjdGVkLnR4dAppbmRleCBmOTM4YWExLi45N2I5Y2RiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTEtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMS1leHBlY3Rl
ZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIGJhc2ljIElEQkN1cnNvciBmdW5jdGlv
bmFsaXR5CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUg
bmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBTdWNjZXNzIG9wZW5pbmcg
Y3Vyc29yCiBDdXJzb3IgaXM6IFtvYmplY3QgSURCQ3Vyc29yV2l0aFZhbHVlXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMi1leHBl
Y3RlZC50eHQKaW5kZXggOThjZjU3Ny4uOTE1ZjM5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTItZXhwZWN0ZWQudHh0CkBA
IC0zLDYgKzMsMTAgQEAgVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW5jdGlvbmFsaXR5IHdhbGtp
bmcgYSAibmV4dCIgYW5kICJwcmV2IiBjdXJzb3Igb24gYW4gb2IKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBO
ZXcgdmVyc2lvbiAtIDEKIFN1Y2Nlc3MgaXRlcmF0aW5nIG5leHQgY3Vyc29yCiBDdXJzb3IgaXM6
IFtvYmplY3QgSURCQ3Vyc29yV2l0aFZhbHVlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMy1leHBlY3RlZC50eHQKaW5kZXggNTUw
MGZjNS4uNjdkNzJkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2N1cnNvci0zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTMtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhp
cyB0ZXN0IHZhcmlvdXMgdXNlcyBvZiBhZHZhbmNlKCkgYW5kIGNvbnRpbnVlKCkgb24gYSAibmV4
dCIgY3Vyc29yLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdy
YWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogU3VjY2VzcyBpdGVy
YXRpbmcgY3Vyc29yCiBDdXJzb3IgaXM6IFtvYmplY3QgSURCQ3Vyc29yV2l0aFZhbHVlXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci00LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3It
NC1leHBlY3RlZC50eHQKaW5kZXggN2VhZDkyYi4uNDgyNzVhMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci00LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTQtZXhwZWN0ZWQu
dHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhpcyB0ZXN0IHZhcmlvdXMgdXNlcyBvZiBhZHZhbmNlKCkg
YW5kIGNvbnRpbnVlKCkgb24gYSAicHJldiIgY3Vyc29yLgogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2
ZXJzaW9uIC0gMQogU3VjY2VzcyBpdGVyYXRpbmcgY3Vyc29yCiBDdXJzb3IgaXM6IFtvYmplY3Qg
SURCQ3Vyc29yV2l0aFZhbHVlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2N1cnNvci01LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNS1leHBlY3RlZC50eHQKaW5kZXggODllZmQzZi4uM2Vi
YWJjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1
cnNvci01LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vY3Vyc29yLTUtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhpcyB0ZXN0cyBp
dGVyYXRpbmcgYSAibmV4dCIgY3Vyc29yIGluIGEgcmVhZC13cml0ZSB0cmFuc2FjdGlvbiB3aGls
ZSBjaGFuZ2luZwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdy
YWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogQ3Vyc29yIG9wZW4g
YXQga2V5IDAKIFJlY29yZCAwIGRlbGV0ZWQsIGV2ZW4gdGhvdWdoIHRoYXQncyB3aGVyZSB0aGUg
Y3Vyc29yIGN1cnJlbnRseSBwb2ludHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci02LWV4cGVjdGVkLnR4dAppbmRleCAwODQ5Y2Q3
Li4yNTBjMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vY3Vyc29yLTYtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9jdXJzb3ItNi1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRl
c3RzIGl0ZXJhdGluZyBhICJwcmV2IiBjdXJzb3IgaW4gYSByZWFkLXdyaXRlIHRyYW5zYWN0aW9u
IHdoaWxlIGNoYW5naW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFs
IHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBDdXJzb3Ig
b3BlbiBhdCBrZXkgMgogUmVjb3JkIDIgZGVsZXRlZCwgZXZlbiB0aG91Z2ggdGhhdCdzIHdoZXJl
IHRoZSBjdXJzb3IgY3VycmVudGx5IHBvaW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTctZXhwZWN0ZWQudHh0CmluZGV4IDI4
ZWIxMWUuLmU4YWEyYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9jdXJzb3ItNy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2N1cnNvci03LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRo
aXMgdGVzdHMgaXRlcmF0aW5nIGEgIm5leHQiIGN1cnNvciBpbiBhIHJlYWQtd3JpdGUgdHJhbnNh
Y3Rpb24gY29tYmluZWQgd2l0aCBjCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5k
ZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5t
b3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJ
bml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBD
dXJzb3Igb3BlbiBhdCBrZXkgMAogT2JqZWN0IHN0b3JlIGNsZWFyZWQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci04LWV4cGVjdGVk
LnR4dAppbmRleCBkNmFjNWMyLi4zYjVjZDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItOC1leHBlY3RlZC50eHQKQEAgLTMs
NiArMywxMCBAQCBUaGlzIHRlc3RzIGl0ZXJhdGluZyBhICJwcmV2IiBjdXJzb3IgaW4gYSByZWFk
LXdyaXRlIHRyYW5zYWN0aW9uIHdoaWxlIGNoYW5naW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZl
cnNpb24gLSAxCiBDdXJzb3Igb3BlbiBhdCBrZXkgMgogT2JqZWN0IHN0b3JlIGNsZWFyZWQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGF0ZS1iYXNp
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGF0
ZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggODcyMTBjOS4uNjM5N2I4OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RhdGUtYmFzaWMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kYXRlLWJhc2lj
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMgdXNpbmcgRGF0ZSBvYmpl
Y3RzIGFzIGtleXMgYW5kIHZhbHVlcy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKwor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkK
IEluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEK
IEluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlCiBTdWNj
ZXNzIGdldHRpbmcga2V5ICdGcmkgTm92IDA0IDE5NTUgMTc6MDA6MDAgR01ULTA3MDAgKFBEVCkn
IG9mIHR5cGUgb2JqZWN0LCByZXN1bHQgaXMgJ0ZsdXggY2FwYWNpdG9yJyBvZiB0eXBlIHN0cmlu
ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0
ZWRhdGFiYXNlLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTEtZXhwZWN0ZWQudHh0CmluZGV4IGU2MTE4OTQuLmM1OGI2
YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxl
dGVkYXRhYmFzZS0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMS1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBA
QCBUaGlzIHRlc3RzIHRoYXQgaWYgZGVsZXRlRGF0YWJhc2UgaXMgY2FsbGVkIHdoaWxlIHRoZXJl
IGlzIGFscmVhZHkgYW4gb3BlbiBjb25uZQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
K2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNl
bGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwor
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQogSW5pdGlhbCB1cGdyYWRlIG9sZCB2ZXJzaW9uIC0gMCBuZXcgdmVyc2lvbiAtIDEKIFZlcnNp
b24gY2hhbmdlIGNvbXBsZXRlCiBSZXF1ZXN0aW5nIGRlbGV0ZURhdGFiYXNlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRl
ZGF0YWJhc2UtMi1leHBlY3RlZC50eHQKaW5kZXggYjkyYzczZi4uNjI0MjdjNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9k
ZWxldGVkYXRhYmFzZS0yLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMg
dGhhdCBpZiBkZWxldGVEYXRhYmFzZSBpcyBjYWxsZWQgd2hpbGUgdGhlcmUgaXMgYWxyZWFkeSBh
biBvcGVuIGNvbm5lCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVw
Z3JhZGUgb2xkIHZlcnNpb24gLSAwIG5ldyB2ZXJzaW9uIC0gMQogUmVxdWVzdGluZyBkZWxldGVE
YXRhYmFzZQogRmlyc3QgY29ubmVjdGlvbiByZWNlaXZlZCB2ZXJzaW9uY2hhbmdlIGV2ZW50OiBv
bGRWZXJzaW9uIDEsIG5ld1ZlcnNpb24gbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEtZXhwZWN0ZWQudHh0
CmluZGV4IDRjMDJhODguLmE0MmQ0NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS1leHBlY3RlZC50eHQK
QEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIGRlbGV0aW5nIGFuIGluZGV4IGFuZCB0aGVuIGNv
bW1pdHRpbmcgdGhlIHRyYW5zYWN0aW9uLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
K2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNl
bGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwor
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0g
MQogQ291bnQgaXM6IDIKIEN1cnNvciBhdCByZWNvcmQ6IEEgLyAxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMi1l
eHBlY3RlZC50eHQKaW5kZXggOTkxOWE4MS4uNTdhM2QxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC0yLWV4
cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMgZGVsZXRpbmcgYW4gaW5kZXgg
YW5kIHRoZW4gYWJvcnRpbmcgdGhlIHRyYW5zYWN0aW9uLgogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2
ZXJzaW9uIC0gMQogQ291bnQgaXM6IDIKIEN1cnNvciBhdCByZWNvcmQ6IEEgLyAxCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlb2JqZWN0c3Rv
cmUtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
ZGVsZXRlb2JqZWN0c3RvcmUtMS1leHBlY3RlZC50eHQKaW5kZXggNmU1M2ZlOC4uMGM5OGQzMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZW9i
amVjdHN0b3JlLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9kZWxldGVvYmplY3RzdG9yZS0xLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEw
IEBAIFRoaXMgdGVzdCBjcmVhdGVzIGFuIG9iamVjdCBzdG9yZSB0aGVuIHBvcHVsYXRlcyBpdCwg
dGhlbiBjb21taXRzIHRoYXQgdHJhbnNhY3RpCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5h
bWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24g
LSAxCiBJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBjb21wbGV0ZQog
U2Vjb25kIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFi
b3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9k
b3VibGUtYWJvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDMyNWFiMDYuLjFiMTYyYjIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3Vi
bGUtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhpcyB0ZXN0IGFib3J0cyB0
aGUgc2FtZSB0cmFuc2FjdGlvbiB0d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRp
b24gaXMKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBu
ZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKIFNlY29uZCBhYm9ydCBmYWls
ZWQ6IEVycm9yOiBGYWlsZWQgdG8gZXhlY3V0ZSAnYWJvcnQnIG9uICdJREJUcmFuc2FjdGlvbic6
IFRoZSB0cmFuc2FjdGlvbiBpcyBpbmFjdGl2ZSBvciBmaW5pc2hlZC4KIEluaXRpYWwgdXBncmFk
ZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQtaW5kZXgtZmFpbHVyZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1pbmRleC1mYWls
dXJlcy1leHBlY3RlZC50eHQKaW5kZXggZjM1YTBiYi4uYzlmNWEwYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1pbmRleC1mYWlsdXJlcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1p
bmRleC1mYWlsdXJlcy1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIHNv
bWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJPYmpl
Y3RTdG9yZS5pbgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdy
YWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogSW5pdGlhbCB1cGdy
YWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxldGUKIEdvdCBhbiBpbmRleCBhcyBl
eHBlY3RlZDogW29iamVjdCBJREJJbmRleF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9nZXQta2V5cmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1rZXlyYW5nZS1leHBlY3RlZC50eHQKaW5k
ZXggYjViNzcyNC4uNjcxNDAzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2dldC1rZXlyYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1rZXlyYW5nZS1leHBlY3RlZC50eHQKQEAgLTMs
NiArMywxMCBAQCBUaGlzIHRlc3QgZXhlcmNpc2VzIElEQk9iamVjdFN0b3JlLmdldCgpIHdpdGgg
YW4gSURCS2V5UmFuZ2UgYXMgdGhlIHBhcmFtZXRlci4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWRE
QiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4
ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVu
KGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVy
c2lvbiAtIDEKIEluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBs
ZXRlCiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgWy0xIChDbG9zZWQpLCB1bmRlZmluZWQgKE9w
ZW4pXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lk
YmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS1kZWxldGVvYmplY3Rz
dG9yZS1mYWlsdXJlcy1leHBlY3RlZC50eHQKaW5kZXggY2YzYWYxZi4uMTAyMzI1YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmRhdGFiYXNlLWRl
bGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFp
bHVyZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhpcyB0ZXN0cyBzb21lIG9idmlv
dXMgZmFpbHVyZXMgdGhhdCBjYW4gaGFwcGVuIHdoaWxlIGNhbGxpbmcgSURCRGF0YWJhc2UuZGVs
ZXQKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBuZWVk
ZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKIEluaXRpYWwgdXBncmFkZSB2ZXJz
aW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlCiByZWFkd3JpdGUgcHV0IHN1Y2Nlc3MgLSBh
Ym91dCB0byB0cnkgdG8gZGVsZXRlIGFuIG9iamVjdHN0b3JlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFp
bHVyZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYmRhdGFiYXNlLXRyYW5zYWN0aW9uLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAppbmRleCA3N2Zk
NDk4Li42NDU2MjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFpbHVyZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS10cmFuc2Fj
dGlvbi1mYWlsdXJlcy1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIHNv
bWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJEYXRh
YmFzZS50cmFucwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogVXBncmFkZSBuZWVk
ZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKIEZhaWxlZCB0byBzdGFydCBhIHRy
YW5zYWN0aW9uIHdoaWxlIGEgdmVyc2lvbkNoYW5nZSB0cmFuc2FjdGlvbiB3YXMgaW4gcHJvZ3Jl
c3MgLSBFcnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUgJ3RyYW5zYWN0aW9uJyBvbiAnSURCRGF0YWJh
c2UnOiBBIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIGlzIHJ1bm5pbmcuCiB2ZXJzaW9uY2hh
bmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LXByb3BlcnRpZXMtYmFzaWMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LXByb3BlcnRp
ZXMtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDVhZmQxNTkuLmMzN2I1NTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJpbmRleC1wcm9wZXJ0aWVz
LWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRiaW5kZXgtcHJvcGVydGllcy1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMsNiArMywx
MCBAQCBUaGlzIHRlc3RzIGdldHRpbmcgYmFzaWMgcHJvcGVydGllcyBvbiBhbiBJREJJbmRleC4K
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWRE
QiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1z
SW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBuZWVkZWQ6
IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKIFRlc3RJbmRleDEKIFtvYmplY3QgSURC
T2JqZWN0U3RvcmVdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS1leHBlY3RlZC50
eHQKaW5kZXggNmExNjNjNi4uODQzNTY0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNsZWFyLTEtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1j
bGVhci0xLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBjcmVhdGVzIGFu
IG9iamVjdCBzdG9yZSB0aGVuIHBvcHVsYXRlcyBpdC4gSXQgdGhlbiBjbGVhcnMgaXQgYW5kIG1h
a2VzCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVl
ZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBJbml0aWFsIHVwZ3JhZGUgdmVy
c2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBjb21wbGV0ZQogU3VjY2VzcyBvcGVuaW5nIGRhdGFiYXNl
IGNvbm5lY3Rpb24gLSBTdGFydGluZyByZWFkd3JpdGUgdHJhbnNhY3Rpb24KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jbGVh
ci0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJvYmplY3RzdG9yZS1jbGVhci0yLWV4cGVjdGVkLnR4dAppbmRleCA4Y2Y5YThhLi5kZDM1NmFi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2Jq
ZWN0c3RvcmUtY2xlYXItMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNsZWFyLTItZXhwZWN0ZWQudHh0CkBAIC0z
LDYgKzMsMTAgQEAgVGhpcyB0ZXN0IGNyZWF0ZXMgYW4gb2JqZWN0IHN0b3JlIHRoZW4gcG9wdWxh
dGVzIGl0LCB0aGVuIGNvbW1pdHMgdGhhdCB0cmFuc2FjdGkKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KIAogCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4
ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0lu
ZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5v
cGVuKGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcg
dmVyc2lvbiAtIDEKIEluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNv
bXBsZXRlCiBTdWNjZXNzIG9wZW5pbmcgZGF0YWJhc2UgY29ubmVjdGlvbiAtIFN0YXJ0aW5nIHJl
YWR3cml0ZSB0cmFuc2FjdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LTEtZXhw
ZWN0ZWQudHh0CmluZGV4IGI5ZDI3YTYuLjI5NTQzMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jb3VudC0xLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0
c3RvcmUtY291bnQtMS1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3QgZXhl
cmNpc2VzIHZhcmlvdXMgdXNlcyBvZiBJREJPYmplY3RTdG9yZS5jb3VudCgpCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53
ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8
fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lv
biAtIDAgTmV3IHZlcnNpb24gLSAxCiBDb3VudCBpczogMQogQ291bnQgaXM6IDAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1j
b3VudC1mYWlsdXJlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY291bnQtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CmluZGV4
IGFlZDM3MmUuLjcyYmZjNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jb3VudC1mYWlsdXJlcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNv
dW50LWZhaWx1cmVzLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMgc29t
ZSBvYnZpb3VzIGZhaWx1cmVzIHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIElEQk9iamVj
dFN0b3JlLmNvCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3Jh
ZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBGYWlsZWQgdG8gY291
bnQgcmVjb3JkcyBpbiBvYmplY3Qgc3RvcmUgd2l0aCBhbiBpbnZhbGlkIGtleQogRmFpbGVkIHRv
IGNvdW50IHJlY29yZHMgaW4gb2JqZWN0IHN0b3JlIHRoYXQncyBiZWVuIGRlbGV0ZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9y
ZS1kZWxldGUtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTEtZXhwZWN0ZWQudHh0CmluZGV4IDFjMThmMzAu
LmY0OTFkN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9pZGJvYmplY3RzdG9yZS1kZWxldGUtMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLWV4cGVjdGVk
LnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBleGVyY2lzZXMgdmFyaW91cyB1c2VzIG9m
IElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAor
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUp
CiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAx
CiBDb3VudCBpcyAxMTMKIEluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IGNvbXBsZXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0yLWV4cGVjdGVkLnR4
dAppbmRleCA2NzExMThkLi44ZWI4NWIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1k
ZWxldGUtMi1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3QgZXhlcmNpc2Vz
IElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpIGZvbGxvd2VkIGJ5IGFuIGFib3J0IHRvIG1ha2Ugc3Vy
ZSB0aAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5l
ZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogSW5pdGlhbCB1cGdyYWRlIHZl
cnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxldGUKIEFmdGVyIGRlbGV0ZSwgcmVjb3JkIGZv
ciAiZm9vIiBoYXMgdmFsdWU6IHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS1mYWlsdXJlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0
c3RvcmUtZGVsZXRlLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAppbmRleCAxNmQ2YTUyLi5hMGM0MmQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2Jq
ZWN0c3RvcmUtZGVsZXRlLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLWZhaWx1cmVzLWV4
cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMgc29tZSBvYnZpb3VzIGZhaWx1
cmVzIHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIElEQk9iamVjdFN0b3JlLmRlCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQg
dmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBGYWlsZWQgdG8gZGVsZXRlIHJlY29yZCBmcm9t
IG9iamVjdCBzdG9yZSB3aXRoIGFuIGludmFsaWQga2V5CiBGYWlsZWQgdG8gZGVsZXRlIHJlY29y
ZCBmcm9tIG9iamVjdCBzdG9yZSB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXQtZmFp
bHVyZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy1leHBlY3RlZC50eHQKaW5kZXggZDJlYmIwMC4u
NmRlYWFmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy1l
eHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWls
dXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJPYmplY3RTdG9yZS5nZQogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xk
IHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogRmFpbGVkIHRvIGdldCByZWNvcmQgZnJvbSBv
YmplY3Qgc3RvcmUgd2l0aCBhbiBpbnZhbGlkIGtleQogRmFpbGVkIHRvIGdldCByZWNvcmQgZnJv
bSBvYmplY3Qgc3RvcmUgdGhhdCBoYXMgYmVlbiBkZWxldGVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtcHV0LWFuZC1jbGVh
ci1mYWlsdXJlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRib2JqZWN0c3RvcmUtcHV0LWFuZC1jbGVhci1mYWlsdXJlcy1leHBlY3RlZC50eHQK
aW5kZXggZTA1ZWVjNi4uZGQzYjc2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLXB1dC1hbmQtY2xlYXItZmFpbHVyZXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJv
YmplY3RzdG9yZS1wdXQtYW5kLWNsZWFyLWZhaWx1cmVzLWV4cGVjdGVkLnR4dApAQCAtMyw2ICsz
LDEwIEBAIFRoaXMgdGVzdHMgc29tZSBvYnZpb3VzIGZhaWx1cmVzIHRoYXQgY2FuIGhhcHBlbiB3
aGlsZSBjYWxsaW5nIElEQk9iamVjdFN0b3JlLnB1CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNp
b24gLSAxCiBGYWlsZWQgdG8gcHV0IHJlY29yZCBpbnRvIG9iamVjdCBzdG9yZSB3aXRoIGFuIGlu
dmFsaWQga2V5CiBGYWlsZWQgdG8gcHV0IHJlY29yZCBpbnRvIG9iamVjdCBzdG9yZSB0aGF0IGhh
cyBiZWVuIGRlbGV0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9pZGJ0cmFuc2FjdGlvbi1vYmplY3RzdG9yZS1mYWlsdXJlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRidHJhbnNhY3Rpb24tb2Jq
ZWN0c3RvcmUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CmluZGV4IDhiMDEzNTkuLmVkZGU1N2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ0cmFuc2Fj
dGlvbi1vYmplY3RzdG9yZS1mYWlsdXJlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0b3JlLWZhaWx1
cmVzLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMgc29tZSBvYnZpb3Vz
IGZhaWx1cmVzIHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIHRyYW5zYWN0aW9uLm9iamVj
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBVcGdyYWRlIG5lZWRlZDogT2xkIHZl
cnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogW29iamVjdCBJREJUcmFuc2FjdGlvbl0gLSB2ZXJz
aW9uY2hhbmdlCiBbb2JqZWN0IElEQkRhdGFiYXNlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTEtZXhwZWN0ZWQudHh0CmluZGV4IDZk
NmYzYmMxLi4xZmVkOTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaW5kZXgtMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2luZGV4LTEtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhp
cyB0ZXN0cyB0aGUgZXhwZWN0ZWQgdmFsdWVzIGZyb20gc29tZSBtb3JlIGNvbXBsZXggaW5kZXgg
c2l0dWF0aW9ucy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIEluaXRpYWwgdXBn
cmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKIGdldCAiZ29vZCIg
cmVzdWx0IGlzOiBbb2JqZWN0IE9iamVjdF0KIGJhciBpcyBnb29kCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi1leHBlY3RlZC50eHQK
aW5kZXggNTk4MzBkYy4uNjJkNGY0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2luZGV4LTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0yLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEw
IEBAIFRoaXMgdGVzdHMgaW5kZXhlcyBhcmUgbGVmdCBpbiBhcHByb3ByaWF0ZSBzdGF0ZXMgYWZ0
ZXIgYWJvcnRlZCB0cmFuc2FjdGlvbnMuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAor
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUp
CiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAx
CiBnZXQgImdvb2QiIHJlc3VsdCBpczogW29iamVjdCBPYmplY3RdCiBiYXIgaXMgZ29vZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTMt
ZXhwZWN0ZWQudHh0CmluZGV4IDNlMzc3N2EuLjg0NTdiN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMy1leHBlY3RlZC50eHQK
QEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3QgZXhlcmNpc2VzIHRoZSAidW5pcXVlIiBjb25zdHJh
aW50IG9mIGluZGV4ZXMuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFs
IHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBGaXJzdCBw
dXQgc3VjY2VzcwogVmFsdWUgb2YgMSBpczogW29iamVjdCBPYmplY3RdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNC1leHBlY3RlZC50
eHQKaW5kZXggYTE2MGRiZC4uZGMzOGUyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC00LWV4cGVjdGVkLnR4dApAQCAtMyw2ICsz
LDEwIEBAIFRoaXMgdGVzdHMgdGhhdCBpbmRleGVzIGFkZGVkIHRvIGFuIG9iamVjdCBzdG9yZSB3
aXRoIGV4aXN0aW5nIHJlY29yZHMgYXJlIHBvcHVsCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNp
b24gLSAxCiBDb3VudCBpczogMTgKIEN1cnNvciBhdCByZWNvcmQ6IEEgLyAxCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNS1leHBlY3Rl
ZC50eHQKaW5kZXggOTcwN2U2NS4uNWZiZDU0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC01LWV4cGVjdGVkLnR4dApAQCAtMyw2
ICszLDEwIEBAIFRoaXMgdGVzdHMgY3JlYXRpbmcgYW4gaW5kZXggb24gYW4gb2JqZWN0IHN0b3Jl
IHRoYXQgYWxyZWFkeSBoYXMgcmVjb3JkcywgYW5kIHRoCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZl
cnNpb24gLSAxCiBFcnJvciBnZXR0aW5nIGN1cnNvciBjb3VudAogRXJyb3Igb3BlbmluZyBvciBp
dGVyYXRpbmcgY3Vyc29yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNvci0xLWV4cGVjdGVkLnR4dAppbmRleCA4ZTFi
ODI2Li5iMWI2ZjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaW5kZXgtY3Vyc29yLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMS1leHBlY3RlZC50eHQKQEAgLTMsNiAr
MywxMCBAQCBUaGlzIHRlc3RzIGN1cnNvcnMgdGhhdCBpdGVyYXRlIG92ZXIgZW50aXJlIGluZGV4
ZXMuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVl
ZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiAKIFN0YXJ0aW5nIGEgbmV3IGN1
cnNvcjogdGVzdEN1cnNvckRpcmVjdGlvbihpbmRleDEsICduZXh0JykKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29y
LTItZXhwZWN0ZWQudHh0CmluZGV4IDAyNDBjYjAuLjc3ZjE4YTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNv
ci0yLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMgY3Vyc29ycyB0aGF0
IGl0ZXJhdGUgb3ZlciBwYXJ0cyBvZiBpbmRleGVzLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERC
IHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhl
ZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJz
aW9uIC0gMQogCiBTdGFydGluZyBhIG5ldyBjdXJzb3I6IHRlc3RDdXJzb3JEaXJlY3Rpb24oJ25l
eHQnLCBJREJLZXlSYW5nZS5ib3VuZCgnQicsICdEJywgdHJ1ZSwgdHJ1ZSkpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1
cnNvci0zLWV4cGVjdGVkLnR4dAppbmRleCA2ZTc1MmJhLi5jOGZmZDI0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1j
dXJzb3ItMy1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIHRoYXQgaW5k
ZXggY3Vyc29ycyBwcm9wZXJseSBoYW5kbGUgY2hhbmdpbmcgaW5kZXhlcy4KIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2lu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKIEluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9u
IC0gMCBOZXcgdmVyc2lvbiAtIDEKIFN0YXJ0aW5nIGEgbmV3IGN1cnNvcjogdGVzdEN1cnNvckRp
cmVjdGlvbihpbmRleCwgJ25leHQnKQogVGVzdEluZGV4MSBjb3VudCBpczogMTgKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1nZXQtY291bnQt
YmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2luZGV4LWdldC1jb3VudC1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggMzQ1ZmFhYS4uNDlmN2Qy
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4
LWdldC1jb3VudC1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2luZGV4LWdldC1jb3VudC1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMs
NiArMywxMCBAQCBUaGlzIHRlc3RzIHRoZSBtb3N0IGJhc2ljIG9wZXJhdGlvbiBvZiB0aGUgSURC
SW5kZXggbWV0aG9kcyBnZXQoKSwgZ2V0S2V5KCksIGFuZAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2
ZXJzaW9uIC0gMQogZ2V0IHJlc3VsdCBpczogW29iamVjdCBPYmplY3RdCiBiYXIgaXMgZ29vZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWdl
dC1jb3VudC1mYWlsdXJlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVzLWV4cGVjdGVkLnR4dAppbmRleCBm
YTE5MWJiLi4xZmMwZGM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVz
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdHMgc29tZSBvYnZpb3VzIGZh
aWx1cmVzIHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIHRoZSBJREJJbmRleCBtZXRoCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBP
bGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBGYWlsZWQgdG8gZ2V0IHdpdGggYSBudWxs
IGtleQogRmFpbGVkIHRvIGdldEtleSB3aXRoIGEgbnVsbCBrZXkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9rZXlwYXRoLWJhc2ljLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9rZXlwYXRoLWJhc2ljLWV4
cGVjdGVkLnR4dAppbmRleCBiZjk3ZmI0Li40YTlhZTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4va2V5cGF0aC1iYXNpYy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2tleXBhdGgtYmFzaWMtZXhw
ZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhpcyB0ZXN0IGNyZWF0ZXMgc29tZSBvYmplY3Qg
c3RvcmVzIHdpdGgga2V5cGF0aHMuIEl0IHRoZW4gcHV0cyBzb21lIHZhbHVlcyBpbgogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZl
cnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogb2JqZWN0IHB1dCBTVUNDRVNTIC0gZm9vMQogYXJy
YXkgcHV0IFNVQ0NFU1MgLSBmb28yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggYzBmODI0OS4uM2JlY2ZiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3Rz
dG9yZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBl
eGVyY2lzZXMgdGhlIHJlYWRvbmx5IGF0dHJpYnV0ZXMgb24gYW4gSURCT2JqZWN0U3RvcmUuCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBGaXJzdCB1cGdyYWRlIG5lZWRlZDogT2xk
IHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogW29iamVjdCBJREJUcmFuc2FjdGlvbl0gLSB2
ZXJzaW9uY2hhbmdlCiBbb2JqZWN0IElEQkRhdGFiYXNlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1hZHZhbmNlLWZh
aWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9vYmplY3RzdG9yZS1jdXJzb3ItYWR2YW5jZS1mYWlsdXJlcy1leHBlY3RlZC50eHQKaW5kZXgg
ODI0YjBhNy4uY2NiYTdhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1hZHZhbmNlLWZhaWx1cmVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUt
Y3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhp
cyB0ZXN0cyBzb21lIG9idmlvdXMgZmFpbHVyZXMgdGhhdCBjYW4gaGFwcGVuIHdoaWxlIGNhbGxp
bmcgSURCQ3Vyc29yLmFkdmFuY2UKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIElu
aXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKIEZh
aWxlZCB0byBhZHZhbmNlIG9iamVjdCBzdG9yZSBjdXJzb3Igd2l0aCB1bmRlZmluZWQgY291bnQg
YXJndW1lbnQKIEZhaWxlZCB0byBhZHZhbmNlIG9iamVjdCBzdG9yZSBjdXJzb3Igd2l0aCAnMCcg
Y291bnQgYXJndW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItY29udGludWUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNv
ci1jb250aW51ZS1mYWlsdXJlcy1leHBlY3RlZC50eHQKaW5kZXggZDA2MjVkOC4uNDdiYjhmNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0
b3JlLWN1cnNvci1jb250aW51ZS1mYWlsdXJlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1jb250aW51ZS1m
YWlsdXJlcy1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIHNvbWUgb2J2
aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJDdXJzb3IuY29u
dGludQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5l
ZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogRmFpbGVkIHRvIGNvbnRpbnVl
IGEgJ25leHQnIG9iamVjdCBzdG9yZSBjdXJzb3IgdG8gYSBrZXkgbGVzcyB0aGFuIHRoZSBjdXJy
ZW50IGtleQogRmFpbGVkIHRvIGNvbnRpbnVlIG9iamVjdCBzdG9yZSBjdXJzb3Igd2l0aCBpbnZh
bGlkIGtleQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L29wZW5jdXJzb3ItZmFpbHVyZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL29wZW5jdXJzb3ItZmFpbHVyZXMtZXhwZWN0ZWQudHh0CmluZGV4IGI2
ODFkMGQuLmNkZjE0MTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9vcGVuY3Vyc29yLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmN1cnNvci1mYWlsdXJlcy1leHBlY3RlZC50
eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0
IGNhbiBoYXBwZW4gd2hpbGUgb3BlbmluZyBjdXJzb3JzLgogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2
ZXJzaW9uIC0gMQogRmFpbGVkIHRvIG9wZW4gb2JqZWN0IHN0b3JlIGN1cnNvciB3aXRoIGludmFs
aWQga2V5cGF0aAogRmFpbGVkIHRvIG9wZW4gb2JqZWN0IHN0b3JlIGN1cnNvciB3aXRoIGludmFs
aWQgZGlyZWN0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vb3BlbmRhdGFiYXNlLXN1Y2Nlc3MtYWZ0ZXItdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXN1
Y2Nlc3MtYWZ0ZXItdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKaW5kZXggM2M1NTQ2ZC4uZGJm
MzA3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29w
ZW5kYXRhYmFzZS1zdWNjZXNzLWFmdGVyLXZlcnNpb25jaGFuZ2UtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2Utc3VjY2Vz
cy1hZnRlci12ZXJzaW9uY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMg
dGVzdCB2ZXJpZmllcyB0aGF0OiAtIE9wZW5pbmcgYSBuZXcgZGF0YWJhc2UgcmVzdWx0cyBpbiB0
aGUgb251cGdyYWRlbmVlZGVkCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiB1cGdy
YWRlbmVlZGVkOiBvbGQgdmVyc2lvbiAtIDAgbmV3IHZlcnNpb24gLSAxCiBbb2JqZWN0IElEQlRy
YW5zYWN0aW9uXQogVmVyc2lvbiBjaGFuZ2UgY29tcGxldGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtdmVyc2lvbnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFz
ZS12ZXJzaW9ucy1leHBlY3RlZC50eHQKaW5kZXggYzkwN2Y5Mi4uZTBkOWVkOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS12ZXJz
aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL29wZW5kYXRhYmFzZS12ZXJzaW9ucy1leHBlY3RlZC50eHQKQEAgLTMsNyArMywxMCBAQCBU
aGlzIHRlc3QgY3JlYXRlcyBhIG5ldyBkYXRhYmFzZSB3aXRoIHRoZSBkZWZhdWx0IHZlcnNpb24s
IGNvbW1pdHMgdGhhdCB2ZXJzaW9uYwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVtv
YmplY3QgSURCT3BlbkRCUmVxdWVzdF0gKGZpcnN0UGhhc2UpCitpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHVwZ3JhZGVuZWVkZWQgKGZp
cnN0UGhhc2UpOiBvbGQgdmVyc2lvbiAtIDAgbmV3IHZlcnNpb24gLSAxCiBbb2JqZWN0IElEQlRy
YW5zYWN0aW9uXQogVmVyc2lvbiBjaGFuZ2UgY29tcGxldGUgKGZpcnN0UGhhc2UpLiBEYXRhYmFz
ZSB2ZXJzaW9uIGlzIG5vdyAtIDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvYWJvcnQtcmVxdWVzdHMtY2FuY2VsbGVkLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9hYm9ydC1yZXF1ZXN0
cy1jYW5jZWxsZWQuanMKaW5kZXggM2VhOTc1YS4uNzc5NTJmZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9hYm9ydC1yZXF1ZXN0cy1j
YW5jZWxsZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9hYm9ydC1yZXF1ZXN0cy1jYW5jZWxsZWQuanMKQEAgLTEsOSArMSw3IEBACiBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB1bi1oYW5kbGVkIHJlcXVlc3RzIGlu
IGEgdHJhbnNhY3Rpb24gcmVjZWl2ZSBvbmVycm9yIGNhbGxiYWNrcyB3aGVuIHRoZSB0cmFuc2Fj
dGlvbiBpcyBhYm9ydGVkLiIpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0K
K2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsK
QEAgLTMyLDQ1ICszMCw0NCBAQCBmdW5jdGlvbiBzZXR1cFJlcXVlc3QoY29kZSkKICAgICB9ICAg
CiB9CiAKLXN0YXJ0VGVzdCgpOwordmFyIGRibmFtZTsKIAotZnVuY3Rpb24gc3RhcnRUZXN0KCkg
ewotICAgIHZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJBYm9ydFJl
cXVlc3RzQ2FuY2VsbGVkRGF0YWJhc2UiLCAxKTsKLSAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGRlYnVnKCJJbml0aWFsIHVwZ3Jh
ZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVy
c2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShl
dmVudCkgeworICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAt
ICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJz
aW9uKTsKIAotICAgICAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50
cmFuc2FjdGlvbjsKLSAgICAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
LSAgICAgICAgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9i
amVjdFN0b3JlIik7Ci0gICAgICAgIHNldHVwUmVxdWVzdCgib2JqZWN0U3RvcmUucHV0KHsgYmFy
OiAnQScgfSwgMSk7Iik7Ci0gICAgICAgIHNldHVwUmVxdWVzdCgib2JqZWN0U3RvcmUucHV0KHsg
YmFyOiAnQicgfSwgMik7Iik7Ci0gICAgICAgIHNldHVwUmVxdWVzdCgib2JqZWN0U3RvcmUucHV0
KHsgYmFyOiAnQycgfSwgMyk7Iik7CisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50
LnRhcmdldC50cmFuc2FjdGlvbjsKKyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgIGV2ZW50LnRhcmdldC5vbmVycm9yID0gbnVsbDsKKyAgICBkYm5hbWUgPSBkYXRh
YmFzZS5uYW1lOworICAgIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUo
IlRlc3RPYmplY3RTdG9yZSIpOworICAgIHNldHVwUmVxdWVzdCgib2JqZWN0U3RvcmUucHV0KHsg
YmFyOiAnQScgfSwgMSk7Iik7CisgICAgc2V0dXBSZXF1ZXN0KCJvYmplY3RTdG9yZS5wdXQoeyBi
YXI6ICdCJyB9LCAyKTsiKTsKKyAgICBzZXR1cFJlcXVlc3QoIm9iamVjdFN0b3JlLnB1dCh7IGJh
cjogJ0MnIH0sIDMpOyIpOwogCi0gICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5hYm9ydCgpOwor
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5hYm9ydCgpOwogCi0gICAgICAgIHZlcnNpb25UcmFuc2Fj
dGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGRlYnVnKCJJbml0
aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydGVkIik7Ci0gICAgICAg
ICAgICBkYXRhYmFzZS5jbG9zZSgpOwotICAgICAgICAgICAgY29udGludWVUZXN0MSgpOwotICAg
ICAgICB9CisgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rp
b24gYWJvcnRlZCIpOworICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICBjb250aW51
ZVRlc3QxKCk7CisgICAgfQogCi0gICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUg
dmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGNvbXBsZXRlIik7Ci0gICAgICAg
ICAgICBkb25lKCk7Ci0gICAgICAgIH0KKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgdmVy
c2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGNvbXBsZXRlIik7CisgICAgICAgIGRv
bmUoKTsKKyAgICB9CiAKLSAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9u
Y2hhbmdlIHRyYW5zYWN0aW9uIGVycm9yICIgKyBldmVudCk7Ci0gICAgICAgIH0KKyAgICB2ZXJz
aW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGRlYnVn
KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBlcnJvciAiICsgZXZl
bnQpOwogICAgIH0KIH0KIAogZnVuY3Rpb24gY29udGludWVUZXN0MSgpIHsKLSAgICB2YXIgY3Jl
YXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiQWJvcnRSZXF1ZXN0c0NhbmNlbGxl
ZERhdGFiYXNlIiwgMSk7CisgICAgdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oZGJuYW1lLCAxKTsKICAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJTZWNvbmQgdXBncmFkZSBuZWVkZWQ6IE9s
ZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2
ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVh
dGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0g
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgICAgICBkYXRhYmFzZSA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CiAgICAgICAgIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9hYm9ydGVkLXB1dC5qcyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvYWJvcnRlZC1wdXQuanMKaW5k
ZXggZGYwOTE3MS4uN2JkNjYxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9hYm9ydGVkLXB1dC5qcworKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2Fib3J0ZWQtcHV0LmpzCkBAIC0yLDI0
ICsyLDI0IEBAIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY3JlYXRlcyBzb21lIG9iamVjdCBzdG9y
ZXMsIHB1dHRpbmcgc29tZSB2YWx1ZXMgaW4gdGhlbSwKIEluIGEgbmV3IHRyYW5zYWN0aW9uLCBp
dCB0aGVuIG92ZXJ3cml0ZXMgdGhvc2UgdmFsdWVzLCBidXQgdGhlbiBhYm9ydHMgdGhlIHRyYW5z
YWN0aW9uLiBcCiBGaW5hbGx5IGl0IHZlcmlmaWVzIGV2ZXJ5dGhpbmcgaXMgc2V0IHVwIGZyb20g
dGhlIGZpcnN0IHRyYW5zYWN0aW9uLCBhbmQgbm90aGluZyBmcm9tIHRoZSBhYm9ydGVkIG9uZSBj
b21taXR0ZWQuIik7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQoraW5kZXhl
ZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOwogCi12YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVk
REIub3BlbigiQWJvcnRlZFB1dFRlc3REYXRhYmFzZSIpOwogCiBmdW5jdGlvbiBkb25lKCkKIHsK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihldmVudCkKK3ZhciBkYm5hbWU7CisKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVu
dCkKIHsKICAgICBkZWJ1ZygiRmlyc3QgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiAr
IGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24p
OwogICAgIAotICAgIHZhciB0eCA9IHJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZXZlbnQudGFy
Z2V0Lm9uZXJyb3IgPSBudWxsOworICAgIHZhciB0eCA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlv
bjsKICAgICB2YXIgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGRibmFtZSA9IGRiLm5h
bWU7CiAKICAgICBkZWJ1Zyh0eCArICIgLSAiICsgdHgubW9kZSk7CiAgICAgZGVidWcoZGIpOwpA
QCAtNzcsNyArNzcsNyBAQCByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50
KQogCiBmdW5jdGlvbiBjb250aW51ZVRlc3QxKCkKIHsKLSAgICB2YXIgcmVxdWVzdCA9IHdpbmRv
dy5pbmRleGVkREIub3BlbigiQWJvcnRlZFB1dFRlc3REYXRhYmFzZSIsIDIpOworICAgIHZhciBy
ZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMik7CiAKICAgICByZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJTZWNv
bmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAi
IE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwpAQCAtMTQ2LDcgKzE0Niw3IEBA
IGZ1bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogCiBmdW5jdGlvbiBjb250aW51ZVRlc3QyKCkKIHsK
LSAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiQWJvcnRlZFB1dFRlc3RE
YXRhYmFzZSIsIDIpOworICAgIHZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMik7CiAKICAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgICAgIGRlYnVnKCJUaGlyZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAi
ICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lv
bik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2F1dG9pbmNyZW1lbnQtYWJvcnQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2F1dG9pbmNyZW1lbnQtYWJvcnQuanMKaW5kZXggZjFkMmI1
MC4uNTk0YjlmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9hdXRvaW5jcmVtZW50LWFib3J0LmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvYXV0b2luY3JlbWVudC1hYm9ydC5qcwpA
QCAtMywyNSArMywyMSBAQCBJdCB0aGVuIHB1dHMgc29tZSB0aGluZ3MgaW4gdGhhdCBvYmplY3Qg
c3RvcmUsIGNoZWNraW5nIHRoZSBrZXlzIHRoYXQgd2VyZSB1c2VkLgogQnV0IGl0IHRoZW4gYWJv
cnRzIHRoYXQgdHJhbnNhY3Rpb24uIFwKIFRoZW4gaXQgb3BlbnMgYSBuZXcgb25lIGFuZCBwdXRz
IHNvbWV0aGluZyBpbiBpdCwgZG91YmxlIGNoZWNraW5nIHRoYXQgdGhlIGtleSBnZW5lcmF0b3Ig
d2FzIHJldmVydGVkIHdoZW4gdGhlIGFib3ZlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkLiIpOwog
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CiAKIAotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci19Ci0KIGZ1bmN0aW9uIGRvbmUoKQogewogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCi12YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiQXV0b2lu
Y3JlbWVudEFib3J0RGF0YWJhc2UiLCAxKTsKIHZhciBkYXRhYmFzZTsKIAotY3JlYXRlUmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURh
dGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQg
dmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVu
dC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1
ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb247CiAgICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAg
IHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCdUZXN0T2JqZWN0
U3RvcmUnLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiAgICAgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2Jhc2ljLWFkZC5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvYmFzaWMtYWRk
LmpzCmluZGV4IDZhYmM3YzIuLjQyMjVjMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvYmFzaWMtYWRkLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvYmFzaWMtYWRkLmpzCkBAIC0x
LDIxICsxLDE4IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGRvZXMgYmFzaWMgdGVzdGluZyBv
ZiBJREJPYmplY3RTdG9yZS5hZGQoKSwgbWFraW5nIHN1cmUgdGhhdCBhbiBhdHRlbXB0IHRvIG92
ZXJ3cml0ZSBhbiBhbHJlYWR5LWV4aXN0aW5nIGtleSBmYWlscyB3aXRoIHRoZSBhcHByb3ByaWF0
ZSBlcnJvci4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CiAKLXZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWRE
Qi5vcGVuKCJOZXdEYXRhYmFzZUFkZFRlc3REYXRhYmFzZSIpOwogCiBmdW5jdGlvbiBkb25lKCkK
IHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAg
IGRlYnVnKCJVcGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lv
biArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAgICAgCi0gICAgdmFy
IHR4ID0gcmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdHggPSBldmVudC50YXJnZXQudHJh
bnNhY3Rpb247CiAgICAgdmFyIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKIAogICAgIGRlYnVn
KHR4ICsgIiAtICIgKyB0eC5tb2RlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvYmFzaWMtcHV0LmpzIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9iYXNpYy1wdXQuanMKaW5kZXggMDNiNjFj
OS4uNWFjN2RmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9iYXNpYy1wdXQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9iYXNpYy1wdXQuanMKQEAgLTEsMjAgKzEsMTcgQEAKIAot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVE
YXRhYmFzZSk7CiAKLXZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJOZXdEYXRh
YmFzZVB1dFRlc3REYXRhYmFzZSIpOwogCiBmdW5jdGlvbiBkb25lKCkKIHsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIAotcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkg
eworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJVcGdyYWRl
IG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNp
b24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAgICAgCi0gICAgdmFyIHR4ID0gcmVxdWVzdC50
cmFuc2FjdGlvbjsKKyAgICB2YXIgdHggPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAg
dmFyIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKIAogICAgIGRlYnVnKHR4ICsgIiAtICIgKyB0
eC5tb2RlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvY3JlYXRlLWluZGV4LWZhaWx1cmVzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jcmVhdGUtaW5kZXgtZmFpbHVyZXMuanMKaW5k
ZXggMTllZjQ1ZS4uMDA5OWM1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jcmVhdGUtaW5kZXgtZmFpbHVyZXMuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jcmVhdGUtaW5kZXgt
ZmFpbHVyZXMuanMKQEAgLTEsOSArMSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzb21l
IG9idmlvdXMgZmFpbHVyZXMgdGhhdCBjYW4gaGFwcGVuIHdoaWxlIGNhbGxpbmcgSURCT2JqZWN0
U3RvcmUuY3JlYXRlSW5kZXgoKS4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgp
CiB7CkBAIC0xNSwxMyArMTMsMTMgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiAgICAgZGVidWco
bWVzc2FnZSk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVu
KCJJREJPYmplY3RTdG9yZUNyZWF0ZUluZGV4RmFpbHVyZXNEYXRhYmFzZSIsIDEpOwogdmFyIGRh
dGFiYXNlOwogCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50
KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRp
YWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAi
IE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25U
cmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZlcnNpb25U
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICBkYXRhYmFzZSA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRl
T2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2NyZWF0ZW9iamVjdHN0b3JlLWJh
c2ljLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9j
cmVhdGVvYmplY3RzdG9yZS1iYXNpYy5qcwppbmRleCBkZDU2MmVkLi5hMWQ0MGIxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2NyZWF0
ZW9iamVjdHN0b3JlLWJhc2ljLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9yZXNvdXJjZXMvY3JlYXRlb2JqZWN0c3RvcmUtYmFzaWMuanMKQEAgLTEsMTAgKzEs
OCBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBzdGFydHMgc29tZSB2ZXJzaW9uIGNoYW5nZSB0
cmFuc2FjdGlvbnMsIGNyZWF0ZXMgc29tZSBvYmplY3Qgc3RvcmVzLCBhbmQgdmFyaWFibHkgY29t
bWl0cyBvciBhYm9ydHMgdGhlIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9ucy4gXAogQXQgdmFy
aW91cyBzdGFnZXMgaXQgdmVyaWZpZXMgdGhlIG9iamVjdCBzdG9yZXMgaW4gdGhlIGRhdGFiYXNl
IGFyZSBhcy1leHBlY3RlZC4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7
CkBAIC0xOSwxMyArMTcsMTYgQEAgZnVuY3Rpb24gZHVtcE9iamVjdFN0b3JlcyhkYXRhYmFzZSkg
ewogICAgIH0KIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4o
IkNyZWF0ZU9iamVjdFN0b3JlVGVzdERhdGFiYXNlIiwgMSk7Ci0KLWNyZWF0ZVJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK3ZhciBkYm5hbWU7CitmdW5jdGlvbiBw
cmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSBuZWVk
ZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0g
IiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNy
ZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZXZlbnQudGFyZ2V0Lm9uZXJyb3IgPSBudWxs
OworCisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlv
bjsKICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGRibmFtZSA9
IGRhdGFiYXNlLm5hbWU7CiAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2Jq
ZWN0U3RvcmUoIkZpcnN0QWJvcnRlZE9iamVjdFN0b3JlIik7CiAgICAgdmFyIHJlcXVlc3QgPSBv
YmplY3RTdG9yZS5wdXQoImZvbyIsICJiYXIiKTsKIApAQCAtNTksMTIgKzYwLDEyIEBAIGNyZWF0
ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKIAogZnVuY3Rpb24g
Y29udGludWVUZXN0MSgpCiB7Ci0gICAgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiQ3JlYXRlT2JqZWN0U3RvcmVUZXN0RGF0YWJhc2UiLCAxKTsKKyAgICBjcmVhdGVSZXF1
ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSk7CiAKICAgICBjcmVhdGVSZXF1
ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJT
ZWNvbmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24g
KyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgICAgIHZhciB2
ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB2
YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgICAgICBkdW1wT2JqZWN0
U3RvcmVzKGRhdGFiYXNlKTsKICAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3Jl
YXRlT2JqZWN0U3RvcmUoIkZpcnN0Q29tbWl0dGVkT2JqZWN0U3RvcmUiKTsKQEAgLTkwLDEyICs5
MSwxMiBAQCBmdW5jdGlvbiBjb250aW51ZVRlc3QxKCkKIAogZnVuY3Rpb24gY29udGludWVUZXN0
MigpCiB7Ci0gICAgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiQ3JlYXRl
T2JqZWN0U3RvcmVUZXN0RGF0YWJhc2UiLCAyKTsKKyAgICBjcmVhdGVSZXF1ZXN0ID0gd2luZG93
LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMik7CiAKICAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJUaGlyZCB1cGdyYWRl
IG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNp
b24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICAgICAgdmFyIHZlcnNpb25UcmFuc2Fj
dGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgICAgIHZhciB2ZXJzaW9uVHJh
bnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgICAgIHZhciBkYXRhYmFz
ZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFi
YXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJTZWNvbmRDb21taXR0ZWRPYmplY3RTdG9yZSIpOwogCkBA
IC0xMjIsNyArMTIzLDcgQEAgZnVuY3Rpb24gY29udGludWVUZXN0MigpCiAKIGZ1bmN0aW9uIGNv
bnRpbnVlVGVzdDMoKQogewotICAgIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9w
ZW4oIkNyZWF0ZU9iamVjdFN0b3JlVGVzdERhdGFiYXNlIiwgMyk7CisgICAgY3JlYXRlUmVxdWVz
dCA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDMpOwogCiAgICAgY3JlYXRlUmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewogICAgICAgICBkZWJ1ZygiRm91
cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsg
IiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvY3JlYXRlb2JqZWN0c3Rv
cmUtZmFpbHVyZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2NyZWF0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLmpzCmluZGV4IDU0NTAwNjQuLjMyY2U0
YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvY3JlYXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jcmVhdGVvYmplY3RzdG9yZS1mYWlsdXJl
cy5qcwpAQCAtMSw5ICsxLDcgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZXhlcmNpc2VzIHRo
ZSBvYnZpb3VzIHdheXMgdGhhdCBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSBjYW4gZmFp
bC4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CkBAIC0xOCwxNCArMTYs
MTQgQEAgZnVuY3Rpb24gZHVtcE9iamVjdFN0b3JlcyhkYXRhYmFzZSkgewogICAgIH0KIH0KIAot
dmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkNyZWF0ZU9iamVjdFN0
b3JlRmFpbHVyZXNUZXN0RGF0YWJhc2UiLCAxKTsKIHZhciBkYXRhYmFzZTsKIHZhciB2ZXJzaW9u
VHJhbnNhY3Rpb247CiAKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1Zygi
SW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lv
biArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2ZXJzaW9u
VHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZlcnNpb25UcmFu
c2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICBkYXRhYmFzZSA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CiAKICAgICB0cnkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItMS5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvY3Vyc29yLTEuanMKaW5kZXggMzgw
MmFmZi4uMTEyYTdjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItMS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2N1cnNvci0xLmpzCkBAIC0xLDkgKzEsNyBAQAogZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdHMgYmFzaWMgSURCQ3Vyc29yIGZ1bmN0aW9uYWxpdHkiKTsKIAot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVE
YXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CkBAIC0xNSw4ICsxMyw2IEBAIGZ1bmN0
aW9uIGxvZyhtZXNzYWdlKQogICAgIGRlYnVnKG1lc3NhZ2UpOwogfQogCi12YXIgY3JlYXRlUmVx
dWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiQ3Vyc29yMURhdGFiYXNlIiwgMSk7Ci0KIGZ1
bmN0aW9uIGxvZ0N1cnNvcihjdXJzb3IpCiB7CiAgICAgZGVidWcoIkN1cnNvciBpczogIiArIGN1
cnNvcik7CkBAIC01NCwxMCArNTAsMTEgQEAgZnVuY3Rpb24gdGVzdEN1cnNvckRpcmVjdGlvbihk
aXJlY3Rpb24pCiAgICAgc2V0dXBSZXF1ZXN0KHJlcXVlc3QpOwogfQogCi1jcmVhdGVSZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0
YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2
ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50
Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVl
c3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbjsKICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0Owog
ICAgIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RT
dG9yZSIpOwogICAgIGluZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoIlRlc3RJbmRleDEi
LCAiYmFyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL2N1cnNvci0yLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItMi5qcwppbmRleCBjNjRhZWZhLi40Yjg4OTEzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2N1
cnNvci0yLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvY3Vyc29yLTIuanMKQEAgLTEsOSArMSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGNoZWNrcyBiYXNpYyBmdW5jdGlvbmFsaXR5IHdhbGtpbmcgYSBcIm5leHRcIiBhbmQgXCJwcmV2
XCIgY3Vyc29yIG9uIGFuIG9iamVjdCBzdG9yZSB3aXRoIHNvbWUgcmVjb3Jkcy4iKTsKIAotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRh
YmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CkBAIC0xNSw4ICsxMyw2IEBAIGZ1bmN0aW9u
IGxvZyhtZXNzYWdlKQogICAgIGRlYnVnKG1lc3NhZ2UpOwogfQogCi12YXIgY3JlYXRlUmVxdWVz
dCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiQ3Vyc29yMkRhdGFiYXNlIiwgMSk7Ci0KIGZ1bmN0
aW9uIGxvZ0N1cnNvcihjdXJzb3IpCiB7CiAgICAgZGVidWcoIkN1cnNvciBpczogIiArIGN1cnNv
cik7CkBAIC01MSwxMCArNDcsMTEgQEAgZnVuY3Rpb24gc2V0dXBSZXF1ZXN0KHJlcXVlc3QpCiAg
ICAgfSAKIH0KIAotY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVu
dCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0
aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsg
IiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9u
VHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9u
VHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgdmFyIGRhdGFiYXNl
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0
ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItMy5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvY3Vyc29yLTMuanMKaW5k
ZXggN2M2YmFkMS4uNWMyOWFjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItMy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2N1cnNvci0zLmpzCkBAIC0xLDkgKzEsNyBA
QAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2YXJpb3VzIHVzZXMgb2YgYWR2YW5jZSgpIGFuZCBj
b250aW51ZSgpIG9uIGEgXCJuZXh0XCIgY3Vyc29yLiIpOwogCi1pZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLX0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5j
dGlvbiBkb25lKCkKIHsKQEAgLTE1LDggKzEzLDYgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiAg
ICAgZGVidWcobWVzc2FnZSk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4
ZWREQi5vcGVuKCJDdXJzb3IzRGF0YWJhc2UiLCAxKTsKLQogZnVuY3Rpb24gbG9nQ3Vyc29yKGN1
cnNvcikKIHsKICAgICBkZWJ1ZygiQ3Vyc29yIGlzOiAiICsgY3Vyc29yKTsKQEAgLTYxLDEwICs1
NywxMSBAQCBmdW5jdGlvbiBzZXR1cFJlcXVlc3QyKHJlcXVlc3QpCiAgICAgfSAKIH0KIAotY3Jl
YXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24g
cHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVl
ZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAt
ICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBj
cmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKICAgICBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJU
ZXN0T2JqZWN0U3RvcmUiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItNC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvY3Vyc29yLTQuanMKaW5kZXggNjA2ZjI5ZS4uNzM0
MjZkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9jdXJzb3ItNC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vcmVzb3VyY2VzL2N1cnNvci00LmpzCkBAIC0xLDkgKzEsNyBAQAogZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCB2YXJpb3VzIHVzZXMgb2YgYWR2YW5jZSgpIGFuZCBjb250aW51ZSgpIG9uIGEg
XCJwcmV2XCIgY3Vyc29yLiIpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0K
K2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsK
QEAgLTE1LDggKzEzLDYgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiAgICAgZGVidWcobWVzc2Fn
ZSk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJDdXJz
b3I0RGF0YWJhc2UiLCAxKTsKLQogZnVuY3Rpb24gbG9nQ3Vyc29yKGN1cnNvcikKIHsKICAgICBk
ZWJ1ZygiQ3Vyc29yIGlzOiAiICsgY3Vyc29yKTsKQEAgLTYxLDEwICs1NywxMSBAQCBmdW5jdGlv
biBzZXR1cFJlcXVlc3QyKHJlcXVlc3QpCiAgICAgfSAKIH0KIAotY3JlYXRlUmVxdWVzdC5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNl
KGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lv
biAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdW
ZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRy
YW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJh
bnNhY3Rpb247CiAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBv
YmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUi
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9jdXJzb3ItNS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvY3Vyc29yLTUuanMKaW5kZXggMmM3OGJjOC4uYjQ5NjM4ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3It
NS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2Vz
L2N1cnNvci01LmpzCkBAIC0xLDkgKzEsNyBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaXRl
cmF0aW5nIGEgXCJuZXh0XCIgY3Vyc29yIGluIGEgcmVhZC13cml0ZSB0cmFuc2FjdGlvbiB3aGls
ZSBjaGFuZ2luZyByZWNvcmRzLiIpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LX0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkK
IHsKQEAgLTE1LDEyICsxMywxMSBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKICAgICBkZWJ1Zyht
ZXNzYWdlKTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4o
IkN1cnNvcjVEYXRhYmFzZSIsIDEpOwotCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAg
ICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50
Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0g
ICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247Cisg
ICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIHZhciBvYmplY3RTdG9y
ZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9j
dXJzb3ItNi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJj
ZXMvY3Vyc29yLTYuanMKaW5kZXggZWMwM2RjNC4uZjZiNzZkMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItNi5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2N1cnNvci02
LmpzCkBAIC0xLDkgKzEsNyBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaXRlcmF0aW5nIGEg
XCJwcmV2XCIgY3Vyc29yIGluIGEgcmVhZC13cml0ZSB0cmFuc2FjdGlvbiB3aGlsZSBjaGFuZ2lu
ZyByZWNvcmRzLiIpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KK2luZGV4
ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKQEAgLTE1
LDEyICsxMywxMSBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKICAgICBkZWJ1ZyhtZXNzYWdlKTsK
IH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkN1cnNvcjZE
YXRhYmFzZSIsIDEpOwotCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWco
IkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZl
cnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZl
cnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICB2YXIgZGF0
YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFi
YXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItNy5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvY3Vyc29y
LTcuanMKaW5kZXggNjA5NTFlNy4uNmM3MTllNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9jdXJzb3ItNy5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2N1cnNvci03LmpzCkBAIC0x
LDkgKzEsNyBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaXRlcmF0aW5nIGEgXCJuZXh0XCIg
Y3Vyc29yIGluIGEgcmVhZC13cml0ZSB0cmFuc2FjdGlvbiBjb21iaW5lZCB3aXRoIGNsZWFyaW5n
IHRoZSBvYmplY3Qgc3RvcmUuIik7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
fQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworCiAKIGZ1bmN0aW9uIGRvbmUoKQog
ewpAQCAtMTUsMTIgKzEzLDExIEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogICAgIGRlYnVnKG1l
c3NhZ2UpOwogfQogCi12YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Blbigi
Q3Vyc29yN0RhdGFiYXNlIiwgMSk7Ci0KLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAg
ICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQu
b2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAg
ICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAg
ICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAg
IHZhciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2N1
cnNvci04LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy9jdXJzb3ItOC5qcwppbmRleCA1MDQ2NWU1Li42YzNiYzRmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2N1cnNvci04LmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvY3Vyc29yLTgu
anMKQEAgLTEsOSArMSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBpdGVyYXRpbmcgYSBc
InByZXZcIiBjdXJzb3IgaW4gYSByZWFkLXdyaXRlIHRyYW5zYWN0aW9uIHdoaWxlIGNoYW5naW5n
IHJlY29yZHMuIik7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQoraW5kZXhl
ZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworCiAKIGZ1bmN0aW9uIGRvbmUoKQogewpAQCAtMTUs
MTIgKzEzLDExIEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogICAgIGRlYnVnKG1lc3NhZ2UpOwog
fQogCi12YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiQ3Vyc29yOERh
dGFiYXNlIiwgMSk7Ci0KLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1Zygi
SW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lv
biArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVy
c2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdmVy
c2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBkYXRh
YmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJh
c2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RhdGUtYmFzaWMu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RhdGUt
YmFzaWMuanMKaW5kZXggZGVjMGI5NS4uMGI3OTVhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kYXRlLWJhc2ljLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGF0ZS1iYXNpYy5q
cwpAQCAtMSwyNiArMSwyNCBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdXNpbmcgRGF0ZSBv
YmplY3RzIGFzIGtleXMgYW5kIHZhbHVlcy4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24g
ZG9uZSgpCiB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0g
d2luZG93LmluZGV4ZWREQi5vcGVuKCJEYXRlQmFzaWNEYXRhYmFzZSIsIDEpOwogdmFyIGRhdGFi
YXNlOwogCiB2YXIgZGF0ZTEgPSBuZXcgRGF0ZSgiMTk1NS0xMS0wNVQwMDowMDowMCIpOwogdmFy
IGRhdGUyID0gbmV3IERhdGUoIjE5NTUtMTEtMTJUMTg6MDA6MDAiKTsKIHZhciBkYXRlMyA9IG5l
dyBEYXRlKCIyMDE1LTEwLTIxVDE2OjAwOjAwIik7CiAgICAgCi1jcmVhdGVSZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2Uo
ZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9u
IC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1Zl
cnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJh
bnNhY3Rpb247CisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbjsKICAgICBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIp
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2RlbGV0ZWRhdGFiYXNlLTEuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLTEuanMKaW5kZXggMWZkMDcxYS4uM2U1
MDAwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9kZWxldGVkYXRhYmFzZS0xLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGVsZXRlZGF0YWJhc2UtMS5qcwpAQCAtMSw5ICsxLDcg
QEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaWYgZGVsZXRlRGF0YWJhc2UgaXMgY2Fs
bGVkIHdoaWxlIHRoZXJlIGlzIGFscmVhZHkgYW4gb3BlbiBjb25uZWN0aW9uIHRvIHRoZSBkYXRh
YmFzZSB0aGF0IHRoZSBvcGVuIGNvbm5lY3Rpb24gZ2V0cyB0aGUgYXBwcm9wcmlhdGUgdmVyc2lv
bkNoYW5nZSBldmVudC4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19Citp
bmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb3BlblN1Y2Nlc3MpOworCiAKIGZ1bmN0aW9u
IGRvbmUoKQogewpAQCAtMTUsMjcgKzEzLDIyIEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogICAg
IGRlYnVnKG1lc3NhZ2UpOwogfQogCi12YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Bl
bigiRGVsZXRlRGF0YWJhc2UxVGVzdERhdGFiYXNlIik7Ci1yZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKCkKLXsKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkgewogICAgIGRlYnVnKCJvcGVuIGRi
IHN1Y2Nlc3MiKTsKIH0KLXJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGUpCi17Ci0gICAgZGVi
dWcoIlVuZXhwZWN0ZWQgZXJyb3IiKTsKLQlkb25lKCk7Ci19CiAKLXJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkKK3ZhciBkYm5hbWU7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJh
c2UoZSkKIHsKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG9sZCB2ZXJzaW9uIC0gIiArIGUu
b2xkVmVyc2lvbiArICIgbmV3IHZlcnNpb24gLSAiICsgZS5uZXdWZXJzaW9uKTsKICAgICAKLSAg
ICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gcmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIg
dmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBk
YXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZGJuYW1lID0gZGF0YWJhc2UubmFt
ZTsKICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVz
dE9iamVjdFN0b3JlIik7CiAgICAgb2JqZWN0U3RvcmUucHV0KCJUaGlzIGlzIGEgcmVjb3JkIiwg
MSk7CiAgICAgICAgIAotICAgIHJlcXVlc3QudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKCkKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIGRlYnVnKCJWZXJzaW9uIGNoYW5nZSBjb21wbGV0ZSIpOwogICAg
ICAgICBkYXRhYmFzZS5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbihlKQpAQCAtNDUsMTIgKzM4
LDEyIEBAIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkKICAgICAgICAgfQog
ICAgICAgICBjb250aW51ZVRlc3QxKCk7CiAgICAgfQotICAgIHJlcXVlc3QudHJhbnNhY3Rpb24u
b25hYm9ydCA9IGZ1bmN0aW9uKCkKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9y
dCA9IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGRlYnVnKCJWZXJzaW9uIGNoYW5nZSB1bmV4
cGVjdGVkIGFib3J0Iik7CiAgICAgICAgIGRvbmUoKTsKICAgICB9Ci0gICAgcmVxdWVzdC50cmFu
c2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oKQorICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlv
bi5vbmVycm9yID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZGVidWcoIlZlcnNpb24gY2hh
bmdlIHVuZXhwZWN0ZWQgZXJyb3IiKTsKICAgICAgICAgZG9uZSgpOwpAQCAtNjAsNyArNTMsNyBA
QCByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpCiBmdW5jdGlvbiBjb250aW51
ZVRlc3QxKCkKIHsKICAgICBkZWJ1ZygiUmVxdWVzdGluZyBkZWxldGVEYXRhYmFzZSIpOwotICAg
IHZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgiRGVsZXRlRGF0
YWJhc2UxVGVzdERhdGFiYXNlIik7CisgICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKGRibmFtZSk7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKQogICAgIHsKICAgICAgICAgZGVidWcoIkRlbGV0ZSBkYXRhYmFzZSBzdWNjZXNzOiBvbGRW
ZXJzaW9uICIgKyBlLm9sZFZlcnNpb24gKyAiLCBuZXdWZXJzaW9uICIgKyBlLm5ld1ZlcnNpb24p
OwpAQCAtODEsNyArNzQsNyBAQCBmdW5jdGlvbiBjb250aW51ZVRlc3QxKCkKIGZ1bmN0aW9uIGNv
bnRpbnVlVGVzdDIoKQogewogICAgIGRlYnVnKCJSZWNyZWF0aW5nIGRhdGFiYXNlIHRvIG1ha2Ug
c3VyZSBpdCdzIG5ldyBhbmQgZW1wdHkiKTsKLSAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRl
eGVkREIub3BlbigiRGVsZXRlRGF0YWJhc2UxVGVzdERhdGFiYXNlIik7CisgICAgdmFyIHJlcXVl
c3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGJuYW1lKTsKIAogICAgIHJlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLTIuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWRhdGFi
YXNlLTIuanMKaW5kZXggYTUyNjIyZS4uMzc3ODU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS0yLmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGVsZXRl
ZGF0YWJhc2UtMi5qcwpAQCAtMSwxMCArMSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0
aGF0IGlmIGRlbGV0ZURhdGFiYXNlIGlzIGNhbGxlZCB3aGlsZSB0aGVyZSBpcyBhbHJlYWR5IGFu
IG9wZW4gY29ubmVjdGlvbiB0byB0aGUgZGF0YWJhc2UgdGhhdCB0aGUgb3BlbiBjb25uZWN0aW9u
IGdldHMgdGhlIGFwcHJvcHJpYXRlIHZlcnNpb25DaGFuZ2UgZXZlbnQuIFwKIFRoYXQgb3BlbiBj
b25uZWN0aW9uIGFsc28gaGFzIGFuIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIGF0IHRoZSB0aW1l
IGl0IGdldHMgdGhlIHZlcnNpb25DaGFuZ2UgZXZlbnQuIik7CiAKLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotfQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHN1Y2Nlc3ND
YWxsYmFjayk7CiAKIGZ1bmN0aW9uIGRvbmUoKQogewpAQCAtMTgsMjIgKzE1LDIzIEBAIGZ1bmN0
aW9uIGxvZyhtZXNzYWdlKQogCiB2YXIgc3RvcFNwaW5uaW5nID0gZmFsc2U7CiAKLXZhciByZXF1
ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJEZWxldGVEYXRhYmFzZTJUZXN0RGF0YWJhc2Ui
KTsKLXJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKQorZnVuY3Rpb24gc3VjY2Vzc0NhbGxi
YWNrKCkKIHsKICAgICBkZWJ1Zygib3BlbiBkYiBzdWNjZXNzIik7CiB9Ci1yZXF1ZXN0Lm9uZXJy
b3IgPSBmdW5jdGlvbihlKQotewotICAgIGRlYnVnKCJPcGVuIHJlcXVlc3QgZXJyb3I6ICIgKyBy
ZXF1ZXN0LmVycm9yLm5hbWUpOwotfQogCi1yZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpCit2YXIgZGJuYW1lOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGUpCiB7CiAgICAg
ZGVidWcoIkluaXRpYWwgdXBncmFkZSBvbGQgdmVyc2lvbiAtICIgKyBlLm9sZFZlcnNpb24gKyAi
IG5ldyB2ZXJzaW9uIC0gIiArIGUubmV3VmVyc2lvbik7CiAgICAgCi0gICAgdmFyIHZlcnNpb25U
cmFuc2FjdGlvbiA9IHJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZXZlbnQudGFyZ2V0Lm9uZXJy
b3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRlYnVnKCJPcGVuIHJlcXVlc3QgZXJyb3I6ICIg
KyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgfQorCisgICAgdmFyIHZlcnNpb25UcmFu
c2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICB2YXIgZGF0YWJhc2UgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgIGRibmFtZSA9IGRhdGFiYXNlLm5hbWU7CiAgICAgdmFy
IG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9y
ZSIpOwogICAgIG9iamVjdFN0b3JlLnB1dCgiVGhpcyBpcyBhIHJlY29yZCIsIDEpOwogICAgIApA
QCAtNTUsMTcgKzUzLDE3IEBAIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkK
ICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoc2h1dEVyRG93biwgMCk7CiAgICAgfQogICAgICAg
ICAKLSAgICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpCisgICAg
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICBkZWJ1ZygiRmlyc3QgdmVyc2lvbiBjaGFuZ2UgY29tcGxldGUiKTsKICAgICB9CiAg
ICAgCi0gICAgcmVxdWVzdC50cmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oKQorICAgIGV2
ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgZGVidWcoIlZlcnNpb24gY2hhbmdlIHVuZXhwZWN0ZWQgYWJvcnQiKTsKICAgICAgICAgZG9u
ZSgpOwogICAgIH0KLSAgICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbigp
CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICBkZWJ1ZygiVmVyc2lvbiBjaGFuZ2UgdW5leHBlY3RlZCBlcnJvciIpOwogICAg
ICAgICBkb25lKCk7CkBAIC03Nyw3ICs3NSw3IEBAIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkKIGZ1bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogewogICAgIGRlYnVnKCJSZXF1
ZXN0aW5nIGRlbGV0ZURhdGFiYXNlIik7Ci0gICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKCJEZWxldGVEYXRhYmFzZTJUZXN0RGF0YWJhc2UiKTsKKyAgICB2
YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKTsKICAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpCiAgICAgewogICAgICAgICBkZWJ1Zygi
RGVsZXRlIGRhdGFiYXNlIHN1Y2Nlc3M6IG9sZFZlcnNpb24gIiArIGUub2xkVmVyc2lvbiArICIs
IG5ld1ZlcnNpb24gIiArIGUubmV3VmVyc2lvbik7CkBAIC05OCw3ICs5Niw3IEBAIGZ1bmN0aW9u
IGNvbnRpbnVlVGVzdDEoKQogZnVuY3Rpb24gY29udGludWVUZXN0MigpCiB7CiAgICAgZGVidWco
IlJlY3JlYXRpbmcgZGF0YWJhc2UgdG8gbWFrZSBzdXJlIGl0J3MgbmV3IGFuZCBlbXB0eSIpOwot
ICAgIHZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJEZWxldGVEYXRhYmFzZTJU
ZXN0RGF0YWJhc2UiKTsKKyAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Blbihk
Ym5hbWUpOwogCiAgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKQogICAg
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvZGVsZXRlZGF0YWJhc2UtbnVsbC1uYW1lLWV4Y2VwdGlvbi5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGVsZXRlZGF0YWJhc2UtbnVsbC1u
YW1lLWV4Y2VwdGlvbi5qcwppbmRleCA3YjNmNzI3Li45NWFlOTNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNl
LW51bGwtbmFtZS1leGNlcHRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS1udWxsLW5hbWUtZXhjZXB0aW9uLmpz
CkBAIC0xLDkgKzEsNSBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjYWxscyBkZWxldGVEYXRh
YmFzZSBvbiB3aW5kb3cuaW5kZXhlZERCIHdpdGggYSBudWxsIGRhdGFiYXNlIG5hbWUsIG1ha2lu
ZyBzdXJlIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbi4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci19CiAKIGZ1bmN0aW9uIGRvbmUoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS1yZXF1
ZXN0LWV2ZW50LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291
cmNlcy9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LmpzCmluZGV4IDRmYjZmOWY2Li4yM2I4
ZGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2RlbGV0ZWRhdGFiYXNlLXJlcXVlc3QtZXZlbnQuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0
LWV2ZW50LmpzCkBAIC0xLDkgKzEsNSBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjYWxscyBk
ZWxldGVEYXRhYmFzZSBvbiB3aW5kb3cuaW5kZXhlZERCIGFuZCB2ZXJpZmllcyB0aGF0IGFuIGV2
ZW50IGlzIGZpcmVkIGF0IHRoZSByZXF1ZXN0LiIpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLX0KIAogZnVuY3Rpb24gZG9uZSgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLXJlcXVl
c3QuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2Rl
bGV0ZWRhdGFiYXNlLXJlcXVlc3QuanMKaW5kZXggMmM3ZTQ4OS4uYzQ0MTkyYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVk
YXRhYmFzZS1yZXF1ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9yZXNvdXJjZXMvZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC5qcwpAQCAtMSw5ICsxLDUgQEAK
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2FsbHMgZGVsZXRlRGF0YWJhc2Ugb24gd2luZG93Lmlu
ZGV4ZWREQiBhbmQgdmVyaWZpZXMgdGhhdCBhbiBJREJPcGVuREJSZXF1ZXN0IG9iamVjdCBpcyBy
ZXR1cm5lZC4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CiAKIGZ1bmN0
aW9uIGRvbmUoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9kZWxldGVpbmRleC0xLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVpbmRleC0xLmpzCmluZGV4IDhiODcxYmEu
LjA1NmY0ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvZGVsZXRlaW5kZXgtMS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWluZGV4LTEuanMKQEAgLTEsOSArMSw3IEBA
CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBkZWxldGluZyBhbiBpbmRleCBhbmQgdGhlbiBjb21t
aXR0aW5nIHRoZSB0cmFuc2FjdGlvbi4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9u
ZSgpCiB7CkBAIC00NSwxMSArNDMsMTEgQEAgZnVuY3Rpb24gY2hlY2tJbmRleFZhbHVlcygpCiAg
ICAgfSAKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRl
bGV0ZUluZGV4MURhdGFiYXNlIiwgMSk7Ci1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAg
ICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50
Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0g
ICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247Cisg
ICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAg
ICBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgb2JqZWN0U3RvcmUgPSBkYXRh
YmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAgb2JqZWN0U3Rv
cmUucHV0KHsgYmFyOiAiQSIgfSwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWluZGV4LTIuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2RlbGV0ZWluZGV4LTIuanMKaW5k
ZXggMGU5YjMyZS4uODJkNTFhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVpbmRleC0yLmpzCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGVsZXRlaW5kZXgtMi5qcwpAQCAt
MSw5ICsxLDcgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGRlbGV0aW5nIGFuIGluZGV4IGFu
ZCB0aGVuIGFib3J0aW5nIHRoZSB0cmFuc2FjdGlvbi4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVu
Y3Rpb24gZG9uZSgpCiB7CkBAIC00MiwxMiArNDAsMTUgQEAgZnVuY3Rpb24gY2hlY2tJbmRleFZh
bHVlcygpCiAgICAgfSAKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oIkRlbGV0ZUluZGV4MkRhdGFiYXNlIiwgMSk7Ci1jcmVhdGVSZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cit2YXIgZGJuYW1lOworZnVuY3Rpb24gcHJlcGFy
ZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBP
bGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBl
dmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVS
ZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIGV2ZW50LnRhcmdldC5vbmVycm9yID0gbnVsbDsKKyAg
ICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAg
IGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkYm5hbWUgPSBkYXRhYmFzZS5u
YW1lOwogICAgIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RP
YmplY3RTdG9yZSIpOwogICAgIG9iamVjdFN0b3JlLnB1dCh7IGJhcjogIkEiIH0sIDEpOwogICAg
IG9iamVjdFN0b3JlLnB1dCh7IGJhcjogIkEiIH0sIDIpOwpAQCAtNzQsMTIgKzc1LDEyIEBAIGNy
ZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKIH0KIAogZnVu
Y3Rpb24gY29udGludWVUZXN0MSgpIHsKLSAgICB2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5p
bmRleGVkREIub3BlbigiRGVsZXRlSW5kZXgyRGF0YWJhc2UiLCAyKTsKKyAgICB2YXIgY3JlYXRl
UmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDIpOwogICAgIGNyZWF0ZVJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgZGVidWco
IlNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lv
biArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKICAgICAgICAgZGF0
YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICB2YXIgdmVyc2lvblRyYW5zYWN0
aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICAgICAgdmFyIHZlcnNpb25UcmFu
c2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICAgICAgb2JqZWN0U3RvcmUg
PSB2ZXJzaW9uVHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAg
ICAgICBvYmplY3RTdG9yZS5kZWxldGVJbmRleCgiVGVzdEluZGV4MSIpOwogICAgICAgICBkZWJ1
ZygiRGVsZXRlZCB0aGUgaW5kZXgiKTsKQEAgLTEwNCwxMSArMTA1LDExIEBAIGZ1bmN0aW9uIGNv
bnRpbnVlVGVzdDEoKSB7CiB9CiAKIGZ1bmN0aW9uIGNvbnRpbnVlVGVzdDIoKSB7Ci0gICAgdmFy
IGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRlbGV0ZUluZGV4MkRhdGFi
YXNlIiwgMyk7CisgICAgdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAzKTsKICAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJUaGlyZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNp
b24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3
VmVyc2lvbik7CiAKLSAgICAgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVl
c3QudHJhbnNhY3Rpb247CisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50
YXJnZXQudHJhbnNhY3Rpb247CiAgICAgICAgIG9iamVjdFN0b3JlID0gdmVyc2lvblRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAgICAgICAgaW5kZXggPSBvYmpl
Y3RTdG9yZS5pbmRleCgiVGVzdEluZGV4MSIpOwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxldGVvYmplY3RzdG9yZS0x
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kZWxl
dGVvYmplY3RzdG9yZS0xLmpzCmluZGV4IDI0ZjUwZTEuLmQyOGExOGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZGVsZXRlb2JqZWN0
c3RvcmUtMS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2RlbGV0ZW9iamVjdHN0b3JlLTEuanMKQEAgLTIsMjMgKzIsMjMgQEAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjcmVhdGVzIGFuIG9iamVjdCBzdG9yZSB0aGVuIHBvcHVsYXRlcyBpdCwg
dGhlbiBjb21taXRzIHQKIEl0IHRoZW4gZGVsZXRlcyBpdCwgYnV0IGFib3J0cyB0aGF0IHRyYW5z
YWN0aW9uLiBcCiBGaW5hbGx5IGl0IGNoZWNrcyB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyBmcm9t
IHN0ZXAgMSBpcyB0aGVyZSBhcyBleHBlY3RlZC4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rp
b24gZG9uZSgpCiB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0
ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJEZWxldGVPYmplY3RTdG9yZTFEYXRhYmFzZSIsIDEp
OwotCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cit2
YXIgZGJuYW1lOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVn
KCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJz
aW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2
ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIGV2ZW50
LnRhcmdldC5vbmVycm9yID0gbnVsbDsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CisgICAgZGJuYW1lID0gZGF0YWJhc2UubmFtZTsKICAgICB2YXIgb2JqZWN0U3RvcmUg
PSBkYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKQogICAgICAgICBvYmplY3RTdG9yZS5wdXQoIkFIIEFI
IEFIIEFIIEFIIiwgaSArICIgcHV0cyIpOwpAQCAtNDYsNyArNDYsNyBAQCBmdW5jdGlvbiBnZXRD
aGVja2VyKGV2ZW50KSB7CiAKIGZ1bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogewotICAgIHZhciBv
cGVuUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiRGVsZXRlT2JqZWN0U3RvcmUxRGF0
YWJhc2UiLCAyKTsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAyKTsKIAogICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkg
ewogICAgICAgICBkZWJ1ZygiUmVxdWVzdCBlcnJvciAtICIgKyBldmVudCk7CkBAIC05MCw3ICs5
MCw3IEBAIGZ1bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogCiBmdW5jdGlvbiBjb250aW51ZVRlc3Qy
KCkKIHsKLSAgICB2YXIgb3BlblJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRlbGV0
ZU9iamVjdFN0b3JlMURhdGFiYXNlIiwgMSk7CisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gd2luZG93
LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSk7CiAKICAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgZGVidWcoIlJlcXVlc3QgdW5leHBlY3RlZCBlcnJv
ciAtICIgKyBldmVudCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2RvdWJsZS1hYm9ydC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZG91YmxlLWFib3J0LmpzCmluZGV4IDg3ZWI3ODcu
LjI0ZmUxZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvZG91YmxlLWFib3J0LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZG91YmxlLWFib3J0LmpzCkBAIC0xLDIxICsxLDE4IEBA
CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFuc2FjdGlvbiB0d2lj
ZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3duLiIpOwogCi1pZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFi
YXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAot
dmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRvdWJsZUFib3J0VGVz
dERhdGFiYXNlIiwgMSk7Ci0KLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1
ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVy
c2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIg
dmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIg
dmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBk
YXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAKICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24u
YWJvcnQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvZG91YmxlLW9wZW4uanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2RvdWJsZS1vcGVuLmpzCmluZGV4IDAxZDhjYTMuLmFiMjRkMmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJj
ZXMvZG91YmxlLW9wZW4uanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9kb3VibGUtb3Blbi5qcwpAQCAtMTUsMTMgKzE1LDE1IEBAIGlmICh0ZXN0
UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKLXZhciByZXEx
ID0gaW5kZXhlZERCLm9wZW4oInRlc3REQiIpOwordmFyIGRibmFtZSA9ICJUZXN0REIiICsgRGF0
ZSgpOworCit2YXIgcmVxMSA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSk7CiByZXExLm9uZXJyb3Ig
PSBmdW5jdGlvbigpIHsKICAgICBkZWJ1ZygiRmlyc3QgcmVxdWVzdCB1bmV4cGVjdGVkIGVycm9y
Iik7CiAgICAgZG9uZSgpOwogfQogCi12YXIgcmVxMiA9IGluZGV4ZWREQi5vcGVuKCJ0ZXN0REIi
KTsKK3ZhciByZXEyID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKTsKIHJlcTIub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7CiAgICAgZGVidWcoIlNlY29uZCByZXF1ZXN0IGRvbmUiKTsKICAgICBkb25l
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2dldC1pbmRleC1mYWlsdXJlcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvZ2V0LWluZGV4LWZhaWx1cmVzLmpzCmluZGV4IDMxOGEyZGUu
LmUwNTE4MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvZ2V0LWluZGV4LWZhaWx1cmVzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZ2V0LWluZGV4LWZhaWx1cmVzLmpzCkBAIC0x
LDkgKzEsNyBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc29tZSBvYnZpb3VzIGZhaWx1cmVz
IHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIElEQk9iamVjdFN0b3JlLmluZGV4KCkuIik7
CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQoraW5kZXhlZERCVGVzdChwcmVw
YXJlRGF0YWJhc2UpOworCiAKIGZ1bmN0aW9uIGRvbmUoKQogewpAQCAtMTUsMTQgKzEzLDE1IEBA
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogICAgIGRlYnVnKG1lc3NhZ2UpOwogfQogCi12YXIgY3Jl
YXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSURCT2JqZWN0U3RvcmVHZXRJbmRl
eEZhaWx1cmVzRGF0YWJhc2UiLCAxKTsKIHZhciBkYXRhYmFzZTsKLQotY3JlYXRlUmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewordmFyIGRibmFtZTsKK2Z1bmN0aW9u
IHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5l
ZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24g
LSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0g
Y3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0g
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICBkYm5hbWUgPSBkYXRhYmFzZS5uYW1lOwogICAgIHZhciBvYmplY3RTdG9yZSA9
IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAgICBvYmpl
Y3RTdG9yZS5jcmVhdGVJbmRleCgiVGVzdEluZGV4IiwgImZvbyIpOwogICAgIApAQCAtODEsMTEg
KzgwLDExIEBAIGZ1bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogCiBmdW5jdGlvbiBjb250aW51ZVRl
c3QyKCkKIHsKLSAgICB2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Blbigi
SURCT2JqZWN0U3RvcmVHZXRJbmRleEZhaWx1cmVzRGF0YWJhc2UiLCAyKTsKKyAgICB2YXIgY3Jl
YXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDIpOwogICAgIGNyZWF0
ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgZGVi
dWcoIlNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVy
c2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICAgICAg
dmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAg
ICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAg
ICAgICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgICAgIHZhciBv
YmplY3RTdG9yZSA9IHZlcnNpb25UcmFuc2FjdGlvbi5vYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0
b3JlIik7CiAgICAgICAgIGRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3Rv
cmUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9y
ZXNvdXJjZXMvZ2V0LWtleXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9nZXQta2V5cmFuZ2UuanMKaW5kZXggOTRlYWU4Ny4uMDQwZjIxOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy9nZXQta2V5cmFuZ2UuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9nZXQta2V5cmFuZ2UuanMKQEAgLTEsMjYgKzEsMjMgQEAKIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgZXhlcmNpc2VzIElEQk9iamVjdFN0b3JlLmdldCgpIHdpdGggYW4gSURC
S2V5UmFuZ2UgYXMgdGhlIHBhcmFtZXRlci4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24g
ZG9uZSgpCiB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0g
d2luZG93LmluZGV4ZWREQi5vcGVuKCJHZXRLZXlSYW5nZURhdGFiYXNlIiwgMSk7CiB2YXIgZGF0
YWJhc2U7CiAKIHZhciBkYXRlMSA9IG5ldyBEYXRlKCIxOTU1LTExLTA1VDAwOjAwOjAwIik7CiB2
YXIgZGF0ZTIgPSBuZXcgRGF0ZSgiMTk1NS0xMS0xMlQxODowMDowMCIpOwogdmFyIGRhdGUzID0g
bmV3IERhdGUoIjIwMTUtMTAtMjFUMTY6MDA6MDAiKTsKICAgICAKLWNyZWF0ZVJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZShldmVudCkgewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lv
biAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdW
ZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRy
YW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJh
bnNhY3Rpb247CiAgICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIHZhciBv
YmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUi
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9pZGJkYXRhYmFzZS1kZWxldGVvYmplY3RzdG9yZS1mYWlsdXJlcy5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRiZGF0YWJhc2UtZGVs
ZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMuanMKaW5kZXggYzYzN2E0Yi4uNzcwZWEwNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJk
YXRhYmFzZS1kZWxldGVvYmplY3RzdG9yZS1mYWlsdXJlcy5qcworKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVj
dHN0b3JlLWZhaWx1cmVzLmpzCkBAIC0xLDIzICsxLDIyIEBACiBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyBzb21lIG9idmlvdXMgZmFpbHVyZXMgdGhhdCBjYW4gaGFwcGVuIHdoaWxlIGNhbGxpbmcg
SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSIpOwogCi1pZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLX0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5j
dGlvbiBkb25lKCkKIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVl
c3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIklEQkRhdGFiYXNlRGVsZXRlT2JqZWN0U3RvcmVG
YWlsdXJlc0RhdGFiYXNlIiwgMSk7CiB2YXIgZGF0YWJhc2U7Ci0KLWNyZWF0ZVJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK3ZhciBkYm5hbWU7CitmdW5jdGlvbiBw
cmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSBuZWVk
ZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0g
IiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNy
ZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2
ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgZGJuYW1lID0gZGF0YWJhc2UubmFtZTsKICAgICB2YXIgb2JqZWN0U3RvcmUgPSBk
YXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAgdmFyIHJl
cXVlc3QgPSBvYmplY3RTdG9yZS5wdXQoImJhciIsICJmb28iKTsKIApAQCAtNzEsNyArNzAsNyBA
QCBmdW5jdGlvbiBjb250aW51ZVRlc3QxKCkKIAogZnVuY3Rpb24gY29udGludWVUZXN0MigpCiB7
Ci0gICAgdmFyIG9wZW5SZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJJREJEYXRhYmFz
ZURlbGV0ZU9iamVjdFN0b3JlRmFpbHVyZXNEYXRhYmFzZSIsIDIpOworICAgIHZhciBvcGVuUmVx
dWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDIpOwogCiAgICAgb3BlblJlcXVl
c3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJSZXF1ZXN0IHVu
ZXhwZWN0ZWQgZXJyb3IgLSAiICsgZXZlbnQpOwpAQCAtODksNyArODgsNyBAQCBmdW5jdGlvbiBj
b250aW51ZVRlc3QyKCkKICAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihldmVudCkgewogICAgICAgICBkZWJ1ZygiU2Vjb25kIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVy
c2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5u
ZXdWZXJzaW9uKTsKICAgICAKLSAgICAgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IG9wZW5S
ZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgICAgICBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CiAKICAgICAgICAgdHJ5IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFpbHVy
ZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lk
YmRhdGFiYXNlLXRyYW5zYWN0aW9uLWZhaWx1cmVzLmpzCmluZGV4IGVmYTFjYzQuLmU5NjJmZGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJj
ZXMvaWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFpbHVyZXMuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJkYXRhYmFzZS10cmFuc2FjdGlv
bi1mYWlsdXJlcy5qcwpAQCAtMSwyMiArMSwyMCBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
c29tZSBvYnZpb3VzIGZhaWx1cmVzIHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIElEQkRh
dGFiYXNlLnRyYW5zYWN0aW9uKCkiKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgp
CiB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93
LmluZGV4ZWREQi5vcGVuKCJJREJEYXRhYmFzZVRyYW5zYWN0aW9uRmFpbHVyZXNEYXRhYmFzZSIp
OwogdmFyIGRhdGFiYXNlOwogCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVi
dWcoIlVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsg
IiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9u
VHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9u
VHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgZGF0YWJhc2UgPSBl
dmVudC50YXJnZXQucmVzdWx0OwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0
ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAgICB2YXIgcmVxdWVzdCA9IG9iamVj
dFN0b3JlLnB1dCgiZm9vIiwgImJhciIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJpbmRleC1wcm9wZXJ0aWVzLWJhc2ljLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJpbmRl
eC1wcm9wZXJ0aWVzLWJhc2ljLmpzCmluZGV4IGE0ZDY1MzAuLjEzOTE2ZWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRiaW5kZXgt
cHJvcGVydGllcy1iYXNpYy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vcmVzb3VyY2VzL2lkYmluZGV4LXByb3BlcnRpZXMtYmFzaWMuanMKQEAgLTEsOSArMSw3
IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBnZXR0aW5nIGJhc2ljIHByb3BlcnRpZXMgb24g
YW4gSURCSW5kZXguIik7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQoraW5k
ZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworCiAKIGZ1bmN0aW9uIGRvbmUoKQogewpAQCAt
MjUsMTUgKzIzLDE1IEBAIGZ1bmN0aW9uIGxvZ0luZGV4KGluZGV4KQogICAgIGRlYnVnKGluZGV4
LnVuaXF1ZSk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVu
KCJJREJJbmRleFByb3BlcnRpZXNCYXNpY0RhdGFiYXNlIiwgMSk7CiB2YXIgZGF0YWJhc2U7CiAK
IHZhciBpbmRleGVzID0gbmV3IEFycmF5KCk7CiAKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkK
K3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsg
ZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7
CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlv
bjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
OwogICAgIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICB2YXIgb2JqZWN0U3Rv
cmUgPSBkYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL2lkYm9iamVjdHN0b3JlLWNsZWFyLTEuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWNsZWFyLTEuanMKaW5kZXggYTk4
ZDRjMy4uMTlmYzUxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1jbGVhci0xLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtY2xl
YXItMS5qcwpAQCAtMSwyMyArMSwyNCBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjcmVhdGVz
IGFuIG9iamVjdCBzdG9yZSB0aGVuIHBvcHVsYXRlcyBpdC4gXAogSXQgdGhlbiBjbGVhcnMgaXQg
YW5kIG1ha2VzIHN1cmUgaXQgaGFzIG5vdGhpbmcgbGVmdCBpbiBpdC4iKTsKIAotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7
CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBj
cmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJJREJPYmplY3RTdG9yZUNsZWFy
RGF0YWJhc2UiLCAxKTsKLQotY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihldmVudCkgewordmFyIGRibmFtZTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkK
K3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsg
ZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7
CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlv
bjsKKyAgICBldmVudC50YXJnZXQub25lcnJvciA9IG51bGw7CisKKyAgICB2YXIgdmVyc2lvblRy
YW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBkYXRhYmFzZSA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZGJuYW1lID0gZGF0YWJhc2UubmFtZQogICAgIHZh
ciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3Rv
cmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiAgICAgdmFyIHJlcXVlc3QgPSBvYmplY3RT
dG9yZS5wdXQoImJhcjEiKTsKICAgICB2YXIgcmVxdWVzdCA9IG9iamVjdFN0b3JlLnB1dCgiYmFy
MiIpOwpAQCAtNTIsNyArNTMsNyBAQCBmdW5jdGlvbiBnZXRDaGVja2VyKGV2ZW50KSB7CiAKIGZ1
bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogewotICAgIHZhciBvcGVuUmVxdWVzdCA9IHdpbmRvdy5p
bmRleGVkREIub3BlbigiSURCT2JqZWN0U3RvcmVDbGVhckRhdGFiYXNlIiwgMSk7CisgICAgdmFy
IG9wZW5SZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSk7CiAKICAgICBv
cGVuUmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgZGVidWcoIlJl
cXVlc3QgdW5leHBlY3RlZCBlcnJvciAtICIgKyBldmVudCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWNs
ZWFyLTIuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2Vz
L2lkYm9iamVjdHN0b3JlLWNsZWFyLTIuanMKaW5kZXggZmVkYWY2MS4uOGRkNDFlMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJv
YmplY3RzdG9yZS1jbGVhci0yLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtY2xlYXItMi5qcwpAQCAtMiwyMyArMiwy
NCBAQCBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNyZWF0ZXMgYW4gb2JqZWN0IHN0b3JlIHRoZW4g
cG9wdWxhdGVzIGl0LCB0aGVuIGNvbW1pdHMgdAogSXQgdGhlbiBjbGVhcnMgaXQsIGJ1dCBhYm9y
dHMgdGhhdCB0cmFuc2FjdGlvbi4gXAogRmluYWxseSBpdCBjaGVja3MgdG8gbWFrZSBzdXJlIGV2
ZXJ5dGhpbmcgZnJvbSBzdGVwIDEgaXMgc3RpbGwgaW4gdGhlcmUuIik7CiAKLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotfQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOwor
CiAKIGZ1bmN0aW9uIGRvbmUoKQogewogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi12YXIgY3Jl
YXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSURCT2JqZWN0U3RvcmVDbGVhcjJE
YXRhYmFzZSIsIDEpOwotCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGV2ZW50KSB7Cit2YXIgZGJuYW1lOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQor
ewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBl
dmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsK
IAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9u
OworICAgIGV2ZW50LnRhcmdldC5vbmVycm9yID0gbnVsbDsKKworICAgIHZhciB2ZXJzaW9uVHJh
bnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgdmFyIGRhdGFiYXNlID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkYm5hbWUgPSBkYXRhYmFzZS5uYW1lOwogICAgIHZh
ciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3Rv
cmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiAgICAgdmFyIHJlcXVlc3QgPSBvYmplY3RT
dG9yZS5wdXQoImJhcjEiKTsKICAgICB2YXIgcmVxdWVzdCA9IG9iamVjdFN0b3JlLnB1dCgiYmFy
MiIpOwpAQCAtNTMsNyArNTQsNyBAQCBmdW5jdGlvbiBnZXRDaGVja2VyKGV2ZW50KSB7CiAKIGZ1
bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogewotICAgIHZhciBvcGVuUmVxdWVzdCA9IHdpbmRvdy5p
bmRleGVkREIub3BlbigiSURCT2JqZWN0U3RvcmVDbGVhcjJEYXRhYmFzZSIsIDEpOworICAgIHZh
ciBvcGVuUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDEpOwogCiAgICAg
b3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJS
ZXF1ZXN0IHVuZXhwZWN0ZWQgZXJyb3IgLSAiICsgZXZlbnQpOwpAQCAtMTE4LDcgKzExOSw3IEBA
IGZ1bmN0aW9uIGNvbnRpbnVlVGVzdDEoKQogCiBmdW5jdGlvbiBjb250aW51ZVRlc3QyKCkKIHsK
LSAgICB2YXIgb3BlblJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIklEQk9iamVjdFN0
b3JlQ2xlYXIyRGF0YWJhc2UiLCAxKTsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSB3aW5kb3cuaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAxKTsKIAogICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5j
dGlvbihldmVudCkgewogICAgICAgICBkZWJ1ZygiUmVxdWVzdCB1bmV4cGVjdGVkIGVycm9yIC0g
IiArIGV2ZW50KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtY291bnQtMS5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtY291bnQtMS5q
cwppbmRleCA4ZjU5ZWQ4Li41MzM0Mjg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWNvdW50LTEuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmpl
Y3RzdG9yZS1jb3VudC0xLmpzCkBAIC0xLDE2ICsxLDEzIEBACiBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IGV4ZXJjaXNlcyB2YXJpb3VzIHVzZXMgb2YgSURCT2JqZWN0U3RvcmUuY291bnQoKSIpOwog
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIklEQk9iamVj
dFN0b3JlQ291bnQxRGF0YWJhc2UiLCAxKTsKIHZhciBkYXRhYmFzZTsKIHZhciBvYmplY3RTdG9y
ZTsKIApAQCAtNDAsMTAgKzM3LDExIEBAIGZ1bmN0aW9uIGdldENvdW50cygpCiAgICAgZ2V0Q291
bnQoNyk7ICAgIAogfQogCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWco
IkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZl
cnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZl
cnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICBkYXRhYmFz
ZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5jcmVh
dGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3Jl
LWNvdW50LWZhaWx1cmVzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1jb3VudC1mYWlsdXJlcy5qcwppbmRleCAxYWE2ZWEz
Li5lMzFjOGZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWNvdW50LWZhaWx1cmVzLmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUt
Y291bnQtZmFpbHVyZXMuanMKQEAgLTEsMjIgKzEsMjAgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJ
REJPYmplY3RTdG9yZS5jb3VudCgpLiIpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLX0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25l
KCkKIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5k
b3cuaW5kZXhlZERCLm9wZW4oIklEQk9iamVjdFN0b3JlQ291bnRGYWlsdXJlc0RhdGFiYXNlIiwg
MSk7CiB2YXIgZGF0YWJhc2U7CiAKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBk
ZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xk
VmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2
YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2
YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIGRh
dGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYXRh
YmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAgdmFyIHJlcXVl
c3QgPSBvYmplY3RTdG9yZS5wdXQoImJhciIsICJmb28iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtZGVs
ZXRlLTEuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2Vz
L2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLmpzCmluZGV4IDBiM2UzMzUuLmY1YjlhZGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRi
b2JqZWN0c3RvcmUtZGVsZXRlLTEuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1kZWxldGUtMS5qcwpAQCAtMSwxMCAr
MSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGV4ZXJjaXNlcyB2YXJpb3VzIHVzZXMgb2Yg
SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkiKTsKIAoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJh
c2UpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KIAogZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpCiB7CkBAIC0yNCw3ICsyMSw2IEBAIGZ1bmN0aW9uIGRvbmUoKQogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogCi12YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Bl
bigiSURCT2JqZWN0U3RvcmVEZWxldGUxRGF0YWJhc2UiLCAxKTsKIHZhciBkYXRhYmFzZTsKIHZh
ciBvYmplY3RTdG9yZTsKIApAQCAtMzcsMTAgKzMzLDExIEBAIHZhciBkYXRlNiA9IG5ldyBEYXRl
KCIyMDAwLTAxLTAyVDAwOjAwOjAwIik7CiB2YXIgZGF0ZTcgPSBuZXcgRGF0ZSgiMjAwMC0wMS0w
M1QwMDowMDowMCIpOwogdmFyIGRhdGU4ID0gbmV3IERhdGUoIjIwMDAtMDEtMDRUMDA6MDA6MDAi
KTsKIAotY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVw
Z3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcg
dmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNh
Y3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNh
Y3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgZGF0YWJhc2UgPSBldmVudC50
YXJnZXQucmVzdWx0OwogICAgIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1kZWxldGUtMi5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2Jq
ZWN0c3RvcmUtZGVsZXRlLTIuanMKaW5kZXggZmU3Mjc2YS4uYjY4NWZjMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3Rz
dG9yZS1kZWxldGUtMi5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0yLmpzCkBAIC0xLDEwICsxLDcgQEAK
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZXhlcmNpc2VzIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgp
IGZvbGxvd2VkIGJ5IGFuIGFib3J0IHRvIG1ha2Ugc3VyZSB0aGUgZGVsZXRlIGlzIHVuLWRvbmUu
Iik7CiAKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKIAotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci19CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpAQCAtMjQsMTMg
KzIxLDEzIEBAIGZ1bmN0aW9uIGRvbmUoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi12YXIg
Y3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSURCT2JqZWN0U3RvcmVEZWxl
dGUyRGF0YWJhc2UiLCAxKTsKIHZhciBkYXRhYmFzZTsKIAotY3JlYXRlUmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2
ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAt
ICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJz
aW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5z
YWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNh
Y3Rpb247CiAgICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIGRhdGFiYXNl
LmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKS5wdXQoImJhciIsICJmb28iKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291
cmNlcy9pZGJvYmplY3RzdG9yZS1kZWxldGUtZmFpbHVyZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS1mYWls
dXJlcy5qcwppbmRleCAwZGNkMmE5Li41MDVhZWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS1m
YWlsdXJlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS1mYWlsdXJlcy5qcwpAQCAtMSwxMCArMSw3IEBA
CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzb21lIG9idmlvdXMgZmFpbHVyZXMgdGhhdCBjYW4g
aGFwcGVuIHdoaWxlIGNhbGxpbmcgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkuIik7CiAKK2luZGV4
ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci19CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpAQCAtMTYsMTMgKzEzLDEzIEBAIGZ1
bmN0aW9uIGRvbmUoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi12YXIgY3JlYXRlUmVxdWVz
dCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSURCT2JqZWN0U3RvcmVEZWxldGVGYWlsdXJlc0Rh
dGFiYXNlIiwgMSk7CiB2YXIgZGF0YWJhc2U7CiAKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkK
K3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsg
ZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7
CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlv
bjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
OwogICAgIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICB2YXIgb2JqZWN0U3Rv
cmUgPSBkYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAg
dmFyIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5wdXQoImJhciIsICJmb28iKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0
c3RvcmUtZ2V0LWZhaWx1cmVzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1nZXQtZmFpbHVyZXMuanMKaW5kZXggNDhkMzFm
YS4uOTgyMThiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1nZXQtZmFpbHVyZXMuanMKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1n
ZXQtZmFpbHVyZXMuanMKQEAgLTEsMjIgKzEsMjAgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Rz
IHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJP
YmplY3RTdG9yZS5nZXQoKS4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7
CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93Lmlu
ZGV4ZWREQi5vcGVuKCJJREJPYmplY3RTdG9yZUdldEZhaWx1cmVzRGF0YWJhc2UiLCAxKTsKIHZh
ciBkYXRhYmFzZTsKIAotY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
dmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJ
bml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9u
ICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJz
aW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJz
aW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgZGF0YWJhc2Ug
PSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNy
ZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAgICB2YXIgcmVxdWVzdCA9IG9i
amVjdFN0b3JlLnB1dCgiYmFyIiwgImZvbyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1wdXQtYW5kLWNs
ZWFyLWZhaWx1cmVzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9pZGJvYmplY3RzdG9yZS1wdXQtYW5kLWNsZWFyLWZhaWx1cmVzLmpzCmluZGV4IDY1
MmUxMzguLjgxZjE4ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtcHV0LWFuZC1jbGVhci1mYWlsdXJlcy5q
cworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lk
Ym9iamVjdHN0b3JlLXB1dC1hbmQtY2xlYXItZmFpbHVyZXMuanMKQEAgLTEsMjIgKzEsMjAgQEAK
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBo
YXBwZW4gd2hpbGUgY2FsbGluZyBJREJPYmplY3RTdG9yZS5wdXQoKSBhbmQgSURCT2JqZWN0U3Rv
cmUuY2xlYXIoKS4iKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CitpbmRl
eGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWRE
Qi5vcGVuKCJJREJPYmplY3RTdG9yZVB1dEFuZENsZWFyRmFpbHVyZXNEYXRhYmFzZSIsIDEpOwog
dmFyIGRhdGFiYXNlOwogCi1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGV2ZW50KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWco
IkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZl
cnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZl
cnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICBkYXRhYmFz
ZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2Uu
Y3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIHZhciByZXF1ZXN0ID0g
b2JqZWN0U3RvcmUucHV0KCJiYXIiLCAiZm9vIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0
b3JlLWZhaWx1cmVzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9pZGJ0cmFuc2FjdGlvbi1vYmplY3RzdG9yZS1mYWlsdXJlcy5qcwppbmRleCAyYmU3
YzEzLi4zYTg4OWY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vcmVzb3VyY2VzL2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0b3JlLWZhaWx1cmVzLmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRidHJh
bnNhY3Rpb24tb2JqZWN0c3RvcmUtZmFpbHVyZXMuanMKQEAgLTEsMjMgKzEsMTggQEAKIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4g
d2hpbGUgY2FsbGluZyB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgpIik7CiAKK2luZGV4ZWREQlRl
c3QocHJlcGFyZURhdGFiYXNlKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19
Ci0KLXZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJUcmFuc2FjdGlvbk9iamVj
dFN0b3JlRmFpbHVyZXNUZXN0RGF0YWJhc2UiKTsKIAogZnVuY3Rpb24gZG9uZSgpCiB7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKLXJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZXZlbnQpCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCiB7CiAgICAgZGVidWcoIlVw
Z3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcg
dmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKICAgICAKLSAgICB2YXIgdHggPSByZXF1
ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB0eCA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsK
ICAgICB2YXIgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogCiAgICAgZGVidWcodHggKyAiIC0g
IiArIHR4Lm1vZGUpOwpAQCAtNzMsNCArNjgsMyBAQCByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGV2ZW50KQogICAgICAgICBkb25lKCk7CiAgICAgfQogfQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LTEu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4
LTEuanMKaW5kZXggNzhhMTBkMC4uNDc5OWYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRleC0xLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5kZXgtMS5qcwpAQCAtMSw4
ICsxLDcgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBleHBlY3RlZCB2YWx1ZXMgZnJv
bSBzb21lIG1vcmUgY29tcGxleCBpbmRleCBzaXR1YXRpb25zLiIpOwotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci19CisKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwog
CiBmdW5jdGlvbiBkb25lKCkKIHsKQEAgLTE0LDggKzEzLDYgQEAgZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCiAgICAgZGVidWcobWVzc2FnZSk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93
LmluZGV4ZWREQi5vcGVuKCJJbmRleDFEYXRhYmFzZSIsIDEpOwotCiBmdW5jdGlvbiBjaGVja0tl
eShpbmRleCwga2V5KQogewogICAgIHZhciByZXF1ZXN0MSA9IGluZGV4LmdldChrZXkpOwpAQCAt
NTUsMTAgKzUyLDExIEBAIGZ1bmN0aW9uIGNoZWNrSW5kZXgoaW5kZXgpCiAgICAgfQogfQogCi1j
cmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CitmdW5jdGlv
biBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRpYWwgdXBncmFkZSBu
ZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9u
IC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9
IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9
IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJn
ZXQucmVzdWx0OwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0
b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAgICB2YXIgaW5kZXgxID0gb2JqZWN0U3RvcmUuY3Jl
YXRlSW5kZXgoIlRlc3RJbmRleDEiLCAiYmFyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LTIuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LTIuanMKaW5kZXggNDlh
ZDZlMC4uZmQ5NzllNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9pbmRleC0yLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5kZXgtMi5qcwpAQCAtMSw4ICsxLDcgQEAKIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIGluZGV4ZXMgYXJlIGxlZnQgaW4gYXBwcm9wcmlhdGUgc3RhdGVz
IGFmdGVyIGFib3J0ZWQgdHJhbnNhY3Rpb25zLiIpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci19CisKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlv
biBkb25lKCkKIHsKQEAgLTE0LDggKzEzLDYgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiAgICAg
ZGVidWcobWVzc2FnZSk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWRE
Qi5vcGVuKCJJbmRleDJEYXRhYmFzZSIsIDEpOwotCiBmdW5jdGlvbiBjaGVja0tleShpbmRleCwg
a2V5KQogewogICAgIHZhciByZXF1ZXN0MSA9IGluZGV4LmdldChrZXkpOwpAQCAtNDksMTAgKzQ2
LDExIEBAIGZ1bmN0aW9uIGNoZWNrSW5kZXgoaW5kZXgpCiAKIHZhciBkYXRhYmFzZTsKIAotY3Jl
YXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24g
cHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVl
ZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAt
ICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBj
cmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVz
dWx0OwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJU
ZXN0T2JqZWN0U3RvcmUiKTsKICAgICB2YXIgaW5kZXgxID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5k
ZXgoIlRlc3RJbmRleDEiLCAiYmFyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LTMuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LTMuanMKaW5kZXggNGU5MTZjZC4u
NDhiMjZmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9pbmRleC0zLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9yZXNvdXJjZXMvaW5kZXgtMy5qcwpAQCAtMSw4ICsxLDcgQEAKIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgZXhlcmNpc2VzIHRoZSBcInVuaXF1ZVwiIGNvbnN0cmFpbnQgb2YgaW5kZXhl
cy4iKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQorCitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CkBAIC0xNCw3ICsxMyw2
IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogICAgIGRlYnVnKG1lc3NhZ2UpOwogfQogCi12YXIg
Y3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSW5kZXgzRGF0YWJhc2UiLCAx
KTsKIHZhciBvYmplY3RTdG9yZTsKIAogZnVuY3Rpb24gY2hlY2tPYmplY3RTdG9yZSgpCkBAIC00
MSwxMCArMzksMTEgQEAgZnVuY3Rpb24gY2hlY2tJbmRleChpbmRleCwgbmFtZSkKICAgICB9CiB9
CiAKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdy
YWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZl
cnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0
aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0
aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CiAgICAgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5jcmVhdGVPYmplY3RT
dG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CiAgICAgdmFyIGkxID0gb2JqZWN0U3RvcmUuY3JlYXRl
SW5kZXgoIlRlc3RJbmRleDEiLCAiYmFyIiwgeyB1bmlxdWU6IHRydWUgfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LTQu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4
LTQuanMKaW5kZXggOTI2M2Q4Ny4uMWMwNGJmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRleC00LmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5kZXgtNC5qcwpAQCAtMSw4
ICsxLDcgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaW5kZXhlcyBhZGRlZCB0byBh
biBvYmplY3Qgc3RvcmUgd2l0aCBleGlzdGluZyByZWNvcmRzIGFyZSBwb3B1bGF0ZWQgdXBvbiB0
aGVpciBjcmVhdGlvbi4iKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQorCitp
bmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CkBA
IC00MiwxMSArNDEsMTEgQEAgZnVuY3Rpb24gY2hlY2tJbmRleFZhbHVlcygpCiAgICAgfSAKIH0K
IAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkluZGV4NERhdGFi
YXNlIiwgMSk7Ci1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50
KSB7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRp
YWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAi
IE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25U
cmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHZlcnNpb25U
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICB2YXIgZGF0YWJhc2Ug
PSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRl
T2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIG9iamVjdFN0b3JlLnB1dCh7IGJh
cjogIkEiIH0sIDEpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9pbmRleC01LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRleC01LmpzCmluZGV4IGY0ZGUzODcuLjBlMzVhNDIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMv
aW5kZXgtNS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2luZGV4LTUuanMKQEAgLTEsOCArMSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyBjcmVhdGluZyBhbiBpbmRleCBvbiBhbiBvYmplY3Qgc3RvcmUgdGhhdCBhbHJlYWR5IGhhcyBy
ZWNvcmRzLCBhbmQgdGhvc2UgcmVjb3JkcyB3b3VsZCB2aW9sYXRlIHRoZSB1bmlxdWUgY29uc3Ry
YWludCBvZiB0aGUgaW5kZXguIChUaGUgaW5kZXggY3JlYXRpb24gc2hvdWxkIGZhaWwpLiIpOwot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CisKK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKQEAgLTQ0LDExICs0MywxMSBAQCBm
dW5jdGlvbiBjaGVja0luZGV4VmFsdWVzKCkKICAgICB9IAogfQogCi12YXIgY3JlYXRlUmVxdWVz
dCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSW5kZXg1RGF0YWJhc2UiLCAxKTsKLWNyZWF0ZVJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBh
cmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDog
T2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsg
ZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRl
UmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQu
dGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CiAgICAgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9i
amVjdFN0b3JlIik7CiAgICAgb2JqZWN0U3RvcmUucHV0KHsgYmFyOiAiQSIgfSwgMSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lu
ZGV4LWN1cnNvci0xLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9pbmRleC1jdXJzb3ItMS5qcwppbmRleCAzNzAyZmQ2Li43MjBkNWY1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4
LWN1cnNvci0xLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9y
ZXNvdXJjZXMvaW5kZXgtY3Vyc29yLTEuanMKQEAgLTEsOCArMSw3IEBACiBkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0cyBjdXJzb3JzIHRoYXQgaXRlcmF0ZSBvdmVyIGVudGlyZSBpbmRleGVzLiIpOwot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CisKK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKQEAgLTc1LDExICs3NCwxMSBAQCBm
dW5jdGlvbiBzdGFydE5leHRDdXJzb3IoKQogICAgIGV2YWwoY29tbWFuZCk7CiB9CiAgICAgCi12
YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSW5kZXhDdXJzb3IxRGF0
YWJhc2UiLCAxKTsKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZl
bnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1ZygiSW5p
dGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiAr
ICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVyc2lv
blRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdmVyc2lv
blRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBkYXRhYmFz
ZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2Uu
Y3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIGluZGV4MSA9IG9iamVj
dFN0b3JlLmNyZWF0ZUluZGV4KCJUZXN0SW5kZXgxIiwgImJhciIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRleC1jdXJzb3It
Mi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5k
ZXgtY3Vyc29yLTIuanMKaW5kZXggZjZmNTY4YS4uYzI2NDEzZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRleC1jdXJzb3ItMi5q
cworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lu
ZGV4LWN1cnNvci0yLmpzCkBAIC0xLDggKzEsNyBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
Y3Vyc29ycyB0aGF0IGl0ZXJhdGUgb3ZlciBwYXJ0cyBvZiBpbmRleGVzLiIpOwotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CisKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNl
KTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKQEAgLTg1LDExICs4NCwxMSBAQCBmdW5jdGlvbiBz
dGFydE5leHRDdXJzb3IoKQogICAgIGV2YWwoY29tbWFuZCk7CiB9CiAgICAgCi12YXIgY3JlYXRl
UmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSW5kZXhDdXJzb3IyRGF0YWJhc2UiLCAx
KTsKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdy
YWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZl
cnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0
aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0
aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2Jq
ZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIGluZGV4ID0gb2JqZWN0U3RvcmUuY3Jl
YXRlSW5kZXgoIlRlc3RJbmRleDEiLCAiYmFyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LWN1cnNvci0zLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRleC1jdXJzb3It
My5qcwppbmRleCA3M2EzNjA2Li5kMGY0NGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LWN1cnNvci0zLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5kZXgtY3Vyc29y
LTMuanMKQEAgLTEsOCArMSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGluZGV4
IGN1cnNvcnMgcHJvcGVybHkgaGFuZGxlIGNoYW5naW5nIGluZGV4ZXMuIik7Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KKworaW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2Up
OworCiAKIGZ1bmN0aW9uIGRvbmUoKQogewpAQCAtMTQyLDExICsxNDEsMTEgQEAgZnVuY3Rpb24g
cG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgb2JqZWN0U3RvcmUucHV0KHsgYmFyOiAiSSIgfSwg
MTgpOyAgCiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJJ
bmRleEN1cnNvcjNEYXRhYmFzZSIsIDEpOwotY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewog
ICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVu
dC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAot
ICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOwor
ICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAg
ICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBvYmplY3RTdG9yZSA9
IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAgICBpbmRl
eCA9IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJUZXN0SW5kZXgxIiwgImJhciIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pbmRl
eC1nZXQtY291bnQtYmFzaWMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL2luZGV4LWdldC1jb3VudC1iYXNpYy5qcwppbmRleCBkNmQ1ZDU2Li44NGQ1
ZWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL2luZGV4LWdldC1jb3VudC1iYXNpYy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4LWdldC1jb3VudC1iYXNpYy5qcwpAQCAt
MSw4ICsxLDcgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBtb3N0IGJhc2ljIG9wZXJh
dGlvbiBvZiB0aGUgSURCSW5kZXggbWV0aG9kcyBnZXQoKSwgZ2V0S2V5KCksIGFuZCBjb3VudCgp
LiIpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CisKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKQEAgLTE0LDEyICsxMywx
MSBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKICAgICBkZWJ1ZyhtZXNzYWdlKTsKIH0KIAotdmFy
IGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkluZGV4R2V0Q291bnRCYXNp
Y0RhdGFiYXNlIiwgMSk7Ci0KLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1
ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVy
c2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIg
dmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIg
dmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIHZhciBk
YXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0
YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIHZhciBpbmRl
eCA9IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJUZXN0SW5kZXgiLCAiYmFyIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2luZGV4
LWdldC1jb3VudC1mYWlsdXJlcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9yZXNvdXJjZXMvaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVzLmpzCmluZGV4IDVlMzdhNmEu
LjI3YmNiYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVzLmpzCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaW5kZXgtZ2V0LWNvdW50LWZhaWx1
cmVzLmpzCkBAIC0xLDggKzEsNyBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc29tZSBvYnZp
b3VzIGZhaWx1cmVzIHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIHRoZSBJREJJbmRleCBt
ZXRob2RzIGdldCgpLCBnZXRLZXkoKSwgYW5kIGNvdW50KCkuIik7Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLX0KKworaW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOworCiAK
IGZ1bmN0aW9uIGRvbmUoKQogewpAQCAtMTQsMTQgKzEzLDE0IEBAIGZ1bmN0aW9uIGxvZyhtZXNz
YWdlKQogICAgIGRlYnVnKG1lc3NhZ2UpOwogfQogCi12YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRv
dy5pbmRleGVkREIub3BlbigiSW5kZXhHZXRDb3VudEZhaWx1cmVzRGF0YWJhc2UiLCAxKTsKIHZh
ciBkYXRhYmFzZTsKIHZhciBpbmRleDsKIAotY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewog
ICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVu
dC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAot
ICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOwor
ICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAg
ICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIHZhciBvYmplY3RTdG9yZSA9
IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAgICBpbmRl
eCA9IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJUZXN0SW5kZXgiLCAiZm9vIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2tleXBh
dGgtYmFzaWMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL2tleXBhdGgtYmFzaWMuanMKaW5kZXggYjM2NGM3Zi4uNGIwOWY0NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9rZXlwYXRoLWJh
c2ljLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJj
ZXMva2V5cGF0aC1iYXNpYy5qcwpAQCAtMSwyMiArMSwxOCBAQAogZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBjcmVhdGVzIHNvbWUgb2JqZWN0IHN0b3JlcyB3aXRoIGtleXBhdGhzLiBJdCB0aGVuIHB1
dHMgc29tZSB2YWx1ZXMgaW4gdGhlbS4gSXQgbWFrZXMgc3VyZSB0aGUga2V5cyB1c2VkIGFyZSBh
cyBleHBlY3RlZC4iKTsKIAoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UpOwogCi1pZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KIAogZnVuY3Rpb24gZG9uZSgpCiB7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWRE
Qi5vcGVuKCJLZXlwYXRoQmFzaWNUZXN0RGF0YWJhc2UiLCAxKTsKLQotY3JlYXRlUmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJlcGFyZURhdGFi
YXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVy
c2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5u
ZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0
LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb247CiAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsgICAg
CiAgICAgdmFyIG9iamVjdFN0b3JlMSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJPUzEi
LCB7IGtleVBhdGg6ICJmb28iIH0pOwogICAgIHZhciBvYmplY3RTdG9yZTIgPSBkYXRhYmFzZS5j
cmVhdGVPYmplY3RTdG9yZSgiT1MyIiwgeyBrZXlQYXRoOiAiZm9vLmJhciIgfSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29iamVj
dHN0b3JlLWF0dHJpYnV0ZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL29iamVjdHN0b3JlLWF0dHJpYnV0ZXMuanMKaW5kZXggNDk1M2I3Yi4uNzY4
NzBkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9vYmplY3RzdG9yZS1hdHRyaWJ1dGVzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtYXR0cmlidXRlcy5qcwpA
QCAtMSwxMCArMSw3IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGV4ZXJjaXNlcyB0aGUgcmVh
ZG9ubHkgYXR0cmlidXRlcyBvbiBhbiBJREJPYmplY3RTdG9yZS4iKTsKLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotfQogCi12YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Bl
bigiT2JqZWN0U3RvcmVBdHRyaWJ1dGVzVGVzdERhdGFiYXNlIik7CitpbmRleGVkREJUZXN0KHBy
ZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkBAIC0xOCwxMSAr
MTUsMTEgQEAgZnVuY3Rpb24gZG9uZSgpCiAKIHZhciBkYXRhYmFzZTsKIAotcmVxdWVzdC5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShl
dmVudCkKIHsKICAgICBkZWJ1ZygiRmlyc3QgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0g
IiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNp
b24pOwogICAgIAotICAgIHZhciB0eCA9IHJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIHR4
ID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKIAogICAgIGRlYnVnKHR4ICsgIiAtICIgKyB0eC5tb2RlKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvb2JqZWN0c3Rv
cmUtY3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29iamVjdHN0b3JlLWN1cnNvci1hZHZhbmNlLWZhaWx1cmVz
LmpzCmluZGV4IDRiY2VlODAuLjExNTFjMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtY3Vyc29yLWFkdmFuY2Ut
ZmFpbHVyZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9vYmplY3RzdG9yZS1jdXJzb3ItYWR2YW5jZS1mYWlsdXJlcy5qcwpAQCAtMSw4ICsx
LDcgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0
IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJDdXJzb3IuYWR2YW5jZSgpIG9uIG9iamVjdCBz
dG9yZSBjdXJzb3JzLiIpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CisKK2lu
ZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5jdGlvbiBkb25lKCkKIHsKQEAg
LTE0LDEzICsxMywxMyBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKICAgICBkZWJ1ZyhtZXNzYWdl
KTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIklEQkFk
dmFuY2VGYWlsdXJlc0RhdGFiYXNlIiwgMSk7CiB2YXIgZGF0YWJhc2U7CiAKLWNyZWF0ZVJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVE
YXRhYmFzZShldmVudCkKK3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xk
IHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZl
bnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVx
dWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uOwogICAgIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAg
ICB2YXIgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgiVGVzdE9iamVj
dFN0b3JlIik7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9vYmplY3RzdG9y
ZS1jdXJzb3ItY29udGludWUtZmFpbHVyZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29iamVjdHN0b3JlLWN1cnNvci1jb250aW51ZS1mYWlsdXJl
cy5qcwppbmRleCA1MjQ0NTQwLi4wY2NmNWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29iamVjdHN0b3JlLWN1cnNvci1jb250aW51
ZS1mYWlsdXJlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
cmVzb3VyY2VzL29iamVjdHN0b3JlLWN1cnNvci1jb250aW51ZS1mYWlsdXJlcy5qcwpAQCAtMSw4
ICsxLDcgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0
aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJDdXJzb3IuY29udGludWUoKSBvbiBvYmpl
Y3Qgc3RvcmUgY3Vyc29ycy4iKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQor
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7
CkBAIC0xNCwxMyArMTMsMTMgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiAgICAgZGVidWcobWVz
c2FnZSk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJJ
REJDb250aW51ZUZhaWx1cmVzRGF0YWJhc2UiLCAxKTsKIHZhciBkYXRhYmFzZTsKIAotY3JlYXRl
UmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24gcHJl
cGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVk
OiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIg
KyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVh
dGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVu
dC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0
OwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0
T2JqZWN0U3RvcmUiKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyArK2kpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29wZW5j
dXJzb3ItZmFpbHVyZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
cmVzb3VyY2VzL29wZW5jdXJzb3ItZmFpbHVyZXMuanMKaW5kZXggNzQzNWY2Ny4uODY1MmFiNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy9vcGVuY3Vyc29yLWZhaWx1cmVzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9yZXNvdXJjZXMvb3BlbmN1cnNvci1mYWlsdXJlcy5qcwpAQCAtMSw4ICsxLDcg
QEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNh
biBoYXBwZW4gd2hpbGUgb3BlbmluZyBjdXJzb3JzLiIpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci19CisKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKKwogCiBmdW5j
dGlvbiBkb25lKCkKIHsKQEAgLTE0LDE1ICsxMywxNSBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkK
ICAgICBkZWJ1ZyhtZXNzYWdlKTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5k
ZXhlZERCLm9wZW4oIk9wZW5DdXJzb3JGYWlsdXJlc0RhdGFiYXNlIiwgMSk7CiB2YXIgZGF0YWJh
c2U7CiB2YXIgb2JqZWN0U3RvcmU7CiB2YXIgaW5kZXg7CiAKLWNyZWF0ZVJlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShl
dmVudCkKK3sKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24g
LSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVy
c2lvbik7CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFu
c2FjdGlvbjsKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5z
YWN0aW9uOwogICAgIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAgICBvYmplY3RT
dG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKICAg
ICBpbmRleCA9IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJUZXN0SW5kZXgiLCAiYmFyIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2Vz
L29wZW5kYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9vcGVuZGF0YWJhc2UtcmVxdWVzdC1ldmVudC5qcwppbmRl
eCBlODhjOTM5Li5lODRhMzE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29wZW5kYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvb3BlbmRhdGFi
YXNlLXJlcXVlc3QtZXZlbnQuanMKQEAgLTEsMjkgKzEsMjYgQEAKIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgY2FsbHMgb3BlbiBvbiB3aW5kb3cuaW5kZXhlZERCIGluIHZhcmlvdXMgd2F5cywgdmVy
aWZ5aW5nIHRoYXQgSURCT3BlbkRCUmVxdWVzdCBvYmplY3RzIGFyZSByZXR1cm5lZCB3aGVuIGV4
cGVjdGVkIGFuZCBleGNlcHRpb25zIGFyZSB0aHJvd24gd2hlbiBleHBlY3RlZC4iKTsKIAogCi1p
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KLQogZnVuY3Rpb24gZG9uZSgpCiB7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKK3ZhciBkYm5hbWUgPSAiVGVzdERhdGFiYXNlIiArIERh
dGUoKTsKKwogdHJ5IHsKLSAgICB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlRlc3REYXRhYmFzZSIs
IDApOworICAgIHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDApOwogfSBjYXRjaCAoZSkg
ewogICAgIGRlYnVnKCJDYXVnaHQgZXhjZXB0aW9uICIgKyBlKTsKIH0KIAogdHJ5IHsKLSAgICB3
aW5kb3cuaW5kZXhlZERCLm9wZW4oIlRlc3REYXRhYmFzZSIsIC0xKTsKKyAgICB3aW5kb3cuaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAtMSk7CiB9IGNhdGNoIChlKSB7CiAgICAgZGVidWcoIkNhdWdo
dCBleGNlcHRpb24gIiArIGUpOwogfQogCi12YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVGVzdERhdGFiYXNlIik7Cit2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Bl
bihkYm5hbWUpOwogZGVidWcocmVxdWVzdCk7CiAKIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jl
c291cmNlcy9vcGVuZGF0YWJhc2UtcmVxdWVzdC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvb3BlbmRhdGFiYXNlLXJlcXVlc3QuanMKaW5kZXggZjgw
MTMyNy4uY2JmMTA2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9vcGVuZGF0YWJhc2UtcmVxdWVzdC5qcworKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29wZW5kYXRhYmFzZS1yZXF1ZXN0
LmpzCkBAIC0xLDE3ICsxLDEyIEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNhbGxzIG9wZW4g
b24gd2luZG93LmluZGV4ZWREQiBpbiB2YXJpb3VzIHdheXMsIHZlcmlmeWluZyB0aGF0IElEQk9w
ZW5EQlJlcXVlc3Qgb2JqZWN0cyBhcmUgcmV0dXJuZWQgd2hlbiBleHBlY3RlZCBhbmQgZXhjZXB0
aW9ucyBhcmUgdGhyb3duIHdoZW4gZXhwZWN0ZWQuIik7CiAKIAotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci19Ci0KIGZ1bmN0aW9uIGRvbmUoKQogewogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCi12YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiVGVzdERhdGFiYXNl
Iik7Cit2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiT3BlbkRhdGFiYXNlUmVx
dWVzdFRlc3REYXRhYmFzZSIgKyBEYXRlKCkpOwogZGVidWcocmVxdWVzdCk7CiAKIHJlcXVlc3Qg
PSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9vcGVuZGF0YWJhc2Utc3VjY2Vzcy1hZnRl
ci12ZXJzaW9uY2hhbmdlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9vcGVuZGF0YWJhc2Utc3VjY2Vzcy1hZnRlci12ZXJzaW9uY2hhbmdlLmpzCmlu
ZGV4IGE1MThiZjMuLjQ0ODlmYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvb3BlbmRhdGFiYXNlLXN1Y2Nlc3MtYWZ0ZXItdmVyc2lv
bmNoYW5nZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL29wZW5kYXRhYmFzZS1zdWNjZXNzLWFmdGVyLXZlcnNpb25jaGFuZ2UuanMKQEAgLTIs
MTAgKzIsOSBAQCBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQ6IFwKICAgICAt
IE9wZW5pbmcgYSBuZXcgZGF0YWJhc2UgcmVzdWx0cyBpbiB0aGUgb251cGdyYWRlbmVlZGVkIGhh
bmRsZXIgYmVpbmcgY2FsbGVkIG9uIHRoZSBJREJPcGVuREJSZXF1ZXN0LiBcCiAgICAgLSBUaGUg
dmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiByZXByZXNlbnRpbmcgdGhlIHVwZ3JhZGUgY29tbWl0
cyBzdWNjZXNzZnVsbHkuIFwKICAgICAtIEFmdGVyIHRoYXQgdHJhbnNhY3Rpb24gY29tbWl0cywg
dGhlIG9uc3VjY2VzcyBoYW5kbGVyIG9uIHRoZSBvcmlnaW5hbCBJREJPcGVuREJSZXF1ZXN0IGlz
IGNhbGxlZC4iKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQorCitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb3BlblN1Y2Nlc3MpOworCiAKIGZ1bmN0aW9uIGRvbmUo
KQogewpAQCAtMTksMzQgKzE4LDI5IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogCiB2YXIgcmVx
dWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiT3BlbkRhdGFiYXNlU3VjY2Vzc0FmdGVyVmVy
c2lvbkNoYW5nZURhdGFiYXNlIik7CiAKLXJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKQor
ZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQogewogICAgIGRlYnVnKCJHb3QgdGhlIG9uc3VjY2VzcyBo
YW5kbGVyIGFzIGV4cGVjdGVkLiIpOwogCWRvbmUoKTsKIH0KLXJlcXVlc3Qub25lcnJvciA9IGZ1
bmN0aW9uKGUpCi17Ci0gICAgZGVidWcoIlVuZXhwZWN0ZWQgb25lcnJvciBoYW5kbGVyIGNhbGxl
ZCIpOwotCWRvbmUoKTsKLX0KIAotcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KQorZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGUpCiB7CiAgICAgZGVidWcoInVwZ3JhZGVuZWVk
ZWQ6IG9sZCB2ZXJzaW9uIC0gIiArIGUub2xkVmVyc2lvbiArICIgbmV3IHZlcnNpb24gLSAiICsg
ZS5uZXdWZXJzaW9uKTsKLSAgICBkZWJ1ZyhyZXF1ZXN0LnRyYW5zYWN0aW9uKTsKKyAgICBkZWJ1
ZyhlLnRhcmdldC50cmFuc2FjdGlvbik7CiAgICAgCi0gICAgcmVxdWVzdC50cmFuc2FjdGlvbi5v
bmNvbXBsZXRlID0gZnVuY3Rpb24oKQorICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxl
dGUgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBkZWJ1ZygiVmVyc2lvbiBjaGFuZ2UgY29t
cGxldGUiKTsKICAgICB9CiAgICAgCi0gICAgcmVxdWVzdC50cmFuc2FjdGlvbi5vbmFib3J0ID0g
ZnVuY3Rpb24oKQorICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICBkZWJ1ZygiVmVyc2lvbiBjaGFuZ2UgdW5leHBlY3RlZCBhYm9ydCIp
OwogICAgICAgICBkb25lKCk7CiAgICAgfQogICAgIAotICAgIHJlcXVlc3QudHJhbnNhY3Rpb24u
b25lcnJvciA9IGZ1bmN0aW9uKCkKKyAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmVycm9yID0g
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZGVidWcoIlZlcnNpb24gY2hhbmdlIHVuZXhwZWN0
ZWQgZXJyb3IiKTsKICAgICAgICAgZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9vcGVuZGF0YWJhc2UtdmVyc2lvbnMuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29wZW5kYXRh
YmFzZS12ZXJzaW9ucy5qcwppbmRleCBjYTVhZDMwLi40Mjk4NDNiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL29wZW5kYXRhYmFzZS12
ZXJzaW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL29wZW5kYXRhYmFzZS12ZXJzaW9ucy5qcwpAQCAtMSwxNiArMSwxMiBAQAogZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCBjcmVhdGVzIGEgbmV3IGRhdGFiYXNlIHdpdGggdGhlIGRlZmF1bHQg
dmVyc2lvbiwgY29tbWl0cyB0aGF0IHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24sIGFuZCB0aGVu
IHJlb3BlbnMgaXQgYXQgZGlmZmVyZW50IHZlcnNpb25zIHRvIG1ha2Ugc3VyZSB0aGUgSURCT3Bl
bkRCUmVxdWVzdHMgYmVoYXZlIGFwcHJvcHJpYXRlbHkuIik7CiAKLQoraW5kZXhlZERCVGVzdChw
cmVwYXJlRGF0YWJhc2UsIG9wZW5TdWNjZXNzZnVsKTsKIAogZnVuY3Rpb24gbG9nKG1zZykKIHsK
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2VyIikuaW5uZXJIVE1MICs9IG1zZyAr
ICIiOwogfQogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KIAogZnVuY3Rpb24g
ZG9uZSgpCiB7CkBAIC0xOCwzNSArMTQsMzYgQEAgZnVuY3Rpb24gZG9uZSgpCiB9CiAKIHZhciBy
ZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJWZXJzaW9uVGVzdERhdGFiYXNlIik7Ci1k
ZWJ1ZyhyZXF1ZXN0ICsgIiAoZmlyc3RQaGFzZSkiKTsKIAotcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbigpCitmdW5jdGlvbiBvcGVuU3VjY2Vzc2Z1bCgpCiB7CiAgICAgZGVidWcoIkZpcnN0
IHZlcnNpb24gY2hhbmdlIHN1Y2Nlc3NmdWwiKTsKIH0KLXJlcXVlc3Qub25lcnJvciA9IGZ1bmN0
aW9uKGUpCi17Ci0gICAgZGVidWcoIk9wZW4gcmVxdWVzdCBlcnJvciAoZmlyc3RQaGFzZSkgIiAr
IHJlcXVlc3QuZXJyb3IubmFtZSk7Ci19CiAKLXJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkKK3ZhciBkYm5hbWU7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZSkKIHsKICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGRibmFtZSA9IGRhdGFi
YXNlLm5hbWU7CisKKyAgICBldmVudC50YXJnZXQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGVidWcoIk9wZW4gcmVxdWVzdCBlcnJvciAoZmlyc3RQaGFzZSkgIiArIGV2ZW50LnRh
cmdldC5lcnJvci5uYW1lKTsKKyAgICB9CiAKICAgICBkZWJ1ZygidXBncmFkZW5lZWRlZCAoZmly
c3RQaGFzZSk6IG9sZCB2ZXJzaW9uIC0gIiArIGUub2xkVmVyc2lvbiArICIgbmV3IHZlcnNpb24g
LSAiICsgZS5uZXdWZXJzaW9uKTsKICAgICBkZWJ1ZyhyZXF1ZXN0LnRyYW5zYWN0aW9uKTsKLSAg
ICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpCisgICAgZXZlbnQu
dGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICBkZWJ1ZygiVmVyc2lvbiBjaGFuZ2UgY29tcGxldGUgKGZpcnN0UGhhc2UpLiBEYXRhYmFzZSB2
ZXJzaW9uIGlzIG5vdyAtICIgKyBkYXRhYmFzZS52ZXJzaW9uKTsKICAgICAgICAgZGF0YWJhc2Uu
Y2xvc2UoKTsKICAgICAgICAgc2Vjb25kUGhhc2UoKTsKICAgICB9Ci0gICAgcmVxdWVzdC50cmFu
c2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oKQorICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlv
bi5vbmFib3J0ID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZGVidWcoIlZlcnNpb24gY2hh
bmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgYWJvcnQhIChmaXJzdFBoYXNlKSIpOwogICAgICAg
ICBkb25lKCk7CiAgICAgfQotICAgIHJlcXVlc3QudHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0
aW9uKCkKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIGRlYnVnKCJWZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4cGVj
dGVkIGVycm9yISAoZmlyc3RQaGFzZSkiKTsKICAgICAgICAgZG9uZSgpOwpAQCAtNTUsNyArNTIs
NyBAQCByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpCiAKIGZ1bmN0aW9uIHNl
Y29uZFBoYXNlKCkKIHsKLSAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Blbigi
VmVyc2lvblRlc3REYXRhYmFzZSIsIDEpOworICAgIHZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMSk7CiAgICAgZGVidWcocmVxdWVzdCArICIgKHNlY29uZFBoYXNl
KSIpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKQogICAgIHsKQEAgLTc4LDcg
Kzc1LDcgQEAgZnVuY3Rpb24gc2Vjb25kUGhhc2UoKQogCiBmdW5jdGlvbiB0aGlyZFBoYXNlKCkK
IHsKLSAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiVmVyc2lvblRlc3RE
YXRhYmFzZSIsIDIpOworICAgIHZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMik7CiAgICAgZGVidWcocmVxdWVzdCArICIgKHRoaXJkUGhhc2UpIik7CiAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpCiAgICAgewpAQCAtMTE2LDcgKzExMyw3IEBAIGZ1
bmN0aW9uIHRoaXJkUGhhc2UoKQogZnVuY3Rpb24gZm91cnRoUGhhc2UoKQogewogICAgIC8vIFdl
J3ZlIHVwZ3JhZGVkIHRvIHZlcnNpb24gMiwgc28gdmVyc2lvbiAxIHNob3VsZCBub3QgYmUgb3Bl
bmFibGUuCi0gICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25U
ZXN0RGF0YWJhc2UiLCAxKTsKKyAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Bl
bihkYm5hbWUsIDEpOwogICAgIGRlYnVnKHJlcXVlc3QgKyAiIChmb3VydGhQaGFzZSkiKTsKICAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3JlcXVlc3QtcmVhZHlz
dGF0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMv
cmVxdWVzdC1yZWFkeXN0YXRlLmpzCmluZGV4IDc1ZWYxZGIuLmI4YzhkODAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvcmVxdWVzdC1y
ZWFkeXN0YXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9y
ZXNvdXJjZXMvcmVxdWVzdC1yZWFkeXN0YXRlLmpzCkBAIC0xLDggKzEsNSBAQAogZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgSURCUmVxdWVzdC5yZWFkeVN0YXRlIHJldHVy
bnMgZXhwZWN0ZWQgdmFsdWVzLiIpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19
CisKIAogZnVuY3Rpb24gZG9uZSgpCiB7CkBAIC0xNCw3ICsxMSw3IEBAIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKQogICAgIGRlYnVnKG1lc3NhZ2UpOwogfQogCi12YXIgY3JlYXRlUmVxdWVzdCA9IHdp
bmRvdy5pbmRleGVkREIub3BlbigiUmVxdWVzdFJlYWR5U3RhdGVEYXRhYmFzZSIsIDEpOwordmFy
IGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlJlcXVlc3RSZWFkeVN0YXRl
RGF0YWJhc2UiICsgRGF0ZSgpLCAxKTsKIGRlYnVnKCJBZnRlciBjYWxsaW5nIGluZGV4ZWREQi5v
cGVuKCksIGNyZWF0ZSByZXF1ZXN0IHJlYWR5U3RhdGUgaXM6ICIgKyBjcmVhdGVSZXF1ZXN0LnJl
YWR5U3RhdGUpOwogCiBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2
ZW50KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
cmVzb3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0xLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zY2hlZHVsZXItMS5qcwpp
bmRleCBmMTRlN2U3Li5kNjhkYzY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0xLmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvdHJhbnNhY3Rp
b24tc2NoZWR1bGVyLTEuanMKQEAgLTEsMjMgKzEsMjMgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgbWFrZXMgc3VyZSB0aGF0IHR3byByZWFkLW9ubHkgdHJhbnNhY3Rpb25zIHRvIGFuIG9iamVj
dCBzdG9yZSBhcmUgYWN0aXZlIGF0IHRoZSBzYW1lIHRpbWUuIik7CiAKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlKTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CiAK
IGZ1bmN0aW9uIGRvbmUoKQogewogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi12YXIgY3JlYXRl
UmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiVHJhbnNhY3Rpb25TY2hlZHVsZXIxRGF0
YWJhc2UiKTsKLQotY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVu
dCkgewordmFyIGRibmFtZTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKK3sKICAg
ICBkZWJ1ZygiVXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZl
cnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZXZlbnQu
dGFyZ2V0Lm9uZXJyb3IgPSBudWxsOworCisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2
ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgIGRibmFtZSA9IGRhdGFiYXNlLm5hbWU7CiAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIHZh
ciByZXF1ZXN0ID0gb2JqZWN0U3RvcmUucHV0KCJmb28iLCAiYmFyIik7CiAKQEAgLTQ1LDggKzQ1
LDggQEAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewog
CiBmdW5jdGlvbiBjb250aW51ZVRlc3QoKQogewotICAgIHZhciByZXF1ZXN0MSA9IHdpbmRvdy5p
bmRleGVkREIub3BlbigiVHJhbnNhY3Rpb25TY2hlZHVsZXIxRGF0YWJhc2UiLCAxKTsKLSAgICB2
YXIgcmVxdWVzdDIgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlRyYW5zYWN0aW9uU2NoZWR1bGVy
MURhdGFiYXNlIiwgMSk7CisgICAgdmFyIHJlcXVlc3QxID0gd2luZG93LmluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMSk7CisgICAgdmFyIHJlcXVlc3QyID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMSk7CiAKICAgICBzZXR1cFJlcXVlc3QocmVxdWVzdDEsICJyZXF1ZXN0IDEiKTsKICAg
ICBzZXR1cFJlcXVlc3QocmVxdWVzdDIsICJyZXF1ZXN0IDIiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tc2No
ZWR1bGVyLTIuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0yLmpzCmluZGV4IDNlM2Q2NDIuLjE4MDA3ZGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMv
dHJhbnNhY3Rpb24tc2NoZWR1bGVyLTIuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zY2hlZHVsZXItMi5qcwpAQCAtMSwy
MyArMSwyMyBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdHdvIHJl
YWQtb25seSB0cmFuc2FjdGlvbnMgdG8gdHdvIGRpZmZlcmVudCBvYmplY3Qgc3RvcmVzIGFyZSBh
Y3RpdmUgYXQgdGhlIHNhbWUgdGltZS4iKTsKIAoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJh
c2UpOwogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLX0KIAogZnVuY3Rpb24gZG9u
ZSgpCiB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXZhciBjcmVhdGVSZXF1ZXN0ID0gd2lu
ZG93LmluZGV4ZWREQi5vcGVuKCJUcmFuc2FjdGlvblNjaGVkdWxlcjJEYXRhYmFzZSIpOwotCi1j
cmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cit2YXIgZGJu
YW1lOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQorewogICAgIGRlYnVnKCJVcGdy
YWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZl
cnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CiAKLSAgICB2YXIgdmVyc2lvblRyYW5zYWN0
aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICBldmVudC50YXJnZXQub25lcnJv
ciA9IG51bGw7CisKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uOwogICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAg
ZGJuYW1lID0gZGF0YWJhc2UubmFtZTsKICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5j
cmVhdGVPYmplY3RTdG9yZSgiT1MxIik7CiAgICAgdmFyIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5w
dXQoImZvbzEiLCAiYmFyMSIpOwogCkBAIC01Myw4ICs1Myw4IEBAIGNyZWF0ZVJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKIAogZnVuY3Rpb24gY29udGludWVUZXN0
KCkKIHsKLSAgICB2YXIgcmVxdWVzdDEgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlRyYW5zYWN0
aW9uU2NoZWR1bGVyMkRhdGFiYXNlIiwgMSk7Ci0gICAgdmFyIHJlcXVlc3QyID0gd2luZG93Lmlu
ZGV4ZWREQi5vcGVuKCJUcmFuc2FjdGlvblNjaGVkdWxlcjJEYXRhYmFzZSIsIDEpOworICAgIHZh
ciByZXF1ZXN0MSA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDEpOworICAgIHZhciBy
ZXF1ZXN0MiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIDEpOwogCiAgICAgc2V0dXBS
ZXF1ZXN0KHJlcXVlc3QxLCAiT1MxIik7CiAgICAgc2V0dXBSZXF1ZXN0KHJlcXVlc3QyLCAiT1My
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0zLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zY2hlZHVsZXItMy5qcwppbmRl
eCBlMmI2YmRjLi5jZDdlOTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0zLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24t
c2NoZWR1bGVyLTMuanMKQEAgLTEsMjMgKzEsMjMgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
bWFrZXMgc3VyZSB0aGF0IGEgd3JpdGUgdHJhbnNhY3Rpb24gaXMgYmxvY2tlZCBieSBhIHJlYWQg
dHJhbnNhY3Rpb24gd2l0aCBvdmVybGFwcGluZyBzY29wZS4gSXQgYWxzbyBtYWtlcyBzdXJlIHRo
ZSB3cml0ZSB0cmFuc2FjdGlvbiBzdGFydHMgYWZ0ZXIgdGhlIHJlYWQgdHJhbnNhY3Rpb24gY29t
cGxldGVzLiIpOwogCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CiAKLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQogCiBmdW5jdGlvbiBkb25lKCkKIHsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9w
ZW4oIlRyYW5zYWN0aW9uU2NoZWR1bGVyM0RhdGFiYXNlIik7Ci0KLWNyZWF0ZVJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK3ZhciBkYm5hbWU7CitmdW5jdGlvbiBw
cmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIlVwZ3JhZGUgbmVlZGVkOiBPbGQg
dmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVu
dC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1
ZXN0LnRyYW5zYWN0aW9uOworICAgIGV2ZW50LnRhcmdldC5vbmVycm9yID0gbnVsbDsKKworICAg
IHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb247CiAgICAg
dmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkYm5hbWUgPSBkYXRhYmFz
ZS5uYW1lOwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
KCJPUyIpOwogICAgIHZhciByZXF1ZXN0ID0gb2JqZWN0U3RvcmUucHV0KCJiYXIiLCAiZm9vIik7
CiAKQEAgLTQ2LDcgKzQ2LDcgQEAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihldmVudCkgewogdmFyIHNlY29uZERhdGFiYXNlQ29ubmVjdGlvbjsKIGZ1bmN0aW9uIGNv
bnRpbnVlVGVzdCgpCiB7Ci0gICAgdmFyIGxvbmdSdW5uaW5nUmVhZFJlcXVlc3QgPSB3aW5kb3cu
aW5kZXhlZERCLm9wZW4oIlRyYW5zYWN0aW9uU2NoZWR1bGVyM0RhdGFiYXNlIiwgMSk7CisgICAg
dmFyIGxvbmdSdW5uaW5nUmVhZFJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCAxKTsKICAgICBsb25nUnVubmluZ1JlYWRSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgICAgIGRlYnVnKCJTdWNjZXNzIG9wZW5pbmcgZGF0YWJhc2UgY29ubmVjdGlv
biAtIFN0YXJ0aW5nIHJlYWRvbmx5IHRyYW5zYWN0aW9uIik7CiAgICAgICAgIHNlY29uZERhdGFi
YXNlQ29ubmVjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVk
dWxlci01LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNl
cy90cmFuc2FjdGlvbi1zY2hlZHVsZXItNS5qcwppbmRleCBmMGM3YmI1NDAuLjBlMjNlNDQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMv
dHJhbnNhY3Rpb24tc2NoZWR1bGVyLTUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zY2hlZHVsZXItNS5qcwpAQCAtMywy
NCArMywyNCBAQCBJdCB0aGVuIG9wZW5zIHR3byBsb25nIHJ1bm5pbmcgcmVhZC1vbmx5IHRyYW5z
YWN0aW9ucywgb25lIHBlciBvYmplY3Qgc3RvcmUuIFwKIEl0IHRoZW4gb3BlbnMgYSByZWFkLXdy
aXRlIHRyYW5zYWN0aW9uIHRvIGJvdGggb2JqZWN0IHN0b3Jlcy4gXAogVGhlIHJlYWQtb25seSB0
cmFuc2FjdGlvbnMgYm90aCBuZWVkIHRvIGZpbmlzaCBiZWZvcmUgdGhlIHJlYWQtd3JpdGUgdHJh
bnNhY3Rpb24gc3RhcnRzLiIpOwogCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CiAK
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQogCiBmdW5jdGlvbiBkb25lKCkKIHsK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5k
ZXhlZERCLm9wZW4oIlRyYW5zYWN0aW9uU2NoZWR1bGVyNURhdGFiYXNlIik7Ci0KLWNyZWF0ZVJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK3ZhciBkYm5hbWU7Citm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIlVwZ3JhZGUgbmVl
ZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAt
ICIgKyBldmVudC5uZXdWZXJzaW9uKTsKIAotICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBj
cmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgIGV2ZW50LnRhcmdldC5vbmVycm9yID0gbnVs
bDsKKworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rp
b247CiAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkYm5hbWUg
PSBkYXRhYmFzZS5uYW1lOwogICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9i
amVjdFN0b3JlKCJPUzEiKTsKICAgICB2YXIgcmVxdWVzdCA9IG9iamVjdFN0b3JlLnB1dCgiYmFy
IiwgImZvbyIpOwogCkBAIC03OCw3ICs3OCw3IEBAIGZ1bmN0aW9uIHNldHVwUmVhZFRyYW5zYWN0
aW9uQ2FsbGJhY2tzKHRyYW5zYWN0aW9uKQogCiBmdW5jdGlvbiBjb250aW51ZVRlc3QoKQogewot
ICAgIHZhciBvcGVuREJSZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJUcmFuc2FjdGlv
blNjaGVkdWxlcjVEYXRhYmFzZSIsIDEpOworICAgIHZhciBvcGVuREJSZXF1ZXN0ID0gd2luZG93
LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSk7CiAgICAgb3BlbkRCUmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihldmVudCkgewogICAgICAgICBkZWJ1ZygiU3VjY2VzcyBvcGVuaW5nIGRhdGFi
YXNlIGNvbm5lY3Rpb24gLSBTdGFydGluZyB0cmFuc2FjdGlvbnMiKTsKICAgICAgICAgc2Vjb25k
RGF0YWJhc2VDb25uZWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24t
c2NoZWR1bGVyLTYuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVz
b3VyY2VzL3RyYW5zYWN0aW9uLXNjaGVkdWxlci02LmpzCmluZGV4IDA3NTZlMmMuLjNjOGEzNTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJj
ZXMvdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTYuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zY2hlZHVsZXItNi5qcwpAQCAt
MSwyNCArMSwyMSBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBzdGFydHMgdHdvIHJlYWQtb25s
eSB0cmFuc2FjdGlvbnMgdG8gYW4gb2JqZWN0IHN0b3JlIGZvbGxvd2VkIGJ5IGEgcmVhZC13cml0
ZSB0cmFuc2FjdGlvbi4gXAogSXQgdmVyaWZpZXMgdGhhdCB0aGUgcmVhZC13cml0ZSBkb2Vzbid0
IHN0YXJ0IHVudGlsIGJvdGggcmVhZC1vbmx5cyBoYXZlIGZpbmlzaGVkLiIpOwogCitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSk7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotfQogCiBmdW5jdGlvbiBkb25lKCkKIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdmFy
IGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlRyYW5zYWN0aW9uU2NoZWR1
bGVyNkRhdGFiYXNlIik7CiB2YXIgZGF0YWJhc2U7CiAKLWNyZWF0ZVJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVu
dCkKK3sKICAgICBkZWJ1ZygiVXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50
Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0g
ICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247Cisg
ICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKICAg
ICBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgdmFyIG9iamVjdFN0b3JlID0g
ZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwogICAgIHZhciBy
ZXF1ZXN0ID0gb2JqZWN0U3RvcmUucHV0KCJmb28iLCAiYmFyIik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3ZlcnNpb25jaGFuZ2Ut
YWJvcnQtdGhlbi1yZW9wZW4uanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4uanMKaW5kZXggYzU2
OWU5OS4uZGQ0YjEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5qcwpAQCAtMywyNSArMywyNCBAQCBJdCB0aGVuIHJlb3Bl
bnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0YWJh
c2UsIGFuZCBjaAogSXQgdGhlbiByZW9wZW5zIHRoZSBkYXRhYmFzZSwgdXBncmFkaW5nIGl0J3Mg
dmVyc2lvbi4gSXQgYWJvcnRzIHRoaXMgdmVyc2lvbmNoYW5nZSwgYXMgd2VsbC4gXAogRmluYWxs
eSBpdCByZW9wZW5zIHRoZSBkYXRhYmFzZSBhZ2FpbiwgdXBncmFkaW5nIGl0cyB2ZXJzaW9uLCBt
YWtpbmcgc3VyZSB0aGluZ3MgaGFkIHJldmVydGVkIGJhY2sgdG8gYmVmb3JlIHRoZSBzZWNvbmQg
YWJvcnRlZCB2ZXJzaW9uY2hhbmdlLiIpOwogCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFz
ZSk7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQogCiBmdW5jdGlvbiBkb25l
KCkKIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5k
b3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIsIDEpOwot
Ci1jcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CitmdW5j
dGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCit7CiAgICAgZGVidWcoIkluaXRpYWwgdXBncmFk
ZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJz
aW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgdmFyIHZlcnNpb25UcmFuc2FjdGlv
biA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247Ci0gICAgdmFyIGRhdGFiYXNlID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQub25lcnJvciA9IG51bGw7CiAKKyAgICB2
YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHZh
ciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0Lm9uZXJy
b3IgPSBudWxsOworICAgIAogICAgIHZlcnNpb25UcmFuc2FjdGlvbi5hYm9ydCgpOwogCiAgICAg
dmVyc2lvblRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbihldmVudCkgewpAQCAtNDcsNyAr
NDYsNyBAQCBmdW5jdGlvbiBjb250aW51ZVRlc3QxKCkKICAgICBjcmVhdGVSZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGRlYnVnKCJTZWNvbmQgdXBn
cmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2
ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwogCi0gICAgICAgIHZhciB2ZXJzaW9uVHJh
bnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgdmVyc2lv
blRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgICAgICB2YXIgZGF0
YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OwogCiAgICAgICAgIHZlcnNpb25UcmFuc2FjdGlv
bi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKQEAgLTc1LDcgKzc0LDcgQEAgZnVuY3Rpb24g
Y29udGludWVUZXN0MigpCiAgICAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihldmVudCkgewogICAgICAgICBkZWJ1ZygiVGhpcmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2
ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50
Lm5ld1ZlcnNpb24pOwogCi0gICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVS
ZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uOwogICAgICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJn
ZXQucmVzdWx0OwogCiAgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5hYm9ydCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy92ZXJz
aW9uY2hhbmdlLWV2ZW50LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy92ZXJzaW9uY2hhbmdlLWV2ZW50LmpzCmluZGV4IGY0NTU2ZmMuLjc4YmRmY2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJj
ZXMvdmVyc2lvbmNoYW5nZS1ldmVudC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL3ZlcnNpb25jaGFuZ2UtZXZlbnQuanMKQEAgLTcsMzcgKzcs
MzAgQEAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdDogXAogLUNsb3NlcyB0aGUgZmlyc3QgYW5kIHNl
Y29uZCBjb25uZWN0aW9ucyBcCiAtTWFrZXMgc3VyZSB0aGUgdmVyc2lvbmNoYW5nZSB0cmFuc2Fj
dGlvbiBmb3IgdGhlIHNlY29uZCBjb25uZWN0aW9uIHN0YXJ0cyBzdWNjZXNzZnVsbHkiKTsKIAor
aW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5TdWNjZXNzKTsKIAotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci19CiAKIGZ1bmN0aW9uIGRvbmUoKQogewogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogCi12YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiVmVy
c2lvbkNoYW5nZVRlc3REYXRhYmFzZSIpOwogdmFyIGNvbm5lY3Rpb24xOwogdmFyIGNvbm5lY3Rp
b24yOwogCi1yZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkKK2Z1bmN0aW9uIG9wZW5TdWNj
ZXNzKCkKIHsKICAgICBkZWJ1ZygiRmlyc3QgdmVyc2lvbiBjaGFuZ2Ugc3VjY2Vzc2Z1bCIpOwog
fQotcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZSkKLXsKLSAgICBkZWJ1ZygiVW5leHBlY3Rl
ZCBlcnJvciAoZmlyc3RQaGFzZSkiKTsKLQlkb25lKCk7Ci19CiAKLXJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkKK3ZhciBkYm5hbWU7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJh
c2UoZSkKIHsKICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGRi
bmFtZSA9IGRhdGFiYXNlLm5hbWU7CiAKICAgICBkZWJ1ZygidXBncmFkZW5lZWRlZCAoZmlyc3RQ
aGFzZSk6IG9sZCB2ZXJzaW9uIC0gIiArIGUub2xkVmVyc2lvbiArICIgbmV3IHZlcnNpb24gLSAi
ICsgZS5uZXdWZXJzaW9uKTsKLSAgICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBm
dW5jdGlvbigpCisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBkZWJ1ZygiVmVyc2lvbiBjaGFuZ2UgY29tcGxldGUgKGZp
cnN0UGhhc2UpLiBEYXRhYmFzZSB2ZXJzaW9uIGlzIG5vdyAtICIgKyBkYXRhYmFzZS52ZXJzaW9u
KTsKIApAQCAtNTAsMTIgKzQzLDEyIEBAIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkKICAgICAgICAgfQogICAgICAgICBzZWNvbmRQaGFzZSgpOwogICAgIH0KLSAgICByZXF1
ZXN0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbigpCisgICAgZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBkZWJ1ZygiVmVy
c2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBhYm9ydCAoZmlyc3RQaGFzZSkiKTsK
ICAgICAgICAgZG9uZSgpOwogICAgIH0KLSAgICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uZXJyb3Ig
PSBmdW5jdGlvbigpCisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBkZWJ1ZygiVmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24g
dW5leHBlY3RlZCBlcnJvciAoZmlyc3RQaGFzZSkiKTsKICAgICAgICAgZG9uZSgpOwpAQCAtNjQs
NyArNTcsNyBAQCByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpCiAKIGZ1bmN0
aW9uIHNlY29uZFBoYXNlKCkKIHsKLSAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVmVyc2lvbkNoYW5nZVRlc3REYXRhYmFzZSIsIDEpOworICAgIHZhciByZXF1ZXN0ID0g
d2luZG93LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSk7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBkZWJ1ZygiT3BlbiBzdWNjZXNzIChzZWNvbmRQ
aGFzZSkiKTsKQEAgLTkxLDcgKzg0LDcgQEAgZnVuY3Rpb24gc2Vjb25kUGhhc2UoKQogCiBmdW5j
dGlvbiB0aGlyZFBoYXNlKCkKIHsKLSAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVmVyc2lvbkNoYW5nZVRlc3REYXRhYmFzZSIsIDIpOworICAgIHZhciByZXF1ZXN0ID0g
d2luZG93LmluZGV4ZWREQi5vcGVuKGRibmFtZSwgMik7CiAgICAgZGVidWcoInRoaXJkUGhhc2Ug
LSBSZXF1ZXN0ZWQgZGF0YWJhc2UgY29ubmVjdGlvbiB3aXRoIHZlcnNpb24gMiIpOwogICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItMS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rp
b24tc2NoZWR1bGVyLTEtZXhwZWN0ZWQudHh0CmluZGV4IDQxYjJhMWYuLmYxY2Q1ZWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1z
Y2hlZHVsZXItMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0xLWV4cGVjdGVkLnR4dApAQCAtMyw2ICsz
LDEwIEBAIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdHdvIHJlYWQtb25seSB0cmFuc2FjdGlv
bnMgdG8gYW4gb2JqZWN0IHN0b3JlIGFyZSBhY3RpCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCiBVcGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQog
dmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBjb21wbGV0ZWQKIFN1Y2Nlc3Mgb3BlbmluZyBkYXRh
YmFzZSBjb25uZWN0aW9uIC0gcmVxdWVzdCAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVk
dWxlci0yLWV4cGVjdGVkLnR4dAppbmRleCA4YTYxODhhMi4uYjkzNGUxZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxl
ci0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTItZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAg
VGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB0d28gcmVhZC1vbmx5IHRyYW5zYWN0aW9ucyB0byB0
d28gZGlmZmVyZW50IG9iamVjdCBzdG8KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKwor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkK
IFVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiB2ZXJzaW9u
Y2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZAogU3VjY2VzcyBvcGVuaW5nIGRhdGFiYXNlIGNv
bm5lY3Rpb24gLSBTdGFydGluZyB0cmFuc2FjdGlvbiB0byBPYmplY3RTdG9yZSBPUzEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1z
Y2hlZHVsZXItMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTMtZXhwZWN0ZWQudHh0CmluZGV4IDlmMWY3NjUu
LjE5YjY0NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi90cmFuc2FjdGlvbi1zY2hlZHVsZXItMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0zLWV4cGVjdGVk
LnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYSB3cml0ZSB0
cmFuc2FjdGlvbiBpcyBibG9ja2VkIGJ5IGEgcmVhZCB0cmFuc2FjdGlvbiB3CiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53
ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8
fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCiBVcGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5l
dyB2ZXJzaW9uIC0gMQogdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBjb21wbGV0ZWQKIFN1Y2Nl
c3Mgb3BlbmluZyBkYXRhYmFzZSBjb25uZWN0aW9uIC0gU3RhcnRpbmcgcmVhZG9ubHkgdHJhbnNh
Y3Rpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90
cmFuc2FjdGlvbi1zY2hlZHVsZXItNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDUwOTE2MzQuLmEwMmY0ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxl
ci01LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBjcmVhdGVzIHR3byBv
YmplY3Qgc3RvcmVzLiBJdCB0aGVuIG9wZW5zIHR3byBsb25nIHJ1bm5pbmcgcmVhZC1vbmx5IHRy
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBVcGdyYWRlIG5lZWRlZDogT2xkIHZl
cnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQogdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBjb21w
bGV0ZWQKIFN1Y2Nlc3Mgb3BlbmluZyBkYXRhYmFzZSBjb25uZWN0aW9uIC0gU3RhcnRpbmcgdHJh
bnNhY3Rpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci02LWV4cGVjdGVkLnR4
dAppbmRleCAwMjU1ZDdkLi5kNmE0OGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTYtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hl
ZHVsZXItNi1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxMCBAQCBUaGlzIHRlc3Qgc3RhcnRzIHR3
byByZWFkLW9ubHkgdHJhbnNhY3Rpb25zIHRvIGFuIG9iamVjdCBzdG9yZSBmb2xsb3dlZCBieSBh
IHJlYQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2luZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogVXBncmFkZSBuZWVkZWQ6IE9s
ZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24g
Y29tcGxldGVkCiBTdGFydGluZyBhIHJlYWRvbmx5IHRyYW5zYWN0aW9uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10
aGVuLXJlb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi1leHBlY3RlZC50eHQKaW5kZXgg
YWNjMDBjNi4uM2FjODE5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFi
b3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDEwIEBAIFRoaXMgdGVzdCBv
cGVucyBhIG5ldyBkYXRhYmFzZSwgdGhlbiBhYm9ydHMgdGhlIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uLiBJdCB0CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAoraW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBJbml0aWFsIHVw
Z3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCiBJbml0aWFsIHVw
Z3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydGVkCiBTZWNvbmQgdXBncmFkZSBu
ZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWV2ZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hh
bmdlLWV2ZW50LWV4cGVjdGVkLnR4dAppbmRleCA0NWY3YjlkLi42ZTQwZGJiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1ldmVu
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3ZlcnNpb25jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMTAgQEAgVGhpcyB0
ZXN0OiAtT3BlbnMgYSBjb25uZWN0aW9uIHRvIGEgZGF0YWJhc2UgYXQgdmVyc2lvbiAxLCBjcmVh
dGluZyB0aGUgZGF0YWJhc2UKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIHVwZ3Jh
ZGVuZWVkZWQgKGZpcnN0UGhhc2UpOiBvbGQgdmVyc2lvbiAtIDAgbmV3IHZlcnNpb24gLSAxCiBW
ZXJzaW9uIGNoYW5nZSBjb21wbGV0ZSAoZmlyc3RQaGFzZSkuIERhdGFiYXNlIHZlcnNpb24gaXMg
bm93IC0gMQogRmlyc3QgdmVyc2lvbiBjaGFuZ2Ugc3VjY2Vzc2Z1bAo=
</data>
<flag name="review"
          id="294317"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>