<?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>225803</bug_id>
          
          <creation_ts>2021-05-14 03:01:37 -0700</creation_ts>
          <short_desc>[JSC] Implement high-level retry loop for run-jsc-stress-tests</short_desc>
          <delta_ts>2021-05-28 11:41:13 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226385</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Angelos Oikonomopoulos">angelos</reporter>
          <assigned_to name="Angelos Oikonomopoulos">angelos</assigned_to>
          <cc>aperez</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zhifei_fang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760044</commentid>
    <comment_count>0</comment_count>
    <who name="Angelos Oikonomopoulos">angelos</who>
    <bug_when>2021-05-14 03:01:37 -0700</bug_when>
    <thetext>[JSC] Implement high-level retry loop for run-jsc-stress-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760045</commentid>
    <comment_count>1</comment_count>
      <attachid>428615</attachid>
    <who name="Angelos Oikonomopoulos">angelos</who>
    <bug_when>2021-05-14 03:04:09 -0700</bug_when>
    <thetext>Created attachment 428615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760063</commentid>
    <comment_count>2</comment_count>
      <attachid>428619</attachid>
    <who name="Angelos Oikonomopoulos">angelos</who>
    <bug_when>2021-05-14 07:21:59 -0700</bug_when>
    <thetext>Created attachment 428619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760080</commentid>
    <comment_count>3</comment_count>
    <who name="Angelos Oikonomopoulos">angelos</who>
    <bug_when>2021-05-14 08:28:52 -0700</bug_when>
    <thetext>The behavior of this patch (for --gnu-parallel-runner only) should be captured in the MIPS EWS run at https://ews-build.webkit.org/#/builders/45/builds/4271 (I manually rebooted one of the remote boards partway through):

[...]
Remote host lost state, triggering high-level retry: mips-ci20-board26.local.igalia.com
5d65329bd1a3mips-ci20-board26.local.igalia.coma9aea5c3b843
parallel: SIGTERM received. No new jobs will be started.
parallel: Waiting for these 9 jobs to finish. Send SIGTERM again to stop now.
[...]
After try 1/3: got results for 1566/40530 tests, 3/3 hosts live
[reinitialization of the remotes]
[lots of successful tests]
Results for JSC stress tests:
    0 failures found.
    0 tests failed to complete.
    OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762344</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-21 03:02:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/78303014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763066</commentid>
    <comment_count>5</comment_count>
    <who name="Angelos Oikonomopoulos">angelos</who>
    <bug_when>2021-05-24 01:56:43 -0700</bug_when>
    <thetext>*** Bug 220794 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763069</commentid>
    <comment_count>6</comment_count>
    <who name="Angelos Oikonomopoulos">angelos</who>
    <bug_when>2021-05-24 02:03:48 -0700</bug_when>
    <thetext>Ping. This patch should only make a difference --gnu-parallel-runner which AFAIK is currently only used by the MIPS bots.

Only touches the generic path to change remoteIndex + array access to using a remoteHost passed from the caller (which I think is a simplification) and to make use of common code (processStatusLine) in both the local and remote paths in getStatusMap. Oh, and to remove some apparently unneeded (or, no longer needed) escapes in exportBaseEnvironmentVariables that fail on the new (only when using --gnu-parallel-runner) runAndMonitorCommandOutput.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764289</commentid>
    <comment_count>7</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-05-27 04:41:09 -0700</bug_when>
    <thetext>I&apos;m not super fluent with Ruby, but thankfully Angelos&apos; changes
are well commented so it was not much trouble to make sense of
it. Thanks for the patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764291</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-27 04:49:36 -0700</bug_when>
    <thetext>Committed r278159 (238203@main): &lt;https://commits.webkit.org/238203@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428619.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764658</commentid>
    <comment_count>9</comment_count>
      <attachid>428619</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-05-27 21:10:00 -0700</bug_when>
    <thetext>Comment on attachment 428619
Patch

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

