<?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>93176</bug_id>
          
          <creation_ts>2012-08-03 22:45:36 -0700</creation_ts>
          <short_desc>Some tests still refer to layoutTestController instead of testRunner</short_desc>
          <delta_ts>2012-08-04 11:58:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88210</dependson>
          <blocked>93173</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687389</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-03 22:45:36 -0700</bug_when>
    <thetext>Some tests still refer to layoutTestController instead of testRunner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687390</commentid>
    <comment_count>1</comment_count>
      <attachid>156517</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-03 22:49:18 -0700</bug_when>
    <thetext>Created attachment 156517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687398</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-03 23:26:43 -0700</bug_when>
    <thetext>Committed r124691: &lt;http://trac.webkit.org/changeset/124691&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156517</attachid>
            <date>2012-08-03 22:49:18 -0700</date>
            <delta_ts>2012-08-03 23:07:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93176-20120803224857.patch</filename>
            <type>text/plain</type>
            <size>85274</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzNCBAQAorMjAxMi0wOC0wMyAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBTb21lIHRlc3RzIHN0aWxsIHJlZmVyIHRvIGxh
eW91dFRlc3RDb250cm9sbGVyIGluc3RlYWQgb2YgdGVzdFJ1bm5lcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxNzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcHBhcmVudGx5IHRoZXJlIGFyZSBzdGls
bCBzb21lIHRlc3RzIHJlZmVycmluZyB0byBsYXlvdXRUZXN0Q29udHJvbGxlci4KKyAgICAgICAg
UmVtb3ZlZCBhbGwgb2YgdGhlbSBhcyBmb3VuZCBieSBzcG90bGlnaHQuCisKKyAgICAgICAgKiBi
YXR0ZXJ5c3RhdHVzL3NjcmlwdC10ZXN0cy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmpzOgorICAg
ICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sOgorICAg
ICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9jYWxsYmFjay1leGNlcHRp
b24uanM6CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL2NsZWFy
LXdhdGNoLWludmFsaWQtaWQtY3Jhc2guanM6CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRp
b24vc2NyaXB0LXRlc3RzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5qczoK
KyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvZXJyb3IuanM6Cisg
ICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL21heGltdW0tYWdlLmpz
OgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9tdWx0aXBsZS1y
ZXF1ZXN0cy5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMv
bm8tcGFnZS1jYWNoZS5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQt
dGVzdHMvcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1jbGVhci13YXRjaC5qczoKKyAgICAgICAg
KiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcGVybWlzc2lvbi1kZW5pZWQtYWxy
ZWFkeS1lcnJvci5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVz
dHMvcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1zdWNjZXNzLmpzOgorICAgICAgICAqIGZhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9wZXJtaXNzaW9uLWRlbmllZC1zdG9wcy13YXRj
aGVzLmpzOgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9wZXJt
aXNzaW9uLWRlbmllZC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQt
dGVzdHMvcG9zaXRpb24tc3RyaW5nLmpzOgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9u
L3NjcmlwdC10ZXN0cy9yZWVudHJhbnQtZXJyb3IuanM6CisgICAgICAgICogZmFzdC9kb20vR2Vv
bG9jYXRpb24vc2NyaXB0LXRlc3RzL3JlZW50cmFudC1wZXJtaXNzaW9uLWRlbmllZC5qczoKKyAg
ICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcmVlbnRyYW50LXN1Y2Nl
c3MuanM6CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3N1Y2Nl
c3MuanM6CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3RpbWVv
dXQuanM6CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3dhdGNo
LmpzOgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ct
Y2xvc2UtY3Jhc2guanM6CisgICAgICAgICogZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1l
bmNvZGluZy11dGlscy5qczoKKyAgICAgICAgKHRlc3RzRG9uZSk6CisgICAgICAgICogZmFzdC9l
bmNvZGluZy9yZXNvdXJjZXMvZHluYW1pYy1sb2FkLXRhcmdldC5qczoKKyAgICAgICAgKiBmYXN0
L2VuY29kaW5nL3Jlc291cmNlcy9pbnZhbGlkLXhtbC5qczoKKyAgICAgICAgKHJ1bk5leHRUZXN0
KToKKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Jlc291cmNlcy9wYXJzZXItdGVzdHMuanM6Cisg
ICAgICAgIChkb3Rlc3Qud2luZG93LnJlY2VpdmVkUmVzdWx0cyk6CisgICAgICAgIChkb3Rlc3Qp
OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy90b3VjaC1zbGlkZXIt
bm8tanMtdG91Y2gtbGlzdGVuZXIuanM6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvc2Ny
aXB0LXRlc3RzL3RvdWNoLXNsaWRlci5qczoKKyAgICAgICAgKG9uS2V5RG93bik6CisgICAgICAg
ICogZmFzdC9oYXJuZXNzL292ZXJyaWRlLXByZWZlcmVuY2VzLTItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy0yLmh0bWw6CisgICAgICAg
ICogZmFzdC9oYXJuZXNzL292ZXJyaWRlLXByZWZlcmVuY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2hhcm5lc3Mvb3ZlcnJpZGUtenp6LXJlc2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2hhcm5lc3Mvb3ZlcnJpZGUtenp6LXJlc2V0Lmh0bWw6CisgICAgICAgICogZmFzdC9oYXJu
ZXNzL3Jlc291cmNlcy9yZXN1bHRzLXRlc3QuanM6CisgICAgICAgICogZmFzdC9oYXJuZXNzL3Vz
ZS1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvdXNlLXBh
Z2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvYWZ0ZXItYmxvY2stZG9lc250LWNy
YXNoLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLWRvZXNu
dC1jcmFzaC5odG1sLWRpc2FibGVkOgorICAgICAgICAqIGZhc3QvcnVieS9nZW5lcmF0ZWQtYWZ0
ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBmYXN0L3J1
YnkvZ2VuZXJhdGVkLWJlZm9yZS1hbmQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbC1k
aXNhYmxlZDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWV2
ZW50cy1hZnRlci1jbG9zZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9nbWFpbC1h
c3NlcnQtb24tbG9hZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMv
Y2hhci1lbmNvZGluZy1pbi1oaWRkZW4tY2hhcnNldC1maWVsZC5waHA6CisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3Jlc291cmNlcy9jaGVjay1rZXlnZW4tcG9zdC5waHA6CisgICAgICAgICog
aHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9jaGVjay1xdWVyeS1wYXJhbS5waHA6CisgICAgICAg
ICogaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9jaGVjay11bm5hbWVkLWZpbGUtaW5jbHVkZWQt
aW4tZm9ybWRhdGEucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2hy
b21pdW0tc2VsZWN0aW9uQXNNYXJrdXAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mv
cmVzb3VyY2VzL2RlbGF5ZWQtbG9nLnBocDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVz
b3VyY2VzL2Zvcm0tcG9zdC10ZXh0cGxhaW4ucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvbG9jYXRpb24tdGVzdC14c2wtc3R5bGUtc2hlZXQueHNsOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvcGVyY2VudC1zaWduLWluLWZvcm0tZGF0YS1maWVs
ZC1uYW1lLmNnaToKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3Bvc3QtZWNo
by1hbmQtbm90aWZ5LWRvbmUuY2dpOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJj
ZXMvcHJlZmV0Y2gtcHVycG9zZS5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Jlc291
cmNlcy9yZWRpcmVjdC1yZXN1bHQucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNv
dXJjZXMvcmVmZXJyZXItbWFpbi1yZXNvdXJjZS5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9t
aXNjL3Jlc291cmNlcy9yZWZlcnJlci1yZXN1bHQucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMv
bWlzYy94aHRtbC5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3htbHRva2VuaXplci1k
by1ub3QtY3Jhc2gucGw6CisgICAgICAgICogaHR0cC90ZXN0cy9tdWx0aXBhcnQvbXVsdGlwYXJ0
LXJlcGxhY2Utbm9uLWh0bWwtY29udGVudC5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9tdWx0
aXBhcnQvcG9saWN5LWlnbm9yZS1jcmFzaC5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9tdWx0
aXBhcnQvd2luLWJvdW5kYXJ5LWNyYXNoLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZ29iYWNrLXJlcG9zdC1wb2xpY3kuaHRtbC1kaXNhYmxlZDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2JhY2stc2VuZC1yZWZl
cnJlci1oZWxwZXIucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvY2hlY2stcGluZy5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291
cmNlcy9kb2N1bWVudC1sb2NhdGlvbi5qczoKKyAgICAgICAgKHN0YXJ0KToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2Zvcm0tdGFyZ2V0LnBsOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvZ29iYWNrLXdpdGgtcG9saWN5ZGVsZWdh
dGUucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvbm8tcmVm
ZXJyZXItaGVscGVyLnBocDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL25vLXJlZmVycmVyLXNhbWUtd2luZG93LWhlbHBlci5waHA6CisgICAgICAgICogaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9ub3RpZnktZG9uZS5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcG9zdC10YXJnZXQtcG9saWN5LXRlc3QucGhw
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtY3lj
bGUtMS5wbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGly
ZWN0MzAyLW1ldGFyZWRpcmVjdC5wbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL3JlZGlyZWN0ZWQtcG9zdC1yZXF1ZXN0LWNvbnRlbnRzLnBocDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3N1Ym1pdC10by1mcmFnbWVudC5wbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Rlc3Rjb2RlLmpzOgor
ICAgICAgICAocnVuQmFzaWNUZXN0KToKKyAgICAgICAgKHJ1bkJhY2tUZXN0KToKKyAgICAgICAg
KHJ1bkxvYWRDaGlsZEZyYW1lVGVzdCk6CisgICAgICAgIChydW5Mb2FkQ2hpbGRGcmFtZUJhY2tU
ZXN0KToKKyAgICAgICAgKHJ1blJlbG9hZFRlc3QpOgorICAgICAgICAocnVuTG9hZFNhbWVUZXN0
KToKKyAgICAgICAgKHJ1blJlZGlyZWN0UmVsb2FkVGVzdCk6CisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3VzZXJhZ2VudC5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzOgorICAgICAgICAoZmluaXNoSlNUZXN0KToKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2VjdXJpdHlwb2xpY3kt
dGVzdHMtYmFzZS5qczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NzbC9yZXNvdXJjZXMvbm8taHR0
cC1yZWZlcmVyLmNnaToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NzbC92ZXJpZnktc3NsLWVuYWJs
ZWQucGhwOgorICAgICAgICAqIG5ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvZXZlbnQt
YWZ0ZXItbmF2aWdhdGlvbi5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL3Nj
cmlwdC10ZXN0cy93ZWJTY3JpcHRPYmplY3QtaGFzV2ViU2NyaXB0S2V5LmpzOgorICAgICAgICAq
IHBsYXRmb3JtL3F0L3N2Zy9yZXBhaW50L2ZpbHRlci1yZXBhaW50LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB0cmFuc2Zvcm1zLzNkL2hpdC10ZXN0aW5nL3Jlc291cmNlcy9oaXQtdGVzdC11dGls
cy5qczoKKyAgICAgICAgKiB0cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvcG9pbnQtbWFwcGlu
Zy1oZWxwZXJzLmpzOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICogdHJhbnNpdGlvbnMv
cmVzb3VyY2VzL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzOgorICAgICAgICAoZXhwZWN0ZWQp
OgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanM6
CisgICAgICAgIChydW5UcmFuc2l0aW9uVGVzdC5wcm9jZXNzRW5kRXZlbnRzKToKKyAgICAgICAg
KiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tY29kZWMtdGVzdC5qczoKKyAgICAgICAgKHJ1bkRl
Y29kaW5nVGVzdCk6CisgICAgICAgIChmaW5pc2hlZExvYWRpbmcpOgorICAgICAgICAqIHdlYmF1
ZGlvL3Jlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzOgorICAgICAgICAoZmluaXNoQXVkaW9UZXN0
KToKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzOgor
ICAgICAgICAoY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QpOgorICAgICAgICAqIHdlYmF1ZGlvL3Jl
c291cmNlcy9vc2NpbGxhdG9yLXRlc3RpbmcuanM6CisgICAgICAgIChnZW5lcmF0ZUV4cG9uZW50
aWFsT3NjaWxsYXRvclN3ZWVwKToKKyAgICAgICAgKiB3ZWJpbnRlbnRzL3Jlc291cmNlcy93ZWIt
aW50ZW50cy10ZXN0aW5nLmpzOgorICAgICAgICAob25TdWNjZXNzKToKKyAgICAgICAgKG9uRmFp
bHVyZSk6CisgICAgICAgIChzdGFydEludGVudFdpdGhDYWxsYmFja3MpOgorCiAyMDEyLTA4LTAz
ICBBbWkgRmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBMYXlvdXQgVGVzdCBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS93ZWJtL3ZpZGVv
LW1lZGlhLXNvdXJjZS0qLmh0bWwgaXMgZmxha3kKSW5kZXg6IExheW91dFRlc3RzL2JhdHRlcnlz
dGF0dXMvc2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvYmF0dGVyeXN0YXR1cy9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2
aWdhdGlvbi5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvYmF0dGVyeXN0YXR1
cy9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5qcwkod29ya2luZyBjb3B5KQpA
QCAtMyw3ICszLDcgQEAgZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBhIGNyYXNoIHdoZXJlIGFuIAog
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNl
KCdXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleScsIDEpOwogZWxzZQotICAgIGRlYnVn
KCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xs
ZXInKTsKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRl
c3RSdW5uZXInKTsKIAogZG9jdW1lbnQuYm9keS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBu
YXZpZ2F0b3Iud2Via2l0QmF0dGVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFyZ2luZ2NoYW5nZScs
IGZ1bmN0aW9uKCkgeyB9ICk7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3Nt
YXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAkocmV2aXNpb24gMTI0Njg5
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDggKzI0LDggQEAgZnVuY3Rpb24gZWRpdGluZ1Rl
c3QoKSB7CiA8Ym9keT4KIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHNtYXJ0IGluc2VydCBhbmQg
ZGVsZXRlIGNhbiBiZSBkaXNhYmxlZCBhdCB0ZXN0IHRpbWUuPGJyPgogSWYgdmlld2luZyBpbiBh
IGJyb3dzZXIsIHlvdSBzaG91bGQgc2VlIHRoZSB3b3JkcyAiZm9vIGJhciBiYXoiLjxicj4KLUlm
IHVzaW5nIGEgdmVyc2lvbiBvZiBMYXlvdXRUZXN0Q29udHJvbGxlciB3aXRoIHRoaXMgZnVuY3Rp
b25hbGl0eSwgeW91IHNob3VsZCBzZWUgImZvbyAgYmF6Ii4gKHR3byBzcGFjZXMgYmV0d2VlbiB0
aGUgd29yZHMpPGJyPgotSWYgdXNpbmcgYSB2ZXJzaW9uIG9mIExheW91dFRlc3RDb250cm9sbGVy
IHdpdGhvdXQgdGhpcyBmdW5jdGlvbmFsaXR5LCB5b3Ugc2hvdWxkIHNlZSAiZm9vIGJheiIuIChv
bmUgc3BhY2UgYmV0d2VlbiB0aGUgd29yZHMpPGJyPgorSWYgdXNpbmcgYSB2ZXJzaW9uIG9mIHRl
c3RSdW5uZXIgd2l0aCB0aGlzIGZ1bmN0aW9uYWxpdHksIHlvdSBzaG91bGQgc2VlICJmb28gIGJh
eiIuICh0d28gc3BhY2VzIGJldHdlZW4gdGhlIHdvcmRzKTxicj4KK0lmIHVzaW5nIGEgdmVyc2lv
biBvZiB0ZXN0UnVubmVyIHdpdGhvdXQgdGhpcyBmdW5jdGlvbmFsaXR5LCB5b3Ugc2hvdWxkIHNl
ZSAiZm9vIGJheiIuIChvbmUgc3BhY2UgYmV0d2VlbiB0aGUgd29yZHMpPGJyPgogPC9kaXY+CiA8
L2Rpdj4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRl
c3RzL2NhbGxiYWNrLWV4Y2VwdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvY2FsbGJhY2stZXhjZXB0aW9uLmpzCShyZXZp
c2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQt
dGVzdHMvY2FsbGJhY2stZXhjZXB0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3
IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tMb25naXR1ZGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja0FjY3VyYWN5KTsKIH0gZWxz
ZQotICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgTGF5b3V0
VGVzdENvbnRyb2xsZXInKTsKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdp
dGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKIAogdmFyIHBvc2l0aW9uOwogbmF2aWdhdG9yLmdlb2xv
Y2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwKSB7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvY2xlYXItd2F0Y2gtaW52YWxpZC1p
ZC1jcmFzaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9zY3JpcHQtdGVzdHMvY2xlYXItd2F0Y2gtaW52YWxpZC1pZC1jcmFzaC5qcwkocmV2aXNpb24g
MTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3Rz
L2NsZWFyLXdhdGNoLWludmFsaWQtaWQtY3Jhc2guanMJKHdvcmtpbmcgY29weSkKQEAgLTQsNyAr
NCw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuc2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uKHRydWUpOwogICAgIHRlc3RSdW5uZXIuc2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oNTEuNDc4LCAtMC4xNjYsIDEwMCk7CiB9IGVsc2UKLSAgICBkZWJ1ZygnVGhpcyB0
ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7Cisg
ICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVy
Jyk7CiAKIGRvY3VtZW50LmJvZHkub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgbmF2aWdhdG9y
Lmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24oZnVuY3Rpb24oKSB7fSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvZGlzY29ubmVjdGVkLWZyYW1l
LXBlcm1pc3Npb24tZGVuaWVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1k
ZW5pZWQuanMJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xv
Y2F0aW9uL3NjcmlwdC10ZXN0cy9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQu
anMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgIHRlc3RSdW5uZXIuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGZhbHNlKTsKICAgICB0
ZXN0UnVubmVyLnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKDUxLjQ3OCwgLTAuMTY2LCAxMDAp
OwogfSBlbHNlCi0gICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRo
ZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBi
ZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOwogCiB2YXIgZXJyb3I7CiBmdW5jdGlvbiBv
bklmcmFtZUxvYWRlZCgpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9u
L3NjcmlwdC10ZXN0cy9lcnJvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvZXJyb3IuanMJKHJldmlzaW9uIDEyNDY4OSkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9lcnJvci5qcwko
d29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgdGVzdFJ1bm5lci5zZXRHZW9sb2NhdGlvblBlcm1pc3Npb24odHJ1ZSk7CiAgICAgdGVzdFJ1
bm5lci5zZXRNb2NrR2VvbG9jYXRpb25FcnJvcihtb2NrQ29kZSwgbW9ja01lc3NhZ2UpOwogfSBl
bHNlCi0gICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSBMYXlv
dXRUZXN0Q29udHJvbGxlcicpOworICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOwogCiB2YXIgZXJyb3I7CiBuYXZpZ2F0b3IuZ2VvbG9j
YXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9tYXhpbXVtLWFnZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvbWF4
aW11bS1hZ2UuanMJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dl
b2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9tYXhpbXVtLWFnZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLnNl
dEdlb2xvY2F0aW9uUGVybWlzc2lvbih0cnVlKTsKICAgICB0ZXN0UnVubmVyLnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKG1vY2tMYXRpdHVkZSwgbW9ja0xvbmdpdHVkZSwgbW9ja0FjY3VyYWN5
KTsKIH0gZWxzZQotICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0
aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3Qg
YmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKIAogLy8gSW5pdGlhbGl6ZSB0aGUgY2Fj
aGVkIFBvc2l0aW9uCiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1
bmN0aW9uKHApIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Njcmlw
dC10ZXN0cy9tdWx0aXBsZS1yZXF1ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtcmVxdWVzdHMuanMJKHJl
dmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Njcmlw
dC10ZXN0cy9tdWx0aXBsZS1yZXF1ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAs
NyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrTG9uZ2l0dWRlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tBY2N1cmFjeSk7CiB9IGVs
c2UKLSAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIExheW91
dFRlc3RDb250cm9sbGVyJyk7CisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3
aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CiAKIHZhciB3YXRjaENhbGxiYWNrSW52b2tlZCA9IGZh
bHNlOwogdmFyIG9uZVNob3RDYWxsYmFja0ludm9rZWQgPSBmYWxzZTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9uby1wYWdlLWNhY2hlLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0
cy9uby1wYWdlLWNhY2hlLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvbm8tcGFnZS1jYWNoZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtNSw3ICs1LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1
bm5lci5zZXRDYW5PcGVuV2luZG93cygpOwogICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJl
bmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOwogfSBlbHNlCi0gICAg
ZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29u
dHJvbGxlcicpOworICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0
aGUgdGVzdFJ1bm5lcicpOwogCiB2YXIgcGFnZU9uZU9ubG9hZENvdW50ID0gMDsKIGZ1bmN0aW9u
IHJlcG9ydFBhZ2VPbmVPbmxvYWQoKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9zY3JpcHQtdGVzdHMvcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1jbGVhci13YXRj
aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3Jp
cHQtdGVzdHMvcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1jbGVhci13YXRjaC5qcwkocmV2aXNp
b24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRl
c3RzL3Blcm1pc3Npb24tZGVuaWVkLWFscmVhZHktY2xlYXItd2F0Y2guanMJKHdvcmtpbmcgY29w
eSkKQEAgLTUsNyArNSw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5u
ZXIuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGZhbHNlKTsKICAgICB0ZXN0UnVubmVyLnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uKDUxLjQ3OCwgLTAuMTY2LCAxMDApOwogfSBlbHNlCi0gICAg
ZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29u
dHJvbGxlcicpOworICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0
aGUgdGVzdFJ1bm5lcicpOwogCiB2YXIgZXJyb3I7CiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0
Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5LWVycm9y
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Njcmlw
dC10ZXN0cy9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5LWVycm9yLmpzCShyZXZpc2lvbiAxMjQ2
ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcGVy
bWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1lcnJvci5qcwkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1
LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5zZXRHZW9sb2Nh
dGlvblBlcm1pc3Npb24oZmFsc2UpOwogICAgIHRlc3RSdW5uZXIuc2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oNTEuNDc4LCAtMC4xNjYsIDEwMCk7CiB9IGVsc2UKLSAgICBkZWJ1ZygnVGhpcyB0
ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7Cisg
ICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVy
Jyk7CiAKIHZhciBlcnJvcjsKIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRp
b24oZnVuY3Rpb24ocCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24v
c2NyaXB0LXRlc3RzL3Blcm1pc3Npb24tZGVuaWVkLWFscmVhZHktc3VjY2Vzcy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcGVy
bWlzc2lvbi1kZW5pZWQtYWxyZWFkeS1zdWNjZXNzLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcGVybWlzc2lvbi1k
ZW5pZWQtYWxyZWFkeS1zdWNjZXNzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQCBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVy
bWlzc2lvbihmYWxzZSk7CiAgICAgdGVzdFJ1bm5lci5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
big1MS40NzgsIC0wLjE2NiwgMTAwKTsKIH0gZWxzZQotICAgIGRlYnVnKCdUaGlzIHRlc3QgY2Fu
IG5vdCBiZSBydW4gd2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKyAgICBkZWJ1
ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKIAog
dmFyIGVycm9yOwogbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5j
dGlvbihwKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQt
dGVzdHMvcGVybWlzc2lvbi1kZW5pZWQtc3RvcHMtd2F0Y2hlcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcGVybWlzc2lvbi1k
ZW5pZWQtc3RvcHMtd2F0Y2hlcy5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3Blcm1pc3Npb24tZGVuaWVkLXN0b3Bz
LXdhdGNoZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGZhbHNl
KTsKICAgICB0ZXN0UnVubmVyLnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKDUxLjQ3OCwgLTAu
MTY2LCAxMDAuMCk7CiB9IGVsc2UKLSAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVu
IHdpdGhvdXQgdGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7CisgICAgZGVidWcoJ1RoaXMgdGVz
dCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CiAKIHZhciBlcnJvcjsK
IHZhciBlcnJvckNhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3Blcm1pc3Npb24tZGVuaWVkLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9w
ZXJtaXNzaW9uLWRlbmllZC5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3Blcm1pc3Npb24tZGVuaWVkLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0
ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihmYWxzZSk7CiAgICAgdGVzdFJ1bm5l
ci5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbig1MS40NzgsIC0wLjE2NiwgMTAwLjApOwogfSBl
bHNlCi0gICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSBMYXlv
dXRUZXN0Q29udHJvbGxlcicpOworICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOwogCiB2YXIgZXJyb3I7CiBuYXZpZ2F0b3IuZ2VvbG9j
YXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9wb3NpdGlvbi1zdHJpbmcuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3Rz
L3Bvc2l0aW9uLXN0cmluZy5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3Bvc2l0aW9uLXN0cmluZy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrTG9uZ2l0
dWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1vY2tBY2N1cmFjeSk7CiB9IGVsc2UKLSAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUg
cnVuIHdpdGhvdXQgdGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7CisgICAgZGVidWcoJ1RoaXMg
dGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CiAKIHZhciBwb3Np
dGlvbjsKIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24o
cCkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3Rz
L3JlZW50cmFudC1lcnJvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9H
ZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcmVlbnRyYW50LWVycm9yLmpzCShyZXZpc2lvbiAxMjQ2
ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcmVl
bnRyYW50LWVycm9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbih0
cnVlKTsKICAgICB0ZXN0UnVubmVyLnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKG1vY2tDb2RlLCBt
b2NrTWVzc2FnZSk7CiB9IGVsc2UKLSAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVu
IHdpdGhvdXQgdGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7CisgICAgZGVidWcoJ1RoaXMgdGVz
dCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CiAKIHZhciBlcnJvcjsK
IHZhciBlcnJvckNhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3JlZW50cmFudC1wZXJtaXNzaW9uLWRlbmll
ZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3Jp
cHQtdGVzdHMvcmVlbnRyYW50LXBlcm1pc3Npb24tZGVuaWVkLmpzCShyZXZpc2lvbiAxMjQ2ODkp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcmVlbnRy
YW50LXBlcm1pc3Npb24tZGVuaWVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQCBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVy
bWlzc2lvbihmYWxzZSk7CiAgICAgdGVzdFJ1bm5lci5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
big1MS40NzgsIC0wLjE2NiwgMTAwLjApOwogfSBlbHNlCi0gICAgZGVidWcoJ1RoaXMgdGVzdCBj
YW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworICAgIGRl
YnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOwog
CiB2YXIgZXJyb3I7CiBmdW5jdGlvbiBjaGVja1Blcm1pc3Npb25FcnJvcihlKSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcmVlbnRyYW50LXN1
Y2Nlc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24v
c2NyaXB0LXRlc3RzL3JlZW50cmFudC1zdWNjZXNzLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvcmVlbnRyYW50LXN1
Y2Nlc3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW9ja0xvbmdpdHVkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2NrQWNjdXJhY3kpOwogfSBlbHNlCi0gICAgZGVidWcoJ1RoaXMg
dGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOwor
ICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5l
cicpOwogCiB2YXIgcG9zaXRpb247CiB2YXIgc3VjY2Vzc0NhbGxiYWNrSW52b2tlZCA9IGZhbHNl
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3N1
Y2Nlc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24v
c2NyaXB0LXRlc3RzL3N1Y2Nlc3MuanMJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9zdWNjZXNzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw3ICsxMCw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tMb25naXR1ZGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9j
a0FjY3VyYWN5KTsKIH0gZWxzZQotICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0
IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKIAogdmFyIHBvc2l0aW9u
OwogbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwKSB7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvdGlt
ZW91dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9z
Y3JpcHQtdGVzdHMvdGltZW91dC5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3RpbWVvdXQuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTEwLDcgKzEwLDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja0xvbmdpdHVkZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Nr
QWNjdXJhY3kpOwogfSBlbHNlCi0gICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3
aXRob3V0IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlcicpOworICAgIGRlYnVnKCdUaGlzIHRlc3Qg
Y2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOwogCiB2YXIgcG9zaXRpb247
CiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93YXRj
aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3Jp
cHQtdGVzdHMvd2F0Y2guanMJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93YXRjaC5qcwkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLnNl
dEdlb2xvY2F0aW9uUGVybWlzc2lvbih0cnVlKTsKICAgICB0ZXN0UnVubmVyLnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKG1vY2tMYXRpdHVkZSwgbW9ja0xvbmdpdHVkZSwgbW9ja0FjY3VyYWN5
KTsKIH0gZWxzZQotICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0
aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3Qg
YmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKIAogdmFyIHN0YXRlID0gMDsKIG5hdmln
YXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ctY2xvc2UtY3Jh
c2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2Ny
aXB0LXRlc3RzL3dpbmRvdy1jbG9zZS1jcmFzaC5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3dpbmRvdy1jbG9zZS1j
cmFzaC5qcwkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOwogICAgIHRlc3RSdW5u
ZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwogfSBlbHNlCi0g
ICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIExheW91
dFRlc3RDb250cm9sbGVyJyk7CisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IGNhbiBub3QgYmUg
cnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKIAogZnVuY3Rpb24gZ290UG9zaXRpb24ocCkK
IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2NoYXItZW5jb2Rp
bmctdXRpbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNv
dXJjZXMvY2hhci1lbmNvZGluZy11dGlscy5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy11dGlscy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMjAsOCArMjAsOCBAQCBmdW5jdGlvbiB0ZXN0c0RvbmUoKQogCiAgICAg
aXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
fQogCiBmdW5jdGlvbiBwcm9jZXNzUmVzdWx0KHJlc3VsdCkKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvcmVzb3VyY2VzL2R5bmFtaWMtbG9hZC10YXJnZXQuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvZHluYW1pYy1sb2FkLXRhcmdl
dC5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNv
dXJjZXMvZHluYW1pYy1sb2FkLXRhcmdldC5qcwkod29ya2luZyBjb3B5KQpAQCAtNSw1ICs1LDUg
QEAgaWYgKCfjgajjgYbjgY3jgofjgYYnID09IHRva3lvKQogZWxzZQogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5pbm5lckhUTUwgPSAiRkFJTDogSW5jb3JyZWN0IGVuY29k
aW5nIHVzZWQuICBFeHBlY3RlZCAnIiArIHRva3lvICsgIicgYnV0IGdvdCAnIiArICfjgajjgYbj
gY3jgofjgYYnICsgIicuIjsKIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCi0g
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgCisgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvaW52YWxpZC14bWwuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvaW52YWxpZC14bWwu
anMJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3Vy
Y2VzL2ludmFsaWQteG1sLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBAIGZ1bmN0
aW9uIHJ1bk5leHRUZXN0KCkKICAgICBpZiAoY3VycmVudFRlc3QgPj0gZW5jb2RpbmdUZXN0cy5s
ZW5ndGgpIHsKICAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpOwogICAgICAgICBzY3JpcHQuc3JjID0gIi4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiOwotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgib25sb2FkIiwgImxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKSIpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJvbmxvYWQiLCAidGVzdFJ1bm5lci5ub3RpZnlEb25l
KCkiKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgICAg
ICBpZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpZnJhbWUpOwogICAgICAgICByZXR1cm47
CkBAIC0zMiw4ICszMiw4IEBAIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkKICAgICBpZnJhbWUuc3Jj
ID0gInJlc291cmNlcy8iICsgZW5jb2RpbmdUZXN0c1tjdXJyZW50VGVzdCsrXTsKIH0KIAotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiAKIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
ZnJhbWUiKTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL3BhcnNlci10ZXN0cy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9wYXJzZXItdGVzdHMuanMJ
KHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2Vz
L3BhcnNlci10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTIsOSArMTIsOSBAQCBkb2N1bWVu
dC53cml0ZSgnPHA+VGhpcyB0ZXN0IHN1aXRlIHdhcyBjCiAgICc8cD4oVGVzdHMgYXJlIGNvbnNp
ZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBh
cyBzZXBhcmF0ZS4pPC9wPicgKwogICAnPHA+PGlmcmFtZSBpZD0idGVzdCI+PC9pZnJhbWU+PC9w
PicpOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiB2YXIgZnJh
bWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwpAQCAtNDksOCArNDksOCBAQCBm
dW5jdGlvbiBkb3Rlc3QoKSB7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZnJhbWUucGFy
ZW50Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3RhdHVzJykuaW5uZXJUZXh0ID0gIlRlc3RzIHJhbi4iOwotICAgICAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAg
IH0KICAgICB9OwogfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0
LXRlc3RzL3RvdWNoLXNsaWRlci1uby1qcy10b3VjaC1saXN0ZW5lci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtc2xpZGVy
LW5vLWpzLXRvdWNoLWxpc3RlbmVyLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtc2xpZGVyLW5vLWpzLXRvdWNo
LWxpc3RlbmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBAIHZhciBjaGVja1Bv
c2l0aW9uID0gKGZ1bmN0aW9uKCkgewogCiBmdW5jdGlvbiBvbktleURvd24oKSB7CiAgICAgY2hl
Y2tQb3NpdGlvbigpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwog
fQogCkBAIC0zMSw4ICszMSw4IEBAIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24n
LCBvbksKIAogZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IHRvdWNoIGV2ZW50cyBh
cmUgZGVsaXZlcmVkIHRvIGFuIGlucHV0IGVsZW1lbnQgd2l0aCB0eXBlPXJhbmdlIGV2ZW4gd2hl
biB0aGVyZSBhcmUgbm8gdG91Y2ggZXZlbnQgaGFuZGxlcnMgaW4gSmF2YXNjcmlwdC4gVGhpcyB0
ZXN0IGlzIG9ubHkgZXhwZWN0ZWQgdG8gcGFzcyBpZiBFTkFCTEVfVE9VQ0hfU0xJREVSIGlzIGRl
ZmluZWQuIik7CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRl
c3RzL3RvdWNoLXNsaWRlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtc2xpZGVyLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtc2xpZGVy
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIGZ1bmN0aW9uIG9uVG91Y2hFbmQo
KSB7CiAKIGZ1bmN0aW9uIG9uS2V5RG93bigpIHsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKIH0KIAogdmFyIHNsaWRlclZhbHVlID0gMDsKQEAgLTEwNSw4ICsxMDUs
OCBAQCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgb25LCiAKIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IHRoZSB0b3VjaCBldmVudHMgb3JpZ2luYXRpbmcgb24gYW4gaW5wdXQg
ZWxlbWVudCB3aXRoIHR5cGU9cmFuZ2UgdXBkYXRlIHRoZSBzbGlkZXIgcG9zaXRpb24uIFRoaXMg
dGVzdCBpcyBvbmx5IGV4cGVjdGVkIHRvIHBhc3MgaWYgRU5BQkxFX1RPVUNIX1NMSURFUiBpcyBk
ZWZpbmVkLiIpOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVm
ZXJlbmNlcy0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hh
cm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEyNDY4
OSkKKysrIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy0yLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMgQEAKLVRoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IGxheW91dFRlc3RDb250cm9sbGVyIGNhbiBoYXZlIGl0cyBkZWZhdWx0IHByZWZl
cmVuY2VzIG92ZXJyaWRlbi4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIEFQSSB3aWxsIGFj
Y2VwdCBzdHJpbmcgdmFsdWVzIGFuZCBhbHNvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGZvbnQgc2l6
ZS4gWW91IHNob3VsZCBzZWUgIlBBU1MiIGJlbG93LgorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQg
dGVzdFJ1bm5lciBjYW4gaGF2ZSBpdHMgZGVmYXVsdCBwcmVmZXJlbmNlcyBvdmVycmlkZW4uIFRo
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBBUEkgd2lsbCBhY2NlcHQgc3RyaW5nIHZhbHVlcyBh
bmQgYWxzbyBvdmVycmlkZSB0aGUgZGVmYXVsdCBmb250IHNpemUuIFlvdSBzaG91bGQgc2VlICJQ
QVNTIiBiZWxvdy4KIAogUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJy
aWRlLXByZWZlcmVuY2VzLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hh
cm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDE3ICsxLDE3IEBACiA8aHRtbD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJl
ZmVyZW5jZSgiV2ViS2l0RGVmYXVsdEZvbnRTaXplIiwgIjI0Iik7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0
ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0RGVmYXVsdEZvbnRTaXplIiwgIjI0
Iik7CiAgICAgfQogPC9zY3JpcHQ+CiA8Ym9keT4KLSAgICA8cD5UaGlzIHRlc3QgdmVyaWZpZXMg
dGhhdCBsYXlvdXRUZXN0Q29udHJvbGxlciBjYW4gaGF2ZSBpdHMgZGVmYXVsdCBwcmVmZXJlbmNl
cyBvdmVycmlkZW4uCisgICAgPHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGVzdFJ1bm5lciBj
YW4gaGF2ZSBpdHMgZGVmYXVsdCBwcmVmZXJlbmNlcyBvdmVycmlkZW4uCiAgICAgVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIEFQSSB3aWxsIGFjY2VwdCBzdHJpbmcgdmFsdWVzIGFuZCBhbHNv
IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZS4KICAgICBZb3Ugc2hvdWxkIHNlZSAiUEFT
UyIgYmVsb3cuPC9wPgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHZhciBwID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInAiKVswXTsKLSAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIgfHwgd2luZG93LmdldENvbXB1dGVkU3R5bGUocCkuZm9udFNpemUgPT0gIjI0
cHgiKQorICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHApLmZvbnRTaXplID09ICIyNHB4IikKICAgICAgICAgICAgIGRvY3VtZW50LndyaXRl
KCJQQVNTIik7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9vdmVycmlk
ZS1wcmVmZXJlbmNlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzIEBA
Ci1UaGlzIGlzIGEgdGVzdCB0aGF0IHZlcmlmaWVzIHRoYXQgbGF5b3V0VGVzdENvbnRyb2xsZXIg
Y2FuIGhhdmUgaXRzIGRlZmF1bHQgcHJlZmVyZW5jZXMgb3ZlcnJpZGRlbi4gVGhpcyB0ZXN0IHNw
ZWNpZmljYWxseSBjaGVja3MgdGhhdCBKYXZhc2NyaXB0IGNhbiBiZSBkaXNhYmxlZCwgYW5kIHlv
dSBzaG91bGQgc2VlICJQQVNTIiBiZWxvdyBpZiB2aWV3aW5nIHdpdGggYSBicm93c2VyLgorVGhp
cyBpcyBhIHRlc3QgdGhhdCB2ZXJpZmllcyB0aGF0IHRlc3RSdW5uZXIgY2FuIGhhdmUgaXRzIGRl
ZmF1bHQgcHJlZmVyZW5jZXMgb3ZlcnJpZGRlbi4gVGhpcyB0ZXN0IHNwZWNpZmljYWxseSBjaGVj
a3MgdGhhdCBKYXZhc2NyaXB0IGNhbiBiZSBkaXNhYmxlZCwgYW5kIHlvdSBzaG91bGQgc2VlICJQ
QVNTIiBiZWxvdyBpZiB2aWV3aW5nIHdpdGggYSBicm93c2VyLgogCiBQQVNTCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMuaHRtbAko
cmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJyaWRlLXBy
ZWZlcmVuY2VzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzEsMTggQEAKIDxodG1sPgog
PGJvZHk+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpCi0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SmF2YVNjcmlwdEVuYWJs
ZWQiLCBmYWxzZSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpCisgICAgICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNl
KCJXZWJLaXRKYXZhU2NyaXB0RW5hYmxlZCIsIGZhbHNlKTsKICAgICB9CiAKICAgICBmdW5jdGlv
biBsb2Fkc3RhdHVzKCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhdHVzIikuaW5uZXJIVE1MID0gIkZBSUwiOwogICAgIH0KIDwvc2Ny
aXB0PgogPGJvZHkgb25sb2FkPSJsb2Fkc3RhdHVzKCkiPgotICAgIDxwPlRoaXMgaXMgYSB0ZXN0
IHRoYXQgdmVyaWZpZXMgdGhhdCBsYXlvdXRUZXN0Q29udHJvbGxlciBjYW4gaGF2ZSBpdHMgZGVm
YXVsdCBwcmVmZXJlbmNlcyBvdmVycmlkZGVuLiAgVGhpcyB0ZXN0IHNwZWNpZmljYWxseSBjaGVj
a3MgdGhhdCBKYXZhc2NyaXB0IGNhbiBiZSBkaXNhYmxlZCwgYW5kIHlvdSBzaG91bGQgc2VlICJQ
QVNTIiBiZWxvdyBpZiB2aWV3aW5nIHdpdGggYSBicm93c2VyLjwvcD4KKyAgICA8cD5UaGlzIGlz
IGEgdGVzdCB0aGF0IHZlcmlmaWVzIHRoYXQgdGVzdFJ1bm5lciBjYW4gaGF2ZSBpdHMgZGVmYXVs
dCBwcmVmZXJlbmNlcyBvdmVycmlkZGVuLiAgVGhpcyB0ZXN0IHNwZWNpZmljYWxseSBjaGVja3Mg
dGhhdCBKYXZhc2NyaXB0IGNhbiBiZSBkaXNhYmxlZCwgYW5kIHlvdSBzaG91bGQgc2VlICJQQVNT
IiBiZWxvdyBpZiB2aWV3aW5nIHdpdGggYSBicm93c2VyLjwvcD4KICAgICA8c3BhbiBpZD0ic3Rh
dHVzIj5QQVNTPC9zcGFuPgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9oYXJuZXNzL292ZXJyaWRlLXp6ei1yZXNldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJyaWRlLXp6ei1yZXNldC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9vdmVycmlkZS16
enotcmVzZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMyBAQAotVGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGxheW91dFRlc3RDb250cm9sbGVyIHdpbGwgcmVzZXQg
aXRzIGRlZmF1bHQgcHJlZmVyZW5jZXMgYWZ0ZXIgZXZlcnkgbGF5b3V0IHRlc3QuIFlvdSBzaG91
bGQgc2VlICJQQVNTIiBiZWxvdy4KK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSB0ZXN0UnVu
bmVyIHdpbGwgcmVzZXQgaXRzIGRlZmF1bHQgcHJlZmVyZW5jZXMgYWZ0ZXIgZXZlcnkgbGF5b3V0
IHRlc3QuIFlvdSBzaG91bGQgc2VlICJQQVNTIiBiZWxvdy4KIAogUEFTUwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJyaWRlLXp6ei1yZXNldC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9vdmVycmlkZS16enotcmVzZXQuaHRtbAkocmV2aXNp
b24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJyaWRlLXp6ei1yZXNl
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDExIEBACiA8aHRtbD4KIDxib2R5Pgog
PHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPGJvZHk+
Ci0gICAgPHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGxheW91dFRlc3RDb250cm9sbGVy
IHdpbGwgcmVzZXQgaXRzIGRlZmF1bHQgcHJlZmVyZW5jZXMgYWZ0ZXIgZXZlcnkgbGF5b3V0IHRl
c3QuICBZb3Ugc2hvdWxkIHNlZSAiUEFTUyIgYmVsb3cuPC9wPgorICAgIDxwPlRoaXMgdGVzdCB2
ZXJpZmllcyB0aGF0IHRoZSB0ZXN0UnVubmVyIHdpbGwgcmVzZXQgaXRzIGRlZmF1bHQgcHJlZmVy
ZW5jZXMgYWZ0ZXIgZXZlcnkgbGF5b3V0IHRlc3QuICBZb3Ugc2hvdWxkIHNlZSAiUEFTUyIgYmVs
b3cuPC9wPgogICAgIDxzcGFuIGlkPSJzdGF0dXMiPkZBSUw8L3NwYW4+CiAgICAgPHNjcmlwdD4K
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cyIpLmlubmVySFRNTCA9ICJQ
QVNTIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91c2UtcGFnZS1jYWNoZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VzZS1wYWdl
LWNhY2hlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSw0ICsxLDQgQEAKLVRoaXMgdGVzdCB1c2VzIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXkiLCAxKTsgdG8gZW5h
YmxlIGJhY2stZm9yd2FyZCBXZWJLaXQgcGFnZSBjYWNoZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRo
ZSB0ZXN0LiBUaGUgdGVzdCBlbmFibGVzIGNhY2hlLCBuYXZpZ2F0ZXMgdG8gcGFnZS0xLCB0aGVu
IHRvIHBhZ2UtMiBhbmQgdGhlbiBkb2VzIGhpc3RvcnkuYmFjaygpIHRvIHBhZ2UtMS4gT24gbmF2
aWdhdGlvbiBiYWNrIHRvIHBhZ2UtMSwgdGVzdCB2ZXJpZmllcyB0aGF0IHByZXZpb3VzbHktaW5p
dGlhbGl6ZWQgdGltZXIgY29udGludWVzIHRvIGZpcmUgYW5kIG9ubG9hZCBpcyBub3QgY2FsbGVk
IGFnYWluLiBJZiB0ZXN0IGZhaWxzIGl0IGhhbmdzIG9yIG91dHB1dHMgJ0ZBSUwnIGJlbG93Lgor
VGhpcyB0ZXN0IHVzZXMgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQ
YWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7IHRvIGVuYWJsZSBiYWNrLWZvcndhcmQgV2ViS2l0
IHBhZ2UgY2FjaGUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgdGVzdC4gVGhlIHRlc3QgZW5hYmxl
cyBjYWNoZSwgbmF2aWdhdGVzIHRvIHBhZ2UtMSwgdGhlbiB0byBwYWdlLTIgYW5kIHRoZW4gZG9l
cyBoaXN0b3J5LmJhY2soKSB0byBwYWdlLTEuIE9uIG5hdmlnYXRpb24gYmFjayB0byBwYWdlLTEs
IHRlc3QgdmVyaWZpZXMgdGhhdCBwcmV2aW91c2x5LWluaXRpYWxpemVkIHRpbWVyIGNvbnRpbnVl
cyB0byBmaXJlIGFuZCBvbmxvYWQgaXMgbm90IGNhbGxlZCBhZ2Fpbi4gSWYgdGVzdCBmYWlscyBp
dCBoYW5ncyBvciBvdXRwdXRzICdGQUlMJyBiZWxvdy4KIAogb3BlbiBwYWdlLTEKIHBhZ2UtMSwg
YWJvdXQgdG8gbmF2aWdhdGUgdG8gcGFnZS0yLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9oYXJu
ZXNzL3VzZS1wYWdlLWNhY2hlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL3VzZS1wYWdlLWNhY2hlLmh0bWwJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRl
c3RzL2Zhc3QvaGFybmVzcy91c2UtcGFnZS1jYWNoZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
LDggKzIsOCBAQAogPHNjcmlwdD4KIHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCiB7Ci0gICAg
aWYgKGxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogfQogCiB3aW5kb3cubG9nID0gZnVuY3Rpb24obWVzc2FnZSkgewpAQCAtMjMs
MTEgKzIzLDExIEBAIHdpbmRvdy5yZXBvcnRPbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogZnVuY3Rp
b24gdGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CiAgICAgfQog
ICAgIGxvZygib3BlbiBwYWdlLTEiKTsKICAgICB3aW5kb3cub3BlbigicmVzb3VyY2VzL2NhY2hl
ZC1wYWdlLTEuaHRtbCIpOwpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIDwvc2Ny
aXB0PgogCiA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGlzIHRlc3QgdXNlcyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVm
ZXJlbmNlS2V5IiwgMSk7IHRvIGVuYWJsZQorPHA+VGhpcyB0ZXN0IHVzZXMgdGVzdFJ1bm5lci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7
IHRvIGVuYWJsZQogYmFjay1mb3J3YXJkIFdlYktpdCBwYWdlIGNhY2hlIGZvciB0aGUgZHVyYXRp
b24gb2YgdGhlIHRlc3QuCiBUaGUgdGVzdCBlbmFibGVzIGNhY2hlLCBuYXZpZ2F0ZXMgdG8gcGFn
ZS0xLCB0aGVuIHRvIHBhZ2UtMiBhbmQgdGhlbiBkb2VzIGhpc3RvcnkuYmFjaygpIHRvIHBhZ2Ut
MS4KIE9uIG5hdmlnYXRpb24gYmFjayB0byBwYWdlLTEsIHRlc3QgdmVyaWZpZXMgdGhhdCBwcmV2
aW91c2x5LWluaXRpYWxpemVkIHRpbWVyIGNvbnRpbnVlcyB0byBmaXJlIGFuZApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc291cmNlcy9yZXN1bHRzLXRlc3QuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc291cmNlcy9yZXN1bHRzLXRlc3QuanMJ
KHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXNvdXJjZXMv
cmVzdWx0cy10ZXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLy8gVG8gcnVu
IHRoZXNlIHRlc3RzLCBsb2FkIGpzb25fcmVzdWx0cy5odG1sIGluIGEgYnJvd3Nlci4KIC8vIFlv
dSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgbGluZXMuCi1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogdmFy
IHRlc3RTdHlsZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogdGVzdFN0eWxl
cy5pbm5lclRleHQgPSAiLnRlc3QtcGFzcyB7IGNvbG9yOiBncmVlbjsgfSAudGVzdC1mYWlsIHsg
Y29sb3I6IHJlZDsgfSI7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItYmxvY2st
ZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ydWJ5L2FmdGVyLWJsb2NrLWRvZXNudC1jcmFzaC5odG1sLWRpc2FibGVkCShyZXZpc2lvbiAx
MjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItYmxvY2stZG9lc250LWNyYXNo
Lmh0bWwtZGlzYWJsZWQJKHdvcmtpbmcgY29weSkKQEAgLTE3LDcgKzE3LDcgQEAKICAgICA8L3J1
Ynk+CiA8L3J1Ynk+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogPC9z
Y3JpcHQ+CiBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItdGFibGUtZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2FmdGVyLXRhYmxlLWRvZXNudC1j
cmFzaC5odG1sLWRpc2FibGVkCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3J1YnkvYWZ0ZXItdGFibGUtZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQJKHdvcmtpbmcgY29w
eSkKQEAgLTE3LDcgKzE3LDcgQEAKICAgICA8L3J1Ynk+CiA8L3J1Ynk+CiA8c2NyaXB0PgotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogPC9zY3JpcHQ+CiBUaGlzIHRlc3QgcGFzc2VzIGlm
IGl0IGRvZXNuJ3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvZ2VuZXJhdGVk
LWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1hZnRlci1jb3VudGVyLWRvZXNudC1jcmFz
aC5odG1sLWRpc2FibGVkCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3J1
YnkvZ2VuZXJhdGVkLWFmdGVyLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwtZGlzYWJsZWQJKHdv
cmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0ZWQtYmVmb3JlLWFuZC1hZnRlci1j
b3VudGVyLWRvZXNudC1jcmFzaC5odG1sLWRpc2FibGVkCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvcnVieS9nZW5lcmF0ZWQtYmVmb3JlLWFuZC1hZnRlci1jb3VudGVyLWRvZXNudC1j
cmFzaC5odG1sLWRpc2FibGVkCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3J1YnkvZ2VuZXJhdGVkLWJlZm9yZS1hbmQtYWZ0ZXItY291bnRlci1kb2VzbnQtY3Jhc2guaHRt
bC1kaXNhYmxlZAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9l
dmVudHNvdXJjZS1ldmVudHMtYWZ0ZXItY2xvc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWV2ZW50cy1hZnRlci1jbG9z
ZS5odG1sCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50
c291cmNlL2V2ZW50c291cmNlLWV2ZW50cy1hZnRlci1jbG9zZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC02LDkgKzYsOSBAQAogPC9wPgogPHByZSBpZD1sb2c+PC9wcmU+CiA8c2NyaXB0PgotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
ICAgICB9CiAKICAgICB2YXIgbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpOwpA
QCAtMjYsOCArMjYsOCBAQAogICAgICAgICAgICAgLy8gTmVlZCB0byB3YWl0IHRvIHNlZSBpZiB3
ZSdyZSBjYWxsZWQgYWdhaW4uCiAgICAgICAgICAgICAvLyBldmVudC1zdHJlYW0ucGhwIHNlbmRz
IGEgYnVuY2ggb2YgZXZlbnRzIGJlZm9yZSBmbHVzaGluZywgc28gaWYgY2xvc2UoKSBkaWRuJ3Qg
dGFrZQogICAgICAgICAgICAgLy8gZWZmZWN0IHdlJ2QgZ2V0IGEgc2Vjb25kIG1lc3NhZ2UgcHJh
Y3RpY2FsbHkgaW5zdGFudGFuZW91c2x5LCB3YWl0aW5nIDEwMG1zIHNob3VsZCBiZSBvay4KLSAg
ICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICAgICAgICB9LCAxMDApOwogICAgIH0sIGZhbHNlKTsKIApJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2dtYWlsLWFzc2VydC1vbi1sb2FkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2dtYWlsLWFzc2VydC1vbi1sb2FkLmh0bWwJKHJl
dmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9nbWFpbC1hc3Nl
cnQtb24tbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+CiA8
c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogfQogPC9zY3JpcHQ+CiA8Ym9keT4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy94aHRtbC5waHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3hodG1sLnBocAkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3hodG1sLnBocAkod29ya2luZyBjb3B5KQpAQCAtMSw4
ICsxLDggQEAKIDxodG1sPgogPGJvZHk+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIHZhciBh
Y2NlcHQgPSAiPD9waHAgZWNobyAkX1NFUlZFUlsiSFRUUF9BQ0NFUFQiXTsgPz4iOwogZG9jdW1l
bnQud3JpdGUoIkFjY2VwdDogIiArIGFjY2VwdCArICI8YnI+PGJyPiIpOwpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3htbHRva2VuaXplci1kby1ub3QtY3Jhc2gucGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3htbHRva2VuaXplci1kby1ub3Qt
Y3Jhc2gucGwJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy94bWx0b2tlbml6ZXItZG8tbm90LWNyYXNoLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsx
NCw3IEBAIHByaW50ICI8IURPQ1RZUEUgaHRtbCBQVUJMSUMgXCItLy9XM0MvL0QKIHByaW50ICI8
aHRtbCB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWw6bGFuZz1cInBs
XCI+XG4iOwogcHJpbnQgIjxoZWFkPlxuIjsKIHByaW50ICI8c2NyaXB0PlxuIjsKLXByaW50ICJp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7XG4iOworcHJpbnQgImlmICh3aW5kb3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7XG4iOwogcHJpbnQgIjwvc2NyaXB0PiI7CiBwcmludCAiPC9oZWFkPlxuIjsK
IHByaW50ICI8Ym9keT5cbiI7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVz
b3VyY2VzL2NoYXItZW5jb2RpbmctaW4taGlkZGVuLWNoYXJzZXQtZmllbGQucGhwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2hhci1lbmNvZGlu
Zy1pbi1oaWRkZW4tY2hhcnNldC1maWVsZC5waHAJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2hhci1lbmNvZGluZy1pbi1oaWRkZW4t
Y2hhcnNldC1maWVsZC5waHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDggQEAgZWNobyAi
PHA+UEFTU0VEOiAkZGF0YSA8L3A+IjsKID8+CiAKIDxzY3JpcHQ+Ci1pZih3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
aWYod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiA8L3Nj
cmlwdD4KIAogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291
cmNlcy9jaGVjay1rZXlnZW4tcG9zdC5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3Jlc291cmNlcy9jaGVjay1rZXlnZW4tcG9zdC5waHAJKHJldmlzaW9uIDEy
NDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2hlY2sta2V5
Z2VuLXBvc3QucGhwCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw4ICsxNSw4IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKQogICAgICAgICByLmlubmVySFRNTCA9ICJGQUlMVVJFOiBrZXlnZW4gd2FzIG5vdCBw
YXJzZWQgY29ycmVjdGx5LiB2YWx1ZT0iICsKICAgICAgICAgby5ub2RlVmFsdWU7CiAgICAgICAg
IAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2hlY2stcXVlcnktcGFyYW0ucGhw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2hl
Y2stcXVlcnktcGFyYW0ucGhwCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NoZWNrLXF1ZXJ5LXBhcmFtLnBocAkod29ya2luZyBjb3B5
KQpAQCAtMTUsOCArMTUsOCBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgci5pbm5lckhU
TUwgPSAiRkFJTFVSRTogcXVlcnkgcGFyYW0gaXMgbm90IGNvbnZlcnRlZCB0byBVVEYtOC4gdmFs
dWU9IiArCiAgICAgICAgIG8ubm9kZVZhbHVlOwogICAgICAgICAKLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKIH0KIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvcmVzb3VyY2VzL2NoZWNrLXVubmFtZWQtZmlsZS1pbmNsdWRlZC1pbi1mb3JtZGF0YS5w
aHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9j
aGVjay11bm5hbWVkLWZpbGUtaW5jbHVkZWQtaW4tZm9ybWRhdGEucGhwCShyZXZpc2lvbiAxMjQ2
ODkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NoZWNrLXVubmFt
ZWQtZmlsZS1pbmNsdWRlZC1pbi1mb3JtZGF0YS5waHAJKHdvcmtpbmcgY29weSkKQEAgLTQsOCAr
NCw4IEBAIGhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQKIDxodG1sPgog
PGhlYWQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogPC9zY3JpcHQ+
CiA8L2hlYWQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNv
dXJjZXMvY2hyb21pdW0tc2VsZWN0aW9uQXNNYXJrdXAuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2Nocm9taXVtLXNlbGVjdGlvbkFzTWFy
a3VwLmh0bWwJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvY2hyb21pdW0tc2VsZWN0aW9uQXNNYXJrdXAuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTYsNyArMTYsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICB2YXIgcmFuZ2Ug
PSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0aW9uIikpOwogICAgIGRvY3VtZW50LmdldFNl
bGVjdGlvbigpLmFkZFJhbmdlKHJhbmdlKTsKLSAgICB2YXIgc2VsID0gbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2VsZWN0aW9uQXNNYXJrdXAoKTsKKyAgICB2YXIgc2VsID0gdGVzdFJ1bm5lci5zZWxl
Y3Rpb25Bc01hcmt1cCgpOwogCiAgICAgdmFyIGVycm9ycyA9ICIiOwogCkBAIC0zMiwxMiArMzIs
MTIgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgZWxzZQogICAgICAgICBkb2N1bWVudC5i
b2R5LmlubmVyVGV4dCA9IGVycm9yczsKIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIDwvc2NyaXB0PgogCiA8
cD4KIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdGhlIG1hcmt1cCB1c2VkIGJ5IHByaW50IHNl
bGVjdGlvbgogY29udGFpbnMgYWJzb2x1dGUgdXJscyBhbmQgcHVzaGVkIGRvd24gc3R5bGVzLiBU
aGlzIHRlc3QgZGVwZW5kcwotb24gbGF5b3V0VGVzdENvbnRyb2xsZXIuCitvbiB0ZXN0UnVubmVy
LgogPC9wPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9kZWxh
eWVkLWxvZy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9kZWxheWVkLWxvZy5waHAJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvZGVsYXllZC1sb2cucGhwCSh3b3JraW5nIGNvcHkp
CkBAIC0zLDcgKzMsNyBAQAogICBzbGVlcCgkX0dFVFsiZGVsYXkiXSk7CiAgIGVjaG8gImxvZygn
IiAuICRfR0VUWyJtc2ciXSAuICInKTtcbiI7CiAgIGlmICgkX0dFVFsiZG9uZSJdID09ICIxIikg
ewotICAgICAgZWNobyAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcilcbiI7Ci0gICAg
ICBlY2hvICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpO1xuIjsKKyAgICAg
IGVjaG8gImlmICh3aW5kb3cudGVzdFJ1bm5lcilcbiI7CisgICAgICBlY2hvICIgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7XG4iOwogICB9CiA/PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3Jlc291cmNlcy9mb3JtLXBvc3QtdGV4dHBsYWluLnBocAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2Zvcm0tcG9zdC10ZXh0cGxh
aW4ucGhwCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
cmVzb3VyY2VzL2Zvcm0tcG9zdC10ZXh0cGxhaW4ucGhwCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw4
ICsxOSw4IEBAIGlmKCRkYXRhID09ICJmMT1UaGlzIGlzIGZpZWxkICMxICYhQCQlXG4KIH0KID8+
CiA8c2NyaXB0PgotaWYod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK2lmKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2xvY2F0aW9uLXRlc3QteHNs
LXN0eWxlLXNoZWV0LnhzbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2xvY2F0aW9uLXRlc3QteHNsLXN0eWxlLXNoZWV0LnhzbAkocmV2aXNpb24g
MTI0Njg5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9sb2NhdGlv
bi10ZXN0LXhzbC1zdHlsZS1zaGVldC54c2wJKHdvcmtpbmcgY29weSkKQEAgLTE1LDggKzE1LDgg
QEAKICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInBhc3MiKS5pbm5lckhUTUwgPSAiPHNwYW4+UEFTUzwvc3Bhbj4iOw0KIA0KLSAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpDQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
Ow0KICAgICAgICAgfQ0KIA0KICAgICAgPC9zY3JpcHQ+DQpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3Jlc291cmNlcy9wZXJjZW50LXNpZ24taW4tZm9ybS1kYXRhLWZpZWxkLW5h
bWUuY2dpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJj
ZXMvcGVyY2VudC1zaWduLWluLWZvcm0tZGF0YS1maWVsZC1uYW1lLmNnaQkocmV2aXNpb24gMTI0
Njg5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9wZXJjZW50LXNp
Z24taW4tZm9ybS1kYXRhLWZpZWxkLW5hbWUuY2dpCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw4ICsx
OSw4IEBAIHByaW50ICJpZiAocHJlLnRleHRDb250ZW50Lm1hdGNoKCdhYmMlNDAKIHByaW50ICIg
IGRvY3VtZW50LndyaXRlKCdQQVNTJylcbiI7CiBwcmludCAiZWxzZVxuIjsKIHByaW50ICIgIGRv
Y3VtZW50LndyaXRlKCdGQUlMJylcbiI7Ci1wcmludCAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikge1xuIjsKK3ByaW50ICJpZiAod2luZG93LnRlc3RSdW5uZXIpIHtcbiI7CiBwcmlu
dCAiICBwcmUuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcbiI7Ci1wcmlu
dCAiICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7XG4iOworcHJpbnQgIiAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7XG4iOwogcHJpbnQgIn1cbiI7CiBwcmludCAiPC9zY3JpcHQ+
XG4iOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9wb3N0LWVj
aG8tYW5kLW5vdGlmeS1kb25lLmNnaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL3Bvc3QtZWNoby1hbmQtbm90aWZ5LWRvbmUuY2dpCShyZXZpc2lv
biAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3Bvc3Qt
ZWNoby1hbmQtbm90aWZ5LWRvbmUuY2dpCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBp
ZiAoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiUE9TVCIpIHsKICAgICByZWFkKFNURElOLCAk
cmVxdWVzdCwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSkKICAgICAgICAgICAgICAgICB8fCBkaWUg
IkNvdWxkIG5vdCBnZXQgcXVlcnlcbiI7CiAgICAgcHJpbnQgJHJlcXVlc3Q7Ci0gICAgcHJpbnQg
IjxzY3JpcHQ+aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOzwvc2NyaXB0PiI7CisgICAgcHJpbnQgIjxzY3JpcHQ+aWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTs8L3NjcmlwdD4iOwogfSBl
bHNlIHsKICAgICBwcmludCAiV3JvbmcgbWV0aG9kOiAiIC4gJEVOVnsnUkVRVUVTVF9NRVRIT0Qn
fSAuICJcbiI7CiB9IApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNl
cy9wcmVmZXRjaC1wdXJwb3NlLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL3ByZWZldGNoLXB1cnBvc2UucGhwCShyZXZpc2lvbiAxMjQ2ODkp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3ByZWZldGNoLXB1cnBv
c2UucGhwCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBAIGlmIChpc3NldCgkX0NPT0tJ
RVsnUHVycG9zZSddKSkgewogPz4KIAogPHNjcmlwdD4KLWxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKK3Rlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogPC9zY3JpcHQ+CiAKIDxwPlRo
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHByZWZldGNoZXMgYXJlIHNlbnQgd2l0aCB0aGUgSFRUUCBy
ZXF1ZXN0IGhlYWRlcgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNl
cy9yZWRpcmVjdC1yZXN1bHQucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtcmVzdWx0LnBocAkocmV2aXNpb24gMTI0Njg5KQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC1yZXN1bHQu
cGhwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogPGh0bWw+CiA8Ym9keT4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKIAogdmFyIHVzZXJBZ2VudCA9ICI8P3BocCBlY2hvICRfU0VSVkVS
WydIVFRQX1VTRVJfQUdFTlQnXTsgPz4iOwogaWYgKHVzZXJBZ2VudC5tYXRjaCgvV2ViS2l0Lykp
IHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvcmVmZXJyZXIt
bWFpbi1yZXNvdXJjZS5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3Jlc291cmNlcy9yZWZlcnJlci1tYWluLXJlc291cmNlLnBocAkocmV2aXNpb24gMTI0Njg5
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9yZWZlcnJlci1tYWlu
LXJlc291cmNlLnBocAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxzY3JpcHQ+CiBm
dW5jdGlvbiBydW5UZXN0KCkgewogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAg
ICA8P3BocCBpZiAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkKICAgICAgICAgICAg
ICAgZWNobyAnZG9jdW1lbnQud3JpdGUoIkZBSUw6IFRoZSBzZXJ2ZXIgc2hvdWxkIG5vdCByZWNl
aXZlIGEgcmVmZXJyZXIgd2hpY2ggaXMgbm90IHNldCBieSB1c2VyIGFnZW50LiIpOyc7CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3JlZmVycmVyLXJlc3VsdC5w
aHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9y
ZWZlcnJlci1yZXN1bHQucGhwCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL3JlZmVycmVyLXJlc3VsdC5waHAJKHdvcmtpbmcgY29weSkK
QEAgLTksOCArOSw4IEBAIGlmIChyZWZlcmVyLm1hdGNoKC9yZWZlcnJlci5odG1sLykpIHsKICAg
ICBkb2N1bWVudC53cml0ZSgiRkFJTDogUmVmZXJlciBoZWFkZXIgZG9lcyBub3QgY29udGFpbiB0
aGUgc3RyaW5nICdyZWZlcnJlci5odG1sJywgdmFsdWUgaXMgJyIgKyByZWZlcmVyICsgIiciKTsK
IH0KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiA8L3NjcmlwdD4KIAogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tdWx0aXBhcnQvbXVsdGlwYXJ0LXJlcGxhY2Utbm9uLWh0bWwtY29udGVu
dC5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tdWx0aXBhcnQvbXVs
dGlwYXJ0LXJlcGxhY2Utbm9uLWh0bWwtY29udGVudC5waHAJKHJldmlzaW9uIDEyNDY4OSkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbXVsdGlwYXJ0L211bHRpcGFydC1yZXBsYWNlLW5vbi1o
dG1sLWNvbnRlbnQucGhwCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcsOCBAQCBlY2hvIHN0cl9w
YWQoJycsIDUwMDApOwogPz4KIAogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogPC9zY3JpcHQ+CiAK
IDw/cGhwCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL211bHRpcGFydC9wb2xpY3ktaWdu
b3JlLWNyYXNoLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL211bHRp
cGFydC9wb2xpY3ktaWdub3JlLWNyYXNoLnBocAkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tdWx0aXBhcnQvcG9saWN5LWlnbm9yZS1jcmFzaC5waHAJKHdvcmtp
bmcgY29weSkKQEAgLTUsOCArNSw4IEBAIENvbnRlbnQtdHlwZTogdGV4dC9odG1sCiAKIDxwPlRo
aXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guPC9wPgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogPC9zY3JpcHQ+CiAKIDw/cGhwCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L211bHRpcGFydC93aW4tYm91bmRhcnktY3Jhc2guaHRtbC1kaXNhYmxlZAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL211bHRpcGFydC93aW4tYm91bmRhcnktY3Jhc2guaHRt
bC1kaXNhYmxlZAkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
dWx0aXBhcnQvd2luLWJvdW5kYXJ5LWNyYXNoLmh0bWwtZGlzYWJsZWQJKHdvcmtpbmcgY29weSkK
QEAgLTEsOCArMSw4IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1nb2JhY2stcmVwb3N0LXBvbGljeS5odG1s
LWRpc2FibGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wb3N0LWdvYmFjay1yZXBvc3QtcG9saWN5Lmh0bWwtZGlzYWJsZWQJKHJldmlzaW9uIDEyNDY4
OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWdvYmFjay1yZXBv
c3QtcG9saWN5Lmh0bWwtZGlzYWJsZWQJKHdvcmtpbmcgY29weSkKQEAgLTIsOSArMiw5IEBACiA8
aGVhZD4KIDxzY3JpcHQ+CiAgICAgCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogfQogICAgIAogZnVuY3Rpb24gbG9hZGVkKCkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi91c2VyYWdlbnQucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi91c2VyYWdlbnQucGhwCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vdXNlcmFnZW50LnBocAkod29ya2luZyBj
b3B5KQpAQCAtNCw4ICs0LDggQEAKIDxwPlRlc3RzIGZvciB1c2VyIGFnZW50IHN0cmluZyB0ZW1w
bGF0ZTwvcD4KIAogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgfQogCiAgICAgdmFyIHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2JhY2stc2VuZC1yZWZl
cnJlci1oZWxwZXIucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvYmFjay1zZW5kLXJlZmVycmVyLWhlbHBlci5waHAJKHJldmlzaW9u
IDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
YmFjay1zZW5kLXJlZmVycmVyLWhlbHBlci5waHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIz
LDggQEAgd2luZG93Lm5hbWU6IDxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUod2luZAogICAgIH0gZWxz
ZSBpZiAod2luZG93Lm5hbWUgPT0gMikgewogICAgICAgICBoaXN0b3J5LmdvKC0xKTsKICAgICB9
IGVsc2UgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogICAgIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmcucGhwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy5waHAJ
KHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvY2hlY2stcGluZy5waHAJKHdvcmtpbmcgY29weSkKQEAgLTE1LDggKzE1LDggQEAg
d2hpbGUgKCRsaW5lID0gZmdldHMoJHBpbmdGaWxlKSkgewogZmNsb3NlKCRwaW5nRmlsZSk7CiB1
bmxpbmsoInBpbmcudHh0Iik7CiBlY2hvICI8c2NyaXB0PiI7Ci1lY2hvICJpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSI7Ci1lY2hvICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOyI7CitlY2hvICJpZiAod2luZG93LnRlc3RSdW5uZXIpIjsKK2VjaG8gIiAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiOwogZWNobyAiPC9zY3JpcHQ+IjsKIGVjaG8gIjwvYm9k
eT48L2h0bWw+IjsKID8+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL2RvY3VtZW50LWxvY2F0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvZG9jdW1lbnQtbG9jYXRpb24uanMJKHJl
dmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNv
dXJjZXMvZG9jdW1lbnQtbG9jYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsMTcg
QEAKIGZ1bmN0aW9uIHN0YXJ0KCkgewotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHZhciBuID0gZG9jdW1lbnQubG9j
YXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTsKICAgICBpZiAoIW4pIHsKICAgICAgIC8vIHBhZ2Ug
anVzdCBvcGVuZWQKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExp
c3QoKTsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIHRlc3RSdW5uZXIuZHVt
cEJhY2tGb3J3YXJkTGlzdCgpOworICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgLy8gTG9jYXRpb24gY2hhbmdl
cyBuZWVkIHRvIGhhcHBlbiBvdXRzaWRlIHRoZSBvbmxvYWQgaGFuZGxlciB0byBnZW5lcmF0ZSBo
aXN0b3J5IGVudHJpZXMuCiAgICAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDApOwogICAgIH0gZWxz
ZSB7CiAgICAgICAvLyBsb2FkZWQgdGhlID8xIG5hdmlnYXRpb24KLSAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgIH0KICAgfQogfQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jl
c291cmNlcy9mb3JtLXRhcmdldC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2Zvcm0tdGFyZ2V0LnBsCShyZXZpc2lvbiAxMjQ2ODkp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2Zvcm0tdGFy
Z2V0LnBsCSh3b3JraW5nIGNvcHkpCkBAIC01MSw4ICs1MSw4IEBAIGlmIChzZXNzaW9uU3RvcmFn
ZS50b3BTaG91bGROYXZBbmRHb0JhY2sKICAgfQogfQogCi1pZiAoaXNEb25lICYmIHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CitpZiAoaXNEb25lICYmIHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogCiA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvZ29iYWNrLXdpdGgtcG9saWN5ZGVsZWdhdGUucGhw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvZ29iYWNrLXdpdGgtcG9saWN5ZGVsZWdhdGUucGhwCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2dvYmFjay13aXRoLXBv
bGljeWRlbGVnYXRlLnBocAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIAogZnVuY3Rp
b24gbG9hZGVkKCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSh0cnVlLCB0
cnVlKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
Q3VzdG9tUG9saWN5RGVsZWdhdGUodHJ1ZSwgdHJ1ZSk7CiAKICAgICB3aW5kb3cuaGlzdG9yeS5i
YWNrKCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL25vLXJlZmVycmVyLWhlbHBlci5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9uby1yZWZlcnJlci1oZWxwZXIucGhwCShyZXZp
c2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL25vLXJlZmVycmVyLWhlbHBlci5waHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDggKzI0LDgg
QEAgZnVuY3Rpb24gbG9nKG1zZykKICAgICAgICAgY29uc29sZVdpbmRvdy5sb2coIndpbmRvdy5v
cGVuZXI6ICIgKyAod2luZG93Lm9wZW5lciA/IHdpbmRvdy5vcGVuZXIubG9jYXRpb24gOiAiIikp
OwogICAgIH0KICAgICAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIDwvc2NyaXB0Pgog
CiA8L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3Jlc291cmNlcy9uby1yZWZlcnJlci1zYW1lLXdpbmRvdy1oZWxwZXIucGhwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvbm8tcmVmZXJy
ZXItc2FtZS13aW5kb3ctaGVscGVyLnBocAkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9uby1yZWZlcnJlci1zYW1lLXdpbmRv
dy1oZWxwZXIucGhwCSh3b3JraW5nIGNvcHkpCkBAIC04LDEyICs4LDEyIEBACiBUaGUgUmVmZXJy
ZXIgZGlzcGxheWVkIGJlbG93IHNob3VsZCBiZSBlbXB0eS48YnIvPgogPGRpdiBpZD0icmVmZXJy
ZXIiPlJlZmVycmVyOiA8P3BocCBlY2hvICRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsgPz48L2Rp
dj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4NCi0gICAgdmFyIGxpbmUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCi0gICAgbGluZS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJyZXIiKS5p
bm5lclRleHQgPT0gIlJlZmVycmVyOiIgPyAiUEFTUyIgOiAiRkFJTCIpKTsNCis8c2NyaXB0Pgor
ICAgIHZhciBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgbGluZS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVmZXJyZXIiKS5pbm5lclRleHQgPT0gIlJlZmVycmVyOiIgPyAiUEFTUyIgOiAiRkFJTCIp
KTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGxp
bmUpOwogICAgIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogPC9zY3JpcHQ+CiA8L2Jv
ZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291
cmNlcy9ub3RpZnktZG9uZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvbm90aWZ5LWRvbmUuaHRtbAkocmV2aXNpb24gMTI0Njg5
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9ub3RpZnkt
ZG9uZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogPGh0bWw+CiA8c2NyaXB0
PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiA8L3NjcmlwdD4KIDxib2R5PgotVGhpcyBwYWdlIGNhbGxzIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKS4KK1RoaXMgcGFnZSBjYWxscyB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKS4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvcG9zdC10YXJnZXQtcG9saWN5LXRlc3QucGhwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcG9zdC10YXJn
ZXQtcG9saWN5LXRlc3QucGhwCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LXBvbGljeS10ZXN0LnBocAko
d29ya2luZyBjb3B5KQpAQCAtNiw5ICs2LDkgQEAgZnVuY3Rpb24gbG9hZGVkKCkKIHsKICAgICBp
ZiAod2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInBvc3RlZEZvcm0iKSkgewogICAgICAg
ICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgicG9zdGVkRm9ybSIpOwotICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShmYWxzZSk7Ci0gICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDdXN0b21Qb2xpY3lEZWxl
Z2F0ZShmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdDMwMi1tZXRhcmVkaXJlY3QucGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRp
cmVjdDMwMi1tZXRhcmVkaXJlY3QucGwJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QzMDItbWV0YXJlZGlyZWN0
LnBsCSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQCBwcmludCA8PEhFUkVfRE9DX0VORAog
PGh0bWw+CiA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwO1VSTD1yZWRpcmVj
dDMwMi1tZXRhcmVkaXJlY3QuaHRtbCI+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogPC9zY3JpcHQ+CiA8Ym9keT4KIFRlc3QgZmFpbGVkISAtIFRoaXMgcGFn
ZSB1c2VzIGEgbWV0YSByZWRpcmVjdCB0byBsb2FkIGFub3RoZXIgcGFnZS4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtY3ljbGUtMS5w
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3JlZGlyZWN0LWN5Y2xlLTEucGwJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtY3ljbGUtMS5wbAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBpZiAoJGNvdW50IGVxIDEpIHsKICAgICBwcmlu
dCAiPGh0bWw+IjsKICAgICBwcmludCAiPGhlYWQ+IjsKICAgICBwcmludCAiPHNjcmlwdCB0eXBl
PSd0ZXh0L2phdmFzY3JpcHQnPiI7Ci0gICAgcHJpbnQgImZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOyB9IjsKKyAgICBwcmlu
dCAiZnVuY3Rpb24gc3RhcnRUZXN0KCkgeyB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2FyZExpc3Qo
KTsgfSI7CiAgICAgcHJpbnQgIjwvc2NyaXB0PiI7CiAgICAgcHJpbnQgIjwvaGVhZD4iOwogICAg
IHByaW50ICI8Ym9keSBvbmxvYWQ9J3N0YXJ0VGVzdCgpOyc+IjsKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RlZC1wb3N0LXJlcXVlc3Qt
Y29udGVudHMucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RlZC1wb3N0LXJlcXVlc3QtY29udGVudHMucGhwCShyZXZp
c2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3JlZGlyZWN0ZWQtcG9zdC1yZXF1ZXN0LWNvbnRlbnRzLnBocAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNSArMzQsNSBAQCBpZiAoc2l6ZW9mKCRfUE9TVCkgPiAwIHx8IHNpemVvZigkX0ZJTEVT
CiAgICAgZWNobyAibm8gUE9TVCBkYXRhIGlzIHByZXNlbnQuPGJyPiI7CiB9CiAKLWVjaG8gIjxz
Y3JpcHQ+aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOzwvc2NyaXB0PiIKK2VjaG8gIjxzY3JpcHQ+aWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTs8L3NjcmlwdD4iCiA/PgpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zdWJtaXQtdG8tZnJhZ21l
bnQucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jl
c291cmNlcy9zdWJtaXQtdG8tZnJhZ21lbnQucGwJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3VibWl0LXRvLWZyYWdtZW50
LnBsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw4IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkg
ewogICAgIGJyZWFrOwogICBjYXNlIDM6CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c3VsdCIpLmlubmVyVGV4dCA9ICJQQVNTIjsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
IGJyZWFrOwogICB9CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL3Rlc3Rjb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvdGVzdGNvZGUuanMJKHJldmlzaW9uIDEyNDY4OSkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvdGVzdGNvZGUuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTYyLDE3ICs2MiwxNyBAQCBmdW5jdGlvbiBqdW1wVG9BbmNob3Io
KSB7CiAvLyBpdCdzIGltcG9ydGFudCB0byBjaGVjayB0aGF0IHRoYXQgd2UgZW5kIHVwIHNjcm9s
bGVkIHRvIHRoZSByaWdodCBwbGFjZSwKIC8vIHByb3ZpbmcgdGhlIGFuY2hvciB3YXMgdmlzaXRl
ZC4KIGZ1bmN0aW9uIHJ1bkJhc2ljVGVzdCh0ZXN0Q2FzZSwgZXh0cmFTdGVwKSB7Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnF1ZXVlTG9hZCh0ZXN0Q2FzZSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOworICAgICAgICB0ZXN0UnVubmVy
LnF1ZXVlTG9hZCh0ZXN0Q2FzZSk7CiAgICAgICAgIGlmIChleHRyYVN0ZXAgPT0gInBvc3QiKSB7
Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZU5vbkxvYWRpbmdTY3JpcHQo
ImZpbGxUZXN0Rm9ybSgpIik7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1
ZUxvYWRpbmdTY3JpcHQoInN1Ym1pdEZvcm1XaXRoUG9zdCgpIik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnF1ZXVlTm9uTG9hZGluZ1NjcmlwdCgiZmlsbFRlc3RGb3JtKCkiKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIucXVldWVMb2FkaW5nU2NyaXB0KCJzdWJtaXRGb3JtV2l0aFBvc3QoKSIp
OwogICAgICAgICB9IGVsc2UgaWYgKGV4dHJhU3RlcCA9PSAicG9zdHJlZGlyZWN0IikgewotICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVOb25Mb2FkaW5nU2NyaXB0KCJmaWxs
VGVzdEZvcm0oKSIpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2Fk
aW5nU2NyaXB0KCJzdWJtaXRGb3JtV2l0aFBvc3RSZWRpcmVjdCgpIik7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnF1ZXVlTm9uTG9hZGluZ1NjcmlwdCgiZmlsbFRlc3RGb3JtKCkiKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIucXVldWVMb2FkaW5nU2NyaXB0KCJzdWJtaXRGb3JtV2l0aFBvc3RS
ZWRpcmVjdCgpIik7CiAgICAgICAgIH0gZWxzZSBpZiAoZXh0cmFTdGVwID09ICJyZWxhdGl2ZWFu
Y2hvciIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTm9uTG9hZGlu
Z1NjcmlwdCgianVtcFRvQW5jaG9yKCkiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucXVldWVO
b25Mb2FkaW5nU2NyaXB0KCJqdW1wVG9BbmNob3IoKSIpOwogICAgICAgICB9CiAgICAgfQogfQpA
QCAtODgsMzAgKzg4LDMwIEBAIGZ1bmN0aW9uIHJ1bkJhc2ljVGVzdCh0ZXN0Q2FzZSwgZXh0cmFT
dGUKIC8vIFdoZW4gd2UgUE9TVCBpdCBpcyBpbnRlcmVzdGluZyB0byB0ZXN0IGdvaW5nIGJhY2sg
dG8gdGhlIHBvc3QgcmVzdWx0LAogLy8gYW5kIGdvaW5nIGJhY2sgMiBwYWdlcyB0byB0aGUgb3Jp
Z2luYWwgZm9ybS4KIGZ1bmN0aW9uIHJ1bkJhY2tUZXN0KHRlc3RDYXNlLCBob3dGYXJCYWNrLCBl
eHRyYVN0ZXApIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2FkKHRlc3RDYXNlKTsKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIucXVldWVOb25Mb2FkaW5nU2NyaXB0KCJmaWxsVGVzdEZvcm0oKSIpOwot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZU5vbkxvYWRpbmdTY3JpcHQoInNjcm9s
bERvY0Rvd24oKSIpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZUxv
YWQodGVzdENhc2UpOworICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlTm9uTG9hZGluZ1NjcmlwdCgi
ZmlsbFRlc3RGb3JtKCkiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZU5vbkxvYWRpbmdTY3Jp
cHQoInNjcm9sbERvY0Rvd24oKSIpOwogICAgICAgICBpZiAoZXh0cmFTdGVwID09ICJwb3N0Iikg
ewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2FkaW5nU2NyaXB0KCJz
dWJtaXRGb3JtV2l0aFBvc3QoKSIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWRp
bmdTY3JpcHQoInN1Ym1pdEZvcm1XaXRoUG9zdCgpIik7CiAgICAgICAgIH0gZWxzZSBpZiAoZXh0
cmFTdGVwID09ICJwb3N0cmVkaXJlY3QiKSB7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5xdWV1ZUxvYWRpbmdTY3JpcHQoInN1Ym1pdEZvcm1XaXRoUG9zdFJlZGlyZWN0KCkiKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIucXVldWVMb2FkaW5nU2NyaXB0KCJzdWJtaXRGb3JtV2l0
aFBvc3RSZWRpcmVjdCgpIik7CiAgICAgICAgIH0gZWxzZSBpZiAoZXh0cmFTdGVwID09ICJyZWxh
dGl2ZWFuY2hvciIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTm9u
TG9hZGluZ1NjcmlwdCgianVtcFRvQW5jaG9yKCkiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
cXVldWVOb25Mb2FkaW5nU2NyaXB0KCJqdW1wVG9BbmNob3IoKSIpOwogICAgICAgICB9Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL290aGVycGFnZS5o
dG1sIik7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlQmFja05hdmlnYXRpb24o
aG93RmFyQmFjayk7CisgICAgICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvb3Ro
ZXJwYWdlLmh0bWwiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZUJhY2tOYXZpZ2F0aW9uKGhv
d0ZhckJhY2spOwogICAgIH0KIH0KIAogLy8gQSBzZXF1ZW5jZSB0ZXN0aW5nIGZyYW1lcywgd2hl
cmUgdGhlIGdpdmVuIG5hdiB0ZWNobmlxdWUgaXMgdXNlZCB0bwogLy8gbG9hZCBhIHNpbmdsZSBj
aGlsZCBmcmFtZSwgYWZ0ZXIgdGhlIGxvYWQgb2YgdGhlIHdob2xlIGZyYW1lc2V0LgogZnVuY3Rp
b24gcnVuTG9hZENoaWxkRnJhbWVUZXN0KHRlc3RDYXNlKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFj
a0ZvcndhcmRMaXN0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZCgi
cmVzb3VyY2VzL2ZyYW1lc2V0LnBsP2ZyYW1lVVJMPW90aGVycGFnZS5odG1sIik7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZCh0ZXN0Q2FzZSwgIm1haW4iKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQmFja0Zvcndh
cmRMaXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvZnJhbWVz
ZXQucGw/ZnJhbWVVUkw9b3RoZXJwYWdlLmh0bWwiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5xdWV1
ZUxvYWQodGVzdENhc2UsICJtYWluIik7CiAgICAgfQogfQogCkBAIC0xMjAsMTQgKzEyMCwxNCBA
QCBmdW5jdGlvbiBydW5Mb2FkQ2hpbGRGcmFtZVRlc3QodGVzdENhc2UpCiAvLyBzdGF0ZSBzYXZl
L3Jlc3RvcmUuICBTb21lIGJyb3dzZXJzIGRvIG5vdCBsZXQgeW91IHJlc3RhYmxpc2ggdGhlCiAv
LyBzZXQgb2Ygc3ViZnJhbWVzIHlvdSB3ZXJlIHZpZXdpbmcgd2hlbiB5b3UgZ28gYmFjayBpbiBh
IGNhc2UgbGlrZSB0aGlzLgogZnVuY3Rpb24gcnVuTG9hZENoaWxkRnJhbWVCYWNrVGVzdCh0ZXN0
Q2FzZSkgewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5xdWV1ZUxvYWQoInJlc291cmNlcy9mcmFtZXNldC5wbD9mcmFtZVVS
TD1vdGhlcnBhZ2UuaHRtbCIpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZUxv
YWQodGVzdENhc2UsICJtYWluIik7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVl
Tm9uTG9hZGluZ1NjcmlwdCgiZmlsbFRlc3RGb3JtKCkiKTsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIucXVldWVOb25Mb2FkaW5nU2NyaXB0KCJzY3JvbGxEb2NEb3duKCkiKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvb3RoZXJwYWdlLmh0
bWwiKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVCYWNrTmF2aWdhdGlvbigx
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QmFja0ZvcndhcmRMaXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJj
ZXMvZnJhbWVzZXQucGw/ZnJhbWVVUkw9b3RoZXJwYWdlLmh0bWwiKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5xdWV1ZUxvYWQodGVzdENhc2UsICJtYWluIik7CisgICAgICAgIHRlc3RSdW5uZXIucXVl
dWVOb25Mb2FkaW5nU2NyaXB0KCJmaWxsVGVzdEZvcm0oKSIpOworICAgICAgICB0ZXN0UnVubmVy
LnF1ZXVlTm9uTG9hZGluZ1NjcmlwdCgic2Nyb2xsRG9jRG93bigpIik7CisgICAgICAgIHRlc3RS
dW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvb3RoZXJwYWdlLmh0bWwiKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5xdWV1ZUJhY2tOYXZpZ2F0aW9uKDEpOwogICAgIH0KIH0KIApAQCAtMTM1LDEyICsx
MzUsMTIgQEAgZnVuY3Rpb24gcnVuTG9hZENoaWxkRnJhbWVCYWNrVGVzdCh0ZXN0QwogLy8gQSBz
ZXF1ZW5jZSB0ZXN0aW5nIHJlbG9hZC4gIFRoZSBnb2FscyBhcmUgdGhhdCBmb3JtIHN0YXRlIGlz
IGNsZWFyZWQsCiAvLyBzY3JvbGwgc3RhdGUgaXMgcmVzdG9yZWQsIGFuZCBub3RoaW5nIGlzIGFk
ZGVkIHRvIGIvZiBsaXN0LgogZnVuY3Rpb24gcnVuUmVsb2FkVGVzdCh0ZXN0Q2FzZSkgewotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5xdWV1ZUxvYWQodGVzdENhc2UpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5x
dWV1ZU5vbkxvYWRpbmdTY3JpcHQoImZpbGxUZXN0Rm9ybSgpIik7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnF1ZXVlTm9uTG9hZGluZ1NjcmlwdCgic2Nyb2xsRG9jRG93bigpIik7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgp
OworICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCh0ZXN0Q2FzZSk7CisgICAgICAgIHRlc3RS
dW5uZXIucXVldWVOb25Mb2FkaW5nU2NyaXB0KCJmaWxsVGVzdEZvcm0oKSIpOworICAgICAgICB0
ZXN0UnVubmVyLnF1ZXVlTm9uTG9hZGluZ1NjcmlwdCgic2Nyb2xsRG9jRG93bigpIik7CisgICAg
ICAgIHRlc3RSdW5uZXIucXVldWVSZWxvYWQoKTsKICAgICB9CiB9CiAKQEAgLTE0OSwxOSArMTQ5
LDE5IEBAIGZ1bmN0aW9uIHJ1blJlbG9hZFRlc3QodGVzdENhc2UpIHsKIC8vIHRoYXQgdGhpcyBj
YXNlIHNob3VsZCBub3QgcHJlc2VydmUgc2Nyb2xsIHN0YXRlIG9yIGZvcm0gc3RhdGUsIGFuZCBu
b3QgYWRkCiAvLyBhbnl0aGluZyB0byB0aGUgYi9mIGxpc3QuCiBmdW5jdGlvbiBydW5Mb2FkU2Ft
ZVRlc3QodGVzdENhc2UpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0Zvcndh
cmRMaXN0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2FkKHRlc3RDYXNlKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZU5vbkxvYWRpbmdTY3JpcHQoImZpbGxUZXN0
Rm9ybSgpIik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVOb25Mb2FkaW5nU2NyaXB0
KCJzY3JvbGxEb2NEb3duKCkiKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZUxvYWQo
dGVzdENhc2UpOworICAgIHRlc3RSdW5uZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOworICAgIHRl
c3RSdW5uZXIucXVldWVMb2FkKHRlc3RDYXNlKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTm9uTG9h
ZGluZ1NjcmlwdCgiZmlsbFRlc3RGb3JtKCkiKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTm9uTG9h
ZGluZ1NjcmlwdCgic2Nyb2xsRG9jRG93bigpIik7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQo
dGVzdENhc2UpOwogfQogCiAvLyBBIHNlcXVlbmNlIHRlc3RpbmcgYSByZWxvYWQgYWZ0ZXIgYSBy
ZWRpcmVjdC4gVGhlIGdvYWwgaXMgdG8gY2hlY2sKIC8vIHRoYXQgaW4gYSByZWxvYWQgd2UgdXNl
IHRoZSBtZXRob2Qgc2V0IGJ5IHRoZSByZWRpcmVjdCwgR0VULAogLy8gaW5zdGVhZCBvZiB0aGUg
b3JpZ2luYWwgb25lLCBQT1NULgogZnVuY3Rpb24gcnVuUmVkaXJlY3RSZWxvYWRUZXN0KHRlc3RD
YXNlKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZCh0ZXN0Q2FzZSk7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIucXVldWVMb2FkaW5nU2NyaXB0KCJzdWJtaXRGb3JtV2l0aFBvc3RSZWRp
cmVjdFJlbG9hZCgpIik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVSZWxvYWQoKTsK
KyAgICB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAgICB0ZXN0UnVubmVyLnF1
ZXVlTG9hZCh0ZXN0Q2FzZSk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWRpbmdTY3JpcHQoInN1
Ym1pdEZvcm1XaXRoUG9zdFJlZGlyZWN0UmVsb2FkKCkiKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVl
UmVsb2FkKCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsOCAr
MSw4IEBACiB3YXNQb3N0VGVzdFNjcmlwdFBhcnNlZCA9IHRydWU7CiAKIGlmICh3aW5kb3cuanNU
ZXN0SXNBc3luYykgewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIGlm
ICh3aW5kb3cud2FzRmluaXNoSlNUZXN0Q2FsbGVkKQogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0gZWxzZQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMJKHJldmlzaW9uIDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAog
Ly8gc3ZnL2R5bmFtaWMtdXBkYXRlcyB0ZXN0cyBzZXQgZW5hYmxlUGl4ZWxUZXN0aW5nPXRydWUs
IGFzIHdlIHdhbnQgdG8gZHVtcCB0ZXh0ICsgcGl4ZWwgcmVzdWx0cwotaWYgKHNlbGYubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dChzZWxm
LmVuYWJsZVBpeGVsVGVzdGluZyk7CitpZiAoc2VsZi50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dChzZWxmLmVuYWJsZVBpeGVsVGVzdGluZyk7CiAKIHZhciBkZXNjcmlwdGlv
biwgZGVidWcsIHN1Y2Nlc3NmdWxseVBhcnNlZCwgZXJyb3JNZXNzYWdlOwogCkBAIC00NjYsOCAr
NDY2LDggQEAgZnVuY3Rpb24gZmluaXNoSlNUZXN0KCkKICAgICBpZiAoIXNlbGYud2FzUG9zdFRl
c3RTY3JpcHRQYXJzZWQpCiAgICAgICAgIHJldHVybjsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNl
ZCgpOwotICAgIGlmIChzZWxmLmpzVGVzdElzQXN5bmMgJiYgc2VsZi5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlm
IChzZWxmLmpzVGVzdElzQXN5bmMgJiYgc2VsZi50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gc3RhcnRXb3JrZXIodGVzdFNjcmlwdFVS
TCwgc2hhcmVkKQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NlY3VyaXR5cG9saWN5LXRlc3RzLWJhc2UuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvcmVzb3VyY2VzL3NlY3VyaXR5cG9saWN5LXRlc3RzLWJhc2UuanMJKHJldmlzaW9u
IDEyNDY4OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3Jlc291cmNlcy9zZWN1cml0eXBvbGljeS10ZXN0cy1iYXNlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhtc2cp
IHsKICAgICB2YXIgdHh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKTsKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL3ZlcmlmeS1zc2wtZW5hYmxlZC5waHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvdmVyaWZ5LXNzbC1lbmFibGVkLnBocAko
cmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvdmVyaWZ5LXNz
bC1lbmFibGVkLnBocAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIAogSFRUUFMgaXMgPD89ICRf
U0VSVkVSWydIVFRQUyddID8+IQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvcmVz
b3VyY2VzL25vLWh0dHAtcmVmZXJlci5jZ2kKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zc2wvcmVzb3VyY2VzL25vLWh0dHAtcmVmZXJlci5jZ2kJKHJldmlzaW9uIDEyNDY4
OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL3Jlc291cmNlcy9uby1odHRwLXJlZmVy
ZXIuY2dpCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw0ICsxNSw0IEBAIGlmICghJGZhaWxlZCkgewog
ICAgIHByaW50ICJQQVNTXG4iOwogfQogCi1wcmludCAiPHNjcmlwdD5pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk8L3Njcmlw
dD4iOworcHJpbnQgIjxzY3JpcHQ+aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTwvc2NyaXB0PiI7CkluZGV4OiBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRp
b24vc2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL3NjcmlwdC10ZXN0cy9ldmVudC1hZnRlci1u
YXZpZ2F0aW9uLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9uZXR3b3JraW5m
b3JtYXRpb24vc2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTMsNyArMyw3IEBAIGRlc2NyaXB0aW9uKCdUZXN0cyBmb3IgYSBjcmFzaCB3aGVy
ZSBhbiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJl
ZmVyZW5jZSgnV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXknLCAxKTsKIGVsc2UKLSAg
ICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIExheW91dFRlc3RD
b250cm9sbGVyJyk7CisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0
IHRoZSB0ZXN0UnVubmVyJyk7CiAKIGRvY3VtZW50LmJvZHkub25sb2FkID0gZnVuY3Rpb24oKSB7
CiAgICAgbmF2aWdhdG9yLndlYmtpdENvbm5lY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0
bmV0d29ya2luZm9jaGFuZ2UnLCBmdW5jdGlvbigpIHsgfSApOwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9zY3JpcHQtdGVzdHMvd2ViU2NyaXB0T2JqZWN0LWhhc1dl
YlNjcmlwdEtleS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9vYmpjL3NjcmlwdC10ZXN0cy93ZWJTY3JpcHRPYmplY3QtaGFzV2ViU2NyaXB0S2V5LmpzCShy
ZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL3Nj
cmlwdC10ZXN0cy93ZWJTY3JpcHRPYmplY3QtaGFzV2ViU2NyaXB0S2V5LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw4ICszMyw4IEBAIGZ1bmN0aW9uIHJ1blRlc3RzT25PYmplY3Qob2JqZWN0UGFy
YW0pIHsKICAgICBkZWJ1ZygiIik7CiB9CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgIGRlYnVn
KCJUZXN0IHdpdGggYSBuZXdseSBjcmVhdGVkLCBsb2NhbCwgb2JqZWN0ID0+IHt9Iik7CiAgICAg
cnVuVGVzdHNPbk9iamVjdCh7fSk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9zdmcv
cmVwYWludC9maWx0ZXItcmVwYWludC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL3JlcGFpbnQvZmlsdGVyLXJlcGFpbnQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9zdmcvcmVwYWlu
dC9maWx0ZXItcmVwYWludC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0
IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogVHlwZUVycm9yOiAndW5kZWZpbmVkJyBpcyBu
b3QgYSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnbGF5b3V0VGVzdENvbnRyb2xsZXIudGVzdFJlcGFp
bnQoKScpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogVHlwZUVycm9yOiAndW5kZWZpbmVkJyBp
cyBub3QgYSBmdW5jdGlvbiAoZXZhbHVhdGluZyAndGVzdFJ1bm5lci50ZXN0UmVwYWludCgpJykK
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0MDB4NDAwCkluZGV4OiBMYXlvdXRUZXN0cy90
cmFuc2Zvcm1zLzNkL2hpdC10ZXN0aW5nL3Jlc291cmNlcy9oaXQtdGVzdC11dGlscy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2hpdC10ZXN0aW5nL3Jlc291cmNl
cy9oaXQtdGVzdC11dGlscy5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvdHJh
bnNmb3Jtcy8zZC9oaXQtdGVzdGluZy9yZXNvdXJjZXMvaGl0LXRlc3QtdXRpbHMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBsb2cocykKIHsK
SW5kZXg6IExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy9wb2ludC1tYXBw
aW5nLWhlbHBlcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9w
b2ludC1tYXBwaW5nL3BvaW50LW1hcHBpbmctaGVscGVycy5qcwkocmV2aXNpb24gMTI0Njg5KQor
KysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nL3BvaW50LW1hcHBpbmct
aGVscGVycy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIAotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAKIGZ1bmN0aW9uIG1vdXNlbW92ZWQoZSkKIHsKQEAgLTQ1LDE0ICs0NSwxNCBAQCBm
dW5jdGlvbiBsb2cocykKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIC8vIEluIG5vbi10ZXN0
IG1vZGUsIHNob3cgdGhlIG1vdXNlIGNvb3JkcyBmb3IgdGVzdGluZwotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vdXNlcG9zJykuc3R5bGUuZGlzcGxheSA9ICdub25l
JzsKICAgICBlbHNlCiAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
bW92ZScsIG1vdXNlbW92ZWQsIGZhbHNlKTsKIAogICAgIHRlc3QoKTsKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKIH0KIAogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5j
dGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LWhlbHBlcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNDksOSArNDksOSBAQCBmdW5jdGlvbiBydW5UcmFuc2l0aW9uVGVzdChleHBl
Y3RlZCwgY2FsCiB7CiAgIF9leHBlY3RlZEV2ZW50Q291bnQgPSBleHBlY3RlZC5sZW5ndGg7CiAK
LSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICB9CiAgIAogICBmdW5j
dGlvbiBwcm9jZXNzRW5kRXZlbnRzKGV4cGVjdGVkKQpAQCAtMTMwLDggKzEzMCw4IEBAIGZ1bmN0
aW9uIHJ1blRyYW5zaXRpb25UZXN0KGV4cGVjdGVkLCBjYWwKICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSk7CiAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IGV4YW1pbmVSZXN1bHRz
KF9yZWNvcmRlZEV2ZW50cywgZXhwZWN0ZWQpOwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgIH0KIAogICBmdW5jdGlvbiBzdGFydFRlc3QoZXhwZWN0ZWQsIGNhbGxiYWNrLCBtYXhU
aW1lKQpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5zaXRpb24t
dGVzdC1oZWxwZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jl
c291cmNlcy90cmFuc2l0aW9uLXRlc3QtaGVscGVycy5qcwkocmV2aXNpb24gMTI0Njg5KQorKysg
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksOCArMjA5LDggQEAgZnVuY3Rpb24gZW5kVGVzdCgp
CiB7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJl
c3VsdDsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBjaGVj
a0V4cGVjdGVkVmFsdWVDYWxsYmFjayhleHBlY3RlZCwgaW5kZXgpCkBAIC0yMzUsNyArMjM1LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdChleHBlY3RlZCwgdXNlUGF1c2VBUEkpCiAgICAgICAgIC8vIFdl
IGNhbiBvbmx5IHVzZSB0aGUgdHJhbnNpdGlvbiBmYXN0LWZvcndhcmQgbWVjaGFuaXNtIGlmIERS
VCBpbXBsZW1lbnRzIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgpCiAgICAg
ICAgIGlmIChoYXNQYXVzZVRyYW5zaXRpb25BUEkgJiYgdXNlUGF1c2VBUEkpIHsKICAgICAgICAg
ICAgIGlmICh0cnlUb1BhdXNlVHJhbnNpdGlvbikgewotICAgICAgICAgICAgICBpZiAoIWxheW91
dFRlc3RDb250cm9sbGVyLnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChwcm9w
ZXJ0eSwgdGltZSwgZWxlbWVudElkKSkKKyAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnBh
dXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChwcm9wZXJ0eSwgdGltZSwgZWxlbWVu
dElkKSkKICAgICAgICAgICAgICAgICB3aW5kb3cuY29uc29sZS5sb2coIkZhaWxlZCB0byBwYXVz
ZSAnIiArIHByb3BlcnR5ICsgIicgdHJhbnNpdGlvbiBvbiBlbGVtZW50ICciICsgZWxlbWVudElk
ICsgIiciKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNoZWNrRXhwZWN0ZWRWYWx1ZShl
eHBlY3RlZCwgaSk7CkBAIC0yODAsMTIgKzI4MCwxMiBAQCB2YXIgaGFzUGF1c2VUcmFuc2l0aW9u
QVBJOwogCiBmdW5jdGlvbiBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZCwgY2FsbGJhY2ssIHVz
ZVBhdXNlQVBJLCBkb1BpeGVsVGVzdCkKIHsKLSAgICBoYXNQYXVzZVRyYW5zaXRpb25BUEkgPSAo
J2xheW91dFRlc3RDb250cm9sbGVyJyBpbiB3aW5kb3cpICYmICgncGF1c2VUcmFuc2l0aW9uQXRU
aW1lT25FbGVtZW50V2l0aElkJyBpbiBsYXlvdXRUZXN0Q29udHJvbGxlcik7CisgICAgaGFzUGF1
c2VUcmFuc2l0aW9uQVBJID0gKCd0ZXN0UnVubmVyJyBpbiB3aW5kb3cpICYmICgncGF1c2VUcmFu
c2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkJyBpbiB0ZXN0UnVubmVyKTsKICAgICAKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgICAgIGlmICghZG9QaXhlbFRlc3QpCi0gICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAgICAgaWYgKCFl
eHBlY3RlZCkKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2Rl
Yy10ZXN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9h
dWRpby1jb2RlYy10ZXN0LmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy93ZWJh
dWRpby9yZXNvdXJjZXMvYXVkaW8tY29kZWMtdGVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtOCw3
ICs4LDcgQEAgdmFyIGJ1ZmZlckxvYWRlciA9IDA7CiAvLyBzZWxlY3QgYSBjb250ZXh0IHdpdGgg
YSBkaWZmZXJlbnQgc2FtcGxlIHJhdGUuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB8ZGVmYXVsdFNh
bXBsZVJhdGV8LgogZnVuY3Rpb24gcnVuRGVjb2RpbmdUZXN0KHVybCwgb3B0aW9uYWxTYW1wbGVS
YXRlKSAKIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICByZXR1cm47CiAKICAgICB2YXIgc2FtcGxlUmF0
ZSA9ICh0eXBlb2Ygb3B0aW9uYWxTYW1wbGVSYXRlID09PSAidW5kZWZpbmVkIikgPyBkZWZhdWx0
U2FtcGxlUmF0ZSA6IG9wdGlvbmFsU2FtcGxlUmF0ZTsKQEAgLTIzLDEyICsyMywxMiBAQCBmdW5j
dGlvbiBydW5EZWNvZGluZ1Rlc3QodXJsLCBvcHRpb25hbFNhCiAgICAgKTsKICAgICAKICAgICBi
dWZmZXJMb2FkZXIubG9hZCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gZmlu
aXNoZWRMb2FkaW5nKGJ1ZmZlckxpc3QpCiB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
QXVkaW9EYXRhKGNyZWF0ZUF1ZGlvRGF0YShidWZmZXJMaXN0WzBdKSk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0QXVkaW9EYXRhKGNy
ZWF0ZUF1ZGlvRGF0YShidWZmZXJMaXN0WzBdKSk7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby10ZXN0
aW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRp
by10ZXN0aW5nLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9y
ZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJBdWRpb0VuYWJsZWQiLCAiMSIpOworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRXZWJBdWRpb0VuYWJsZWQiLCAiMSIpOwogCiBmdW5jdGlvbiB3cml0ZVN0cmluZyhzLCBh
LCBvZmZzZXQpIHsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHMubGVuZ3RoOyArK2kpIHsKQEAg
LTk3LDggKzk3LDggQEAgZnVuY3Rpb24gY3JlYXRlQXVkaW9EYXRhKGF1ZGlvQnVmZmVyKSB7CiAK
IGZ1bmN0aW9uIGZpbmlzaEF1ZGlvVGVzdChldmVudCkgewogICAgIHZhciBhdWRpb0RhdGEgPSBj
cmVhdGVBdWRpb0RhdGEoZXZlbnQucmVuZGVyZWRCdWZmZXIpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEF1ZGlvRGF0YShhdWRpb0RhdGEpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldEF1ZGlvRGF0YShhdWRpb0RhdGEpOwor
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiAvLyBDcmVhdGUgYW4gaW1wdWxzZSBp
biBhIGJ1ZmZlciBvZiBsZW5ndGggc2FtcGxlRnJhbWVMZW5ndGgKSW5kZXg6IExheW91dFRlc3Rz
L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcwkocmV2
aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFy
YW0tdGVzdGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMzk3LDkgKzM5Nyw5IEBAIGZ1bmN0aW9u
IGRvQXV0b21hdGlvbihudW1iZXJPZlRlc3RzLCBpbmkKIC8vCiBmdW5jdGlvbiBjcmVhdGVBdWRp
b0dyYXBoQW5kVGVzdChudW1iZXJPZlRlc3RzLCBpbml0aWFsVmFsdWUsIHNldFZhbHVlRnVuY3Rp
b24sIGF1dG9tYXRpb25GdW5jdGlvbiwgdGVzdE5hbWUsIG1heEVycm9yLCByZWZlcmVuY2VGdW5j
dGlvbiwganVtcFRocmVzaG9sZCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL29zY2ls
bGF0b3ItdGVzdGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNv
dXJjZXMvb3NjaWxsYXRvci10ZXN0aW5nLmpzCShyZXZpc2lvbiAxMjQ2ODkpCisrKyBMYXlvdXRU
ZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvb3NjaWxsYXRvci10ZXN0aW5nLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC01Niw1ICs1Niw1IEBAIGZ1bmN0aW9uIGdlbmVyYXRlRXhwb25lbnRpYWxPc2NpbGxh
dG9yU3cKICAgICBjb250ZXh0Lm9uY29tcGxldGUgPSBmaW5pc2hBdWRpb1Rlc3Q7CiAgICAgY29u
dGV4dC5zdGFydFJlbmRlcmluZygpOyAgICAKIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KSW5kZXg6
IExheW91dFRlc3RzL3dlYmludGVudHMvcmVzb3VyY2VzL3dlYi1pbnRlbnRzLXRlc3RpbmcuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViaW50ZW50cy9yZXNvdXJjZXMvd2ViLWludGVu
dHMtdGVzdGluZy5qcwkocmV2aXNpb24gMTI0Njg5KQorKysgTGF5b3V0VGVzdHMvd2ViaW50ZW50
cy9yZXNvdXJjZXMvd2ViLWludGVudHMtdGVzdGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMiw4
ICsyLDggQEAKIGZ1bmN0aW9uIG9uU3VjY2VzcyhkYXRhKSB7CiAgIGRlYnVnKCIqIGdvdCByZXBs
eTogIiArIGRhdGEpOwogCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgIH0K
IH0KIApAQCAtMTEsOCArMTEsOCBAQCBmdW5jdGlvbiBvblN1Y2Nlc3MoZGF0YSkgewogZnVuY3Rp
b24gb25GYWlsdXJlKGRhdGEpIHsKICAgZGVidWcoIiogZ290IGZhaWx1cmU6ICIgKyBkYXRhKTsK
IAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICB9CiB9CiAKQEAgLTIxLDgg
KzIxLDggQEAgZnVuY3Rpb24gc3RhcnRJbnRlbnRXaXRoQ2FsbGJhY2tzKCkgewogICBuYXZpZ2F0
b3Iud2Via2l0U3RhcnRBY3Rpdml0eShuZXcgV2ViS2l0SW50ZW50KCJhY3Rpb24xIiwgIm1pbWUv
dHlwZTEiLCAidGVzdCIpLCBvblN1Y2Nlc3MsIG9uRmFpbHVyZSk7CiAgIGRlYnVnKCIqIHNlbnQg
aW50ZW50Iik7CiAKLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAg
fSBlbHNlIHsKICAgICBhbGVydCgnVGhpcyB0ZXN0IG5lZWRzIHRvIHJ1biBpbiBEUlQnKTsKICAg
fQo=
</data>
<flag name="review"
          id="166217"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>