<?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>141408</bug_id>
          
          <creation_ts>2015-02-09 15:33:00 -0800</creation_ts>
          <short_desc>WebGL: Update 1.0.2 conformance layout tests and address new bad-arguments.html failure</short_desc>
          <delta_ts>2015-02-09 17:05:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Roger Fong">roger_fong</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1067942</commentid>
    <comment_count>0</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2015-02-09 15:33:00 -0800</bug_when>
    <thetext>rdar://problem/19773236

We have a new conformance failure in the 1.0.2 suite on Desktop, which we had previously achieved conformance on.

It was uncaught by layout tests because it was a result of a change to the conformance tests themselves. 

We should update our 1.0.2 conformance test checkout and address the new failure (misc/bad-arguments.html)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067947</commentid>
    <comment_count>1</comment_count>
      <attachid>246299</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2015-02-09 15:42:43 -0800</bug_when>
    <thetext>Created attachment 246299
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067966</commentid>
    <comment_count>2</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2015-02-09 17:05:32 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/179859</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246299</attachid>
            <date>2015-02-09 15:42:43 -0800</date>
            <delta_ts>2015-02-09 16:23:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>53254</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3OTg0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAyLTA5ICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0w6IFVwZGF0ZSAxLjAu
MiBjb25mb3JtYW5jZSBsYXlvdXQgdGVzdHMgYW5kIGFkZHJlc3MgbmV3IGZhaWx1cmUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE0MDguCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xOTc3MzIzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBjb3ZlcmVkIGJ5IHVwZGF0ZWQgMS4wLjIgY29u
Zm9ybWFuY2UgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcDogCisgICAgICAgIFJldHVybiBudWxsIHN0cmluZyBpbnN0ZWFkIG9mIGVt
cHR5IHN0cmluZyBpZiBwYXJhbWV0ZXIgdmFsaWRhdGlvbiBmYWlscy4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1JbmZvTG9nKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlckluZm9Mb2cp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVy
U291cmNlKToKKwogMjAxNS0wMi0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTWFjXSBEaXNhYmxlIHRoZSBjdXJyZW50VGltZSBlc3RpbWF0aW9uIGNvZGUg
aW4gSFRNTE1lZGlhRWxlbWVudCBmb3IgWW9zZW1pdGUrCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAko
cmV2aXNpb24gMTc5ODQyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MTcsMTAgKzI2MTcsOCBA
QCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6CiBTdHJpbmcgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xQcm9ncmFtKiBwcm9n
cmFtLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVTRURfUEFSQU0oZWMpOwotICAgIGlm
IChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0UHJvZ3JhbUluZm9Mb2ciLCBwcm9ncmFt
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIGlmICghdmFsaWRhdGVXZWJHTE9iamVj
dCgiZ2V0UHJvZ3JhbUluZm9Mb2ciLCBwcm9ncmFtKSkKLSAgICAgICAgcmV0dXJuICIiOwogICAg
IHJldHVybiBlbnN1cmVOb3ROdWxsKG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cob2JqZWN0
T3JaZXJvKHByb2dyYW0pKSk7CiB9CiAKQEAgLTI3MTQsMTAgKzI3MTIsOCBAQCBXZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6CiBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0U2hhZGVySW5mb0xvZyhXZWJHTFNoYWRlciogc2hhZGVyLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBVTlVTRURfUEFSQU0oZWMpOwotICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkpCisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRh
dGVXZWJHTE9iamVjdCgiZ2V0U2hhZGVySW5mb0xvZyIsIHNoYWRlcikpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKLSAgICBpZiAoIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFNoYWRlckluZm9M
b2ciLCBzaGFkZXIpKQotICAgICAgICByZXR1cm4gIiI7CiAgICAgcmV0dXJuIGVuc3VyZU5vdE51
bGwobV9jb250ZXh0LT5nZXRTaGFkZXJJbmZvTG9nKG9iamVjdE9yWmVybyhzaGFkZXIpKSk7CiB9
CiAKQEAgLTI3NTYsMTAgKzI3NTIsOCBAQCBQYXNzUmVmUHRyPFdlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0PiBXCiBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyU291
cmNlKFdlYkdMU2hhZGVyKiBzaGFkZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNF
RF9QQVJBTShlYyk7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRTaGFk
ZXJTb3VyY2UiLCBzaGFkZXIpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgaWYgKCF2
YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRTaGFkZXJTb3VyY2UiLCBzaGFkZXIpKQotICAgICAgICBy
ZXR1cm4gIiI7CiAgICAgcmV0dXJuIGVuc3VyZU5vdE51bGwoc2hhZGVyLT5nZXRTb3VyY2UoKSk7
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3OTg0OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE1LTAyLTA5ICBSb2dlciBGb25n
ICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0w6IFVwZGF0ZSAxLjAuMiBj
b25mb3JtYW5jZSBsYXlvdXQgdGVzdHMgYW5kIGFkZHJlc3MgbmV3IGZhaWx1cmUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE0MDguCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xOTc3MzIzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVz
dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYmFk
LWFyZ3VtZW50cy10ZXN0Lmh0bWw6IFJlbW92ZWQuIFJlZHVuZGFudCB0ZXN0IGNhc2UuCisgICAg
ICAgICogd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvUkVBRE1FLm1kOgor
ICAgICAgICAqIHdlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sOgorICAgICAgICAqIHdl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NvbnRleHQv
Y29udGV4dC1jcmVhdGlvbi1hbmQtZGVzdHJ1Y3Rpb24uaHRtbDoKKyAgICAgICAgKiB3ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dl
YmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLmh0bWw6CisgICAgICAgICogd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1k
ZWJ1Zy1zaGFkZXJzLmh0bWw6CisgICAgICAgICogd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1kZXB0aC10ZXh0dXJlLmh0
bWw6CisgICAgICAgICogd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvZ2xzbC9taXNjL3NoYWRlci13aXRoLWFycmF5LW9mLXN0cnVjdHMtY29udGFpbmlu
Zy1hcnJheXMuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9taXNjL2JhZC1hcmd1bWVudHMtdGVzdC5odG1sOgorICAgICAg
ICAqIHdlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21p
c2Mvd2ViZ2wtc3BlY2lmaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy91bmlmb3JtTWF0cml4
QmFkQXJncy5odG1sOgorICAgICAgICAqIHdlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qczoKKyAgICAgICAgKiB3ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanM6CisgICAg
ICAgIChWQk8ucHJvdG90eXBlLnVzZSk6CisgICAgICAgICogd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL211bHRpc2FtcGxlLWNvcnJ1
cHRpb24uaHRtbDoKKyAgICAgICAgKiB3ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZzoKKyAgICAgICAg
KiB3ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvZ2xzbC1nZW5lcmF0b3IuanM6CisgICAgICAgICogd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0
OgorICAgICAgICAqIHdlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzOgorICAgICAgICAoV2ViR0xUZXN0
VXRpbHMpOgorICAgICAgICAqIHdlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L3Rlc3QtZ3VpZGVsaW5lcy5tZDoKKyAgICAgICAgKiB3ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy93ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy5odG1sOgorCiAyMDE1LTAyLTA5
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdWRpb10g
QXVkaW9CdWZmZXJTb3VyY2VOb2RlcyBzaG91bGQgYWNjdXJhdGVseSBwbGF5IGJhY2t3YXJkcyBp
ZiBnaXZlbiBhIG5lZ2F0aXZlIHBsYXliYWNrUmF0ZS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTc5ODQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwx
MTUgKzAsMCBAQAotVGVzdHMgY2FsbGluZyBXZWJHTCBBUElzIHdpdGggd3JvbmcgYXJndW1lbnQg
dHlwZXMKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi1QQVNTIFByb2dyYW0gQ29tcGls
ZWQKLVBBU1MgU2hhZGVyIENvbXBpbGVkCi1QQVNTIGdldFVuaWZvcm1Mb2NhdGlvbiBzdWNjZWVk
ZWQKLVBBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jb21waWxlU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCi1Q
QVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5s
aW5rUHJvZ3JhbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4KLVBBU1MgY29u
dGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDIgKCdzaGFkZXInKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmF0dGFjaFNoYWRlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyLgotUEFTUyBj
b250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuYXR0YWNoU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9ncmFtLgotUEFT
UyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuZGV0YWNoU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCi1Q
QVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5kZXRhY2hTaGFkZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0u
Ci1QQVNTIGNvbnRleHQudXNlUHJvZ3JhbShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LnVzZVByb2dyYW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0uCi1QQVNTIGNv
bnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQXJndW1lbnQgMSAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
c2hhZGVyU291cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCi1QQVNTIGNv
bnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmJpbmRBdHRyaWJMb2NhdGlvbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdM
UHJvZ3JhbS4KLVBBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBh
cmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ2J1ZmZlcicp
IHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuYmluZEJ1ZmZlciBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIFdlYkdMQnVmZmVyLgotUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMiAoJ2ZyYW1lYnVmZmVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5iaW5kRnJh
bWVidWZmZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTEZyYW1lYnVmZmVyLgotUEFTUyBj
b250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgncmVuZGVyYnVmZmVyJykgdG8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5iaW5kUmVuZGVyYnVmZmVyIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xSZW5kZXJidWZmZXIuCi1QQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29u
dGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMiAoJ3RleHR1cmUnKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmJpbmRUZXh0
dXJlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xUZXh0dXJlLgotUEFTUyBjb250ZXh0LmZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhf
QVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBcmd1bWVudCA0ICgncmVuZGVyYnVmZmVyJykgdG8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIFdlYkdMUmVuZGVyYnVmZmVyLgotUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJE
KGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQu
VEVYVFVSRV8yRCwgYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDQgKCd0ZXh0dXJlJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5mcmFtZWJ1ZmZl
clRleHR1cmUyRCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZS4KLVBBU1MgY29u
dGV4dC51bmlmb3JtMmZ2KGFyZ3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMF0pKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LnVuaWZv
cm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5KFswLCAwXSkpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihhcmd1
bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wLCAwLjAsIDAuMF0pKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFByb2dy
YW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCi1QQVNTIGNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKGFyZ3VtZW50LCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFVuaWZv
cm0oYXJndW1lbnQsIGxvYykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
LVBBU1MgY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFVuaWZvcm1Mb2NhdGlv
bihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5nZXRVbmlmb3JtTG9jYXRpb24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0u
Ci1QQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5nZXRQcm9ncmFtSW5mb0xvZyBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJv
Z3JhbS4KLVBBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5nZXRTaGFkZXJJbmZvTG9nIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xT
aGFkZXIuCi1QQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5nZXRTaGFkZXJTb3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNo
YWRlci4KLVBBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jb21waWxlU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIu
Ci1QQVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5saW5rUHJvZ3JhbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4KLVBBU1Mg
Y29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdzaGFkZXInKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmF0dGFjaFNoYWRlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyLgotUEFT
UyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuYXR0YWNoU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9ncmFtLgot
UEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuZGV0YWNoU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIu
Ci1QQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5kZXRhY2hTaGFkZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dy
YW0uCi1QQVNTIGNvbnRleHQudXNlUHJvZ3JhbShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLnVzZVByb2dyYW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0uCi1QQVNT
IGNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2Uuc2hhZGVyU291cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCi1QQVNT
IGNvbnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmJpbmRBdHRyaWJMb2NhdGlvbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdl
YkdMUHJvZ3JhbS4KLVBBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVS
LCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ2J1ZmZl
cicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuYmluZEJ1ZmZlciBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIFdlYkdMQnVmZmVyLgotUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250
ZXh0LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMiAoJ2ZyYW1lYnVmZmVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5iaW5k
RnJhbWVidWZmZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTEZyYW1lYnVmZmVyLgotUEFT
UyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgncmVuZGVyYnVmZmVyJykg
dG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5iaW5kUmVuZGVyYnVmZmVyIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xSZW5kZXJidWZmZXIuCi1QQVNTIGNvbnRleHQuYmluZFRleHR1cmUo
Y29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMiAoJ3RleHR1cmUnKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmJpbmRU
ZXh0dXJlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xUZXh0dXJlLgotUEFTUyBjb250ZXh0
LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQ
VEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCA0ICgncmVuZGVyYnVmZmVyJykgdG8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIFdlYkdMUmVuZGVyYnVmZmVyLgotUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRl
eHQuVEVYVFVSRV8yRCwgYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFy
Z3VtZW50IDQgKCd0ZXh0dXJlJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5mcmFtZWJ1
ZmZlclRleHR1cmUyRCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZS4KLVBBU1Mg
Y29udGV4dC51bmlmb3JtMmZ2KGFyZ3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMF0p
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LnVu
aWZvcm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5KFswLCAwXSkpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihh
cmd1bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wLCAwLjAsIDAuMF0pKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFBy
b2dyYW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKGFyZ3VtZW50LCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFVu
aWZvcm0oYXJndW1lbnQsIGxvYykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KLVBBU1MgY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFVuaWZvcm1Mb2Nh
dGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5nZXRVbmlmb3JtTG9jYXRpb24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dy
YW0uCi1QQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5nZXRQcm9ncmFtSW5mb0xvZyBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdM
UHJvZ3JhbS4KLVBBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5nZXRTaGFkZXJJbmZvTG9nIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xTaGFkZXIuCi1QQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5nZXRTaGFkZXJTb3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJH
TFNoYWRlci4KLVBBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSBpcyB1bmRlZmlu
ZWQuCi1QQVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KLVBB
U1MgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4K
LVBBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgaXMgdW5kZWZpbmVk
LgotUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgaXMgdW5kZWZp
bmVkLgotUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSBpcyB1bmRl
ZmluZWQuCi1QQVNTIGNvbnRleHQudXNlUHJvZ3JhbShhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgot
UEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2ZvbycpIGlzIHVuZGVmaW5lZC4K
LVBBU1MgY29udGV4dC5iaW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28nKSBpcyB1
bmRlZmluZWQuCi1QQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwg
YXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29u
dGV4dC5GUkFNRUJVRkZFUiwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29udGV4dC5i
aW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZp
bmVkLgotUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1l
bnQpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihj
b250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVO
REVSQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LmZyYW1lYnVm
ZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVO
VDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1lbnQsIDApIGlzIHVuZGVmaW5lZC4KLVBBU1Mg
Y29udGV4dC51bmlmb3JtMmZ2KGFyZ3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMF0p
KSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVudCwgbmV3IElu
dDMyQXJyYXkoWzAsIDBdKSkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LnVuaWZvcm1NYXRy
aXgyZnYoYXJndW1lbnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwgMC4wLCAw
LjBdKSkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIoYXJn
dW1lbnQsIDApIGlzIG51bGwKLVBBU1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1l
bnQsIDApIGlzIG51bGwKLVBBU1MgY29udGV4dC5nZXRVbmlmb3JtKGFyZ3VtZW50LCBsb2MpIGlz
IG51bGwKLVBBU1MgY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3VtZW50KSBpcyBudWxs
Ci1QQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZpZXdQ
cm9qTWF0cml4JykgaXMgbnVsbAotUEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9nKGFyZ3Vt
ZW50KSBpcyAnJwotUEFTUyBjb250ZXh0LmdldFNoYWRlckluZm9Mb2coYXJndW1lbnQpIGlzICcn
Ci1QQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSBpcyAnJwotUEFTUyBjb250
ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29udGV4dC5s
aW5rUHJvZ3JhbShhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LmF0dGFjaFNo
YWRlcihwcm9ncmFtLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LmF0dGFj
aFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQuZGV0
YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQu
ZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29udGV4
dC51c2VQcm9ncmFtKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQuc2hhZGVy
U291cmNlKGFyZ3VtZW50LCAnZm9vJykgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LmJpbmRB
dHRyaWJMb2NhdGlvbihhcmd1bWVudCwgMCwgJ2ZvbycpIGlzIHVuZGVmaW5lZC4KLVBBU1MgY29u
dGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZp
bmVkLgotUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBh
cmd1bWVudCkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29u
dGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQu
YmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgot
UEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIs
IGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50
KSBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4
dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJF
XzJELCBhcmd1bWVudCwgMCkgaXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0LnVuaWZvcm0yZnYo
YXJndW1lbnQsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wXSkpIGlzIHVuZGVmaW5lZC4KLVBB
U1MgY29udGV4dC51bmlmb3JtMml2KGFyZ3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSBp
cyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFs
c2UsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wLCAwLjAsIDAuMF0pKSBpcyB1bmRlZmluZWQu
Ci1QQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAot
UEFTUyBjb250ZXh0LmdldFNoYWRlclBhcmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAotUEFT
UyBjb250ZXh0LmdldFVuaWZvcm0oYXJndW1lbnQsIGxvYykgaXMgbnVsbAotUEFTUyBjb250ZXh0
LmdldFVuaWZvcm0ocHJvZ3JhbSwgYXJndW1lbnQpIGlzIG51bGwKLVBBU1MgY29udGV4dC5nZXRV
bmlmb3JtTG9jYXRpb24oYXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSBpcyBudWxs
Ci1QQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIGlzICcnCi1QQVNTIGNv
bnRleHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1bWVudCkgaXMgJycKLVBBU1MgY29udGV4dC5nZXRT
aGFkZXJTb3VyY2UoYXJndW1lbnQpIGlzICcnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYmFkLWFyZ3VtZW50cy10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0Lmh0bWwJKHJldmlzaW9uIDE3OTg0MikK
KysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDg5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08
c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotCi12YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci1kZXNjcmlwdGlvbigiVGVzdHMgY2FsbGluZyBXZWJHTCBBUElzIHdp
dGggd3JvbmcgYXJndW1lbnQgdHlwZXMiKTsKLQotdmFyIGNvbnRleHQgPSB3dHUuY3JlYXRlM0RD
b250ZXh0KCk7Ci12YXIgcHJvZ3JhbSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQp
OwotdmFyIHNoYWRlciA9IHd0dS5sb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoY29udGV4dCk7Ci12
YXIgc2hvdWxkR2VuZXJhdGVHTEVycm9yID0gd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcjsKLQot
YXNzZXJ0TXNnKHByb2dyYW0gIT0gbnVsbCwgIlByb2dyYW0gQ29tcGlsZWQiKTsKLWFzc2VydE1z
ZyhzaGFkZXIgIT0gbnVsbCwgIlNoYWRlciBDb21waWxlZCIpOwotCi12YXIgbG9jID0gY29udGV4
dC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIpOwot
YXNzZXJ0TXNnKGxvYyAhPSBudWxsLCAiZ2V0VW5pZm9ybUxvY2F0aW9uIHN1Y2NlZWRlZCIpOwot
Ci12YXIgYXJndW1lbnRzID0gWwotICB7IHZhbHVlOiAiZm9vIiwKLSAgICB0aHJvdzogdHJ1ZSB9
LAotICB7IHZhbHVlOiAwLAotICAgIHRocm93OiB0cnVlIH0sCi0gIHsgdmFsdWU6IG51bGwsCi0g
ICAgdGhyb3c6IGZhbHNlIH0sCi0gIHsgdmFsdWU6IHVuZGVmaW5lZCwKLSAgICB0aHJvdzogZmFs
c2UgfQotXTsKLQotdmFyIGFyZ3VtZW50OwotCi1mdW5jdGlvbiBzaG91bGRCZUVtcHR5U3RyaW5n
KGNvbW1hbmQpIHsKLSAgc2hvdWxkQmUoY29tbWFuZCwgIicnIik7Ci19Ci0KLWZvciAodmFyIGkg
PSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gIHZhciBmdW5jLCBmdW5jMiwgZnVu
YzM7Ci0gIGlmIChhcmd1bWVudHNbaV0udGhyb3cpIHsKLSAgICBmdW5jID0gc2hvdWxkVGhyb3c7
Ci0gICAgZnVuYzIgPSBzaG91bGRUaHJvdzsKLSAgICBmdW5jMyA9IHNob3VsZFRocm93OwotICB9
IGVsc2UgewotICAgIGZ1bmMgPSBzaG91bGRCZVVuZGVmaW5lZDsKLSAgICBmdW5jMiA9IHNob3Vs
ZEJlTnVsbDsKLSAgICBmdW5jMyA9IHNob3VsZEJlRW1wdHlTdHJpbmc7Ci0gIH0KLSAgYXJndW1l
bnQgPSBhcmd1bWVudHNbaV0udmFsdWU7Ci0gIGZ1bmMoImNvbnRleHQuY29tcGlsZVNoYWRlcihh
cmd1bWVudCkiKTsKLSAgZnVuYygiY29udGV4dC5saW5rUHJvZ3JhbShhcmd1bWVudCkiKTsKLSAg
ZnVuYygiY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIik7Ci0gIGZ1bmMo
ImNvbnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIik7Ci0gIGZ1bmMoImNvbnRl
eHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSIpOwotICBmdW5jKCJjb250ZXh0LmRl
dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSIpOwotICBmdW5jKCJjb250ZXh0LnVzZVByb2dy
YW0oYXJndW1lbnQpIik7Ci0gIGZ1bmMoImNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAn
Zm9vJykiKTsKLSAgZnVuYygiY29udGV4dC5iaW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAs
ICdmb28nKSIpOwotICBmdW5jKCJjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZG
RVIsIGFyZ3VtZW50KSIpOwotICBmdW5jKCJjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkiKTsKLSAgZnVuYygiY29udGV4dC5iaW5kUmVuZGVyYnVm
ZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkiKTsKLSAgZnVuYygiY29udGV4dC5i
aW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSIpOwotICBmdW5jKCJjb250
ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQu
REVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSIpOwotICBm
dW5jKCJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNv
bnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1lbnQsIDAp
Iik7Ci0gIGZ1bmMoImNvbnRleHQudW5pZm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0MzJBcnJh
eShbMC4wLCAwLjBdKSkiKTsKLSAgZnVuYygiY29udGV4dC51bmlmb3JtMml2KGFyZ3VtZW50LCBu
ZXcgSW50MzJBcnJheShbMCwgMF0pKSIpOwotICBmdW5jKCJjb250ZXh0LnVuaWZvcm1NYXRyaXgy
ZnYoYXJndW1lbnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwgMC4wLCAwLjBd
KSkiKTsKLQotICBmdW5jMigiY29udGV4dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGFyZ3VtZW50LCAw
KSIpOwotICBmdW5jMigiY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1lbnQsIDApIik7
Ci0gIGZ1bmMyKCJjb250ZXh0LmdldFVuaWZvcm0oYXJndW1lbnQsIGxvYykiKTsKLSAgZnVuYzIo
ImNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1bWVudCkiKTsKLSAgZnVuYzIoImNvbnRl
eHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZpZXdQcm9qTWF0cml4Jyki
KTsKLQotICBmdW5jMygiY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkiKTsKLSAg
ZnVuYzMoImNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1bWVudCkiKTsKLSAgZnVuYzMoImNv
bnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSIpOwotfQotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9SRUFETUUubWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvUkVBRE1FLm1kCShyZXZpc2lvbiAxNzk4NDIp
CisrKyBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9S
RUFETUUubWQJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgVGhlcmUgYXJlIHZhcmlv
dXMgVVJMIG9wdGlvbnMgeW91IGNhbiBwYQogICAgICAgICAgICAgICAgICBFeGFtcGxlOiB3ZWJn
bC1jb25mb3JtYW5jZS10ZXN0cy5odG1sP3ZlcnNpb249MS4zLjIKIAogICAgIG1pblZlcnNpb246
ICBTZXQgdG8gdGhlIG1pbmltdW0gdmVyc2lvbiBvZiBlYWNoIHRlc3QgdG8gaW5jbHVkZS4gT25s
eSB0ZXN0cwotICAgICAgICAgICAgICAgICBhdCB0aGlzIHZlcnNpb24gb3IgYWJvdmUgd2lsbCBi
ZSBpbmxjdWRlZC4KKyAgICAgICAgICAgICAgICAgYXQgdGhpcyB2ZXJzaW9uIG9yIGFib3ZlIHdp
bGwgYmUgaW5jbHVkZWQuCiAKICAgICAgICAgICAgICAgICAgRXhhbXBsZTogd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuaHRtbD9taW5WZXJzaW9uPTEuMy4yCiAKSW5kZXg6IExheW91dFRlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Rlc3QtZ3VpZGVsaW5lcy5tZAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy90ZXN0LWd1aWRlbGluZXMubWQJKHJldmlzaW9uIDE3OTg0MikKKysrIExheW91dFRl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Rlc3QtZ3VpZGVsaW5l
cy5tZAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIENvbnRyaWJ1dGluZyBXZWJHTCBj
b25mb3JtYW5jZSB0ZXN0cyBHdWlkZWxpbmVzCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogCi1UaGFuayB5b3UgZm9yIGNvbnRpYnV0aW5nIHRvIHRoZSBX
ZWJHTCBjb25mb3JtYW5jZSB0ZXN0cy4KK1RoYW5rIHlvdSBmb3IgY29udHJpYnV0aW5nIHRvIHRo
ZSBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0cy4KIFBsZWFzZSB0cnkgdG8gZm9sbG93IHRoZXNlIGd1
aWRlbGluZXMgd2hlbiBzdWJtaXR0aW5nIGEgdGVzdC4KIAogKiAgIElmIHlvdSdyZSBuZXcgdG8g
Z2l0IFtoZXJlJ3MgYSB0ZXJzZSBzZXQgb2YgaW5zdHJ1Y3Rpb25zXShodHRwOi8vd3d3Lmtocm9u
b3Mub3JnL3dlYmdsL3dpa2kvVXNpbmdfR2l0aHViX1RvX0NvbnRyaWJ1dGUgIlVzaW5nIEdpdGh1
YiB0byBDb250cmlidXRlIikuCkBAIC00Myw3ICs0Myw3IEBAIFRoZXNlIGxpbmVzIGFwcGVhcnMg
YXQgdGhlIHRvcCBvZiBldmVyeSAKICogICBQbGVhc2UgdXNlIGNvZGUgc2ltaWxhciB0byB0aGUg
Y29kZSBpbiBleGlzdGluZyB0ZXN0cwogCiAgICAgSWRlYWxseSwgY29weSBhbiBleGlzdGluZyB0
ZXN0IGFuZCBtb2RpZnkgaXQgZm9yIHlvdXIgbmV3IHRlc3QuIFRyeSBub3QgdG8gZHVwbGljYXRl
Ci0gICAgY29kZSB0aGF0IGFscmVhZHkgZXhpc3RzIHdoZXJlIGFwcHJvcmlhdGUuIEluIHBhcnRp
Y3VsYXIKKyAgICBjb2RlIHRoYXQgYWxyZWFkeSBleGlzdHMgd2hlcmUgYXBwcm9wcmlhdGUuIElu
IHBhcnRpY3VsYXIKIAogICAgICogICB1c2UgdGhlIGZ1bmN0aW9ucyBpbiBXZWJHTFRlc3RVdGls
cyByYXRoZXIgdGhhbiBkdXBsaWNhdGluZyBmdW5jdGlvbmFsaXR5LgogCkBAIC05MSw3ICs5MSw3
IEBAIFRoZXNlIGxpbmVzIGFwcGVhcnMgYXQgdGhlIHRvcCBvZiBldmVyeSAKICAgICAgICAgICAg
ICBuYW1lIGluIGBvcHRfYXR0cmlic2AgaXMgYm91bmQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgbG9j
YXRpb24gaW4gYG9wdF9sb2NhdGlvbnNgLgogCiAgICAgICAgICogICAgSWYgeW91IG5lZWQgdG8g
d2FpdCBmb3IgYSBjb21wb3NpdGUgY2FsbCBgV2ViR0xUZXN0VXRpbHMud2FpdEZvckNvbXBvc2l0
ZWAuCi0gICAgICAgICAgICAgQXMgY29tcG9zaXRpbmcgaXMgYSBicm93c2VyIHNwZWNmaWMgdGhp
bmcgdGhpcyBwcm92aWRlcyBhIGNlbnRyYWwgcGxhY2UgdG8KKyAgICAgICAgICAgICBBcyBjb21w
b3NpdGluZyBpcyBhIGJyb3dzZXIgc3BlY2lmaWMgdGhpbmcgdGhpcyBwcm92aWRlcyBhIGNlbnRy
YWwgcGxhY2UgdG8KICAgICAgICAgICAgICB1cGRhdGUgYWxsIHRlc3RzIHRoYXQgcmVseSBvbiBj
b21wb3NpdGluZyB0byBmdW5jdGlvbi4KIAogICAgICogICBDb2RlL1RhZyBPcmRlcgpAQCAtMTMz
LDE3ICsxMzMsMTcgQEAgVGhlc2UgbGluZXMgYXBwZWFycyBhdCB0aGUgdG9wIG9mIGV2ZXJ5IAog
ICAgICAgICAgICAgICAgIHJ1bk5leHRUZXN0KCk7CiAKICAgICAgICAgICAgIFJlbWVtYmVyIHRo
ZSB0ZXN0cyBuZWVkIHRvIHJ1biB3aXRob3V0IHRpbWluZyBvdXQgZXZlbiBhbmQgc2xvdyBtb2Jp
bGUgZGV2aWNlcy4KLSAgICAgICAgICAgIFRoZSBoYXJuZXNzIHJlc2V0cyB0aGUgdGltZW91dCB0
aW1lciBldmVyeXRpbWUgYSB0ZXN0IHJlcG9ydHMgc3VjY2VzcyBvciBmYWlsdXJlCisgICAgICAg
ICAgICBUaGUgaGFybmVzcyByZXNldHMgdGhlIHRpbWVvdXQgdGltZXIgZXZlcnkgdGltZSBhIHRl
c3QgcmVwb3J0cyBzdWNjZXNzIG9yIGZhaWx1cmUKICAgICAgICAgICAgIHNvIGFzIGxvbmcgYXMg
c29tZSBwYXJ0IG9mIHlvdXIgdGVzdCBjYWxscyBgdGVzdFBhc3NlZGAgb3IgYHRlc3RGYWlsZWRg
IG9yIG9uZSBvZiB0aGUKICAgICAgICAgICAgIG1hbnkgd3JhcHBlcnMgKGBzaG91bGRYWFhgLCBg
Z2xFcnJvclNob3VsZEJlYCwgYFdlYkdMVGVzdFV0aWxzLmNoZWNrQ2FudmFzWFhYYCwgZXRjLi4p
CiAgICAgICAgICAgICBldmVyeSBzbyBvZnRlbiB0aGUgaGFybmVzcyB3aWxsIG5vdCB0aW1lb3V0
IHlvdXIgdGVzdC4KIAotICAgICAgICAqICAgVGhlIHRlc3QgaGFybmVzcyByZXF1cmllcyB0aGUg
Z2xvYmFsIHZhcmlhYmxlIGBzdWNjZXNzZnVsbHlQYXJzZWAgdG8gYmUgc2V0IHRvIHRydWUuCisg
ICAgICAgICogICBUaGUgdGVzdCBoYXJuZXNzIHJlcXVpcmVzIHRoZSBnbG9iYWwgdmFyaWFibGUg
YHN1Y2Nlc3NmdWxseVBhcnNlYCB0byBiZSBzZXQgdG8gdHJ1ZS4KICAgICAgICAgICAgIFRoaXMg
dXN1YWxseSBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgYSBmaWxlLgogCiAgICAgICAgICAgICAgICAg
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiAKLSAgICAqICAgRG8gbm90IHVzZSBicm93
c2VyIHNwZWNmaWMgY29kZS4KKyAgICAqICAgRG8gbm90IHVzZSBicm93c2VyIHNwZWNpZmljIGNv
ZGUuCiAKICAgICAgICAgKiAgIERvIG5vdCBjaGVjayB0aGUgYnJvd3NlciB2ZXJzaW9uLiBVc2Ug
ZmVhdHVyZSBkZXRlY3Rpb24uCiAKQEAgLTE1MSw3ICsxNTEsNyBAQCBUaGVzZSBsaW5lcyBhcHBl
YXJzIGF0IHRoZSB0b3Agb2YgZXZlcnkgCiAgICAgICAgICAgICBvdGhlciB0ZXN0cyBjYW4gZ28g
dGhyb3VnaCB0aGUgc2FtZSBhYnN0cmFjdGlvbiBhbmQgdGhlIHdvcmthcm91bmQgaXMgaXNvbGF0
ZWQKICAgICAgICAgICAgIHRvIG9uZSBwbGFjZS4KIAotICAgICAgICAqICAgVmVuZG9ycyBtYXkg
cGxhY2UgdGVzdCBoYXJuZXNzIHNwZWNpZmljIGNvZGUgaW4gdGhlIHRlc3RpbmcgaW5mcnVzdHJ1
Y3R1cmUuCisgICAgICAgICogICBWZW5kb3JzIG1heSBwbGFjZSB0ZXN0IGhhcm5lc3Mgc3BlY2lm
aWMgY29kZSBpbiB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4KIAogICAgICAgICAgICAgICAg
IHJlc291cmNlcy9qcy10ZXN0LXByZS5qcwogICAgICAgICAgICAgICAgIGNvbmZvcm1hbmNlL21v
cmUvdW5pdC5qcwpAQCAtMTY0LDExICsxNjQsMTEgQEAgVGhlc2UgbGluZXMgYXBwZWFycyBhdCB0
aGUgdG9wIG9mIGV2ZXJ5IAogCiAgICAgKiAgIEFsbCBKYXZhU2NyaXB0IG11c3Qgc3RhcnQgd2l0
aCAidXNlIHN0cmljdCI7CiAKLSogICBJZiBhZGRpbmcgYSBuZXcgdGVzdCBlZGl0IHRoZSBhcHBy
b3JpYXRlIDAwX3Rlc3RfbGlzdC50eHQgZmlsZQorKiAgIElmIGFkZGluZyBhIG5ldyB0ZXN0IGVk
aXQgdGhlIGFwcHJvcHJpYXRlIDAwX3Rlc3RfbGlzdC50eHQgZmlsZQogCiAgICAgRWFjaCBmb2xk
ZXIgaGFzIGEgMDBfdGVzdF9saXN0LnR4dCBmaWxlIHRoYXQgbGlzdHMgdGhlIHRlc3QgaW4gdGhh
dCBmb2xkZXIuCiAgICAgRWFjaCBuZXcgdGVzdCBzaG91bGQgYmUgcHJlZml4ZWQgd2l0aCB0aGUg
b3B0aW9uIGAtLW1pbi12ZXJzaW9uIDx2ZXJzaW9uPmAgd2hlcmUKLSAgICB2ZXJzaW9uIGlzIDEg
bW9yZSB0aGFuIHRoZSBuZXdlc3Qgb2ZmaWNpYWwgdmVyaXNvbi4gQXQgdGhlIHRpbWUgb2YgdGhp
cyB3cml0aW5nCisgICAgdmVyc2lvbiBpcyAxIG1vcmUgdGhhbiB0aGUgbmV3ZXN0IG9mZmljaWFs
IHZlcnNpb24uIEF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZwogICAgIGFsbCBuZXcgdGVzdHMg
c2hvdWxkIGJlIHByZWZpeGVkIHdpdGggYC0tbWluLXZlcnNpb24gMS4wLjJgCiAKIApJbmRleDog
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy93ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy5o
dG1sCShyZXZpc2lvbiAxNzk4NDIpCisrKyBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy93ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNyArMTQ0LDggQEAgZnVuY3Rpb24gc3RhcnQoKSB7CiAgIHZhciByZXBv
cnRUeXBlID0gV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0SGFybmVzcy5yZXBvcnRUeXBlOwog
ICB2YXIgcGFnZUNvdW50ID0gMDsKICAgdmFyIGZvbGRlckNvdW50ID0gMDsKLSAgdmFyIGF1dG9T
Y3JvbGwgPSB0cnVlOworICB2YXIgYXV0b1Njcm9sbEVuYWJsZWQgPSB0cnVlOyAvLyBXaGV0aGVy
IHRoZSB1c2VyIHByZWZlcnMgdG8gYXV0byBzY3JvbGwKKyAgdmFyIGF1dG9TY3JvbGwgPSB0cnVl
OyAvLyBXaGV0aGVyIGF1dG8gc2Nyb2xsIGlzIGFjdHVhbGx5IHBlcmZvcm1lZAogCiAgIHZhciBQ
YWdlID0gZnVuY3Rpb24ocmVwb3J0ZXIsIGZvbGRlciwgdGVzdEluZGV4LCB1cmwpIHsKICAgICB0
aGlzLnJlcG9ydGVyID0gcmVwb3J0ZXI7CkBAIC0yOTcsNyArMjk4LDcgQEAgZnVuY3Rpb24gc3Rh
cnQoKSB7CiAgICAgYnV0dG9uLnR5cGUgPSAnYnV0dG9uJzsKICAgICBidXR0b24udmFsdWUgPSAn
cnVuJzsKICAgICBidXR0b24ub25jbGljayA9IGZ1bmN0aW9uKCkgewotICAgICAgYXV0b1Njcm9s
bCA9IHRydWU7CisgICAgICBhdXRvU2Nyb2xsID0gYXV0b1Njcm9sbEVuYWJsZWQ7CiAgICAgICB0
aGF0LnJ1bigpOwogICAgIH07CiAgICAgaWYgKHJlcG9ydGVyLm5vV2ViR0wpIHsKQEAgLTc3MSwx
MCArNzcyLDE2IEBAIGZ1bmN0aW9uIHN0YXJ0KCkgewogICB2YXIgYnV0dG9uID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJ1blRlc3RzQnV0dG9uIik7CiAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRy
dWU7CiAgIGJ1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oKSB7Ci0gICAgYXV0b1Njcm9sbCA9IHRy
dWU7CisgICAgYXV0b1Njcm9sbCA9IGF1dG9TY3JvbGxFbmFibGVkOwogICAgIHJlcG9ydGVyLnBv
c3RUZXN0U3RhcnRUb1NlcnZlcigpOwogICAgIHRlc3RIYXJuZXNzLnJ1blRlc3RzKCk7CiAgIH07
CisgIHZhciBhdXRvU2Nyb2xsQ2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0
b1Njcm9sbENoZWNrYm94Iik7CisgIGF1dG9TY3JvbGxDaGVja2JveC5jaGVja2VkID0gYXV0b1Nj
cm9sbEVuYWJsZWQ7CisgIGF1dG9TY3JvbGxDaGVja2JveC5vbmNsaWNrID0gZnVuY3Rpb24oKSB7
CisgICAgYXV0b1Njcm9sbEVuYWJsZWQgPSBhdXRvU2Nyb2xsQ2hlY2tib3guY2hlY2tlZDsKKyAg
ICBhdXRvU2Nyb2xsID0gYXV0b1Njcm9sbEVuYWJsZWQ7CisgIH07CiAgIHZhciB0ZXh0YnV0dG9u
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNob3dUZXh0U3VtbWFyeSIpOwogICB0ZXh0YnV0
dG9uLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICBsb2coImNsaWNrIik7CkBAIC04MzAsNiAr
ODM3LDkgQEAgZnVuY3Rpb24gc3RhcnQoKSB7CiAgICAgICAgICAgICAgIDxici8+CiAgICAgICAg
ICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJydW4gdGVzdHMiIGlkPSJydW5UZXN0
c0J1dHRvbiIvPgogICAgICAgICAgICAgICA8YnIvPgorICAgICAgICAgICAgICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJhdXRvU2Nyb2xsQ2hlY2tib3giLz4KKyAgICAgICAgICAgICAgPGxh
YmVsIGZvcj0iYXV0b1Njcm9sbENoZWNrYm94Ij5hdXRvIHNjcm9sbDwvbGFiZWw+CisgICAgICAg
ICAgICAgIDxici8+CiAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHN0eWxlPSJ2
aXNpYmlsaXR5OiBoaWRkZW47IiB2YWx1ZT0iZGlzcGxheSB0ZXh0IHN1bW1hcnkiIGlkPSJzaG93
VGV4dFN1bW1hcnkiLz4KICAgICAgICAgICAgICAgPGRpdiBpZD0ibm93ZWJnbCIgY2xhc3M9Im5v
d2ViZ2wiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgICAgICAgICAgICAgICAgVGhpcyBicm93
c2VyIGRvZXMgbm90IGFwcGVhciB0byBzdXBwb3J0IFdlYkdMCkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJz
L2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbAkocmV2aXNpb24gMTc5ODQyKQorKysg
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDIwICs0NCwyMCBAQAogYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKIGF0dHJp
YnV0ZSB2ZWM0IGFfY29sb3I7CiB2YXJ5aW5nIHZlYzQgdl9jb2xvcjsKK2Jvb2wgaXNDb3JyZWN0
Q29sb3IodmVjNCB2KSB7CisgIHJldHVybiB2LnggPT0gMC4wICYmIHYueSA9PSAwLjAgJiYgdi56
ID09IDAuMCAmJiB2LncgPT0gMS4wOworfQogdm9pZCBtYWluKCkgewogICBnbF9Qb3NpdGlvbiA9
IGFfcG9zaXRpb247Ci0gIHZfY29sb3IgPSBhX2NvbG9yOworICB2X2NvbG9yID0gaXNDb3JyZWN0
Q29sb3IoYV9jb2xvcikgPyB2ZWM0KDAsIDEsIDAsIDEpIDogdmVjNCgxLCAwLCAwLCAxKTsKIH0K
IDwvc2NyaXB0PgogCiA8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdt
ZW50Ij4KIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwogdmFyeWluZyB2ZWM0IHZfY29sb3I7Ci1i
b29sIGlzQ29ycmVjdENvbG9yKHZlYzQgdikgewotICByZXR1cm4gdi54ID09IDAuMCAmJiB2Lnkg
PT0gMC4wICYmIHYueiA9PSAwLjAgJiYgdi53ID09IDEuMDsKLX0KIHZvaWQgbWFpbigpIHsKLSAg
Z2xfRnJhZ0NvbG9yID0gaXNDb3JyZWN0Q29sb3Iodl9jb2xvcikgPyB2ZWM0KDAsIDEsIDAsIDEp
IDogdmVjNCgxLCAwLCAwLCAxKTsKKyAgZ2xfRnJhZ0NvbG9yID0gdl9jb2xvcjsKIH0KIDwvc2Ny
aXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L2NvbnRleHQtY3JlYXRpb24tYW5kLWRlc3RydWN0
aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWNyZWF0aW9uLWFu
ZC1kZXN0cnVjdGlvbi5odG1sCShyZXZpc2lvbiAxNzk4NDIpCisrKyBMYXlvdXRUZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L2Nv
bnRleHQtY3JlYXRpb24tYW5kLWRlc3RydWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDQ5ICszMiwyMSBAQAogPHRpdGxlPlRlc3QgdGhhdCBjb250ZXh0cyBhcmUgZnJlZWQgYW5kIGdh
cmJhZ2UgY29sbGVjdGVkIHJlYXNvbmFibHk8L3RpdGxlPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvaXRlcmFibGUtdGVzdC5qcyI+IDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+
CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
IDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIg
dGFyZ2V0ID0gNTAwOwotdmFyIGNvdW50ID0gMDsKLQogZGVzY3JpcHRpb24oKTsKLWRvTmV4dFRl
c3QoKTsKIAotLy8gQ3JlYXRlcyBhIGNhbnZhcyBhbmQgYSB0ZXh0dXJlIHRoZW4gZXhpdHMuIFRo
ZXJlIGFyZQotLy8gbm8gcmVmZXJlbmNlcyB0byBlaXRoZXIgc28gYm90aCBzaG91bGQgYmUgZ2Fy
YmFnZSBjb2xsZWN0ZWQuCi1mdW5jdGlvbiB0ZXN0KCkgewotICB2YXIgY2FudmFzID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIC8vIFRoaXMgaXMgc2FmZSBmb3IgYW55IGRl
dmljZS4gU2VlIGRyYXdpbmdCdWZmZXJXaWR0aCBpbiBzcGVjLgotICBjYW52YXMud2lkdGggPSAy
MDQ4OwotICBjYW52YXMuaGVpZ2h0ID0gMjA0ODsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dChjYW52YXMpOwotICB2YXIgbWF4VGV4dHVyZVNpemUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wu
TUFYX1RFWFRVUkVfU0laRSk7Ci0gIHZhciBzaXplID0gTWF0aC5taW4oMTAyNCwgbWF4VGV4dHVy
ZVNpemUpOwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIHNpemUsIHNpemUsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAg
ICAgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoc2l6ZSAqIHNpemUgKiA0KSk7Ci0gIGdsLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiU2hvdWxkIGJlIG5vIGVycm9ycyIpOwotfQordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwog
Ci1mdW5jdGlvbiBkb05leHRUZXN0KCkgewotICArK2NvdW50OwotICBkZWJ1ZygidGVzdCAiICsg
Y291bnQgKyAiIG9mICIgKyB0YXJnZXQpOwotICB0ZXN0KCk7Ci0gIGlmIChjb3VudCA8IHRhcmdl
dCkgewotICAgIHNldFRpbWVvdXQoZG9OZXh0VGVzdCwgMTAwKTsKLSAgfSBlbHNlIHsKLSAgICBm
aW5pc2hUZXN0KCk7Ci0gIH0KLX0KK3ZhciB0ZXN0ID0gSXRlcmFibGVUZXN0LmNyZWF0ZUNvbnRl
eHRDcmVhdGlvbkFuZERlc3RydWN0aW9uVGVzdCgpOwordmFyIGl0ZXJhdGlvbnMgPSBwYXJzZUlu
dCh3dHUuZ2V0VXJsT3B0aW9ucygpLml0ZXJhdGlvbnMsIDEwKSB8fCA1MDsKK0l0ZXJhYmxlVGVz
dC5ydW4odGVzdCwgaXRlcmF0aW9ucyk7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4
dHVyZS1zM3RjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21w
cmVzc2VkLXRleHR1cmUtczN0Yy5odG1sCShyZXZpc2lvbiAxNzk4NDIpCisrKyBMYXlvdXRUZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRl
bnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTYwOSw3ICs2MDksNyBAQCBmdW5jdGlvbiBjb21wYXJlUmVjdCgKICAgICAgICAgICAgICAg
ICBpZiAoYWN0dWFsW2FjdHVhbE9mZnNldCArIGpqXSAhPSBleHBlY3RlZFtqal0pIHsKICAgICAg
ICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgdmFyIHdh
cyA9IGFjdHVhbFthY3R1YWxPZmZzZXQgKyAwXS50b1N0cmluZygpOwotICAgICAgICAgICAgICAg
ICAgICBmb3IgKGogPSAxOyBqIDwgNDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGogPSAxOyBqIDwgNDsgKytqKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB3YXMgKz0g
IiwiICsgYWN0dWFsW2FjdHVhbE9mZnNldCArIGpdOwogICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ2F0ICgnICsgeHggKyAnLCAnICsgeXkgKwpJ
bmRleDogTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1kZWJ1Zy1zaGFkZXJzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1kZWJ1Zy1zaGFkZXJzLmh0bWwJKHJldmlzaW9u
IDE3OTg0MikKKysrIExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtZGVidWctc2hhZGVycy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIHZhciBzaGFkZXIgPSBudWxsOwogdmFyIHBy
b2dyYW0gPSBudWxsOwogdmFyIGluZm8gPSBudWxsOwogdmFyIHRyYW5zbGF0ZWRTb3VyY2U7Cit2
YXIgbmV3VHJhbnNsYXRlZFNvdXJjZTsKIAogaWYgKCFnbCkgewogICAgIHRlc3RGYWlsZWQoIldl
YkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKQEAgLTExNyw5ICsxMTgsOSBAQCBmdW5jdGlv
biBydW5UZXN0RW5hYmxlZCgpIHsKIAogICAgICAgICAgICAgLy8gaWYgbm8gc291cmNlIGhhcyBi
ZWVuIGRlZmluZWQgb3IgY29tcGlsZVNoYWRlcigpIGhhcyBub3QgYmVlbiBjYWxsZWQsCiAgICAg
ICAgICAgICAvLyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKCkgc2hvdWxkIHJldHVybiBhbiBl
bXB0eSBzdHJpbmcuCi0gICAgICAgICAgICBzaG91bGRCZU51bGwoImV4dC5nZXRUcmFuc2xhdGVk
U2hhZGVyU291cmNlKHNoYWRlcikiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJleHQuZ2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZShzaGFkZXIpIiwgJyIiJyk7CiAgICAgICAgICAgICBnbC5zaGFk
ZXJTb3VyY2Uoc2hhZGVyLCBpbmZvLnNvdXJjZSk7Ci0gICAgICAgICAgICBzaG91bGRCZU51bGwo
ImV4dC5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKHNoYWRlcikiKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJleHQuZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZShzaGFkZXIpIiwgJyIiJyk7CiAg
ICAgICAgICAgICBnbC5jb21waWxlU2hhZGVyKHNoYWRlcik7CiAgICAgICAgICAgICBzaG91bGRC
ZVRydWUoImdsLmdldFNoYWRlclBhcmFtZXRlcihzaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSIp
OwogICAgICAgICAgICAgdHJhbnNsYXRlZFNvdXJjZSA9IGV4dC5nZXRUcmFuc2xhdGVkU2hhZGVy
U291cmNlKHNoYWRlcik7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWRlcHRoLXRleHR1
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWRlcHRoLXRleHR1
cmUuaHRtbAkocmV2aXNpb24gMTc5ODQyKQorKysgTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1kZXB0
aC10ZXh0dXJlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3Myw5ICsyNzMsOCBAQCBmdW5jdGlv
biBydW5UZXN0RXh0ZW5zaW9uKCkgewogCiAgICAgICAgIGR1bXBJdChnbCwgcmVzLCAiLS1kZXB0
aC0tIik7CiAKLSAgICAgICAgLy8gQ2hlY2sgdGhhdCBlYWNoIHBpeGVsJ3MgUkdCIGFyZSB0aGUg
c2FtZSBhbmQgdGhhdCBpdCdzIHZhbHVlIGlzIGxlc3MKLSAgICAgICAgLy8gdGhhbiB0aGUgcHJl
dmlvdXMgcGl4ZWwgaW4gZWl0aGVyIGRpcmVjdGlvbi4gQmFzaWNhbGx5IHZlcmlmeSB3ZSBoYXZl
IGEKLSAgICAgICAgLy8gZ3JhZGllbnQuCisgICAgICAgIC8vIENoZWNrIHRoYXQgZWFjaCBwaXhl
bCdzIFIgdmFsdWUgaXMgbGVzcyB0aGFuIHRoYXQgb2YgdGhlIHByZXZpb3VzIHBpeGVsCisgICAg
ICAgIC8vIGluIGVpdGhlciBkaXJlY3Rpb24uIEJhc2ljYWxseSB2ZXJpZnkgd2UgaGF2ZSBhIGdy
YWRpZW50LgogICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7CiAgICAgICAgIGZvciAodmFyIHl5
ID0gMDsgeXkgPCByZXM7ICsreXkpIHsKICAgICAgICAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDwg
cmVzOyArK3h4KSB7CkBAIC0yODMsMjAgKzI4Miw2IEBAIGZ1bmN0aW9uIHJ1blRlc3RFeHRlbnNp
b24oKSB7CiAgICAgICAgICAgICB2YXIgbGVmdCA9IGFjdHVhbCAtIDQ7CiAgICAgICAgICAgICB2
YXIgZG93biA9IGFjdHVhbCAtIHJlcyAqIDQ7CiAKLSAgICAgICAgICAgIGlmIChhY3R1YWxQaXhl
bHNbYWN0dWFsICsgMF0gIT0gYWN0dWFsUGl4ZWxzW2FjdHVhbCArIDFdKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgnUiAhPSBHJyk7Ci0gICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZh
bHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGFjdHVhbFBpeGVsc1thY3R1YWwg
KyAwXSAhPSBhY3R1YWxQaXhlbHNbYWN0dWFsICsgMl0pIHsKLSAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCdSICE9IEInKTsKLSAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAvLyBBTFBIQSBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRl
bnQKLSAgICAgICAgICAgIGlmIChhY3R1YWxQaXhlbHNbYWN0dWFsICsgM10gIT0gMHhGRiAmJiBh
Y3R1YWxQaXhlbHNbYWN0dWFsICsgM10gIT0gYWN0dWFsUGl4ZWxzW2FjdHVhbCArIDBdKSB7Ci0g
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnQSAhPSAyNTUgJiYgQSAhPSBSJyk7Ci0gICAgICAg
ICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAgICBp
ZiAoeHggPiAwKSB7CiAgICAgICAgICAgICAgIGlmIChhY3R1YWxQaXhlbHNbYWN0dWFsXSA8PSBh
Y3R1YWxQaXhlbHNbbGVmdF0pIHsKICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImFjdHVh
bCgiICsgYWN0dWFsUGl4ZWxzW2FjdHVhbF0gKyAiKSA8IGxlZnQoIiArIGFjdHVhbFBpeGVsc1ts
ZWZ0XSArICIpIik7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL21pc2Mvc2hhZGVyLXdpdGgtYXJyYXktb2Yt
c3RydWN0cy1jb250YWluaW5nLWFycmF5cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wv
bWlzYy9zaGFkZXItd2l0aC1hcnJheS1vZi1zdHJ1Y3RzLWNvbnRhaW5pbmctYXJyYXlzLmh0bWwJ
KHJldmlzaW9uIDE3OTg0MikKKysrIExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9zaGFkZXItd2l0aC1hcnJheS1v
Zi1zdHJ1Y3RzLWNvbnRhaW5pbmctYXJyYXlzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw4
ICsxMDksNiBAQCBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjsgKytpaSkgewogCiB2YXIgcHJvZ3Jh
bSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlciIsICJmc2hhZGVyLXdpdGgtb25lLWVs
ZW1lbnQtYXJyYXlzIl0sIFsiYV9wb3NpdGlvbiJdKTsKIHZhciBncmVlbl9sb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVfY29sb3JzWzBdLmNvbG9yWzBdIik7Ci12YXIgemVy
b3RoX2NvbG9yID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ1X2NvbG9yc1swXS5j
b2xvciIpOwotc2hvdWxkQmVUcnVlKCJ6ZXJvdGhfY29sb3IgIT0gdW5kZWZpbmVkIik7CiBnbC51
bmlmb3JtNGZ2KGdyZWVuX2xvYywgWzAsIDEsIDAsIDFdKTsKIHd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCk7CiB3dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJTaG91bGQg
YmUgZ3JlZW4iKTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21pc2MvYmFkLWFyZ3VtZW50cy10ZXN0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbWlzYy9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbAkocmV2aXNpb24g
MTc5ODQyKQorKysgTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbWlzYy9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNzIsMTUgKzcyLDEzIEBAIGZ1bmN0aW9uIHNob3VsZEJlRW1wdHlTdHJpbmcoY29t
bWFuZCkgewogfQogCiBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RBcmd1bWVudHMubGVuZ3RoOyAr
K2kpIHsKLSAgdmFyIGZ1bmMsIGZ1bmMyLCBmdW5jMzsKKyAgdmFyIGZ1bmMsIGZ1bmMyOwogICBp
ZiAodGVzdEFyZ3VtZW50c1tpXS50aHJvd3MpIHsKICAgICBmdW5jID0gc2hvdWxkVGhyb3c7CiAg
ICAgZnVuYzIgPSBzaG91bGRUaHJvdzsKLSAgICBmdW5jMyA9IHNob3VsZFRocm93OwogICB9IGVs
c2UgewogICAgIGZ1bmMgPSBzaG91bGRCZVVuZGVmaW5lZDsKICAgICBmdW5jMiA9IHNob3VsZEJl
TnVsbDsKLSAgICBmdW5jMyA9IHNob3VsZEJlRW1wdHlTdHJpbmc7CiAgIH0KICAgYXJndW1lbnQg
PSB0ZXN0QXJndW1lbnRzW2ldLnZhbHVlOwogICBmdW5jKCJjb250ZXh0LmNvbXBpbGVTaGFkZXIo
YXJndW1lbnQpIik7CkBAIC0xMDIsMTUgKzEwMCwxNSBAQCBmb3IgKHZhciBpID0gMDsgaSA8IHRl
c3RBcmd1bWVudHMubGVuZ3RoCiAgIGZ1bmMoImNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVudCwg
bmV3IEludDMyQXJyYXkoWzAsIDBdKSkiKTsKICAgZnVuYygiY29udGV4dC51bmlmb3JtTWF0cml4
MmZ2KGFyZ3VtZW50LCBmYWxzZSwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjAsIDAuMCwgMC4w
XSkpIik7CiAKKyAgZnVuYzIoImNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIik7
CiAgIGZ1bmMyKCJjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIik7Cisg
IGZ1bmMyKCJjb250ZXh0LmdldFNoYWRlckluZm9Mb2coYXJndW1lbnQpIik7CiAgIGZ1bmMyKCJj
b250ZXh0LmdldFNoYWRlclBhcmFtZXRlcihhcmd1bWVudCwgMCkiKTsKKyAgZnVuYzIoImNvbnRl
eHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSIpOwogICBmdW5jMigiY29udGV4dC5nZXRVbmlm
b3JtKGFyZ3VtZW50LCBsb2MpIik7CiAgIGZ1bmMyKCJjb250ZXh0LmdldFVuaWZvcm0ocHJvZ3Jh
bSwgYXJndW1lbnQpIik7CiAgIGZ1bmMyKCJjb250ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1
bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcpIik7CiAKLSAgZnVuYzMoImNvbnRleHQuZ2V0
UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIik7Ci0gIGZ1bmMzKCJjb250ZXh0LmdldFNoYWRlcklu
Zm9Mb2coYXJndW1lbnQpIik7Ci0gIGZ1bmMzKCJjb250ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1
bWVudCkiKTsKIH0KIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlv
dXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9taXNjL3dlYmdsLXNwZWNpZmljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbWlzYy93ZWJn
bC1zcGVjaWZpYy5odG1sCShyZXZpc2lvbiAxNzk4NDIpCisrKyBMYXlvdXRUZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9taXNjL3dlYmdsLXNw
ZWNpZmljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDEyIEBAIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEUKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
Z2wuTk9fRVJST1IsICJnbC5zdGVuY2lsRnVuY1NlcGFyYXRlKGdsLkZST05ULCBnbC5BTFdBWVMs
IDEsIDEpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJh
d0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDApIik7CiAKKy8vIEFkZGVkIGluIDEuMC4zIHZlcnNp
b24gb2Ygc3BlYy4KKy8vIGRlYnVnKCIiKTsKKy8vIGRlYnVnKCJWZXJpZnkgdGhhdCBJTVBMRU1F
TlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVCBhbmQgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9U
WVBFIGFyZSB1bmRlZmluZWQiKTsKKy8vIHNob3VsZEJlVW5kZWZpbmVkKGdsLklNUExFTUVOVEFU
SU9OX0NPTE9SX1JFQURfRk9STUFUKTsKKy8vIHNob3VsZEJlVW5kZWZpbmVkKGdsLklNUExFTUVO
VEFUSU9OX0NPTE9SX1JFQURfVFlQRSk7CisKIGRlYnVnKCIiKTsKIGRlYnVnKCJWZXJpZnkgdGhh
dCAqTEVOR1RIIGFyZSB1bmRlZmluZWQiKTsKIHNob3VsZEJlVW5kZWZpbmVkKGdsLklORk9fTE9H
X0xFTkdUSCk7CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS91bml0LmpzCShyZXZpc2lvbiAxNzk4NDIpCisrKyBMYXlvdXRUZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuanMJKHdv
cmtpbmcgY29weSkKQEAgLTM5MCw2ICszOTAsMzggQEAgZnVuY3Rpb24gYXNzZXJ0QXJyYXlFcXVh
bHMobmFtZSwgdiwgcCkgewogICByZXR1cm4gdHJ1ZTsKIH0KIAorZnVuY3Rpb24gYXNzZXJ0QXJy
YXlFcXVhbHNXaXRoRXBzaWxvbihuYW1lLCB2LCBwLCBsKSB7CitpZiAobCA9PSBudWxsKSB7IGwg
PSBwOyBwID0gdjsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CitpZiAoIXYpIHsKK3Rlc3RGYWls
ZWQoImFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2lsb246IGZpcnN0IGFycmF5IHVuZGVmaW5lZCIs
IG5hbWUsIHYsIHApOworcmV0dXJuIGZhbHNlOworfQoraWYgKCFwKSB7Cit0ZXN0RmFpbGVkKCJh
c3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uOiBzZWNvbmQgYXJyYXkgdW5kZWZpbmVkIiwgbmFt
ZSwgdiwgcCk7CityZXR1cm4gZmFsc2U7Cit9CitpZiAoIWwpIHsKK3Rlc3RGYWlsZWQoImFzc2Vy
dEFycmF5RXF1YWxzV2l0aEVwc2lsb246IGxpbWl0IGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYs
IHApOworcmV0dXJuIGZhbHNlOworfQoraWYgKHYubGVuZ3RoICE9IHAubGVuZ3RoKSB7Cit0ZXN0
RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uIiwgbmFtZSwgdiwgcCwgbCk7City
ZXR1cm4gZmFsc2U7Cit9CitpZiAodi5sZW5ndGggIT0gbC5sZW5ndGgpIHsKK3Rlc3RGYWlsZWQo
ImFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2lsb24iLCBuYW1lLCB2LCBwLCBsKTsKK3JldHVybiBm
YWxzZTsKK30KK2ZvciAodmFyIGlpID0gMDsgaWkgPCB2Lmxlbmd0aDsgKytpaSkgeworaWYgKE1h
dGguYWJzKHZbaWldLSBwW2lpXSk+bFtpaV0pIHsKK3Rlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1
YWxzV2l0aEVwc2lsb24iLCBuYW1lLCB2LCBwLCBsKTsKK3JldHVybiBmYWxzZTsKK30KK30KK3Rl
c3RQYXNzZWQoImFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2lsb24iLCBuYW1lLCB2LCBwLCBsKTsK
K3JldHVybiB0cnVlOworfQorCiBmdW5jdGlvbiBhc3NlcnROb3RFcXVhbHMobmFtZSwgdiwgcCkg
ewogICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KICAg
aWYgKGNvbXBhcmUodiwgcCkpIHsKSW5kZXg6IExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL3V0aWwuanMJKHJldmlzaW9uIDE3OTg0MikKKysrIExheW91dFRlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dXRpbC5qcwkod29ya2luZyBjb3B5KQpAQCAtODQxLDcgKzg0MSw3IEBAIFZCTy5wcm90b3R5cGUg
PSB7CiAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB0aGlzLmluaXQoKTsKICAgICB2YXIgZ2wg
PSB0aGlzLmdsOwogICAgIGZvciAodmFyIGk9MDsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsK
LSAgICAgIGlmIChhcmd1bWVudHNbaV0gPT0gbnVsbCkgY29udGludWU7CisJICBpZiAoYXJndW1l
bnRzW2ldID09IG51bGwgfHwgYXJndW1lbnRzW2ldID09IC0xKSBjb250aW51ZTsKICAgICAgIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB0aGlzLnZib3NbaV0pOwogICAgICAgZ2wudmVy
dGV4QXR0cmliUG9pbnRlcihhcmd1bWVudHNbaV0sIHRoaXMuZGF0YVtpXS5zaXplLCBnbC5GTE9B
VCwgZmFsc2UsIDAsIDApOwogICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYXJndW1l
bnRzW2ldKTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3VuaWZvcm1NYXRyaXhCYWRBcmdz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5pZm9ybU1hdHJpeEJh
ZEFyZ3MuaHRtbAkocmV2aXNpb24gMTc5ODQyKQorKysgTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdW5p
Zm9ybU1hdHJpeEJhZEFyZ3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBA
IFRlc3RzLnRlc3RVbmlmb3JtZiA9IGZ1bmN0aW9uKGdsLCB1bndyYXAKICAgfSk7CiAgIHZhciBk
ID0gbmV3IFVpbnQ4QXJyYXkoNCk7CiAgIGdsLnJlYWRQaXhlbHMoMCwwLDEsMSxnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBkKTsKLSAgYXNzZXJ0QXJyYXlFcXVhbHMoWzEsMiwzLDhdLCBkKTsK
KyAgYXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbihbMSwyLDMsOF0sIGQsIFsxLDEsMSwxXSk7
CiAgIHNoLmRlc3Ryb3koKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL211bHRpc2FtcGxl
LWNvcnJ1cHRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvbXVsdGlzYW1w
bGUtY29ycnVwdGlvbi5odG1sCShyZXZpc2lvbiAxNzk4NDIpCisrKyBMYXlvdXRUZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcv
bXVsdGlzYW1wbGUtY29ycnVwdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5MyArMzIs
MjYgQEAKICAgICA8dGl0bGU+V2ViR0wgTXVsdGlzYW1wbGUgUmVuZGVyYnVmZmVyIENvcnJ1cHRp
b24gVGVzdDwvdGl0bGU+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2l0ZXJhYmxlLXRlc3QuanMiPiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5
PgogPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjIwNDgiIGhlaWdodD0iMjA0OCIgc3R5bGU9
IndpZHRoOiAxMjhweDsgaGVpZ2h0OiAxMjhweDsiPjwvY2FudmFzPgogPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgPHNjcmlwdCBpZD0i
dnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotICAgICAgICBhdHRyaWJ1dGUgdmVj
NCB2UG9zaXRpb247Ci0gICAgICAgIHZvaWQgbWFpbigpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOwotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci0KLSAg
ICA8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLSAgICAg
ICAgdm9pZCBtYWluKCkKLSAgICAgICAgewotICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVj
NCgwLjAsMC4wLDAuMCwwLjApOwotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci0KICAgICA8c2Ny
aXB0PgogICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAgIGZ1bmN0aW9uIGluaXQoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbihkb2N1bWVudC50aXRsZSk7Ci0KLSAgICAg
ICAgICAgIHZhciBsYXN0Q29udGV4dCA9IG51bGw7Ci0gICAgICAgICAgICB2YXIgY3ljbGVDb3Vu
dCA9IDA7Ci0gICAgICAgICAgICB2YXIgbWF4Q3ljbGVzID0gMTAwOwotICAgICAgICAgICAgdmFy
IGZhaWxlZCA9IGZhbHNlOwotICAgICAgICAgICAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwot
ICAgICAgICAgICAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIsIHthbnRp
YWxpYXM6IHRydWUsIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZX0pOwotCi0gICAgICAgICAg
ICBnbC5jbGVhckNvbG9yKDEuMCwgMC4wLCAwLjAsIDEuMCk7Ci0gICAgICAgICAgICBnbC5jbGVh
cihnbC5DT0xPUl9CVUZGRVJfQklUKTsKLQotICAgICAgICAgICAgdmFyIHByb2dyYW0gPSB3dHUu
c2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIiLCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdKTsK
LSAgICAgICAgICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgICAg
ICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOwotICAg
ICAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXko
WyAwLDIuNSwwLCAxLjUsMS41LDAsIDIuNSwxLjUsMCBdKSwgZ2wuU1RBVElDX0RSQVcpOwotICAg
ICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Ci0gICAgICAgICAgICBnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGN5Y2xlQW5kVGVzdCgpIHsKLSAgICAgICAgICAgICAgICB2YXIgZ2wy
ID0gd3R1LmNyZWF0ZTNEQ29udGV4dChudWxsLCB7YW50aWFsaWFzOiB0cnVlfSk7Ci0KLSAgICAg
ICAgICAgICAgICBnbDIuY2FudmFzLndpZHRoID0gZ2wyLmNhbnZhcy5oZWlnaHQgPSAxMDI0Owot
ICAgICAgICAgICAgICAgIGdsMi5jYW52YXMuc3R5bGUud2lkdGggPSBnbDIuY2FudmFzLnN0eWxl
LmhlaWdodCA9ICIxcHgiOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZ2wyLmNhbnZhcyk7Ci0KLSAgICAgICAgICAgICAgICBnbDIuY2xlYXJDb2xvcigxLjAsIDAu
MCwgMC4wLCAxLjApOwotICAgICAgICAgICAgICAgIGdsMi5jbGVhcihnbDIuQ09MT1JfQlVGRkVS
X0JJVCk7Ci0KLSAgICAgICAgICAgICAgICBpZihsYXN0Q29udGV4dCkgewotICAgICAgICAgICAg
ICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMyk7Ci0gICAgICAgICAgICAg
ICAgICAgIHZhciBtc2cgPSAiU2hvdWxkIGJlIHJlZCBhZnRlciBsb29wICIgKyBjeWNsZUNvdW50
OwotICAgICAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0Q29sb3IoZ2wsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAwLCAwLCBnbC5jYW52YXMud2lkdGgsIGdsLmNhbnZhcy5oZWln
aHQsCi0gICAgICAgICAgICAgICAgICAgICAgICBbMjU1LCAwLCAwLCAyNTVdLCBudWxsLAotICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZChtc2cpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQobXNnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWQg
PSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ZGVidWcpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxh
c3RDb250ZXh0LmNhbnZhcyk7Ci0gICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
bGFzdENvbnRleHQgPSBnbDI7Ci0gICAgICAgICAgICAgICAgY3ljbGVDb3VudCsrOworICAgICAg
ICBkZXNjcmlwdGlvbihkb2N1bWVudC50aXRsZSk7CiAKLSAgICAgICAgICAgICAgICBpZihjeWNs
ZUNvdW50IDw9IG1heEN5Y2xlcyAmJiAhZmFpbGVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIHd0
dS53YWl0Rm9yQ29tcG9zaXRlKGdsMiwgY3ljbGVBbmRUZXN0KTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQorICAgICAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CiAK
LSAgICAgICAgICAgIGN5Y2xlQW5kVGVzdCgpOwotICAgICAgIH0KKyAgICAgICAgdmFyIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIsIHthbnRpYWxpYXM6IHRydWUsIHByZXNlcnZl
RHJhd2luZ0J1ZmZlcjogdHJ1ZX0pOworICAgICAgICB2YXIgdGVzdCA9IEl0ZXJhYmxlVGVzdC5j
cmVhdGVNdWx0aXNhbXBsZUNvcnJ1cHRpb25UZXN0KGdsKTsKKyAgICAgICAgdmFyIGl0ZXJhdGlv
bnMgPSBwYXJzZUludCh3dHUuZ2V0VXJsT3B0aW9ucygpLml0ZXJhdGlvbnMsIDEwKSB8fCAyNTsK
KyAgICAgICAgSXRlcmFibGVUZXN0LnJ1bih0ZXN0LCBpdGVyYXRpb25zKTsKIAotICAgICAgIGlu
aXQoKTsKLSAgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiAgICAgPC9zY3JpcHQ+CiAKIDwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCShyZXZpc2lvbiAxNzk4NDIpCisrKyBM
YXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZwkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi1Db3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KK0NvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KIAogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDEwICsxMCwxMCBA
QCBhcmUgbWV0OgogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KIAotVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFTIElTIEFORCBBTlkKK1RISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gQVMgSVMgQU5EIEFOWQogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKK1BVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKSW5kZXg6IExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9nbHNsLWdlbmVyYXRvci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvZ2xzbC1nZW5lcmF0b3IuanMJKHJldmlzaW9uIDE3OTg0MikK
KysrIExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9nbHNsLWdlbmVyYXRvci5qcwkod29ya2luZyBjb3B5KQpAQCAt
MjUyLDkgKzI1Miw5IEBAIHZhciBydW5GZWF0dXJlVGVzdCA9IGZ1bmN0aW9uKHBhcmFtcykgewog
ICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CiAgIHZhciBncmlkUmVzID0gcGFyYW1zLmdyaWRS
ZXM7CiAgIHZhciB2ZXJ0ZXhUb2xlcmFuY2UgPSBwYXJhbXMudG9sZXJhbmNlIHx8IDA7Ci0gIHZh
ciBmcmFnbWVudFRvbGVyYW5jZSA9IHZlcnRleFRvbGVyYW5jZTsKKyAgdmFyIGZyYWdtZW50VG9s
ZXJhbmNlID0gcGFyYW1zLnRvbGVyYW5jZSB8fCAxOwogICBpZiAoJ2ZyYWdtZW50VG9sZXJhbmNl
JyBpbiBwYXJhbXMpCi0gICAgZnJhZ21lbnRUb2xlcmFuY2UgPSBwYXJhbXMuZnJhZ21lbnRUb2xl
cmFuY2UgfHwgMDsKKyAgICBmcmFnbWVudFRvbGVyYW5jZSA9IHBhcmFtcy5mcmFnbWVudFRvbGVy
YW5jZTsKIAogICBkZXNjcmlwdGlvbigiVGVzdGluZyBHTFNMIGZlYXR1cmU6ICIgKyBwYXJhbXMu
ZmVhdHVyZSk7CiAKSW5kZXg6IExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIudmVydAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdmVydGV4U2hhZGVyLnZlcnQJKHJldmlzaW9uIDE3
OTg0MikKKysrIExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIudmVydAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi1Db3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KK0NvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDEw
ICsxMCwxMCBAQCBhcmUgbWV0OgogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KIAotVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFTIElTIEFORCBBTlkKK1RISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gQVMgSVMgQU5EIEFO
WQogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKK1BVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKSW5kZXg6IExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzCShyZXZp
c2lvbiAxNzk4NDIpCisrKyBMYXlvdXRUZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOSBAQCB2YXIgV2ViR0xUZXN0VXRpbHMgPSAoZnVuY3Rp
b24oKSB7CiAgKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGxvZy4KICAqLwog
dmFyIGxvZyA9IGZ1bmN0aW9uKG1zZykgeworICBpZiAod2luZG93LmNvbnNvbGUgJiYgd2luZG93
LmNvbnNvbGUubG9nKSB7CisgICAgd2luZG93LmNvbnNvbGUubG9nKG1zZyk7CisgIH0KIH07CiAK
IC8qKgpAQCAtMzUsNiArMzgsMTQgQEAgdmFyIGxvZyA9IGZ1bmN0aW9uKG1zZykgewogICogQHBh
cmFtIHtzdHJpbmd9IG1zZyBUaGUgbWVzc2FnZSB0byBsb2cuCiAgKi8KIHZhciBlcnJvciA9IGZ1
bmN0aW9uKG1zZykgeworICBpZiAod2luZG93LmNvbnNvbGUpIHsKKyAgICBpZiAod2luZG93LmNv
bnNvbGUuZXJyb3IpIHsKKyAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yKG1zZyk7CisgICAgfQor
ICAgIGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlLmxvZykgeworICAgICAgd2luZG93LmNvbnNvbGUu
bG9nKG1zZyk7CisgICAgfQorICB9CiB9OwogCiAvKioKQEAgLTgzOSwxNSArODUwLDE3IEBAIHZh
ciBjbGVhckFuZERyYXdJbmRleGVkUXVhZCA9IGZ1bmN0aW9uKGcKICAqIEBwYXJhbSB7IWZ1bmN0
aW9uKCl9IGRpZmZlcmVudEZuIEZ1bmN0aW9uIHRvIGNhbGwgaWYgYSBwaXhlbAogICogICAgICAg
IGlzIGRpZmZlcmVudCB0aGFuIGNvbG9yCiAgKiBAcGFyYW0geyFmdW5jdGlvbigpfSBsb2dGbiBG
dW5jdGlvbiB0byBjYWxsIGZvciBsb2dnaW5nLgorICogQHBhcmFtIHtVaW50OEFycmF5fSBvcHRf
cmVhZEJhY2tCdWYgdHlwaWNhbGx5IHBhc3NlZCB0byByZXVzZSBleGlzdGluZworICogICAgICAg
IGJ1ZmZlciB3aGlsZSByZWFkaW5nIGJhY2sgcGl4ZWxzLgogICovCi12YXIgY2hlY2tDYW52YXNS
ZWN0Q29sb3IgPSBmdW5jdGlvbihnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9l
cnJvclJhbmdlLCBzYW1lRm4sIGRpZmZlcmVudEZuLCBsb2dGbikgewordmFyIGNoZWNrQ2FudmFz
UmVjdENvbG9yID0gZnVuY3Rpb24oZ2wsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRf
ZXJyb3JSYW5nZSwgc2FtZUZuLCBkaWZmZXJlbnRGbiwgbG9nRm4sIG9wdF9yZWFkQmFja0J1Zikg
ewogICB2YXIgZXJyb3JSYW5nZSA9IG9wdF9lcnJvclJhbmdlIHx8IDA7CiAgIGlmICghZXJyb3JS
YW5nZS5sZW5ndGgpIHsKICAgICBlcnJvclJhbmdlID0gW2Vycm9yUmFuZ2UsIGVycm9yUmFuZ2Us
IGVycm9yUmFuZ2UsIGVycm9yUmFuZ2VdCiAgIH0KICAgdmFyIGJ1ZjsKICAgaWYgKGdsIGluc3Rh
bmNlb2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0KSB7Ci0gICAgYnVmID0gbmV3IFVpbnQ4QXJyYXko
d2lkdGggKiBoZWlnaHQgKiA0KTsKKyAgICBidWYgPSBvcHRfcmVhZEJhY2tCdWYgPyBvcHRfcmVh
ZEJhY2tCdWYgOiBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwogICAgIGdsLnJl
YWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
YnVmKTsKICAgfSBlbHNlIHsKICAgICBidWYgPSBnbC5nZXRJbWFnZURhdGEoeCwgeSwgd2lkdGgs
IGhlaWdodCkuZGF0YTsKQEAgLTk2OSw2ICs5ODIsMzAgQEAgdmFyIGhhc0F0dHJpYnV0ZUNhc2VJ
bnNlbnNpdGl2ZSA9IGZ1bmN0aQogfTsKIAogLyoqCisgKiBSZXR1cm5zIGEgbWFwIG9mIFVSTCBx
dWVyeXN0cmluZyBvcHRpb25zCisgKiBAcmV0dXJuIHtPYmplY3Q/fSBPYmplY3QgY29udGFpbmlu
ZyBhbGwgdGhlIHZhbHVlcyBpbiB0aGUgVVJMIHF1ZXJ5c3RyaW5nCisgKi8KK3ZhciBnZXRVcmxP
cHRpb25zID0gZnVuY3Rpb24oKSB7CisgIHZhciBvcHRpb25zID0ge307CisgIHZhciBzID0gd2lu
ZG93LmxvY2F0aW9uLmhyZWY7CisgIHZhciBxID0gcy5pbmRleE9mKCI/Iik7CisgIHZhciBlID0g
cy5pbmRleE9mKCIjIik7CisgIGlmIChlIDwgMCkgeworICAgIGUgPSBzLmxlbmd0aDsKKyAgfQor
ICB2YXIgcXVlcnkgPSBzLnN1YnN0cmluZyhxICsgMSwgZSk7CisgIHZhciBwYWlycyA9IHF1ZXJ5
LnNwbGl0KCImIik7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBwYWlycy5sZW5ndGg7ICsraWkp
IHsKKyAgICB2YXIga2V5VmFsdWUgPSBwYWlyc1tpaV0uc3BsaXQoIj0iKTsKKyAgICB2YXIga2V5
ID0ga2V5VmFsdWVbMF07CisgICAgdmFyIHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleVZh
bHVlWzFdKTsKKyAgICBvcHRpb25zW2tleV0gPSB2YWx1ZTsKKyAgfQorCisgIHJldHVybiBvcHRp
b25zOworfTsKKworLyoqCiAgKiBDcmVhdGVzIGEgd2ViZ2wgY29udGV4dC4KICAqIEBwYXJhbSB7
IUNhbnZhc3xzdHJpbmd9IG9wdF9jYW52YXMgVGhlIGNhbnZhcyB0YWcgdG8gZ2V0CiAgKiAgICAg
Y29udGV4dCBmcm9tLiBJZiBvbmUgaXMgbm90IHBhc3NlZCBpbiBvbmUgd2lsbCBiZQpAQCAtMTk4
OCw2ICsyMDI1LDcgQEAgcmV0dXJuIHsKICAgZ2V0U2NyaXB0OiBnZXRTY3JpcHQsCiAgIGdldFN1
cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzOiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25X
aXRoS25vd25QcmVmaXhlcywKICAgZ2V0VXJsQXJndW1lbnRzOiBnZXRVcmxBcmd1bWVudHMsCisg
IGdldFVybE9wdGlvbnM6IGdldFVybE9wdGlvbnMsCiAgIGdldEF0dHJpYk1hcDogZ2V0QXR0cmli
TWFwLAogICBnZXRVbmlmb3JtTWFwOiBnZXRVbmlmb3JtTWFwLAogICBnbEVudW1Ub1N0cmluZzog
Z2xFbnVtVG9TdHJpbmcsCg==
</data>
<flag name="review"
          id="271239"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>