&gt; Tools/Scripts/run-jsc-stress-tests:2201
&gt; +    dyldFrameworkPath = &quot;\$(cd #{$testingFrameworkPath.dirname}; pwd)&quot;

Opps, I think you forget the beginning &apos;\&apos;, makes on device test failed, since we will run the command by ssh, without \$, $(...) will be execute locally</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428615</attachid>
            <date>2021-05-14 03:04:09 -0700</date>
            <delta_ts>2021-05-14 07:21:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225803-20210514100407.patch</filename>
            <type>text/plain</type>
            <size>22943</size>
            <attacher name="Angelos Oikonomopoulos">angelos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWE0ZjMxYjRjNmMwMDk2NzVjNzY2MzA5NDRmNTc1ODUw
OGZiODdlNS4uN2Y2NjQxOTQ1MzExNDU4NGRmMmY1MTJjMmI3ZmJmOTU3YTJjMWUxMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIxLTA1LTE0ICBBbmdlbG9zIE9pa29ub21vcG91bG9zICA8YW5nZWxvc0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBoaWdoLWxldmVsIHJldHJ5IGxvb3AgZm9y
IHJ1bi1qc2Mtc3RyZXNzLXRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjU4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOb3cgdGhhdCB3ZSBoYXZlIGluZm9ybWF0aW9uIG9uIHdoaWNoIHRlc3Rz
IHByb2R1Y2VkIGEgcmVzdWx0IGFuZAorICAgICAgICB3aGljaCB0ZXN0cyB3ZXJlIG5ldmVyIGhl
YXJkIG9mLCBpbnRyb2R1Y2UgcmV0cnkgbG9naWMgZm9yIHRoZQorICAgICAgICBpbmNvbXBsZXRl
IHRlc3RzLiBUaGlzIHNob3VsZCBvbmx5IG1vZGlmeSB0aGUgYmVoYXZpb3Igd2hlbiB1c2luZwor
ICAgICAgICAtLWdudS1wYXJhbGxlbC1ydW5uZXIuCisKKyAgICAgICAgVGhlIGlzc3VlIGhlcmUg
aXMgdGhhdCB0aGUgTUlQUyBib2FyZHMgY3VycmVudGx5IGluIHVzZSBmb3IgSlNDCisgICAgICAg
IHRlc3Rpbmcgcm91dGluZWx5IGNyYXNoIGFuZCwgb2Z0ZW4gZW5vdWdoLCBlbmQgdXAgd2l0aCBm
aWxlc3lzdGVtCisgICAgICAgIGNvcnJ1cHRpb24gYW5kIG5lZWQgdG8gaGF2ZSB0aGVpciBSL1cg
c3RvcmFnZSByZWluaXRpYWxpemVkLgorCisgICAgICAgIFdvcmsgYXJvdW5kIHRoaXMgYnkgcmUt
ZXhlY3V0aW5nIHRoZSB0ZXN0cyB0aGF0IHdlIHdlcmVuJ3QgYWJsZSB0byBnZXQKKyAgICAgICAg
YSByZXN1bHQgZm9yLiBXaGVuIHNvbWUgdGVzdHMgZmFpbGVkIHRvIGNvbXBsZXRlLCBnbyB0aHJv
dWdoIHRoZQorICAgICAgICBwcm9jZXNzIG9mIHJlbW90ZSBpbml0aWxpemF0aW9uIChjb3B5aW5n
IG92ZXIgYW5kIHVucGFja2luZyB0aGUKKyAgICAgICAgYnVuZGxlKSBmcm9tIHNjcmF0Y2gsIHNv
IHRoYXQgcmVtb3RlcyB0aGF0IGhhZCB0aGVpciByZW1vdGVEaXJlY3RvcnkKKyAgICAgICAgd2lw
ZWQgd2lsbCBnZXQgYmFjayBpbnRvIHBsYXkuCisKKyAgICAgICAgVG8gbWFrZSB0aGlzIG1vcmUg
ZWZmaWNpZW50LCBpbnRyb2R1Y2UgaW4tYmFuZCBzaWduYWxpbmcgdG8gbGV0CisgICAgICAgIHJ1
bi1qc2Mtc3RyZXNzLXRlc3RzIGtub3cgdGhhdCBhIHJlbW90ZSBsb3N0IGl0cyBzdGF0ZS4gSW4g
cmVzcG9uc2UsCisgICAgICAgIHdlIGtpbGwgdGhlIEdOVSBwYXJhbGxlbCBwcm9jZXNzIGFuZCBy
ZS1pbml0aWFsaXplIGFsbCBib2FyZHMuIFRoaXMKKyAgICAgICAgaGVscHMgZm9yIGJ1aWxkYm90
IHdvcmtlcnMgdGhhdCBvbmx5IGhhdmUgYSBmZXcgcmVtb3RlIGJvYXJkcyBhc3NpZ25lZAorICAg
ICAgICBhbmQgYXBwYXJlbnRseSBhbHNvIHdvcmtzIGFyb3VuZCBhIGJ1ZyBpbiBHTlUgcGFyYWxs
ZWwgMjAxNjEyMjIKKyAgICAgICAgKGN1cnJlbnRseSB0aGUgbW9zdCB3aWRlbHkgZGVwbG95ZWQg
dmVyc2lvbikgd2hpY2ggY2F1c2VzIGl0IHRvIHJ1bgorICAgICAgICBvdXQgb2Ygb3BlbiBmaWxl
cyBhbmQgZ2V0IHN0dWNrIGluIGEgYnVzeSBsb29wLgorCisgICAgICAgIFdoaWxlIGhlcmUsIG1h
a2UgcnVuLWpzYy1zdHJlc3MtdGVzdHMgbW9yZSByb2J1c3QgYWdhaW5zdCBjb3JydXB0ZWQKKyAg
ICAgICAgc3RhdHVzIGZpbGVzLCBpLmUuIGlnbm9yZSBlbXB0eSBvbmVzIChvYnNlcnZlZCBpbiBw
cmFjdGljZSkgYW5kIHVzZSBhCisgICAgICAgIHJlZ2V4IHRvIHZlcmlmeSB0aGUgY29udGVudHMg
b2Ygbm9uLWVtcHR5IHN0YXRlIGZpbGVzLgorCisgICAgICAgIEZvciBjb25zaXN0ZW5jeSwgdXNl
IHRoZSBzYW1lIGxvZ2ljIGZvciBwYXJzaW5nIHN0YXR1cyBmaWxlcyB3aGVuCisgICAgICAgIGRv
aW5nIGxvY2FsIHJ1bnMuCisKKyAgICAgICAgSW4gdGVzdGluZyB3aXRoIHR3byByZW1vdGVzLCBy
dW4tanNjLXN0cmVzcy10ZXN0cyB3YXMgYWJsZSB0byByZWNvdmVyCisgICAgICAgIGZyb20gZWl0
aGVyIG9uZSBvciBib3RoIG9mIGl0cyByZW1vdGVzIHJlYm9vdGluZyBhbmQgd2lwaW5nIHRoZWly
CisgICAgICAgIGxvY2FsIHN0b3JhZ2UgaW4gdGhlIG1pZGRsZSBvZiBhIHRlc3QgcnVuLgorCisg
ICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMS0wNS0xMSAgRGll
Z28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIGNvbXBv
c2l0aW5nL292ZXJmbG93L2R5bmFtaWMtY29tcG9zaXRlZC1zY3JvbGxpbmctc3RhdHVzLmh0bWwg
aXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggZDNmN2ExMGI3YTVh
ZmM4YTg2MDY1OTBmMmQ5YjAxOWJjYmExZGJlYS4uZTZkOTAyYmRhMGYwZjExMTMyNDBiZDE5Mzhh
N2MzN2QxY2E2NmJkYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10
ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC02MSw2ICs2
MSwxMiBAQCBTVEFUVVNfRklMRV9QUkVGSVggPSAidGVzdF9zdGF0dXNfIgogU1RBVFVTX0ZJTEVf
UEFTUyA9ICJQIgogU1RBVFVTX0ZJTEVfRkFJTCA9ICJGIgogCisjIFRoZXJlIGFyZSBhbGwgcmFu
ZG9tIGFuZCBhZGVxdWF0ZWx5IGxhcmdlIHRvIGJlIHVubGlrZWx5IHRvIGFwcGVhcgorIyBpbiBw
cmFjdGljZSwgZXhjZXB0IGFzIHVzZWQgaW4gdGhpcyBmaWxlLgorUEFSQUxMRUxfUkVNT1RFX1dS
QVBQRVJfTUFSS19CRUdJTiA9ICI1ZDY1MzI5YmQxYTMiCitQQVJBTExFTF9SRU1PVEVfV1JBUFBF
Ul9NQVJLX0VORCA9ICJhOWFlYTVjM2I4NDMiCitQQVJBTExFTF9SRU1PVEVfU1RBVEVfTE9TVF9N
QVJLRVIgPSAiNzA5ZmI3YTc3YzQ1MjMxOTE4ZWIxMThhIgorCiBiZWdpbgogICAgIHJlcXVpcmUg
J3NoZWxsd29yZHMnCiByZXNjdWUgRXhjZXB0aW9uID0+IGUKQEAgLTIwNDUsMTEgKzIwNTEsOSBA
QCBkZWYgY2xlYW5SdW5uZXJEaXJlY3RvcnkKICAgICB9CiBlbmQKIAotZGVmIHNzaFJlYWQoY21k
LCByZW1vdGVJbmRleD0wLCBvcHRpb25zPXt9KQorZGVmIHNzaFJlYWQoY21kLCByZW1vdGVIb3N0
LCBvcHRpb25zPXt9KQogICAgIHJhaXNlIHVubGVzcyAkcmVtb3RlCiAKLSAgICByZW1vdGVIb3N0
ID0gJHJlbW90ZUhvc3RzW3JlbW90ZUluZGV4XQotCiAgICAgcmVzdWx0ID0gIiIKICAgICBJTy5w
b3Blbigic3NoIC1vIE5vSG9zdEF1dGhlbnRpY2F0aW9uRm9yTG9jYWxob3N0PXllcyAtcCAje3Jl
bW90ZUhvc3QucG9ydH0gI3tyZW1vdGVIb3N0LnVzZXJ9QCN7cmVtb3RlSG9zdC5ob3N0fSAnI3tj
bWR9JyIsICJyIikgewogICAgICAgfCBpbnAgfApAQCAtMjA2NCw3ICsyMDY4LDcgQEAgZW5kCiAK
IGRlZiBydW5Db21tYW5kT25UZXN0ZXIoY21kKQogICAgIGlmICRyZW1vdGUKLSAgICAgICAgcmVz
dWx0ID0gc3NoUmVhZChjbWQpCisgICAgICAgIHJlc3VsdCA9IHNzaFJlYWQoY21kLCAkcmVtb3Rl
SG9zdHNbMF0pCiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBgI3tjbWR9YAogICAgIGVuZApA
QCAtMjA5NSw2ICsyMDk5LDE4IEBAIGRlZiBudW1iZXJPZlByb2Nlc3NvcnMKICAgICByZXR1cm4g
bnVtUHJvY2Vzc29ycwogZW5kCiAKK2RlZiBydW5BbmRNb25pdG9yQ29tbWFuZE91dHB1dChjbWQs
ICZibGspCisgICAgSU8ucG9wZW4oY21kLmpvaW4oJyAnKSwgbW9kZT0iciIpIHsKKyAgICAgICAg
fHB8CisgICAgICAgIHAuZWFjaF9saW5lIHsKKyAgICAgICAgICAgIHxsaW5lfAorICAgICAgICAg
ICAgYmxrLmNhbGwocC5waWQsIGxpbmUpCisgICAgICAgICAgICBwdXRzKGxpbmUpCisgICAgICAg
ICAgICAkc3Rkb3V0LmZsdXNoCisgICAgICAgIH0KKyAgICB9CitlbmQKKwogJHJ1bm5lckRpck11
dGV4ID0gTXV0ZXgubmV3CiBkZWYgcnVuQW5kTW9uaXRvclRlc3RSdW5uZXJDb21tYW5kKGNtZCwg
b3B0aW9ucz17fSkKICAgICBudW1iZXJPZlRlc3RzID0gMApAQCAtMjE2NywxMCArMjE4Myw5IEBA
IGRlZiBydW5BbmRNb25pdG9yVGVzdFJ1bm5lckNvbW1hbmQoY21kLCBvcHRpb25zPXt9KQogICAg
IGVuZAogZW5kCiAKLWRlZiBnZXRSZW1vdGVEaXJlY3RvcnlJZk5lZWRlZChyZW1vdGVJbmRleCkK
LSAgICByZW1vdGVIb3N0ID0gJHJlbW90ZUhvc3RzW3JlbW90ZUluZGV4XQorZGVmIGdldFJlbW90
ZURpcmVjdG9yeUlmTmVlZGVkKHJlbW90ZUhvc3QpCiAgICAgaWYgIXJlbW90ZUhvc3QucmVtb3Rl
RGlyZWN0b3J5Ci0gICAgICAgIHJlbW90ZUhvc3QucmVtb3RlRGlyZWN0b3J5ID0gSlNPTjo6cGFy
c2Uoc3NoUmVhZCgiY2F0IH4vLmJlbmNoZXIiLCByZW1vdGVJbmRleCkpWyJ0ZW1wUGF0aCJdCisg
ICAgICAgIHJlbW90ZUhvc3QucmVtb3RlRGlyZWN0b3J5ID0gSlNPTjo6cGFyc2Uoc3NoUmVhZCgi
Y2F0IH4vLmJlbmNoZXIiLCByZW1vdGVIb3N0KSlbInRlbXBQYXRoIl0KICAgICBlbmQKIGVuZAog
CkBAIC0yMTk1LDcgKzIyMTAsNyBAQCBlbmQKIGRlZiBydW5UZXN0UnVubmVyKHJlbW90ZUluZGV4
PTApCiAgICAgaWYgJHJlbW90ZQogICAgICAgICByZW1vdGVIb3N0ID0gJHJlbW90ZUhvc3RzW3Jl
bW90ZUluZGV4XQotICAgICAgICBnZXRSZW1vdGVEaXJlY3RvcnlJZk5lZWRlZChyZW1vdGVJbmRl
eCkKKyAgICAgICAgZ2V0UmVtb3RlRGlyZWN0b3J5SWZOZWVkZWQocmVtb3RlSG9zdCkKICAgICAg
ICAgY29weUJ1bmRsZVRvUmVtb3RlKHJlbW90ZUhvc3QpCiAgICAgICAgIHJlbW90ZVNjcmlwdCA9
ICJcIiIKICAgICAgICAgcmVtb3RlU2NyaXB0ICs9ICJjZCAje3JlbW90ZUhvc3QucmVtb3RlRGly
ZWN0b3J5fSAmJiAiCkBAIC0yMjEzLDgwICsyMjI4LDk4IEBAIGRlZiBydW5UZXN0UnVubmVyKHJl
bW90ZUluZGV4PTApCiAgICAgZW5kCiBlbmQKIAotZGVmIGdldFN0YXR1c01hcAotICAgIG5hbWVf
cmUgPSAvXlsuXVwvI3tTVEFUVVNfRklMRV9QUkVGSVh9KFxkKykkLwotICAgIG1hcCA9IHt9CitT
VEFUVVNfUkUgPSAvXlsuXVwvI3tTVEFUVVNfRklMRV9QUkVGSVh9KD88aW5kZXg+XGQrKVxzKD88
cnVuSWQ+XGgrKVxzKD88ZXhpdENvZGU+XGQrKVxzKD88cmVzdWx0PiN7U1RBVFVTX0ZJTEVfUEFT
U318I3tTVEFUVVNfRklMRV9GQUlMfSkkLworCitkZWYgcHJvY2Vzc1N0YXR1c0xpbmUobWFwLCBs
aW5lKQorICAgIG1kID0gU1RBVFVTX1JFLm1hdGNoKGxpbmUpCisgICAgaWYgbWQubmlsPworICAg
ICAgICAkc3RkZXJyLnB1dHMoIkNvdWxkIG5vdCBwYXJzZSBsaW5lIGAje2xpbmV9YCIpCisgICAg
ICAgIGV4aXQoMSkKKyAgICBlbmQKKyAgICBpbmRleCA9IG1kWzppbmRleF0udG9faQorICAgIHJ1
bklkID0gbWRbOnJ1bklkXQorICAgIHJlc3VsdCA9IG1kWzpyZXN1bHRdCisgICAgaWYgcnVuSWQg
IT0gJHJ1blVuaXF1ZUlkCisgICAgICAgICMgVGhpcyBtYXkgY29uY2VpdmFibHkgaGFwcGVuIGlm
IGEgcmVtb3RlIGdvZXMKKyAgICAgICAgIyBhd2F5IGluIHRoZSBtaWRkbGUgb2YgYSBydW4gYW5k
IGNvbWVzIGJhY2sKKyAgICAgICAgIyBvbmxpbmUgaW4gdGhlIG1pZGRsZSBvZiBhIGRpZmZlcmVu
dCBydW4uCisgICAgICAgICRzdGRlcnIucHV0cygiSWdub3Jpbmcgc3RhbGUgc3RhdHVzIGZpbGUg
Zm9yICN7aW5kZXh9IChJRCAje3J1bklkfSBidXQgY3VycmVudCBJRCBpcyAjeyRydW5VbmlxdWVJ
ZH0pIikKKyAgICAgICAgcmV0dXJuCisgICAgZW5kCisgICAgaWYgbWFwLmhhc19rZXk/KGluZGV4
KQorICAgICAgICAjIE9uZSBzY2VuYXJpbyBpbiB3aGljaCB0aGlzIGNvdWxkIGhhcHBlbjoKKyAg
ICAgICAgIyBUZXN0IFQgcnVucyBvbiByZW1vdGUgaG9zdCBBIGFuZAorICAgICAgICAjICAgMS4g
dGhlIHN0YXR1cyBmaWxlIHJlYWNoZXMgQSdzIGRpc2sKKyAgICAgICAgIyAgIDIuIHNvbWVob3cg
dGhlIGdudSBwYXJhbGxlbCBydW5uZXIgaXMgbm90IG1hZGUgYXdhcmUgb2YgdGhlIHRlc3QncyBj
b21wbGV0aW9uIChwYWNrZXQgbG9zcz8pCisgICAgICAgICMgICAzLiBtYWNoaW5lIEEgY3Jhc2hl
cworICAgICAgICAjICAgNC4gZ251IHBhcmFsbGVsIHJlLXNjaGVkdWxlcyB0aGUgdGVzdCB0byBy
dW4gb24gcmVtb3RlIGhvc3QgQiwgd2hlcmUgaXQgcnVucyB0byBjb21wbGV0aW9uCisgICAgICAg
ICMgICA1LiBCIGNvbWVzIGJhY2sgb25saW5lIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBydW4KKyAg
ICAgICAgIyAgIDYuIHdlIGNvbGxlY3QgdGhlIHN0YXR1cyBmaWxlcyBmcm9tIGFsbCByZW1vdGVz
IGFuZCBlbmQgdXAgd2l0aCB0d28gc3RhdHVzIGZpbGVzIGZvciBULgorICAgICAgICBwcmV2ID0g
bWFwW2luZGV4XQorICAgICAgICAjIG1hcFtpbmRleF0gaG9sZHMKKyAgICAgICAgIyAtIGEgbnVt
YmVyLCBpZiBhbGwgcmVzdWx0cyBjb2RlcyB3ZSd2ZSBvYnNlcnZlZCBmb3IgYSB0ZXN0IGFyZSB0
aGUgc2FtZQorICAgICAgICAjIC0gYW4gYXJyYXksIGlmIHRoZXkgZGl2ZXJnZS4KKyAgICAgICAg
aWYgcHJldi5pc19hPyhBcnJheSkKKyAgICAgICAgICAgIHByZXYucHVzaChyZXN1bHQpCisgICAg
ICAgIGVsc2lmIHByZXYgIT0gcmVzdWx0CisgICAgICAgICAgICAjIElmIHRoZSB0d28gcmVzdWx0
cyBkaWZmZXIsIGtlZXAgdGhlbQorICAgICAgICAgICAgIyBib3RoLiBUaGlzIGlzIHNpbXBseSBh
IHdheSB0byBtYWtlIG5vdGUgb2YKKyAgICAgICAgICAgICMgdGhlIGRpdmVyZ2VuY2UgKGZvciBs
YXRlciByZXBvcnRpbmcpLgorICAgICAgICAgICAgbWFwW2luZGV4XSA9IFtwcmV2LCByZXN1bHRd
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICMgR290IHRoZSBzYW1lIHJlc3VsdCwgbm8gbmVl
ZCB0byBkbyBhbnl0aGluZy4KKyAgICAgICAgZW5kCisgICAgICAgICRzdGRlcnIucHV0cygiRHVw
bGljYXRlIHN0YXRlIGZpbGUgZm9yICN7aW5kZXh9OiAje21hcFtpbmRleF19IikKKyAgICBlbHNl
CisgICAgICAgIG1hcFtpbmRleF0gPSByZXN1bHQKKyAgICBlbmQKK2VuZAorCitkZWYgZ2V0U3Rh
dHVzTWFwKG1hcD17fSkKKyAgICBmaW5kX2NtZCA9ICJmaW5kIC4gLW1heGRlcHRoIDEgLW5hbWUg
XCIje1NUQVRVU19GSUxFX1BSRUZJWH0qXCIgLWEgLXNpemUgKzBjIC1leGVjIHNoIC1jIFwicHJp
bnRmIFxcXCIlcyBcXFwiIHt9OyBjYXQge31cIiBcXDsiCiAgICAgaWYgJHJlbW90ZQorICAgICAg
ICAjIE5vdGU6IGhlcmUgd2UncmUgdXNpbmcgJHJlbW90ZUhvc3RzIChpbnN0ZWFkIG9mIGdldHRp
bmcgdGhlCisgICAgICAgICMgbGlzdCBvZiBsaXZlIHJlbW90ZUhvc3RzIGZyb20gdGhlIGNhbGxl
ciwgYmVjYXVzZSB0aGVyZSBtYXkKKyAgICAgICAgIyB3ZWxsIGJlIHRlc3QgcmVzdWx0cyBvbiBh
IHJlbW90ZUhvc3QgdGhhdCBnb3QgcmVib290ZWQKKyAgICAgICAgIyAobm90ZSwgdGhlIHRlc3Qg
cmVzdWx0cyBhcmUgdGFnZ2VkIHdpdGggYSBydW4gSUQsIHNvIHdlJ2xsCisgICAgICAgICMgaWdu
b3JlIGFueSBzdGFsZSByZXN1bHRzIGZyb20gYSBwcmV2aW91cyBydW4pLgogICAgICAgICAkcmVt
b3RlSG9zdHMuZWFjaF93aXRoX2luZGV4IHsKICAgICAgICAgICAgIHwgaG9zdCwgcmVtb3RlSW5k
ZXggfAotICAgICAgICAgICAgb3V0cHV0ID0gc3NoUmVhZCgiY2QgI3tob3N0LnJlbW90ZURpcmVj
dG9yeX0vI3skb3V0cHV0RGlyLmJhc2VuYW1lfS8ucnVubmVyICYmIGZpbmQgLiAtbWF4ZGVwdGgg
MSAtbmFtZSBcIiN7U1RBVFVTX0ZJTEVfUFJFRklYfSpcIiAtZXhlYyBzaCAtYyBcInByaW50ZiBc
XFwiJXMgXFxcIiB7fTsgY2F0IHt9XCIgXFw7IiwgcmVtb3RlSW5kZXgsIDppZ25vcmVGYWlsdXJl
ID0+IHRydWUpCisgICAgICAgICAgICBydW5uZXJEaXIgPSAiI3tob3N0LnJlbW90ZURpcmVjdG9y
eX0vI3skb3V0cHV0RGlyLmJhc2VuYW1lfS8ucnVubmVyIgorICAgICAgICAgICAgb3V0cHV0ID0g
c3NoUmVhZCgiaWYgdGVzdCAtZCAje3J1bm5lckRpcn07IHRoZW4gY2QgI3tydW5uZXJEaXJ9OyBl
bHNlIGZhbHNlOyBmaSAmJiAiICsgZmluZF9jbWQsIGhvc3QsIDppZ25vcmVGYWlsdXJlID0+IHRy
dWUpCiAgICAgICAgICAgICBvdXRwdXQuc3BsaXQoL1xuLykuZWFjaCB7CiAgICAgICAgICAgICAg
ICAgfCBsaW5lIHwKLSAgICAgICAgICAgICAgICBuYW1lLCBydW5faWQsIF8sIHJlc3VsdCA9IGxp
bmUuc3BsaXQoJyAnKQotICAgICAgICAgICAgICAgIG1kID0gbmFtZV9yZS5tYXRjaChuYW1lKQot
ICAgICAgICAgICAgICAgIGlmIG1kLm5pbD8KLSAgICAgICAgICAgICAgICAgICAgJHN0ZGVyci5w
dXRzKCJDb3VsZCBub3QgcGFyc2UgbmFtZSBpbiBgI3tsaW5lfWAiKQotICAgICAgICAgICAgICAg
ICAgICBleGl0KDEpCi0gICAgICAgICAgICAgICAgZW5kCi0gICAgICAgICAgICAgICAgaWYgcnVu
X2lkICE9ICRydW5VbmlxdWVJZAotICAgICAgICAgICAgICAgICAgICAjIFRoaXMgbWF5IGNvbmNl
aXZhYmx5IGhhcHBlbiBpZiBhIHJlbW90ZSBnb2VzCi0gICAgICAgICAgICAgICAgICAgICMgYXdh
eSBpbiB0aGUgbWlkZGxlIG9mIGEgcnVuIGFuZCBjb21lcyBiYWNrCi0gICAgICAgICAgICAgICAg
ICAgICMgb25saW5lIGluIHRoZSBtaWRkbGUgb2YgYSBkaWZmZXJlbnQgcnVuLgotICAgICAgICAg
ICAgICAgICAgICAkc3RkZXJyLnB1dHMoIklnbm9yaW5nIHN0YWxlIHN0YXR1cyBmaWxlIGZvciAj
e25hbWV9IChJRCAje3J1bl9pZH0gYnV0IGN1cnJlbnQgSUQgaXMgI3skcnVuVW5pcXVlSWR9KSIp
Ci0gICAgICAgICAgICAgICAgICAgIG5leHQKLSAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAg
ICAgICAgICBpbmRleCA9IG1kWzFdLnRvX2kKLSAgICAgICAgICAgICAgICBpZiBtYXAuaGFzX2tl
eT8oaW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICRzdGRlcnIucHV0cygiRHVwbGljYXRlIHN0
YXRlIGZpbGUgZm9yICN7aW5kZXh9IikKLSAgICAgICAgICAgICAgICAgICAgIyBPbmUgc2NlbmFy
aW8gaW4gd2hpY2ggdGhpcyBjb3VsZCBoYXBwZW46Ci0gICAgICAgICAgICAgICAgICAgICMgVGVz
dCBUIHJ1bnMgb24gcmVtb3RlIGhvc3QgQSBhbmQKLSAgICAgICAgICAgICAgICAgICAgIyAgIDEu
IHRoZSBzdGF0dXMgZmlsZSByZWFjaGVzIEEncyBkaXNrCi0gICAgICAgICAgICAgICAgICAgICMg
ICAyLiBzb21laG93IHRoZSBnbnUgcGFyYWxsZWwgcnVubmVyIGlzIG5vdCBtYWRlIGF3YXJlIG9m
IHRoZSB0ZXN0J3MgY29tcGxldGlvbiAocGFja2V0IGxvc3M/KQotICAgICAgICAgICAgICAgICAg
ICAjICAgMy4gQSBtYWNoaW5lIGNyYXNoZXMKLSAgICAgICAgICAgICAgICAgICAgIyAgIDQuIGdu
dSBwYXJhbGxlbCByZS1zY2hlZHVsZXMgdGhlIHRlc3QgdG8gcnVuIG9uIHJlbW90ZSBob3N0IEIs
IHdoZXJlIGl0IHJ1bnMgdG8gY29tcGxldGlvbgotICAgICAgICAgICAgICAgICAgICAjICAgNS4g
QiBjb21lcyBiYWNrIG9ubGluZSBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgcnVuCi0gICAgICAgICAg
ICAgICAgICAgICMgICA2LiB3ZSBjb2xsZWN0IHRoZSBzdGF0dXMgZmlsZXMgZnJvbSBhbGwgcmVt
b3RlcyBhbmQgZW5kIHVwIHdpdGggdHdvIHN0YXR1cyBmaWxlcyBmb3IgVC4KLSAgICAgICAgICAg
ICAgICAgICAgcHJldiA9IG1hcFtpbmRleF0KLSAgICAgICAgICAgICAgICAgICAgIyBtYXBbaW5k
ZXhdIGhvbGRzCi0gICAgICAgICAgICAgICAgICAgICMgLSBhIG51bWJlciwgaWYgYWxsIHJlc3Vs
dHMgY29kZXMgd2UndmUgb2JzZXJ2ZWQgZm9yIGEgdGVzdCBhcmUgdGhlIHNhbWUKLSAgICAgICAg
ICAgICAgICAgICAgIyAtIGFuIGFycmF5LCBpZiB0aGV5IGRpdmVyZ2UuCi0gICAgICAgICAgICAg
ICAgICAgIGlmIHByZXYuaXNfYT8oQXJyYXkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmV2
LnB1c2gocmVzdWx0KQotICAgICAgICAgICAgICAgICAgICBlbHNpZiBwcmV2ICE9IHJlc3VsdAot
ICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiB0aGUgdHdvIHJlc3VsdHMgZGlmZmVyLCBrZWVw
IHRoZW0KLSAgICAgICAgICAgICAgICAgICAgICAgICMgYm90aC4gVGhpcyBpcyBzaW1wbHkgYSB3
YXkgdG8gbWFrZSBub3RlIG9mCi0gICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBkaXZlcmdl
bmNlIChmb3IgbGF0ZXIgcmVwb3J0aW5nKS4KLSAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtp
bmRleF0gPSBbcHJldiwgcmVzdWx0XQotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAjIEdvdCB0aGUgc2FtZSByZXN1bHQsIG5vIG5lZWQgdG8gZG8gYW55
dGhpbmcuCi0gICAgICAgICAgICAgICAgICAgIGVuZAotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgbWFwW2luZGV4XSA9IHJlc3VsdAotICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgICAgIHByb2Nlc3NTdGF0dXNMaW5lKG1hcCwgbGluZSkKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIGVsc2UKLSAgICAgICAgRGlyLmZvcmVhY2goJHJ1bm5lckRp
cikgewotICAgICAgICAgICAgfCBmaWxlbmFtZSB8Ci0gICAgICAgICAgICBtZCA9IG5hbWVfcmUu
bWF0Y2goIi4vI3tmaWxlbmFtZX0iKQotICAgICAgICAgICAgbmV4dCB1bmxlc3MgbWQKLSAgICAg
ICAgICAgIEZpbGUub3BlbigiI3skcnVubmVyRGlyfS8je2ZpbGVuYW1lfSIsICJyIikgeyB8ZnwK
LSAgICAgICAgICAgICAgICBydW5JZCwgXywgcmVzdWx0ID0gZi5yZWFkLmNob21wLnNwbGl0KCcg
JykKLSAgICAgICAgICAgICAgICBpZiBydW5JZCAhPSAkcnVuVW5pcXVlSWQKLSAgICAgICAgICAg
ICAgICAgICAgIyBXZSBjbGVhbiB0aGUgZGlyIGJlZm9yZSBhIHN0YXJ0aW5nIGEgcnVuLgotICAg
ICAgICAgICAgICAgICAgICByYWlzZSAiQ2FuJ3QgaGFwcGVuIgotICAgICAgICAgICAgICAgIGVu
ZAotICAgICAgICAgICAgICAgIG1hcFttZFsxXS50b19pXSA9IHJlc3VsdAorICAgICAgICBEaXIu
Y2hkaXIoJHJ1bm5lckRpcikgeworICAgICAgICAgICAgSU8ucG9wZW4oZmluZF9jbWQpLmVhY2hf
bGluZSB7CisgICAgICAgICAgICAgICAgfCBsaW5lIHwKKyAgICAgICAgICAgICAgICBwcm9jZXNz
U3RhdHVzTGluZShtYXAsIGxpbmUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBlbmQK
ICAgICBtYXAKIGVuZAogCi1kZWYgZGV0ZWN0RmFpbHVyZXMKK2RlZiBnZXRDb21wbGV0ZWRUZXN0
c0Zyb21TdGF0dXNNYXAoc3RhdHVzTWFwKQorICAgIGNvbXBsZXRlZFRlc3RzID0ge30KKyAgICAk
cnVubGlzdC5lYWNoX3dpdGhfaW5kZXggeworICAgICAgICB8IHBsYW4sIGluZGV4IHwKKyAgICAg
ICAgaWYgc3RhdHVzTWFwLmhhc19rZXk/KGluZGV4KQorICAgICAgICAgICAgY29tcGxldGVkVGVz
dHNbcGxhbl0gPSBuaWwKKyAgICAgICAgZW5kCisgICAgfQorICAgIGNvbXBsZXRlZFRlc3RzCitl
bmQKKworZGVmIGRldGVjdEZhaWx1cmVzKHN0YXR1c01hcD17fSkKICAgICByYWlzZSBpZiAkYnVu
ZGxlCiAgICAgbm9yZXN1bHQgPSAwCi0gICAgc3RhdHVzTWFwID0gZ2V0U3RhdHVzTWFwCisgICAg
aWYgc3RhdHVzTWFwLnNpemUgPT0gMAorICAgICAgICBzdGF0dXNNYXAgPSBnZXRTdGF0dXNNYXAK
KyAgICBlbmQKICAgICBmYW1pbHlNYXAgPSB7fQogCiAgICAgJHJ1bmxpc3QuZWFjaF93aXRoX2lu
ZGV4IHsKQEAgLTIyOTQsMjEgKzIzMjcsMjYgQEAgZGVmIGRldGVjdEZhaWx1cmVzCiAgICAgICAg
IHVubGVzcyBmYW1pbHlNYXBbcGxhbi5mYW1pbHldCiAgICAgICAgICAgICBmYW1pbHlNYXBbcGxh
bi5mYW1pbHldID0gW10KICAgICAgICAgZW5kCi0gICAgICAgIGlmIG5vdCBzdGF0dXNNYXAuaGFz
X2tleT8oaW5kZXgpIG9yIHN0YXR1c01hcFtpbmRleF0uaXNfYT8oQXJyYXkpCisgICAgICAgIGlm
IG5vdCBzdGF0dXNNYXAuaGFzX2tleT8oaW5kZXgpCiAgICAgICAgICAgICBhcHBlbmROb1Jlc3Vs
dChwbGFuKQogICAgICAgICAgICAgbm9yZXN1bHQgKz0gMQogICAgICAgICAgICAgbmV4dAogICAg
ICAgICBlbmQKICAgICAgICAgcmVzdWx0ID0gbmlsCi0gICAgICAgIGlmIHN0YXR1c01hcFtpbmRl
eF0gPT0gU1RBVFVTX0ZJTEVfUEFTUworICAgICAgICAjIElmIGFueSBvZiB0aGUgcmVzdWx0cyB3
ZSBnb3Qgd2FzIGEgcGFzcywgY29uc2lkZXIgdGhlIHRlc3QKKyAgICAgICAgIyBzdWNjZXNzZnVs
LiBUaGUgYXNzdW1wdGlvbiBoZXJlIGlzIHRoYXQgZmFpbHVyZXMgYXJlIGJlY2F1c2UKKyAgICAg
ICAgIyBvZiBpbmZyYXN0cnVjdHVyZSBpc3N1ZXMgKHdoaWNoIGlzIHdoeSB0aGUgdGVzdCB3YXMg
cnVuCisgICAgICAgICMgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGZpcnN0IHBsYWNlKS4KKyAgICAg
ICAgdGVzdFdhc1N1Y2Nlc3NmdWwgPSBzdGF0dXNNYXBbaW5kZXhdLmluY2x1ZGU/KFNUQVRVU19G
SUxFX1BBU1MpCisgICAgICAgIGlmIHRlc3RXYXNTdWNjZXNzZnVsCiAgICAgICAgICAgICBhcHBl
bmRQYXNzKHBsYW4pCiAgICAgICAgICAgICByZXN1bHQgPSAiUEFTUyIKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgYXBwZW5kRmFpbHVyZShwbGFuKQogICAgICAgICAgICAgcmVzdWx0ID0gIkZB
SUwiCiAgICAgICAgIGVuZAotICAgICAgICBhcHBlbmRSZXN1bHQocGxhbiwgc3RhdHVzTWFwW2lu
ZGV4XSA9PSBTVEFUVVNfRklMRV9QQVNTKQotICAgICAgICBmYW1pbHlNYXBbcGxhbi5mYW1pbHld
IDw8IHs6cmVzdWx0ID0+IHJlc3VsdCwgOnBsYW4gPT4gcGxhbiB9CisgICAgICAgIGFwcGVuZFJl
c3VsdChwbGFuLCB0ZXN0V2FzU3VjY2Vzc2Z1bCkKKyAgICAgICAgZmFtaWx5TWFwW3BsYW4uZmFt
aWx5XSA8PCB7IDpyZXN1bHQgPT4gcmVzdWx0LCA6cGxhbiA9PiBwbGFuIH0KICAgICB9CiAKICAg
ICBpZiBub3Jlc3VsdCA+IDAKQEAgLTI0MzIsMzYgKzI0NzAsMzQgQEAgZGVmIHJ1blRhcmJhbGwK
ICAgICBjb21wcmVzc0J1bmRsZQogZW5kCiAKLWRlZiBmb3JFYWNoUmVtb3RlKG9wdGlvbnM9e30s
ICZibGspCitkZWYgZm9yRWFjaFJlbW90ZShyZW1vdGVIb3N0cywgb3B0aW9ucz17fSwgJmJsaykK
ICAgICB0aHJlYWRzID0gW10KLSAgICAkcmVtb3RlSG9zdHMuZWFjaF9pbmRleCB7CisgICAgcmVt
b3RlSG9zdHMuZWFjaF9pbmRleCB7CiAgICAgICAgIHwgaW5kZXggfAotICAgICAgICByZW1vdGVI
b3N0ID0gJHJlbW90ZUhvc3RzW2luZGV4XQorICAgICAgICByZW1vdGVIb3N0ID0gcmVtb3RlSG9z
dHNbaW5kZXhdCiAgICAgICAgIHRocmVhZHMgPDwgVGhyZWFkLm5ldyB7CiAgICAgICAgICAgICBi
bGsuY2FsbChpbmRleCwgcmVtb3RlSG9zdCkKICAgICAgICAgfQogICAgIH0KLSAgICBmYWlsZWRS
ZW1vdGVzID0gW10KKworICAgIGxpdmVSZW1vdGVzID0gW10KICAgICB0aHJlYWRzLmVhY2hfaW5k
ZXggewogICAgICAgICB8IGluZGV4IHwKICAgICAgICAgdGhyZWFkID0gdGhyZWFkc1tpbmRleF0K
ICAgICAgICAgYmVnaW4KICAgICAgICAgICAgIHRocmVhZC5qb2luCisgICAgICAgICAgICBsaXZl
UmVtb3RlcyA8PCByZW1vdGVIb3N0c1tpbmRleF0KICAgICAgICAgcmVzY3VlIENvbW1hbmRFeGVj
dXRpb25GYWlsZWQKICAgICAgICAgICAgIGlmIG9wdGlvbnNbOmRyb3BPbkZhaWx1cmVdCi0gICAg
ICAgICAgICAgICAgZmFpbGVkUmVtb3RlcyA8PCBpbmRleAorICAgICAgICAgICAgICAgIGlmICR2
ZXJib3NpdHkgPiAwCisgICAgICAgICAgICAgICAgICAgICRzdGRlcnIucHV0cygiRHJvcHBpbmcg
ZmFpbGVkIHJlbW90ZSAje3JlbW90ZUhvc3RzW2luZGV4XX0iKQorICAgICAgICAgICAgICAgIGVu
ZAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBl
bmQKICAgICAgICAgZW5kCiAgICAgfQotICAgIGZhaWxlZFJlbW90ZXMucmV2ZXJzZS5lYWNoIHsK
LSAgICAgICAgfCBpbmRleCB8Ci0gICAgICAgIGlmICR2ZXJib3NpdHkgPiAwCi0gICAgICAgICAg
ICAkc3RkZXJyLnB1dHMoIkRyb3BwaW5nIGZhaWxlZCByZW1vdGUgI3skcmVtb3RlSG9zdHNbaW5k
ZXhdfSIpCi0gICAgICAgIGVuZAotICAgICAgICAkcmVtb3RlSG9zdHMuZGVsZXRlX2F0KGluZGV4
KQotICAgIH0KKyAgICBsaXZlUmVtb3RlcwogZW5kCiAKIGRlZiBydW5SZW1vdGUKQEAgLTI0NzMs
NyArMjUwOSw3IEBAIGRlZiBydW5SZW1vdGUKICAgICAgICAgcHJlcGFyZVRlc3RSdW5uZXIoaW5k
ZXgpCiAgICAgfQogICAgIGNvbXByZXNzQnVuZGxlCi0gICAgZm9yRWFjaFJlbW90ZSB7CisgICAg
Zm9yRWFjaFJlbW90ZSgkcmVtb3RlSG9zdHMpIHsKICAgICAgICAgfCBpbmRleCB8CiAgICAgICAg
IHJ1blRlc3RSdW5uZXIoaW5kZXgpCiAgICAgfQpAQCAtMjQ5NiwxMSArMjUzMiwxMSBAQCBkZWYg
cHJlcGFyZUdudVBhcmFsbGVsUnVubmVySm9icyhuYW1lLCBydW5saXN0LCBleGNsdWRlKQogICAg
IH0KIGVuZAogCi1kZWYgcHJlcGFyZUdudVBhcmFsbGVsVGVzdFJ1bm5lcgorZGVmIHByZXBhcmVH
bnVQYXJhbGxlbFRlc3RSdW5uZXIoZXhjbHVkZT17fSkKICAgICBzZXJpYWxUZXN0cyA9IHt9CiAg
ICAgJHNlcmlhbFJ1bmxpc3QuZWFjaCB7IHxwfCBzZXJpYWxUZXN0c1twXSA9IG5pbCB9Ci0gICAg
cHJlcGFyZUdudVBhcmFsbGVsUnVubmVySm9icygicGFyYWxsZWwtdGVzdHMiLCAkcnVubGlzdCwg
c2VyaWFsVGVzdHMpCi0gICAgcHJlcGFyZUdudVBhcmFsbGVsUnVubmVySm9icygic2VyaWFsLXRl
c3RzIiwgJHNlcmlhbFJ1bmxpc3QsIHt9KQorICAgIHByZXBhcmVHbnVQYXJhbGxlbFJ1bm5lckpv
YnMoInBhcmFsbGVsLXRlc3RzIiwgJHJ1bmxpc3QsIGV4Y2x1ZGUubWVyZ2Uoc2VyaWFsVGVzdHMp
KQorICAgIHByZXBhcmVHbnVQYXJhbGxlbFJ1bm5lckpvYnMoInNlcmlhbC10ZXN0cyIsICRzZXJp
YWxSdW5saXN0LCBleGNsdWRlKQogZW5kCiAKIGRlZiB3aXRoR251UGFyYWxsZWxTc2hXcmFwcGVy
KCZibGspCkBAIC0yNTI5LDcgKzI1NjUsNyBAQCBmaQogc2hpZnQKIEVPRgogICAgICAgICB3cmFw
cGVyLnB1dHMoaGVhZCArCi0gICAgICAgICAgICAgICAgICAgICAiZWNobyBcIiRAXCIgfCBzc2gg
LW8gQ29udHJvbFBhdGg9Li8lQyAtbyBDb250cm9sTWFzdGVyPWF1dG8gLW8gQ29udHJvbFBlcnNp
c3Q9MTBtIC1vIE5vSG9zdEF1dGhlbnRpY2F0aW9uRm9yTG9jYWxob3N0PXllcyAtbyBTdHJpY3RI
b3N0S2V5Q2hlY2tpbmc9bm8gLW8gVXNlcktub3duSG9zdHNGaWxlPS9kZXYvbnVsbCAtcCBcIiRy
ZW1vdGVwb3J0XCIgLWwgXCIkcmVtb3RldXNlclwiIC1vIFJlbW90ZUNvbW1hbmQ9XCJjZCAnJHJl
bW90ZWRpcicgJiYgc2ggLXNcIiBcIiRyZW1vdGVob3N0XCIiCisgICAgICAgICAgICAgICAgICAg
ICAiZWNobyBcIiRAXCIgfCBzc2ggLW8gQ29udHJvbFBhdGg9Li8lQyAtbyBDb250cm9sTWFzdGVy
PWF1dG8gLW8gQ29udHJvbFBlcnNpc3Q9MTBtIC1vIE5vSG9zdEF1dGhlbnRpY2F0aW9uRm9yTG9j
YWxob3N0PXllcyAtbyBTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9bm8gLW8gVXNlcktub3duSG9zdHNG
aWxlPS9kZXYvbnVsbCAtcCBcIiRyZW1vdGVwb3J0XCIgLWwgXCIkcmVtb3RldXNlclwiIC1vIFJl
bW90ZUNvbW1hbmQ9XCJpZiB0ZXN0IC1kICckcmVtb3RlZGlyJzsgdGhlbiBjZCAnJHJlbW90ZWRp
cic7IGVsc2UgZWNobyAnI3tQQVJBTExFTF9SRU1PVEVfV1JBUFBFUl9NQVJLX0JFR0lOfSR7cmVt
b3RlaG9zdH0je1BBUkFMTEVMX1JFTU9URV9XUkFQUEVSX01BUktfRU5EfSc7IGZhbHNlOyBmaSAm
JiBzaCAtc1wiIFwiJHJlbW90ZWhvc3RcIiIKICAgICAgICAgKQogICAgICAgICBGaWxlVXRpbHMu
Y2htb2QoInVnbz1yeCIsIHdyYXBwZXIucGF0aCkKICAgICAgICAgd3JhcHBlci5jbG9zZSAjIEF2
b2lkIEVUWFRCVVNZCkBAIC0yNTM3LDEyICsyNTczLDEyIEBAIEVPRgogICAgIH0KIGVuZAogCi1k
ZWYgd2l0aEdudVBhcmFsbGVsU3NoTG9naW5GaWxlKCZibGspCitkZWYgd2l0aEdudVBhcmFsbGVs
U3NoTG9naW5GaWxlKHJlbW90ZUhvc3RzLCAmYmxrKQogICAgIHdpdGhHbnVQYXJhbGxlbFNzaFdy
YXBwZXIgewogICAgICAgICB8IHdyYXBwZXIgfAogICAgICAgICBUZW1wZmlsZS5vcGVuKCdzbGYn
LCAkcnVubmVyRGlyKSB7CiAgICAgICAgICAgICB8IHRmIHwKLSAgICAgICAgICAgICRyZW1vdGVI
b3N0cy5lYWNoIHsKKyAgICAgICAgICAgIHJlbW90ZUhvc3RzLmVhY2ggewogICAgICAgICAgICAg
ICAgIHwgcmVtb3RlSG9zdCB8CiAgICAgICAgICAgICAgICAgdGYucHV0cygiI3t3cmFwcGVyfSAj
e3JlbW90ZUhvc3QucmVtb3RlRGlyZWN0b3J5fSAje3JlbW90ZUhvc3QucG9ydH0gI3tyZW1vdGVI
b3N0LnVzZXJ9ICN7cmVtb3RlSG9zdC5ob3N0fSIpCiAgICAgICAgICAgICB9CkBAIC0yNTUyLDkg
KzI1ODgsOSBAQCBkZWYgd2l0aEdudVBhcmFsbGVsU3NoTG9naW5GaWxlKCZibGspCiAgICAgfQog
ZW5kCiAKLWRlZiB1bnBhY2tCdW5kbGVHbnVQYXJhbGxlbAotICAgIGZvckVhY2hSZW1vdGUgKHsg
OmRyb3BPbkZhaWx1cmUgPT4gdHJ1ZSB9KSB7Ci0gICAgICAgIHxyZW1vdGVJbmRleCwgcmVtb3Rl
SG9zdHwKK2RlZiB1bnBhY2tCdW5kbGVHbnVQYXJhbGxlbChyZW1vdGVIb3N0cykKKyAgICBmb3JF
YWNoUmVtb3RlKHJlbW90ZUhvc3RzLCA6ZHJvcE9uRmFpbHVyZSA9PiB0cnVlKSB7CisgICAgICAg
IHwgXywgcmVtb3RlSG9zdCB8CiAgICAgICAgIG15c3lzKFsic3NoIiwgIi1vIiwgIk5vSG9zdEF1
dGhlbnRpY2F0aW9uRm9yTG9jYWxob3N0PXllcyIsCiAgICAgICAgICAgICAgICAiLXAiLCByZW1v
dGVIb3N0LnBvcnQudG9fcywKICAgICAgICAgICAgICAgICIje3JlbW90ZUhvc3QudXNlcn1AI3ty
ZW1vdGVIb3N0Lmhvc3R9IiwKQEAgLTI1NjIsNyArMjU5OCw3IEBAIGRlZiB1bnBhY2tCdW5kbGVH
bnVQYXJhbGxlbAogICAgIH0KIGVuZAogCi1kZWYgcnVuR251UGFyYWxsZWxSdW5uZXIoaW5wdXRz
LCBvcHRpb25zPXt9KQorZGVmIHJ1bkdudVBhcmFsbGVsUnVubmVyKHJlbW90ZUhvc3RzLCBpbnB1
dHMsIG9wdGlvbnM9e30pCiAgICAgdGltZW91dCA9IDMwMAogICAgIGlmIEVOVlsiSlNDVEVTVF90
aW1lb3V0Il0KICAgICAgICAgdGltZW91dCA9IEVOVlsiSlNDVEVTVF90aW1lb3V0Il0udG9fZi5j
ZWlsLnRvX2kKQEAgLTI1NzYsMjIgKzI2MTIsNDYgQEAgZGVmIHJ1bkdudVBhcmFsbGVsUnVubmVy
KGlucHV0cywgb3B0aW9ucz17fSkKICAgICBpZiBvcHRpb25zWzpwYXJhbGxlbEpvYnNPbkVhY2hI
b3N0XQogICAgICAgcGFyYWxsZWxKb2JzT25FYWNoSG9zdCA9IG9wdGlvbnNbOnBhcmFsbGVsSm9i
c09uRWFjaEhvc3RdCiAgICAgZW5kCi0gICAgd2l0aEdudVBhcmFsbGVsU3NoTG9naW5GaWxlIHsK
KyAgICBtYXJrZXJXaXRoSG9zdCA9IFJlZ2V4cC5uZXcoIi4qI3tQQVJBTExFTF9SRU1PVEVfV1JB
UFBFUl9NQVJLX0JFR0lOfSguKikje1BBUkFMTEVMX1JFTU9URV9XUkFQUEVSX01BUktfRU5EfS4q
IikKKyAgICBtYXJrZXJXaXRob3V0SG9zdCA9IFJlZ2V4cC5uZXcoIi4qI3tQQVJBTExFTF9SRU1P
VEVfU1RBVEVfTE9TVF9NQVJLRVJ9LioiKQorICAgIHdpdGhHbnVQYXJhbGxlbFNzaExvZ2luRmls
ZShyZW1vdGVIb3N0cykgewogICAgICAgICB8IHNsZiB8CiAgICAgICAgIGNtZCA9IFsKICAgICAg
ICAgICAgICJwYXJhbGxlbCIsCiAgICAgICAgICAgICAiLWoiLCAiI3twYXJhbGxlbEpvYnNPbkVh
Y2hIb3N0fSIsCisgICAgICAgICAgICAjIE5COiB0aGUgdGVzdHMgZXhpdCB3aXRoIDAgcmVnYXJk
bGVzcyBvZiB3aGV0aGVyIHRoZXkKKyAgICAgICAgICAgICMgcGFzc2VkIG9yIGZhaWxlZCwgc28g
dGhpcyB3aWxsIG9ubHkgcmV0cnkgdGVzdHMgdGhhdCB3ZQorICAgICAgICAgICAgIyB3ZXJlbid0
IGFibGUgdG8gZ2V0IGEgcmVzdWx0IGZvciwgbGlrZWx5IGJlY2F1c2UgdGhlCisgICAgICAgICAg
ICAjIGNvbm5lY3Rpb24gd2VudCBkb3duIG9yIHRoZSByZW1vdGUgT09NJ2QvY3Jhc2hlZCkuCiAg
ICAgICAgICAgICAiLS1yZXRyaWVzIDUiLAogICAgICAgICAgICAgIi0tbGluZS1idWZmZXIiLCAj
IHdlIGtub3cgb3VyIG91dHB1dCBpcyBsaW5lLW9yaWVudGVkCiAgICAgICAgICAgICAiLS1zbGYi
LCBzbGYsCiAgICAgICAgICAgICAiLS10aW1lb3V0IiwgdGltZW91dC50b19zLAogICAgICAgICAg
ICAgIi1hIiwgaW5wdXRzLAotICAgICAgICAgICAgIlwiY2QgI3skb3V0cHV0RGlyLmJhc2VuYW1l
fS8ucnVubmVyICYmICIgKworICAgICAgICAgICAgIlwiaWYgdGVzdCAtZSAjeyRvdXRwdXREaXIu
YmFzZW5hbWV9Ly5ydW5uZXI7IHRoZW4gY2QgI3skb3V0cHV0RGlyLmJhc2VuYW1lfS8ucnVubmVy
OyBlbHNlIGVjaG8gI3tQQVJBTExFTF9SRU1PVEVfU1RBVEVfTE9TVF9NQVJLRVJ9OyBmYWxzZTsg
ZmkgJiYgIiArCiAgICAgICAgICAgICBleHBvcnRCYXNlRW52aXJvbm1lbnRWYXJpYWJsZXMgKwog
ICAgICAgICAgICAgJGVudlZhcnMuY29sbGVjdCB7IHx2YXIgfCAiZXhwb3J0ICN7dmFyfSAmJiJ9
LmpvaW4oIiIpICsKICAgICAgICAgICAgICJzaCBcIiIKICAgICAgICAgXQotICAgICAgICBydW5B
bmRNb25pdG9yVGVzdFJ1bm5lckNvbW1hbmQoY21kLCA6aWdub3JlRmFpbHVyZSA9PiB0cnVlKQor
ICAgICAgICBydW5BbmRNb25pdG9yQ29tbWFuZE91dHB1dChjbWQpIHsKKyAgICAgICAgICAgIHwg
cGlkLCBsaW5lIHwKKyAgICAgICAgICAgIGhvc3QgPSAiPHVua25vd24gaG9zdD4iCisgICAgICAg
ICAgICBtZCA9IG1hcmtlcldpdGhvdXRIb3N0Lm1hdGNoKGxpbmUpCisgICAgICAgICAgICBpZiBt
ZC5uaWw/CisgICAgICAgICAgICAgICAgbWQgPSBtYXJrZXJXaXRoSG9zdC5tYXRjaChsaW5lKQor
ICAgICAgICAgICAgICAgIGhvc3QgPSBtZFsxXSB1bmxlc3MgbWQubmlsPworICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICBpZiBub3QgbWQubmlsPworICAgICAgICAgICAgICAgIGlmICR2ZXJi
b3NpdHkgPiAwCisgICAgICAgICAgICAgICAgICAgICRzdGRlcnIucHV0cygiUmVtb3RlIGhvc3Qg
bG9zdCBzdGF0ZSwgdHJpZ2dlcmluZyBoaWdoLWxldmVsIHJldHJ5OiAje2hvc3R9IikKKyAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAjIFdlIGNvdWxkIHRyeSB0byByZXByb3Zp
c2lvbiB0aGlzIHNwZWNpZmljIHJlbW90ZQorICAgICAgICAgICAgICAgICMgaG9zdCwgYnV0IHRo
YXQgc2VlbXMgbmVlZGxlc3NseSBjb21wbGljYXRlZCAod2UKKyAgICAgICAgICAgICAgICAjIGRv
bid0IGV4cGVjdCB0aGUgcmVtb3RlcyB0byBnbyBkb3duIGV2ZXJ5CisgICAgICAgICAgICAgICAg
IyBtaW51dGUuLi4pLiBTaW1wbHkga2lsbCB0aGUgR05VIHBhcmFsbGVsIHByb2Nlc3MuCisgICAg
ICAgICAgICAgICAgUHJvY2Vzcy5raWxsKCJURVJNIiwgcGlkKQorICAgICAgICAgICAgZW5kCisg
ICAgICAgIH0KICAgICB9CiBlbmQKIApAQCAtMjYwMCwyMyArMjY2MCw1NyBAQCBkZWYgcnVuR251
UGFyYWxsZWwKICAgICBwcmVwYXJlQnVuZGxlCiAgICAgcHJlcGFyZVRlc3RSdW5uZXIKICAgICBj
b21wcmVzc0J1bmRsZQotICAgICMgSWYgdGhlIHByZXBhcmF0b3J5IHN0ZXBzIGZhaWwsIGRyb3Ag
dGhlIHJlbW90ZSBob3N0IGZyb20gb3VyCi0gICAgIyBsaXN0LiBPdGhlcndpc2UsIGlmIGl0IGxh
dGVyIGNvbWVzIHVwIG9ubGluZSwgd2UnbGwgdHJ5IHRvIHJ1bgotICAgICMgdGVzdCBqb2JzIG9u
IGl0LCBwb3NzaWJseSB1c2luZyBhIHByZXZpb3VzbHktdW5wYWNrZWQgdW5yZWxhdGVkCi0gICAg
IyBidW5kbGUuCi0gICAgZm9yRWFjaFJlbW90ZSAoeyA6ZHJvcE9uRmFpbHVyZSA9PiB0cnVlIH0p
IHsKLSAgICAgICAgfHJlbW90ZUluZGV4LCByZW1vdGVIb3N0fAotICAgICAgICBnZXRSZW1vdGVE
aXJlY3RvcnlJZk5lZWRlZChyZW1vdGVJbmRleCkKLSAgICAgICAgY29weUJ1bmRsZVRvUmVtb3Rl
KHJlbW90ZUhvc3QpCisgICAgc3RhdHVzTWFwID0ge30KKyAgICAjIFRoaXMgaXMgYSBoaWdoLWxl
dmVsIHJldHJ5IGxvb3AuIElmIGEgcmVtb3RlIGhvc3QgZ29lcyBhd2F5IGluCisgICAgIyB0aGUg
bWlkZGxlIG9mIGEgcnVuIGFuZCBlaXRoZXIgZG9lc24ndCBjb21lIGJhY2sgb25saW5lIG9yIGNv
bWVzCisgICAgIyBiYWNrIGhhdmluZyByZW1vdmVkIHRoZSByZW1vdGUgZGlyZWN0b3J5ICgqKSwg
Z2V0U3RhdHVzTWFwIHdpbGwgYmUKKyAgICAjIG1pc3NpbmcgcmVzdWx0cyBmb3IgdGhlc2UgdGVz
dHMsIGFsbG93aW5nIHVzIHRvIHJldHJ5IHRoZW0gaW4KKyAgICAjIHRoZSBuZXh0IGl0ZXJhdGlv
bi4KKyAgICAjCisgICAgIyAoKikgVGhpcyBtYXkgd2VsbCBoYXBwZW4gd2hlbiBydW5uaW5nIHRo
ZSB0ZXN0cyBvbiBlbWJlZGRlZAorICAgICMgYm9hcmRzIHRoYXQgcmVndWxhcmx5IGNvcnJ1cHQg
dGhlaXIgU0QgY2FyZC4gRGVmaW5pdGVseSBhbiBpc3N1ZQorICAgICMgZm9yIHRoZSBjaTIwIGJv
YXJkcyB1c2VkIHRvIHRlc3QgTUlQUy4KKyAgICAjCisgICAgIyBUaGUgbnVtYmVyIG9mIHRyaWVz
IHNjYWxlcyB3aXRoIHRoZSBudW1iZXIgb2YgcmVtb3RlcyBpbiB1c2UsCisgICAgIyB3aXRoIGEg
cmVhc29uYWJsZSBmbG9vci4KKyAgICB0cmllcyA9IFszLCAkcmVtb3RlSG9zdHMuc2l6ZSAvIDJd
Lm1heAorICAgIHRyaWVzLnRpbWVzIHsKKyAgICAgICAgfCBpdGVyYXRpb24gfAorICAgICAgICBy
ZW1vdGVIb3N0cyA9ICRyZW1vdGVIb3N0cworICAgICAgICAjIElmIHRoZSBwcmVwYXJhdG9yeSBz
dGVwcyBmYWlsLCBkcm9wIHRoZSByZW1vdGUgaG9zdCBmcm9tIG91cgorICAgICAgICAjIGxpc3Qu
IE90aGVyd2lzZSwgaWYgaXQgY29tZXMgYmFjayBvbmxpbmUgaW4gdGhlIG1pZGRsZSBvZiBhbgor
ICAgICAgICAjIGl0ZXJhdGlvbiwgd2UnbGwgdHJ5IHRvIHJ1biB0ZXN0IGpvYnMgb24gaXQsIHBv
c3NpYmx5IHVzaW5nCisgICAgICAgICMgYW4gdW5yZWxhdGVkIGJ1bmRsZSBmcm9tIGEgcHJldmlv
dXMgcnVuLgorICAgICAgICByZW1vdGVIb3N0cyA9IGZvckVhY2hSZW1vdGUocmVtb3RlSG9zdHMs
IHs6ZHJvcE9uRmFpbHVyZSA9PiB0cnVlfSkgeworICAgICAgICAgICAgfCBfLCByZW1vdGVIb3N0
IHwKKyAgICAgICAgICAgIGdldFJlbW90ZURpcmVjdG9yeUlmTmVlZGVkKHJlbW90ZUhvc3QpCisg
ICAgICAgICAgICBjb3B5QnVuZGxlVG9SZW1vdGUocmVtb3RlSG9zdCkKKyAgICAgICAgfQorICAg
ICAgICByZW1vdGVIb3N0cyA9IHVucGFja0J1bmRsZUdudVBhcmFsbGVsKHJlbW90ZUhvc3RzKQor
ICAgICAgICBpZiByZW1vdGVIb3N0cy5zaXplID09IDAKKyAgICAgICAgICAgICMgRWl0aGVyIGV2
ZXJ5dGhpbmcgaXMgZG93biwgb3IgZXZlcnl0aGluZyBnb3QKKyAgICAgICAgICAgICMgcmVib290
ZWQuIEluIHRoZSBsYXR0ZXIgY2FzZSwgYWxsb3cgZW5vdWdoIHRpbWUgZm9yIHRoZQorICAgICAg
ICAgICAgIyByZW1vdGUgYm9hcmRzIHRvIGJvb3QgdXAsIHRoZW4gcmV0cnkuCisgICAgICAgICAg
ICB3YWl0SW50ZXJ2YWwgPSA2MAorICAgICAgICAgICAgJHN0ZGVyci5wdXRzKCJBbGwgcmVtb3Rl
IGhvc3RzIGZhaWxlZCwgcmV0cnlpbmcgYWZ0ZXIgI3t3YWl0SW50ZXJ2YWx9cyIpCisgICAgICAg
ICAgICBzbGVlcCh3YWl0SW50ZXJ2YWwpCisgICAgICAgICAgICBuZXh0CisgICAgICAgIGVuZAor
CisgICAgICAgIHJ1bkdudVBhcmFsbGVsUnVubmVyKHJlbW90ZUhvc3RzLCAkcnVubmVyRGlyICsg
InNlcmlhbC10ZXN0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgOnBhcmFsbGVs
Sm9ic09uRWFjaEhvc3QgPT4gMX0pCisgICAgICAgIHJ1bkdudVBhcmFsbGVsUnVubmVyKHJlbW90
ZUhvc3RzLCAkcnVubmVyRGlyICsgInBhcmFsbGVsLXRlc3RzIikKKyAgICAgICAgc3RhdHVzTWFw
ID0gZ2V0U3RhdHVzTWFwKHN0YXR1c01hcCkKKyAgICAgICAgY29tcGxldGVkVGVzdHMgPSBnZXRD
b21wbGV0ZWRUZXN0c0Zyb21TdGF0dXNNYXAoc3RhdHVzTWFwKQorICAgICAgICBicmVhayB1bmxl
c3MgY29tcGxldGVkVGVzdHMuc2l6ZSAhPSAkcnVubGlzdC5zaXplCisgICAgICAgIGlmIGNvbXBs
ZXRlZFRlc3RzLnNpemUgPiAkcnVubGlzdC5zaXplCisgICAgICAgICAgICByYWlzZSAiVGVzdCBj
b3VudCBtaXNtYXRjaDogI3tjb21wbGV0ZWRUZXN0cy5zaXplfSA+ICN7JHJ1bmxpc3Quc2l6ZX0i
CisgICAgICAgIGVuZAorICAgICAgICAjIFJlZ2VuZXJhdGUgdGhlIGxpc3RzIG9mIHRlc3RzIHRv
IHJ1bgorICAgICAgICBwcmVwYXJlR251UGFyYWxsZWxUZXN0UnVubmVyKGNvbXBsZXRlZFRlc3Rz
KQorICAgICAgICAkc3RkZXJyLnB1dHMoIkFmdGVyIHRyeSAje2l0ZXJhdGlvbiArIDF9LyN7dHJp
ZXN9OiBnb3QgcmVzdWx0cyBmb3IgI3tjb21wbGV0ZWRUZXN0cy5zaXplfS8jeyRydW5saXN0LnNp
emV9IHRlc3RzLCAje3JlbW90ZUhvc3RzLnNpemV9LyN7JHJlbW90ZUhvc3RzLnNpemV9IGhvc3Rz
IGxpdmUiKQogICAgIH0KLSAgICB1bnBhY2tCdW5kbGVHbnVQYXJhbGxlbAotICAgIGlmICRyZW1v
dGVIb3N0cy5zaXplID09IDAKLSAgICAgICAgcmFpc2UgIkFsbCByZW1vdGUgaG9zdHMgZmFpbGVk
LCBnaXZpbmcgdXAiCi0gICAgZW5kCi0gICAgcnVuR251UGFyYWxsZWxSdW5uZXIoJHJ1bm5lckRp
ciArICJzZXJpYWwtdGVzdHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgIHsgOnBhcmFsbGVs
Sm9ic09uRWFjaEhvc3QgPT4gMX0pCi0gICAgcnVuR251UGFyYWxsZWxSdW5uZXIoJHJ1bm5lckRp
ciArICJwYXJhbGxlbC10ZXN0cyIpCi0gICAgZGV0ZWN0RmFpbHVyZXMKKyAgICBkZXRlY3RGYWls
dXJlcyhzdGF0dXNNYXApCiBlbmQKIAogcHV0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428619</attachid>
            <date>2021-05-14 07:21:59 -0700</date>
            <delta_ts>2021-05-27 04:49:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225803-20210514142157.patch</filename>
            <type>text/plain</type>
            <size>23586</size>
            <attacher name="Angelos Oikonomopoulos">angelos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWE0ZjMxYjRjNmMwMDk2NzVjNzY2MzA5NDRmNTc1ODUw
OGZiODdlNS4uN2Y2NjQxOTQ1MzExNDU4NGRmMmY1MTJjMmI3ZmJmOTU3YTJjMWUxMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIxLTA1LTE0ICBBbmdlbG9zIE9pa29ub21vcG91bG9zICA8YW5nZWxvc0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBoaWdoLWxldmVsIHJldHJ5IGxvb3AgZm9y
IHJ1bi1qc2Mtc3RyZXNzLXRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjU4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOb3cgdGhhdCB3ZSBoYXZlIGluZm9ybWF0aW9uIG9uIHdoaWNoIHRlc3Rz
IHByb2R1Y2VkIGEgcmVzdWx0IGFuZAorICAgICAgICB3aGljaCB0ZXN0cyB3ZXJlIG5ldmVyIGhl
YXJkIG9mLCBpbnRyb2R1Y2UgcmV0cnkgbG9naWMgZm9yIHRoZQorICAgICAgICBpbmNvbXBsZXRl
IHRlc3RzLiBUaGlzIHNob3VsZCBvbmx5IG1vZGlmeSB0aGUgYmVoYXZpb3Igd2hlbiB1c2luZwor
ICAgICAgICAtLWdudS1wYXJhbGxlbC1ydW5uZXIuCisKKyAgICAgICAgVGhlIGlzc3VlIGhlcmUg
aXMgdGhhdCB0aGUgTUlQUyBib2FyZHMgY3VycmVudGx5IGluIHVzZSBmb3IgSlNDCisgICAgICAg
IHRlc3Rpbmcgcm91dGluZWx5IGNyYXNoIGFuZCwgb2Z0ZW4gZW5vdWdoLCBlbmQgdXAgd2l0aCBm
aWxlc3lzdGVtCisgICAgICAgIGNvcnJ1cHRpb24gYW5kIG5lZWQgdG8gaGF2ZSB0aGVpciBSL1cg
c3RvcmFnZSByZWluaXRpYWxpemVkLgorCisgICAgICAgIFdvcmsgYXJvdW5kIHRoaXMgYnkgcmUt
ZXhlY3V0aW5nIHRoZSB0ZXN0cyB0aGF0IHdlIHdlcmVuJ3QgYWJsZSB0byBnZXQKKyAgICAgICAg
YSByZXN1bHQgZm9yLiBXaGVuIHNvbWUgdGVzdHMgZmFpbGVkIHRvIGNvbXBsZXRlLCBnbyB0aHJv
dWdoIHRoZQorICAgICAgICBwcm9jZXNzIG9mIHJlbW90ZSBpbml0aWxpemF0aW9uIChjb3B5aW5n
IG92ZXIgYW5kIHVucGFja2luZyB0aGUKKyAgICAgICAgYnVuZGxlKSBmcm9tIHNjcmF0Y2gsIHNv
IHRoYXQgcmVtb3RlcyB0aGF0IGhhZCB0aGVpciByZW1vdGVEaXJlY3RvcnkKKyAgICAgICAgd2lw
ZWQgd2lsbCBnZXQgYmFjayBpbnRvIHBsYXkuCisKKyAgICAgICAgVG8gbWFrZSB0aGlzIG1vcmUg
ZWZmaWNpZW50LCBpbnRyb2R1Y2UgaW4tYmFuZCBzaWduYWxpbmcgdG8gbGV0CisgICAgICAgIHJ1
bi1qc2Mtc3RyZXNzLXRlc3RzIGtub3cgdGhhdCBhIHJlbW90ZSBsb3N0IGl0cyBzdGF0ZS4gSW4g
cmVzcG9uc2UsCisgICAgICAgIHdlIGtpbGwgdGhlIEdOVSBwYXJhbGxlbCBwcm9jZXNzIGFuZCBy
ZS1pbml0aWFsaXplIGFsbCBib2FyZHMuIFRoaXMKKyAgICAgICAgaGVscHMgZm9yIGJ1aWxkYm90
IHdvcmtlcnMgdGhhdCBvbmx5IGhhdmUgYSBmZXcgcmVtb3RlIGJvYXJkcyBhc3NpZ25lZAorICAg
ICAgICBhbmQgYXBwYXJlbnRseSBhbHNvIHdvcmtzIGFyb3VuZCBhIGJ1ZyBpbiBHTlUgcGFyYWxs
ZWwgMjAxNjEyMjIKKyAgICAgICAgKGN1cnJlbnRseSB0aGUgbW9zdCB3aWRlbHkgZGVwbG95ZWQg
dmVyc2lvbikgd2hpY2ggY2F1c2VzIGl0IHRvIHJ1bgorICAgICAgICBvdXQgb2Ygb3BlbiBmaWxl
cyBhbmQgZ2V0IHN0dWNrIGluIGEgYnVzeSBsb29wLgorCisgICAgICAgIFdoaWxlIGhlcmUsIG1h
a2UgcnVuLWpzYy1zdHJlc3MtdGVzdHMgbW9yZSByb2J1c3QgYWdhaW5zdCBjb3JydXB0ZWQKKyAg
ICAgICAgc3RhdHVzIGZpbGVzLCBpLmUuIGlnbm9yZSBlbXB0eSBvbmVzIChvYnNlcnZlZCBpbiBw
cmFjdGljZSkgYW5kIHVzZSBhCisgICAgICAgIHJlZ2V4IHRvIHZlcmlmeSB0aGUgY29udGVudHMg
b2Ygbm9uLWVtcHR5IHN0YXRlIGZpbGVzLgorCisgICAgICAgIEZvciBjb25zaXN0ZW5jeSwgdXNl
IHRoZSBzYW1lIGxvZ2ljIGZvciBwYXJzaW5nIHN0YXR1cyBmaWxlcyB3aGVuCisgICAgICAgIGRv
aW5nIGxvY2FsIHJ1bnMuCisKKyAgICAgICAgSW4gdGVzdGluZyB3aXRoIHR3byByZW1vdGVzLCBy
dW4tanNjLXN0cmVzcy10ZXN0cyB3YXMgYWJsZSB0byByZWNvdmVyCisgICAgICAgIGZyb20gZWl0
aGVyIG9uZSBvciBib3RoIG9mIGl0cyByZW1vdGVzIHJlYm9vdGluZyBhbmQgd2lwaW5nIHRoZWly
CisgICAgICAgIGxvY2FsIHN0b3JhZ2UgaW4gdGhlIG1pZGRsZSBvZiBhIHRlc3QgcnVuLgorCisg
ICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMS0wNS0xMSAgRGll
Z28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIGNvbXBv
c2l0aW5nL292ZXJmbG93L2R5bmFtaWMtY29tcG9zaXRlZC1zY3JvbGxpbmctc3RhdHVzLmh0bWwg
aXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggZDNmN2ExMGI3YTVh
ZmM4YTg2MDY1OTBmMmQ5YjAxOWJjYmExZGJlYS4uMmEwYmYwMzVlMzkxNjk1NjlkZTdlMjZiMjIx
OWFjZWI3OGEzNTc1MCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10
ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC02MSw2ICs2
MSwxMiBAQCBTVEFUVVNfRklMRV9QUkVGSVggPSAidGVzdF9zdGF0dXNfIgogU1RBVFVTX0ZJTEVf
UEFTUyA9ICJQIgogU1RBVFVTX0ZJTEVfRkFJTCA9ICJGIgogCisjIFRoZXJlIGFyZSBhbGwgcmFu
ZG9tIGFuZCBhZGVxdWF0ZWx5IGxhcmdlIHRvIGJlIHVubGlrZWx5IHRvIGFwcGVhcgorIyBpbiBw
cmFjdGljZSwgZXhjZXB0IGFzIHVzZWQgaW4gdGhpcyBmaWxlLgorUEFSQUxMRUxfUkVNT1RFX1dS
QVBQRVJfTUFSS19CRUdJTiA9ICI1ZDY1MzI5YmQxYTMiCitQQVJBTExFTF9SRU1PVEVfV1JBUFBF
Ul9NQVJLX0VORCA9ICJhOWFlYTVjM2I4NDMiCitQQVJBTExFTF9SRU1PVEVfU1RBVEVfTE9TVF9N
QVJLRVIgPSAiNzA5ZmI3YTc3YzQ1MjMxOTE4ZWIxMThhIgorCiBiZWdpbgogICAgIHJlcXVpcmUg
J3NoZWxsd29yZHMnCiByZXNjdWUgRXhjZXB0aW9uID0+IGUKQEAgLTIwNDUsMTEgKzIwNTEsOSBA
QCBkZWYgY2xlYW5SdW5uZXJEaXJlY3RvcnkKICAgICB9CiBlbmQKIAotZGVmIHNzaFJlYWQoY21k
LCByZW1vdGVJbmRleD0wLCBvcHRpb25zPXt9KQorZGVmIHNzaFJlYWQoY21kLCByZW1vdGVIb3N0
LCBvcHRpb25zPXt9KQogICAgIHJhaXNlIHVubGVzcyAkcmVtb3RlCiAKLSAgICByZW1vdGVIb3N0
ID0gJHJlbW90ZUhvc3RzW3JlbW90ZUluZGV4XQotCiAgICAgcmVzdWx0ID0gIiIKICAgICBJTy5w
b3Blbigic3NoIC1vIE5vSG9zdEF1dGhlbnRpY2F0aW9uRm9yTG9jYWxob3N0PXllcyAtcCAje3Jl
bW90ZUhvc3QucG9ydH0gI3tyZW1vdGVIb3N0LnVzZXJ9QCN7cmVtb3RlSG9zdC5ob3N0fSAnI3tj
bWR9JyIsICJyIikgewogICAgICAgfCBpbnAgfApAQCAtMjA2NCw3ICsyMDY4LDcgQEAgZW5kCiAK
IGRlZiBydW5Db21tYW5kT25UZXN0ZXIoY21kKQogICAgIGlmICRyZW1vdGUKLSAgICAgICAgcmVz
dWx0ID0gc3NoUmVhZChjbWQpCisgICAgICAgIHJlc3VsdCA9IHNzaFJlYWQoY21kLCAkcmVtb3Rl
SG9zdHNbMF0pCiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBgI3tjbWR9YAogICAgIGVuZApA
QCAtMjA5NSw2ICsyMDk5LDIxIEBAIGRlZiBudW1iZXJPZlByb2Nlc3NvcnMKICAgICByZXR1cm4g
bnVtUHJvY2Vzc29ycwogZW5kCiAKK2RlZiBydW5BbmRNb25pdG9yQ29tbWFuZE91dHB1dChjbWQs
ICZibGspCisgICAgY21kID0gY21kLmNvbGxlY3QgeyB8YXwKKyAgICAgICAgYS50b19zCisgICAg
fQorICAgIElPLnBvcGVuKGNtZCwgInIiKSB7CisgICAgICAgIHwgcCB8CisgICAgICAgIHAuZWFj
aF9saW5lIHsKKyAgICAgICAgICAgIHwgbGluZSB8CisgICAgICAgICAgICBibGsuY2FsbChwLnBp
ZCwgbGluZSkKKyAgICAgICAgICAgIHB1dHMobGluZSkKKyAgICAgICAgICAgICRzdGRvdXQuZmx1
c2gKKyAgICAgICAgfQorICAgIH0KK2VuZAorCiAkcnVubmVyRGlyTXV0ZXggPSBNdXRleC5uZXcK
IGRlZiBydW5BbmRNb25pdG9yVGVzdFJ1bm5lckNvbW1hbmQoY21kLCBvcHRpb25zPXt9KQogICAg
IG51bWJlck9mVGVzdHMgPSAwCkBAIC0yMTY3LDEwICsyMTg2LDkgQEAgZGVmIHJ1bkFuZE1vbml0
b3JUZXN0UnVubmVyQ29tbWFuZChjbWQsIG9wdGlvbnM9e30pCiAgICAgZW5kCiBlbmQKIAotZGVm
IGdldFJlbW90ZURpcmVjdG9yeUlmTmVlZGVkKHJlbW90ZUluZGV4KQotICAgIHJlbW90ZUhvc3Qg
PSAkcmVtb3RlSG9zdHNbcmVtb3RlSW5kZXhdCitkZWYgZ2V0UmVtb3RlRGlyZWN0b3J5SWZOZWVk
ZWQocmVtb3RlSG9zdCkKICAgICBpZiAhcmVtb3RlSG9zdC5yZW1vdGVEaXJlY3RvcnkKLSAgICAg
ICAgcmVtb3RlSG9zdC5yZW1vdGVEaXJlY3RvcnkgPSBKU09OOjpwYXJzZShzc2hSZWFkKCJjYXQg
fi8uYmVuY2hlciIsIHJlbW90ZUluZGV4KSlbInRlbXBQYXRoIl0KKyAgICAgICAgcmVtb3RlSG9z
dC5yZW1vdGVEaXJlY3RvcnkgPSBKU09OOjpwYXJzZShzc2hSZWFkKCJjYXQgfi8uYmVuY2hlciIs
IHJlbW90ZUhvc3QpKVsidGVtcFBhdGgiXQogICAgIGVuZAogZW5kCiAKQEAgLTIxODAsOCArMjE5
OCw4IEBAIGRlZiBjb3B5QnVuZGxlVG9SZW1vdGUocmVtb3RlSG9zdCkKIGVuZAogCiBkZWYgZXhw
b3J0QmFzZUVudmlyb25tZW50VmFyaWFibGVzCi0gICAgZHlsZEZyYW1ld29ya1BhdGggPSAiXFwk
KGNkICN7JHRlc3RpbmdGcmFtZXdvcmtQYXRoLmRpcm5hbWV9OyBwd2QpIgotICAgIGxkTGlicmFy
eVBhdGggPSAiXFwkKGNkICN7JHRlc3RpbmdGcmFtZXdvcmtQYXRoLmRpcm5hbWV9Ly4uOyBwd2Qp
LyN7JGpzY1BhdGguZGlybmFtZX0iCisgICAgZHlsZEZyYW1ld29ya1BhdGggPSAiXCQoY2QgI3sk
dGVzdGluZ0ZyYW1ld29ya1BhdGguZGlybmFtZX07IHB3ZCkiCisgICAgbGRMaWJyYXJ5UGF0aCA9
ICJcJChjZCAjeyR0ZXN0aW5nRnJhbWV3b3JrUGF0aC5kaXJuYW1lfS8uLjsgcHdkKS8jeyRqc2NQ
YXRoLmRpcm5hbWV9IgogICAgIFsKICAgICAgICAgImV4cG9ydCBEWUxEX0ZSQU1FV09SS19QQVRI
PSN7ZHlsZEZyYW1ld29ya1BhdGh9ICYmICIsCiAgICAgICAgICJleHBvcnQgTERfTElCUkFSWV9Q
QVRIPSN7bGRMaWJyYXJ5UGF0aH0gJiYiLApAQCAtMjE5NSw3ICsyMjEzLDcgQEAgZW5kCiBkZWYg
cnVuVGVzdFJ1bm5lcihyZW1vdGVJbmRleD0wKQogICAgIGlmICRyZW1vdGUKICAgICAgICAgcmVt
b3RlSG9zdCA9ICRyZW1vdGVIb3N0c1tyZW1vdGVJbmRleF0KLSAgICAgICAgZ2V0UmVtb3RlRGly
ZWN0b3J5SWZOZWVkZWQocmVtb3RlSW5kZXgpCisgICAgICAgIGdldFJlbW90ZURpcmVjdG9yeUlm
TmVlZGVkKHJlbW90ZUhvc3QpCiAgICAgICAgIGNvcHlCdW5kbGVUb1JlbW90ZShyZW1vdGVIb3N0
KQogICAgICAgICByZW1vdGVTY3JpcHQgPSAiXCIiCiAgICAgICAgIHJlbW90ZVNjcmlwdCArPSAi
Y2QgI3tyZW1vdGVIb3N0LnJlbW90ZURpcmVjdG9yeX0gJiYgIgpAQCAtMjIxMyw4MCArMjIzMSw5
OCBAQCBkZWYgcnVuVGVzdFJ1bm5lcihyZW1vdGVJbmRleD0wKQogICAgIGVuZAogZW5kCiAKLWRl
ZiBnZXRTdGF0dXNNYXAKLSAgICBuYW1lX3JlID0gL15bLl1cLyN7U1RBVFVTX0ZJTEVfUFJFRklY
fShcZCspJC8KLSAgICBtYXAgPSB7fQorU1RBVFVTX1JFID0gL15bLl1cLyN7U1RBVFVTX0ZJTEVf
UFJFRklYfSg/PGluZGV4PlxkKylccyg/PHJ1bklkPlxoKylccyg/PGV4aXRDb2RlPlxkKylccyg/
PHJlc3VsdD4je1NUQVRVU19GSUxFX1BBU1N9fCN7U1RBVFVTX0ZJTEVfRkFJTH0pJC8KKworZGVm
IHByb2Nlc3NTdGF0dXNMaW5lKG1hcCwgbGluZSkKKyAgICBtZCA9IFNUQVRVU19SRS5tYXRjaChs
aW5lKQorICAgIGlmIG1kLm5pbD8KKyAgICAgICAgJHN0ZGVyci5wdXRzKCJDb3VsZCBub3QgcGFy
c2UgbGluZSBgI3tsaW5lfWAiKQorICAgICAgICBleGl0KDEpCisgICAgZW5kCisgICAgaW5kZXgg
PSBtZFs6aW5kZXhdLnRvX2kKKyAgICBydW5JZCA9IG1kWzpydW5JZF0KKyAgICByZXN1bHQgPSBt
ZFs6cmVzdWx0XQorICAgIGlmIHJ1bklkICE9ICRydW5VbmlxdWVJZAorICAgICAgICAjIFRoaXMg
bWF5IGNvbmNlaXZhYmx5IGhhcHBlbiBpZiBhIHJlbW90ZSBnb2VzCisgICAgICAgICMgYXdheSBp
biB0aGUgbWlkZGxlIG9mIGEgcnVuIGFuZCBjb21lcyBiYWNrCisgICAgICAgICMgb25saW5lIGlu
IHRoZSBtaWRkbGUgb2YgYSBkaWZmZXJlbnQgcnVuLgorICAgICAgICAkc3RkZXJyLnB1dHMoIkln
bm9yaW5nIHN0YWxlIHN0YXR1cyBmaWxlIGZvciAje2luZGV4fSAoSUQgI3tydW5JZH0gYnV0IGN1
cnJlbnQgSUQgaXMgI3skcnVuVW5pcXVlSWR9KSIpCisgICAgICAgIHJldHVybgorICAgIGVuZAor
ICAgIGlmIG1hcC5oYXNfa2V5PyhpbmRleCkKKyAgICAgICAgIyBPbmUgc2NlbmFyaW8gaW4gd2hp
Y2ggdGhpcyBjb3VsZCBoYXBwZW46CisgICAgICAgICMgVGVzdCBUIHJ1bnMgb24gcmVtb3RlIGhv
c3QgQSBhbmQKKyAgICAgICAgIyAgIDEuIHRoZSBzdGF0dXMgZmlsZSByZWFjaGVzIEEncyBkaXNr
CisgICAgICAgICMgICAyLiBzb21laG93IHRoZSBnbnUgcGFyYWxsZWwgcnVubmVyIGlzIG5vdCBt
YWRlIGF3YXJlIG9mIHRoZSB0ZXN0J3MgY29tcGxldGlvbiAocGFja2V0IGxvc3M/KQorICAgICAg
ICAjICAgMy4gbWFjaGluZSBBIGNyYXNoZXMKKyAgICAgICAgIyAgIDQuIGdudSBwYXJhbGxlbCBy
ZS1zY2hlZHVsZXMgdGhlIHRlc3QgdG8gcnVuIG9uIHJlbW90ZSBob3N0IEIsIHdoZXJlIGl0IHJ1
bnMgdG8gY29tcGxldGlvbgorICAgICAgICAjICAgNS4gQiBjb21lcyBiYWNrIG9ubGluZSBiZWZv
cmUgdGhlIGVuZCBvZiB0aGUgcnVuCisgICAgICAgICMgICA2LiB3ZSBjb2xsZWN0IHRoZSBzdGF0
dXMgZmlsZXMgZnJvbSBhbGwgcmVtb3RlcyBhbmQgZW5kIHVwIHdpdGggdHdvIHN0YXR1cyBmaWxl
cyBmb3IgVC4KKyAgICAgICAgcHJldiA9IG1hcFtpbmRleF0KKyAgICAgICAgIyBtYXBbaW5kZXhd
IGhvbGRzCisgICAgICAgICMgLSBhIG51bWJlciwgaWYgYWxsIHJlc3VsdHMgY29kZXMgd2UndmUg
b2JzZXJ2ZWQgZm9yIGEgdGVzdCBhcmUgdGhlIHNhbWUKKyAgICAgICAgIyAtIGFuIGFycmF5LCBp
ZiB0aGV5IGRpdmVyZ2UuCisgICAgICAgIGlmIHByZXYuaXNfYT8oQXJyYXkpCisgICAgICAgICAg
ICBwcmV2LnB1c2gocmVzdWx0KQorICAgICAgICBlbHNpZiBwcmV2ICE9IHJlc3VsdAorICAgICAg
ICAgICAgIyBJZiB0aGUgdHdvIHJlc3VsdHMgZGlmZmVyLCBrZWVwIHRoZW0KKyAgICAgICAgICAg
ICMgYm90aC4gVGhpcyBpcyBzaW1wbHkgYSB3YXkgdG8gbWFrZSBub3RlIG9mCisgICAgICAgICAg
ICAjIHRoZSBkaXZlcmdlbmNlIChmb3IgbGF0ZXIgcmVwb3J0aW5nKS4KKyAgICAgICAgICAgIG1h
cFtpbmRleF0gPSBbcHJldiwgcmVzdWx0XQorICAgICAgICBlbHNlCisgICAgICAgICAgICAjIEdv
dCB0aGUgc2FtZSByZXN1bHQsIG5vIG5lZWQgdG8gZG8gYW55dGhpbmcuCisgICAgICAgIGVuZAor
ICAgICAgICAkc3RkZXJyLnB1dHMoIkR1cGxpY2F0ZSBzdGF0ZSBmaWxlIGZvciAje2luZGV4fTog
I3ttYXBbaW5kZXhdfSIpCisgICAgZWxzZQorICAgICAgICBtYXBbaW5kZXhdID0gcmVzdWx0Cisg
ICAgZW5kCitlbmQKKworZGVmIGdldFN0YXR1c01hcChtYXA9e30pCisgICAgZmluZF9jbWQgPSAi
ZmluZCAuIC1tYXhkZXB0aCAxIC1uYW1lIFwiI3tTVEFUVVNfRklMRV9QUkVGSVh9KlwiIC1hIC1z
aXplICswYyAtZXhlYyBzaCAtYyBcInByaW50ZiBcXFwiJXMgXFxcIiB7fTsgY2F0IHt9XCIgXFw7
IgogICAgIGlmICRyZW1vdGUKKyAgICAgICAgIyBOb3RlOiBoZXJlIHdlJ3JlIHVzaW5nICRyZW1v
dGVIb3N0cyAoaW5zdGVhZCBvZiBnZXR0aW5nIHRoZQorICAgICAgICAjIGxpc3Qgb2YgbGl2ZSBy
ZW1vdGVIb3N0cyBmcm9tIHRoZSBjYWxsZXIsIGJlY2F1c2UgdGhlcmUgbWF5CisgICAgICAgICMg
d2VsbCBiZSB0ZXN0IHJlc3VsdHMgb24gYSByZW1vdGVIb3N0IHRoYXQgZ290IHJlYm9vdGVkCisg
ICAgICAgICMgKG5vdGUsIHRoZSB0ZXN0IHJlc3VsdHMgYXJlIHRhZ2dlZCB3aXRoIGEgcnVuIElE
LCBzbyB3ZSdsbAorICAgICAgICAjIGlnbm9yZSBhbnkgc3RhbGUgcmVzdWx0cyBmcm9tIGEgcHJl
dmlvdXMgcnVuKS4KICAgICAgICAgJHJlbW90ZUhvc3RzLmVhY2hfd2l0aF9pbmRleCB7CiAgICAg
ICAgICAgICB8IGhvc3QsIHJlbW90ZUluZGV4IHwKLSAgICAgICAgICAgIG91dHB1dCA9IHNzaFJl
YWQoImNkICN7aG9zdC5yZW1vdGVEaXJlY3Rvcnl9LyN7JG91dHB1dERpci5iYXNlbmFtZX0vLnJ1
bm5lciAmJiBmaW5kIC4gLW1heGRlcHRoIDEgLW5hbWUgXCIje1NUQVRVU19GSUxFX1BSRUZJWH0q
XCIgLWV4ZWMgc2ggLWMgXCJwcmludGYgXFxcIiVzIFxcXCIge307IGNhdCB7fVwiIFxcOyIsIHJl
bW90ZUluZGV4LCA6aWdub3JlRmFpbHVyZSA9PiB0cnVlKQorICAgICAgICAgICAgcnVubmVyRGly
ID0gIiN7aG9zdC5yZW1vdGVEaXJlY3Rvcnl9LyN7JG91dHB1dERpci5iYXNlbmFtZX0vLnJ1bm5l
ciIKKyAgICAgICAgICAgIG91dHB1dCA9IHNzaFJlYWQoImlmIHRlc3QgLWQgI3tydW5uZXJEaXJ9
OyB0aGVuIGNkICN7cnVubmVyRGlyfTsgZWxzZSBmYWxzZTsgZmkgJiYgIiArIGZpbmRfY21kLCBo
b3N0LCA6aWdub3JlRmFpbHVyZSA9PiB0cnVlKQogICAgICAgICAgICAgb3V0cHV0LnNwbGl0KC9c
bi8pLmVhY2ggewogICAgICAgICAgICAgICAgIHwgbGluZSB8Ci0gICAgICAgICAgICAgICAgbmFt
ZSwgcnVuX2lkLCBfLCByZXN1bHQgPSBsaW5lLnNwbGl0KCcgJykKLSAgICAgICAgICAgICAgICBt
ZCA9IG5hbWVfcmUubWF0Y2gobmFtZSkKLSAgICAgICAgICAgICAgICBpZiBtZC5uaWw/Ci0gICAg
ICAgICAgICAgICAgICAgICRzdGRlcnIucHV0cygiQ291bGQgbm90IHBhcnNlIG5hbWUgaW4gYCN7
bGluZX1gIikKLSAgICAgICAgICAgICAgICAgICAgZXhpdCgxKQotICAgICAgICAgICAgICAgIGVu
ZAotICAgICAgICAgICAgICAgIGlmIHJ1bl9pZCAhPSAkcnVuVW5pcXVlSWQKLSAgICAgICAgICAg
ICAgICAgICAgIyBUaGlzIG1heSBjb25jZWl2YWJseSBoYXBwZW4gaWYgYSByZW1vdGUgZ29lcwot
ICAgICAgICAgICAgICAgICAgICAjIGF3YXkgaW4gdGhlIG1pZGRsZSBvZiBhIHJ1biBhbmQgY29t
ZXMgYmFjawotICAgICAgICAgICAgICAgICAgICAjIG9ubGluZSBpbiB0aGUgbWlkZGxlIG9mIGEg
ZGlmZmVyZW50IHJ1bi4KLSAgICAgICAgICAgICAgICAgICAgJHN0ZGVyci5wdXRzKCJJZ25vcmlu
ZyBzdGFsZSBzdGF0dXMgZmlsZSBmb3IgI3tuYW1lfSAoSUQgI3tydW5faWR9IGJ1dCBjdXJyZW50
IElEIGlzICN7JHJ1blVuaXF1ZUlkfSkiKQotICAgICAgICAgICAgICAgICAgICBuZXh0Ci0gICAg
ICAgICAgICAgICAgZW5kCi0gICAgICAgICAgICAgICAgaW5kZXggPSBtZFsxXS50b19pCi0gICAg
ICAgICAgICAgICAgaWYgbWFwLmhhc19rZXk/KGluZGV4KQotICAgICAgICAgICAgICAgICAgICAk
c3RkZXJyLnB1dHMoIkR1cGxpY2F0ZSBzdGF0ZSBmaWxlIGZvciAje2luZGV4fSIpCi0gICAgICAg
ICAgICAgICAgICAgICMgT25lIHNjZW5hcmlvIGluIHdoaWNoIHRoaXMgY291bGQgaGFwcGVuOgot
ICAgICAgICAgICAgICAgICAgICAjIFRlc3QgVCBydW5zIG9uIHJlbW90ZSBob3N0IEEgYW5kCi0g
ICAgICAgICAgICAgICAgICAgICMgICAxLiB0aGUgc3RhdHVzIGZpbGUgcmVhY2hlcyBBJ3MgZGlz
awotICAgICAgICAgICAgICAgICAgICAjICAgMi4gc29tZWhvdyB0aGUgZ251IHBhcmFsbGVsIHJ1
bm5lciBpcyBub3QgbWFkZSBhd2FyZSBvZiB0aGUgdGVzdCdzIGNvbXBsZXRpb24gKHBhY2tldCBs
b3NzPykKLSAgICAgICAgICAgICAgICAgICAgIyAgIDMuIEEgbWFjaGluZSBjcmFzaGVzCi0gICAg
ICAgICAgICAgICAgICAgICMgICA0LiBnbnUgcGFyYWxsZWwgcmUtc2NoZWR1bGVzIHRoZSB0ZXN0
IHRvIHJ1biBvbiByZW1vdGUgaG9zdCBCLCB3aGVyZSBpdCBydW5zIHRvIGNvbXBsZXRpb24KLSAg
ICAgICAgICAgICAgICAgICAgIyAgIDUuIEIgY29tZXMgYmFjayBvbmxpbmUgYmVmb3JlIHRoZSBl
bmQgb2YgdGhlIHJ1bgotICAgICAgICAgICAgICAgICAgICAjICAgNi4gd2UgY29sbGVjdCB0aGUg
c3RhdHVzIGZpbGVzIGZyb20gYWxsIHJlbW90ZXMgYW5kIGVuZCB1cCB3aXRoIHR3byBzdGF0dXMg
ZmlsZXMgZm9yIFQuCi0gICAgICAgICAgICAgICAgICAgIHByZXYgPSBtYXBbaW5kZXhdCi0gICAg
ICAgICAgICAgICAgICAgICMgbWFwW2luZGV4XSBob2xkcwotICAgICAgICAgICAgICAgICAgICAj
IC0gYSBudW1iZXIsIGlmIGFsbCByZXN1bHRzIGNvZGVzIHdlJ3ZlIG9ic2VydmVkIGZvciBhIHRl
c3QgYXJlIHRoZSBzYW1lCi0gICAgICAgICAgICAgICAgICAgICMgLSBhbiBhcnJheSwgaWYgdGhl
eSBkaXZlcmdlLgotICAgICAgICAgICAgICAgICAgICBpZiBwcmV2LmlzX2E/KEFycmF5KQotICAg
ICAgICAgICAgICAgICAgICAgICAgcHJldi5wdXNoKHJlc3VsdCkKLSAgICAgICAgICAgICAgICAg
ICAgZWxzaWYgcHJldiAhPSByZXN1bHQKLSAgICAgICAgICAgICAgICAgICAgICAgICMgSWYgdGhl
IHR3byByZXN1bHRzIGRpZmZlciwga2VlcCB0aGVtCi0gICAgICAgICAgICAgICAgICAgICAgICAj
IGJvdGguIFRoaXMgaXMgc2ltcGx5IGEgd2F5IHRvIG1ha2Ugbm90ZSBvZgotICAgICAgICAgICAg
ICAgICAgICAgICAgIyB0aGUgZGl2ZXJnZW5jZSAoZm9yIGxhdGVyIHJlcG9ydGluZykuCi0gICAg
ICAgICAgICAgICAgICAgICAgICBtYXBbaW5kZXhdID0gW3ByZXYsIHJlc3VsdF0KLSAgICAgICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgIyBHb3QgdGhlIHNhbWUg
cmVzdWx0LCBubyBuZWVkIHRvIGRvIGFueXRoaW5nLgotICAgICAgICAgICAgICAgICAgICBlbmQK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG1hcFtpbmRleF0gPSBy
ZXN1bHQKLSAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBwcm9jZXNzU3RhdHVz
TGluZShtYXAsIGxpbmUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBlbHNlCi0gICAg
ICAgIERpci5mb3JlYWNoKCRydW5uZXJEaXIpIHsKLSAgICAgICAgICAgIHwgZmlsZW5hbWUgfAot
ICAgICAgICAgICAgbWQgPSBuYW1lX3JlLm1hdGNoKCIuLyN7ZmlsZW5hbWV9IikKLSAgICAgICAg
ICAgIG5leHQgdW5sZXNzIG1kCi0gICAgICAgICAgICBGaWxlLm9wZW4oIiN7JHJ1bm5lckRpcn0v
I3tmaWxlbmFtZX0iLCAiciIpIHsgfGZ8Ci0gICAgICAgICAgICAgICAgcnVuSWQsIF8sIHJlc3Vs
dCA9IGYucmVhZC5jaG9tcC5zcGxpdCgnICcpCi0gICAgICAgICAgICAgICAgaWYgcnVuSWQgIT0g
JHJ1blVuaXF1ZUlkCi0gICAgICAgICAgICAgICAgICAgICMgV2UgY2xlYW4gdGhlIGRpciBiZWZv
cmUgYSBzdGFydGluZyBhIHJ1bi4KLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgIkNhbid0IGhh
cHBlbiIKLSAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgICAgICBtYXBbbWRbMV0udG9f
aV0gPSByZXN1bHQKKyAgICAgICAgRGlyLmNoZGlyKCRydW5uZXJEaXIpIHsKKyAgICAgICAgICAg
IElPLnBvcGVuKGZpbmRfY21kKS5lYWNoX2xpbmUgeworICAgICAgICAgICAgICAgIHwgbGluZSB8
CisgICAgICAgICAgICAgICAgcHJvY2Vzc1N0YXR1c0xpbmUobWFwLCBsaW5lKQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgZW5kCiAgICAgbWFwCiBlbmQKIAotZGVmIGRldGVjdEZhaWx1
cmVzCitkZWYgZ2V0Q29tcGxldGVkVGVzdHNGcm9tU3RhdHVzTWFwKHN0YXR1c01hcCkKKyAgICBj
b21wbGV0ZWRUZXN0cyA9IHt9CisgICAgJHJ1bmxpc3QuZWFjaF93aXRoX2luZGV4IHsKKyAgICAg
ICAgfCBwbGFuLCBpbmRleCB8CisgICAgICAgIGlmIHN0YXR1c01hcC5oYXNfa2V5PyhpbmRleCkK
KyAgICAgICAgICAgIGNvbXBsZXRlZFRlc3RzW3BsYW5dID0gbmlsCisgICAgICAgIGVuZAorICAg
IH0KKyAgICBjb21wbGV0ZWRUZXN0cworZW5kCisKK2RlZiBkZXRlY3RGYWlsdXJlcyhzdGF0dXNN
YXA9e30pCiAgICAgcmFpc2UgaWYgJGJ1bmRsZQogICAgIG5vcmVzdWx0ID0gMAotICAgIHN0YXR1
c01hcCA9IGdldFN0YXR1c01hcAorICAgIGlmIHN0YXR1c01hcC5zaXplID09IDAKKyAgICAgICAg
c3RhdHVzTWFwID0gZ2V0U3RhdHVzTWFwCisgICAgZW5kCiAgICAgZmFtaWx5TWFwID0ge30KIAog
ICAgICRydW5saXN0LmVhY2hfd2l0aF9pbmRleCB7CkBAIC0yMjk0LDIxICsyMzMwLDI2IEBAIGRl
ZiBkZXRlY3RGYWlsdXJlcwogICAgICAgICB1bmxlc3MgZmFtaWx5TWFwW3BsYW4uZmFtaWx5XQog
ICAgICAgICAgICAgZmFtaWx5TWFwW3BsYW4uZmFtaWx5XSA9IFtdCiAgICAgICAgIGVuZAotICAg
ICAgICBpZiBub3Qgc3RhdHVzTWFwLmhhc19rZXk/KGluZGV4KSBvciBzdGF0dXNNYXBbaW5kZXhd
LmlzX2E/KEFycmF5KQorICAgICAgICBpZiBub3Qgc3RhdHVzTWFwLmhhc19rZXk/KGluZGV4KQog
ICAgICAgICAgICAgYXBwZW5kTm9SZXN1bHQocGxhbikKICAgICAgICAgICAgIG5vcmVzdWx0ICs9
IDEKICAgICAgICAgICAgIG5leHQKICAgICAgICAgZW5kCiAgICAgICAgIHJlc3VsdCA9IG5pbAot
ICAgICAgICBpZiBzdGF0dXNNYXBbaW5kZXhdID09IFNUQVRVU19GSUxFX1BBU1MKKyAgICAgICAg
IyBJZiBhbnkgb2YgdGhlIHJlc3VsdHMgd2UgZ290IHdhcyBhIHBhc3MsIGNvbnNpZGVyIHRoZSB0
ZXN0CisgICAgICAgICMgc3VjY2Vzc2Z1bC4gVGhlIGFzc3VtcHRpb24gaGVyZSBpcyB0aGF0IGZh
aWx1cmVzIGFyZSBiZWNhdXNlCisgICAgICAgICMgb2YgaW5mcmFzdHJ1Y3R1cmUgaXNzdWVzICh3
aGljaCBpcyB3aHkgdGhlIHRlc3Qgd2FzIHJ1bgorICAgICAgICAjIG11bHRpcGxlIHRpbWVzIGlu
IHRoZSBmaXJzdCBwbGFjZSkuCisgICAgICAgIHRlc3RXYXNTdWNjZXNzZnVsID0gc3RhdHVzTWFw
W2luZGV4XS5pbmNsdWRlPyhTVEFUVVNfRklMRV9QQVNTKQorICAgICAgICBpZiB0ZXN0V2FzU3Vj
Y2Vzc2Z1bAogICAgICAgICAgICAgYXBwZW5kUGFzcyhwbGFuKQogICAgICAgICAgICAgcmVzdWx0
ID0gIlBBU1MiCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGFwcGVuZEZhaWx1cmUocGxhbikK
ICAgICAgICAgICAgIHJlc3VsdCA9ICJGQUlMIgogICAgICAgICBlbmQKLSAgICAgICAgYXBwZW5k
UmVzdWx0KHBsYW4sIHN0YXR1c01hcFtpbmRleF0gPT0gU1RBVFVTX0ZJTEVfUEFTUykKLSAgICAg
ICAgZmFtaWx5TWFwW3BsYW4uZmFtaWx5XSA8PCB7OnJlc3VsdCA9PiByZXN1bHQsIDpwbGFuID0+
IHBsYW4gfQorICAgICAgICBhcHBlbmRSZXN1bHQocGxhbiwgdGVzdFdhc1N1Y2Nlc3NmdWwpCisg
ICAgICAgIGZhbWlseU1hcFtwbGFuLmZhbWlseV0gPDwgeyA6cmVzdWx0ID0+IHJlc3VsdCwgOnBs
YW4gPT4gcGxhbiB9CiAgICAgfQogCiAgICAgaWYgbm9yZXN1bHQgPiAwCkBAIC0yNDMyLDM2ICsy
NDczLDM0IEBAIGRlZiBydW5UYXJiYWxsCiAgICAgY29tcHJlc3NCdW5kbGUKIGVuZAogCi1kZWYg
Zm9yRWFjaFJlbW90ZShvcHRpb25zPXt9LCAmYmxrKQorZGVmIGZvckVhY2hSZW1vdGUocmVtb3Rl
SG9zdHMsIG9wdGlvbnM9e30sICZibGspCiAgICAgdGhyZWFkcyA9IFtdCi0gICAgJHJlbW90ZUhv
c3RzLmVhY2hfaW5kZXggeworICAgIHJlbW90ZUhvc3RzLmVhY2hfaW5kZXggewogICAgICAgICB8
IGluZGV4IHwKLSAgICAgICAgcmVtb3RlSG9zdCA9ICRyZW1vdGVIb3N0c1tpbmRleF0KKyAgICAg
ICAgcmVtb3RlSG9zdCA9IHJlbW90ZUhvc3RzW2luZGV4XQogICAgICAgICB0aHJlYWRzIDw8IFRo
cmVhZC5uZXcgewogICAgICAgICAgICAgYmxrLmNhbGwoaW5kZXgsIHJlbW90ZUhvc3QpCiAgICAg
ICAgIH0KICAgICB9Ci0gICAgZmFpbGVkUmVtb3RlcyA9IFtdCisKKyAgICBsaXZlUmVtb3RlcyA9
IFtdCiAgICAgdGhyZWFkcy5lYWNoX2luZGV4IHsKICAgICAgICAgfCBpbmRleCB8CiAgICAgICAg
IHRocmVhZCA9IHRocmVhZHNbaW5kZXhdCiAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICB0aHJl
YWQuam9pbgorICAgICAgICAgICAgbGl2ZVJlbW90ZXMgPDwgcmVtb3RlSG9zdHNbaW5kZXhdCiAg
ICAgICAgIHJlc2N1ZSBDb21tYW5kRXhlY3V0aW9uRmFpbGVkCiAgICAgICAgICAgICBpZiBvcHRp
b25zWzpkcm9wT25GYWlsdXJlXQotICAgICAgICAgICAgICAgIGZhaWxlZFJlbW90ZXMgPDwgaW5k
ZXgKKyAgICAgICAgICAgICAgICBpZiAkdmVyYm9zaXR5ID4gMAorICAgICAgICAgICAgICAgICAg
ICAkc3RkZXJyLnB1dHMoIkRyb3BwaW5nIGZhaWxlZCByZW1vdGUgI3tyZW1vdGVIb3N0c1tpbmRl
eF19IikKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICByYWlzZQogICAgICAgICAgICAgZW5kCiAgICAgICAgIGVuZAogICAgIH0KLSAgICBmYWls
ZWRSZW1vdGVzLnJldmVyc2UuZWFjaCB7Ci0gICAgICAgIHwgaW5kZXggfAotICAgICAgICBpZiAk
dmVyYm9zaXR5ID4gMAotICAgICAgICAgICAgJHN0ZGVyci5wdXRzKCJEcm9wcGluZyBmYWlsZWQg
cmVtb3RlICN7JHJlbW90ZUhvc3RzW2luZGV4XX0iKQotICAgICAgICBlbmQKLSAgICAgICAgJHJl
bW90ZUhvc3RzLmRlbGV0ZV9hdChpbmRleCkKLSAgICB9CisgICAgbGl2ZVJlbW90ZXMKIGVuZAog
CiBkZWYgcnVuUmVtb3RlCkBAIC0yNDczLDcgKzI1MTIsNyBAQCBkZWYgcnVuUmVtb3RlCiAgICAg
ICAgIHByZXBhcmVUZXN0UnVubmVyKGluZGV4KQogICAgIH0KICAgICBjb21wcmVzc0J1bmRsZQot
ICAgIGZvckVhY2hSZW1vdGUgeworICAgIGZvckVhY2hSZW1vdGUoJHJlbW90ZUhvc3RzKSB7CiAg
ICAgICAgIHwgaW5kZXggfAogICAgICAgICBydW5UZXN0UnVubmVyKGluZGV4KQogICAgIH0KQEAg
LTI0OTYsMTEgKzI1MzUsMTEgQEAgZGVmIHByZXBhcmVHbnVQYXJhbGxlbFJ1bm5lckpvYnMobmFt
ZSwgcnVubGlzdCwgZXhjbHVkZSkKICAgICB9CiBlbmQKIAotZGVmIHByZXBhcmVHbnVQYXJhbGxl
bFRlc3RSdW5uZXIKK2RlZiBwcmVwYXJlR251UGFyYWxsZWxUZXN0UnVubmVyKGV4Y2x1ZGU9e30p
CiAgICAgc2VyaWFsVGVzdHMgPSB7fQogICAgICRzZXJpYWxSdW5saXN0LmVhY2ggeyB8cHwgc2Vy
aWFsVGVzdHNbcF0gPSBuaWwgfQotICAgIHByZXBhcmVHbnVQYXJhbGxlbFJ1bm5lckpvYnMoInBh
cmFsbGVsLXRlc3RzIiwgJHJ1bmxpc3QsIHNlcmlhbFRlc3RzKQotICAgIHByZXBhcmVHbnVQYXJh
bGxlbFJ1bm5lckpvYnMoInNlcmlhbC10ZXN0cyIsICRzZXJpYWxSdW5saXN0LCB7fSkKKyAgICBw
cmVwYXJlR251UGFyYWxsZWxSdW5uZXJKb2JzKCJwYXJhbGxlbC10ZXN0cyIsICRydW5saXN0LCBl
eGNsdWRlLm1lcmdlKHNlcmlhbFRlc3RzKSkKKyAgICBwcmVwYXJlR251UGFyYWxsZWxSdW5uZXJK
b2JzKCJzZXJpYWwtdGVzdHMiLCAkc2VyaWFsUnVubGlzdCwgZXhjbHVkZSkKIGVuZAogCiBkZWYg
d2l0aEdudVBhcmFsbGVsU3NoV3JhcHBlcigmYmxrKQpAQCAtMjUyOSw3ICsyNTY4LDcgQEAgZmkK
IHNoaWZ0CiBFT0YKICAgICAgICAgd3JhcHBlci5wdXRzKGhlYWQgKwotICAgICAgICAgICAgICAg
ICAgICAgImVjaG8gXCIkQFwiIHwgc3NoIC1vIENvbnRyb2xQYXRoPS4vJUMgLW8gQ29udHJvbE1h
c3Rlcj1hdXRvIC1vIENvbnRyb2xQZXJzaXN0PTEwbSAtbyBOb0hvc3RBdXRoZW50aWNhdGlvbkZv
ckxvY2FsaG9zdD15ZXMgLW8gU3RyaWN0SG9zdEtleUNoZWNraW5nPW5vIC1vIFVzZXJLbm93bkhv
c3RzRmlsZT0vZGV2L251bGwgLXAgXCIkcmVtb3RlcG9ydFwiIC1sIFwiJHJlbW90ZXVzZXJcIiAt
byBSZW1vdGVDb21tYW5kPVwiY2QgJyRyZW1vdGVkaXInICYmIHNoIC1zXCIgXCIkcmVtb3RlaG9z
dFwiIgorICAgICAgICAgICAgICAgICAgICAgImVjaG8gXCIkQFwiIHwgc3NoIC1vIENvbnRyb2xQ
YXRoPS4vJUMgLW8gQ29udHJvbE1hc3Rlcj1hdXRvIC1vIENvbnRyb2xQZXJzaXN0PTEwbSAtbyBO
b0hvc3RBdXRoZW50aWNhdGlvbkZvckxvY2FsaG9zdD15ZXMgLW8gU3RyaWN0SG9zdEtleUNoZWNr
aW5nPW5vIC1vIFVzZXJLbm93bkhvc3RzRmlsZT0vZGV2L251bGwgLXAgXCIkcmVtb3RlcG9ydFwi
IC1sIFwiJHJlbW90ZXVzZXJcIiAtbyBSZW1vdGVDb21tYW5kPVwiaWYgdGVzdCAtZCAnJHJlbW90
ZWRpcic7IHRoZW4gY2QgJyRyZW1vdGVkaXInOyBlbHNlIGVjaG8gJyN7UEFSQUxMRUxfUkVNT1RF
X1dSQVBQRVJfTUFSS19CRUdJTn0ke3JlbW90ZWhvc3R9I3tQQVJBTExFTF9SRU1PVEVfV1JBUFBF
Ul9NQVJLX0VORH0nOyBmYWxzZTsgZmkgJiYgc2ggLXNcIiBcIiRyZW1vdGVob3N0XCIiCiAgICAg
ICAgICkKICAgICAgICAgRmlsZVV0aWxzLmNobW9kKCJ1Z289cngiLCB3cmFwcGVyLnBhdGgpCiAg
ICAgICAgIHdyYXBwZXIuY2xvc2UgIyBBdm9pZCBFVFhUQlVTWQpAQCAtMjUzNywxMiArMjU3Niwx
MiBAQCBFT0YKICAgICB9CiBlbmQKIAotZGVmIHdpdGhHbnVQYXJhbGxlbFNzaExvZ2luRmlsZSgm
YmxrKQorZGVmIHdpdGhHbnVQYXJhbGxlbFNzaExvZ2luRmlsZShyZW1vdGVIb3N0cywgJmJsaykK
ICAgICB3aXRoR251UGFyYWxsZWxTc2hXcmFwcGVyIHsKICAgICAgICAgfCB3cmFwcGVyIHwKICAg
ICAgICAgVGVtcGZpbGUub3Blbignc2xmJywgJHJ1bm5lckRpcikgewogICAgICAgICAgICAgfCB0
ZiB8Ci0gICAgICAgICAgICAkcmVtb3RlSG9zdHMuZWFjaCB7CisgICAgICAgICAgICByZW1vdGVI
b3N0cy5lYWNoIHsKICAgICAgICAgICAgICAgICB8IHJlbW90ZUhvc3QgfAogICAgICAgICAgICAg
ICAgIHRmLnB1dHMoIiN7d3JhcHBlcn0gI3tyZW1vdGVIb3N0LnJlbW90ZURpcmVjdG9yeX0gI3ty
ZW1vdGVIb3N0LnBvcnR9ICN7cmVtb3RlSG9zdC51c2VyfSAje3JlbW90ZUhvc3QuaG9zdH0iKQog
ICAgICAgICAgICAgfQpAQCAtMjU1Miw5ICsyNTkxLDkgQEAgZGVmIHdpdGhHbnVQYXJhbGxlbFNz
aExvZ2luRmlsZSgmYmxrKQogICAgIH0KIGVuZAogCi1kZWYgdW5wYWNrQnVuZGxlR251UGFyYWxs
ZWwKLSAgICBmb3JFYWNoUmVtb3RlICh7IDpkcm9wT25GYWlsdXJlID0+IHRydWUgfSkgewotICAg
ICAgICB8cmVtb3RlSW5kZXgsIHJlbW90ZUhvc3R8CitkZWYgdW5wYWNrQnVuZGxlR251UGFyYWxs
ZWwocmVtb3RlSG9zdHMpCisgICAgZm9yRWFjaFJlbW90ZShyZW1vdGVIb3N0cywgOmRyb3BPbkZh
aWx1cmUgPT4gdHJ1ZSkgeworICAgICAgICB8IF8sIHJlbW90ZUhvc3QgfAogICAgICAgICBteXN5
cyhbInNzaCIsICItbyIsICJOb0hvc3RBdXRoZW50aWNhdGlvbkZvckxvY2FsaG9zdD15ZXMiLAog
ICAgICAgICAgICAgICAgIi1wIiwgcmVtb3RlSG9zdC5wb3J0LnRvX3MsCiAgICAgICAgICAgICAg
ICAiI3tyZW1vdGVIb3N0LnVzZXJ9QCN7cmVtb3RlSG9zdC5ob3N0fSIsCkBAIC0yNTYyLDcgKzI2
MDEsNyBAQCBkZWYgdW5wYWNrQnVuZGxlR251UGFyYWxsZWwKICAgICB9CiBlbmQKIAotZGVmIHJ1
bkdudVBhcmFsbGVsUnVubmVyKGlucHV0cywgb3B0aW9ucz17fSkKK2RlZiBydW5HbnVQYXJhbGxl
bFJ1bm5lcihyZW1vdGVIb3N0cywgaW5wdXRzLCBvcHRpb25zPXt9KQogICAgIHRpbWVvdXQgPSAz
MDAKICAgICBpZiBFTlZbIkpTQ1RFU1RfdGltZW91dCJdCiAgICAgICAgIHRpbWVvdXQgPSBFTlZb
IkpTQ1RFU1RfdGltZW91dCJdLnRvX2YuY2VpbC50b19pCkBAIC0yNTc2LDIyICsyNjE1LDQ2IEBA
IGRlZiBydW5HbnVQYXJhbGxlbFJ1bm5lcihpbnB1dHMsIG9wdGlvbnM9e30pCiAgICAgaWYgb3B0
aW9uc1s6cGFyYWxsZWxKb2JzT25FYWNoSG9zdF0KICAgICAgIHBhcmFsbGVsSm9ic09uRWFjaEhv
c3QgPSBvcHRpb25zWzpwYXJhbGxlbEpvYnNPbkVhY2hIb3N0XQogICAgIGVuZAotICAgIHdpdGhH
bnVQYXJhbGxlbFNzaExvZ2luRmlsZSB7CisgICAgbWFya2VyV2l0aEhvc3QgPSBSZWdleHAubmV3
KCIuKiN7UEFSQUxMRUxfUkVNT1RFX1dSQVBQRVJfTUFSS19CRUdJTn0oLiopI3tQQVJBTExFTF9S
RU1PVEVfV1JBUFBFUl9NQVJLX0VORH0uKiIpCisgICAgbWFya2VyV2l0aG91dEhvc3QgPSBSZWdl
eHAubmV3KCIuKiN7UEFSQUxMRUxfUkVNT1RFX1NUQVRFX0xPU1RfTUFSS0VSfS4qIikKKyAgICB3
aXRoR251UGFyYWxsZWxTc2hMb2dpbkZpbGUocmVtb3RlSG9zdHMpIHsKICAgICAgICAgfCBzbGYg
fAogICAgICAgICBjbWQgPSBbCiAgICAgICAgICAgICAicGFyYWxsZWwiLAogICAgICAgICAgICAg
Ii1qIiwgIiN7cGFyYWxsZWxKb2JzT25FYWNoSG9zdH0iLAotICAgICAgICAgICAgIi0tcmV0cmll
cyA1IiwKKyAgICAgICAgICAgICMgTkI6IHRoZSB0ZXN0cyBleGl0IHdpdGggMCByZWdhcmRsZXNz
IG9mIHdoZXRoZXIgdGhleQorICAgICAgICAgICAgIyBwYXNzZWQgb3IgZmFpbGVkLCBzbyB0aGlz
IHdpbGwgb25seSByZXRyeSB0ZXN0cyB0aGF0IHdlCisgICAgICAgICAgICAjIHdlcmVuJ3QgYWJs
ZSB0byBnZXQgYSByZXN1bHQgZm9yLCBsaWtlbHkgYmVjYXVzZSB0aGUKKyAgICAgICAgICAgICMg
Y29ubmVjdGlvbiB3ZW50IGRvd24gb3IgdGhlIHJlbW90ZSBPT00nZC9jcmFzaGVkKS4KKyAgICAg
ICAgICAgICItLXJldHJpZXMiLCAiNSIsCiAgICAgICAgICAgICAiLS1saW5lLWJ1ZmZlciIsICMg
d2Uga25vdyBvdXIgb3V0cHV0IGlzIGxpbmUtb3JpZW50ZWQKICAgICAgICAgICAgICItLXNsZiIs
IHNsZiwKICAgICAgICAgICAgICItLXRpbWVvdXQiLCB0aW1lb3V0LnRvX3MsCiAgICAgICAgICAg
ICAiLWEiLCBpbnB1dHMsCi0gICAgICAgICAgICAiXCJjZCAjeyRvdXRwdXREaXIuYmFzZW5hbWV9
Ly5ydW5uZXIgJiYgIiArCisgICAgICAgICAgICAiaWYgdGVzdCAtZSAjeyRvdXRwdXREaXIuYmFz
ZW5hbWV9Ly5ydW5uZXI7IHRoZW4gY2QgI3skb3V0cHV0RGlyLmJhc2VuYW1lfS8ucnVubmVyOyBl
bHNlIGVjaG8gI3tQQVJBTExFTF9SRU1PVEVfU1RBVEVfTE9TVF9NQVJLRVJ9OyBmYWxzZTsgZmkg
JiYgIiArCiAgICAgICAgICAgICBleHBvcnRCYXNlRW52aXJvbm1lbnRWYXJpYWJsZXMgKwogICAg
ICAgICAgICAgJGVudlZhcnMuY29sbGVjdCB7IHx2YXIgfCAiZXhwb3J0ICN7dmFyfSAmJiJ9Lmpv
aW4oIiIpICsKLSAgICAgICAgICAgICJzaCBcIiIKKyAgICAgICAgICAgICJzaCAiCiAgICAgICAg
IF0KLSAgICAgICAgcnVuQW5kTW9uaXRvclRlc3RSdW5uZXJDb21tYW5kKGNtZCwgOmlnbm9yZUZh
aWx1cmUgPT4gdHJ1ZSkKKyAgICAgICAgcnVuQW5kTW9uaXRvckNvbW1hbmRPdXRwdXQoY21kKSB7
CisgICAgICAgICAgICB8IHBpZCwgbGluZSB8CisgICAgICAgICAgICBob3N0ID0gIjx1bmtub3du
IGhvc3Q+IgorICAgICAgICAgICAgbWQgPSBtYXJrZXJXaXRob3V0SG9zdC5tYXRjaChsaW5lKQor
ICAgICAgICAgICAgaWYgbWQubmlsPworICAgICAgICAgICAgICAgIG1kID0gbWFya2VyV2l0aEhv
c3QubWF0Y2gobGluZSkKKyAgICAgICAgICAgICAgICBob3N0ID0gbWRbMV0gdW5sZXNzIG1kLm5p
bD8KKyAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgaWYgbm90IG1kLm5pbD8KKyAgICAgICAg
ICAgICAgICBpZiAkdmVyYm9zaXR5ID4gMAorICAgICAgICAgICAgICAgICAgICAkc3RkZXJyLnB1
dHMoIlJlbW90ZSBob3N0IGxvc3Qgc3RhdGUsIHRyaWdnZXJpbmcgaGlnaC1sZXZlbCByZXRyeTog
I3tob3N0fSIpCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgIyBXZSBjb3Vs
ZCB0cnkgdG8gcmVwcm92aXNpb24gdGhpcyBzcGVjaWZpYyByZW1vdGUKKyAgICAgICAgICAgICAg
ICAjIGhvc3QsIGJ1dCB0aGF0IHNlZW1zIG5lZWRsZXNzbHkgY29tcGxpY2F0ZWQgKHdlCisgICAg
ICAgICAgICAgICAgIyBkb24ndCBleHBlY3QgdGhlIHJlbW90ZXMgdG8gZ28gZG93biBldmVyeQor
ICAgICAgICAgICAgICAgICMgbWludXRlLi4uKS4gU2ltcGx5IGtpbGwgdGhlIEdOVSBwYXJhbGxl
bCBwcm9jZXNzLgorICAgICAgICAgICAgICAgIFByb2Nlc3Mua2lsbCgiVEVSTSIsIHBpZCkKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICB9CiAgICAgfQogZW5kCiAKQEAgLTI2MDAsMjMgKzI2NjMs
NTcgQEAgZGVmIHJ1bkdudVBhcmFsbGVsCiAgICAgcHJlcGFyZUJ1bmRsZQogICAgIHByZXBhcmVU
ZXN0UnVubmVyCiAgICAgY29tcHJlc3NCdW5kbGUKLSAgICAjIElmIHRoZSBwcmVwYXJhdG9yeSBz
dGVwcyBmYWlsLCBkcm9wIHRoZSByZW1vdGUgaG9zdCBmcm9tIG91cgotICAgICMgbGlzdC4gT3Ro
ZXJ3aXNlLCBpZiBpdCBsYXRlciBjb21lcyB1cCBvbmxpbmUsIHdlJ2xsIHRyeSB0byBydW4KLSAg
ICAjIHRlc3Qgam9icyBvbiBpdCwgcG9zc2libHkgdXNpbmcgYSBwcmV2aW91c2x5LXVucGFja2Vk
IHVucmVsYXRlZAotICAgICMgYnVuZGxlLgotICAgIGZvckVhY2hSZW1vdGUgKHsgOmRyb3BPbkZh
aWx1cmUgPT4gdHJ1ZSB9KSB7Ci0gICAgICAgIHxyZW1vdGVJbmRleCwgcmVtb3RlSG9zdHwKLSAg
ICAgICAgZ2V0UmVtb3RlRGlyZWN0b3J5SWZOZWVkZWQocmVtb3RlSW5kZXgpCi0gICAgICAgIGNv
cHlCdW5kbGVUb1JlbW90ZShyZW1vdGVIb3N0KQorICAgIHN0YXR1c01hcCA9IHt9CisgICAgIyBU
aGlzIGlzIGEgaGlnaC1sZXZlbCByZXRyeSBsb29wLiBJZiBhIHJlbW90ZSBob3N0IGdvZXMgYXdh
eSBpbgorICAgICMgdGhlIG1pZGRsZSBvZiBhIHJ1biBhbmQgZWl0aGVyIGRvZXNuJ3QgY29tZSBi
YWNrIG9ubGluZSBvciBjb21lcworICAgICMgYmFjayBoYXZpbmcgcmVtb3ZlZCB0aGUgcmVtb3Rl
IGRpcmVjdG9yeSAoKiksIGdldFN0YXR1c01hcCB3aWxsIGJlCisgICAgIyBtaXNzaW5nIHJlc3Vs
dHMgZm9yIHRoZXNlIHRlc3RzLCBhbGxvd2luZyB1cyB0byByZXRyeSB0aGVtIGluCisgICAgIyB0
aGUgbmV4dCBpdGVyYXRpb24uCisgICAgIworICAgICMgKCopIFRoaXMgbWF5IHdlbGwgaGFwcGVu
IHdoZW4gcnVubmluZyB0aGUgdGVzdHMgb24gZW1iZWRkZWQKKyAgICAjIGJvYXJkcyB0aGF0IHJl
Z3VsYXJseSBjb3JydXB0IHRoZWlyIFNEIGNhcmQuIERlZmluaXRlbHkgYW4gaXNzdWUKKyAgICAj
IGZvciB0aGUgY2kyMCBib2FyZHMgdXNlZCB0byB0ZXN0IE1JUFMuCisgICAgIworICAgICMgVGhl
IG51bWJlciBvZiB0cmllcyBzY2FsZXMgd2l0aCB0aGUgbnVtYmVyIG9mIHJlbW90ZXMgaW4gdXNl
LAorICAgICMgd2l0aCBhIHJlYXNvbmFibGUgZmxvb3IuCisgICAgdHJpZXMgPSBbMywgJHJlbW90
ZUhvc3RzLnNpemUgLyAyXS5tYXgKKyAgICB0cmllcy50aW1lcyB7CisgICAgICAgIHwgaXRlcmF0
aW9uIHwKKyAgICAgICAgcmVtb3RlSG9zdHMgPSAkcmVtb3RlSG9zdHMKKyAgICAgICAgIyBJZiB0
aGUgcHJlcGFyYXRvcnkgc3RlcHMgZmFpbCwgZHJvcCB0aGUgcmVtb3RlIGhvc3QgZnJvbSBvdXIK
KyAgICAgICAgIyBsaXN0LiBPdGhlcndpc2UsIGlmIGl0IGNvbWVzIGJhY2sgb25saW5lIGluIHRo
ZSBtaWRkbGUgb2YgYW4KKyAgICAgICAgIyBpdGVyYXRpb24sIHdlJ2xsIHRyeSB0byBydW4gdGVz
dCBqb2JzIG9uIGl0LCBwb3NzaWJseSB1c2luZworICAgICAgICAjIGFuIHVucmVsYXRlZCBidW5k
bGUgZnJvbSBhIHByZXZpb3VzIHJ1bi4KKyAgICAgICAgcmVtb3RlSG9zdHMgPSBmb3JFYWNoUmVt
b3RlKHJlbW90ZUhvc3RzLCB7OmRyb3BPbkZhaWx1cmUgPT4gdHJ1ZX0pIHsKKyAgICAgICAgICAg
IHwgXywgcmVtb3RlSG9zdCB8CisgICAgICAgICAgICBnZXRSZW1vdGVEaXJlY3RvcnlJZk5lZWRl
ZChyZW1vdGVIb3N0KQorICAgICAgICAgICAgY29weUJ1bmRsZVRvUmVtb3RlKHJlbW90ZUhvc3Qp
CisgICAgICAgIH0KKyAgICAgICAgcmVtb3RlSG9zdHMgPSB1bnBhY2tCdW5kbGVHbnVQYXJhbGxl
bChyZW1vdGVIb3N0cykKKyAgICAgICAgaWYgcmVtb3RlSG9zdHMuc2l6ZSA9PSAwCisgICAgICAg
ICAgICAjIEVpdGhlciBldmVyeXRoaW5nIGlzIGRvd24sIG9yIGV2ZXJ5dGhpbmcgZ290CisgICAg
ICAgICAgICAjIHJlYm9vdGVkLiBJbiB0aGUgbGF0dGVyIGNhc2UsIGFsbG93IGVub3VnaCB0aW1l
IGZvciB0aGUKKyAgICAgICAgICAgICMgcmVtb3RlIGJvYXJkcyB0byBib290IHVwLCB0aGVuIHJl
dHJ5LgorICAgICAgICAgICAgd2FpdEludGVydmFsID0gNjAKKyAgICAgICAgICAgICRzdGRlcnIu
cHV0cygiQWxsIHJlbW90ZSBob3N0cyBmYWlsZWQsIHJldHJ5aW5nIGFmdGVyICN7d2FpdEludGVy
dmFsfXMiKQorICAgICAgICAgICAgc2xlZXAod2FpdEludGVydmFsKQorICAgICAgICAgICAgbmV4
dAorICAgICAgICBlbmQKKworICAgICAgICBydW5HbnVQYXJhbGxlbFJ1bm5lcihyZW1vdGVIb3N0
cywgJHJ1bm5lckRpciArICJzZXJpYWwtdGVzdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IDpwYXJhbGxlbEpvYnNPbkVhY2hIb3N0ID0+IDF9KQorICAgICAgICBydW5HbnVQYXJh
bGxlbFJ1bm5lcihyZW1vdGVIb3N0cywgJHJ1bm5lckRpciArICJwYXJhbGxlbC10ZXN0cyIpCisg
ICAgICAgIHN0YXR1c01hcCA9IGdldFN0YXR1c01hcChzdGF0dXNNYXApCisgICAgICAgIGNvbXBs
ZXRlZFRlc3RzID0gZ2V0Q29tcGxldGVkVGVzdHNGcm9tU3RhdHVzTWFwKHN0YXR1c01hcCkKKyAg
ICAgICAgYnJlYWsgdW5sZXNzIGNvbXBsZXRlZFRlc3RzLnNpemUgIT0gJHJ1bmxpc3Quc2l6ZQor
ICAgICAgICBpZiBjb21wbGV0ZWRUZXN0cy5zaXplID4gJHJ1bmxpc3Quc2l6ZQorICAgICAgICAg
ICAgcmFpc2UgIlRlc3QgY291bnQgbWlzbWF0Y2g6ICN7Y29tcGxldGVkVGVzdHMuc2l6ZX0gPiAj
eyRydW5saXN0LnNpemV9IgorICAgICAgICBlbmQKKyAgICAgICAgIyBSZWdlbmVyYXRlIHRoZSBs
aXN0cyBvZiB0ZXN0cyB0byBydW4KKyAgICAgICAgcHJlcGFyZUdudVBhcmFsbGVsVGVzdFJ1bm5l
cihjb21wbGV0ZWRUZXN0cykKKyAgICAgICAgJHN0ZGVyci5wdXRzKCJBZnRlciB0cnkgI3tpdGVy
YXRpb24gKyAxfS8je3RyaWVzfTogZ290IHJlc3VsdHMgZm9yICN7Y29tcGxldGVkVGVzdHMuc2l6
ZX0vI3skcnVubGlzdC5zaXplfSB0ZXN0cywgI3tyZW1vdGVIb3N0cy5zaXplfS8jeyRyZW1vdGVI
b3N0cy5zaXplfSBob3N0cyBsaXZlIikKICAgICB9Ci0gICAgdW5wYWNrQnVuZGxlR251UGFyYWxs
ZWwKLSAgICBpZiAkcmVtb3RlSG9zdHMuc2l6ZSA9PSAwCi0gICAgICAgIHJhaXNlICJBbGwgcmVt
b3RlIGhvc3RzIGZhaWxlZCwgZ2l2aW5nIHVwIgotICAgIGVuZAotICAgIHJ1bkdudVBhcmFsbGVs
UnVubmVyKCRydW5uZXJEaXIgKyAic2VyaWFsLXRlc3RzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICB7IDpwYXJhbGxlbEpvYnNPbkVhY2hIb3N0ID0+IDF9KQotICAgIHJ1bkdudVBhcmFsbGVs
UnVubmVyKCRydW5uZXJEaXIgKyAicGFyYWxsZWwtdGVzdHMiKQotICAgIGRldGVjdEZhaWx1cmVz
CisgICAgZGV0ZWN0RmFpbHVyZXMoc3RhdHVzTWFwKQogZW5kCiAKIHB1dHMK
</data>

          </attachment>
      

    </bug>

</bugzilla>