<?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>17173</bug_id>
          
          <creation_ts>2008-02-04 04:46:01 -0800</creation_ts>
          <short_desc>HTML5 Canvas API requires us to ignore certain operations</short_desc>
          <delta_ts>2008-04-28 00:44:46 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69337</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-02-04 04:46:01 -0800</bug_when>
    <thetext>HTML5 has added a requirement that most canvas APIs should just ignore calls that pass infinity or nan arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69339</commentid>
    <comment_count>1</comment_count>
      <attachid>18903</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-02-04 04:58:55 -0800</bug_when>
    <thetext>Created attachment 18903
adding new semantics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79075</commentid>
    <comment_count>2</comment_count>
      <attachid>20859</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-04-27 20:30:22 -0700</bug_when>
    <thetext>Created attachment 20859
Implement new semantics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79086</commentid>
    <comment_count>3</comment_count>
      <attachid>20861</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-04-27 22:58:32 -0700</bug_when>
    <thetext>Created attachment 20861
Updated with more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79087</commentid>
    <comment_count>4</comment_count>
      <attachid>20861</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-04-27 23:00:54 -0700</bug_when>
    <thetext>Comment on attachment 20861
Updated with more tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79097</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-04-28 00:44:46 -0700</bug_when>
    <thetext>Committed r32612</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18903</attachid>
            <date>2008-02-04 04:58:55 -0800</date>
            <delta_ts>2008-04-27 20:30:22 -0700</delta_ts>
            <desc>adding new semantics</desc>
            <filename>fix canvas call semantics</filename>
            <type>text/plain</type>
            <size>23964</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wYXRoLXdpdGgtaW5m
LW5hbi1kaW1lbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcGF0
aC13aXRoLWluZi1uYW4tZGltZW5zaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjM4ZWUzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtcGF0aC13aXRoLWluZi1uYW4tZGltZW5zaW9ucy5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzxjYW52YXMgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGlkPSJjYW52YXMiPkZBSUw6
IG5vIGNhbnZhcyBzdXBwb3J0PC9jYW52YXM+Cis8c2NyaXB0PgordmFyIGNhbnZhcyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOworLy9mb3VyIHRl
c3RzCisvLyAxLiBJbmZpbml0ZSBkaW1lbnNpb25zIHRvIGZpbGxSZWN0CitjYW52YXMuZmlsbFN0
eWxlID0gImdyZWVuIjsKK2NhbnZhcy5maWxsUmVjdCgwLCAwLCAxMDAsIDEwMCk7CitjYW52YXMu
ZmlsbFN0eWxlID0gInJlZCI7Cit0cnkgeworICAgIGNhbnZhcy5maWxsUmVjdCgwLCAwLCBJbmZp
bml0eSwgSW5maW5pdHkpOworfSBjYXRjaCAoZSkgeworICAgIGNhbnZhcy5maWxsUmVjdCgwLCAw
LCAxMDAsIDEwMCk7Cit9CisKKy8vIDIuIEluZmluaXRlIGRpbWVuc2lvbnMgdG8gcmVjdAorY2Fu
dmFzLmZpbGxTdHlsZSA9ICJncmVlbiI7CitjYW52YXMuZmlsbFJlY3QoMTAwLCAwLCAxMDAsIDEw
MCk7CitjYW52YXMuZmlsbFN0eWxlID0gInJlZCI7Cit0cnkgeworICAgIGNhbnZhcy5yZWN0KDEw
MCwgMCwgSW5maW5pdHksIEluZmluaXR5KTsKKyAgICBjYW52YXMuZmlsbCgpOworfSBjYXRjaCAo
ZSkgeworICAgIGNhbnZhcy5maWxsUmVjdCgxMDAsIDAsIDEwMCwgMTAwKTsKK30KKworLy8gMy4g
SW5maW5pdGUgYXJndW1lbnQgdG8gbW92ZVRvCitjYW52YXMudHJhbnNsYXRlKDAsIDEwMCk7Citj
YW52YXMuZmlsbFN0eWxlID0gInJlZCI7CitjYW52YXMuZmlsbFJlY3QoMCwgMCwgMTAwLCAxMDAp
OworY2FudmFzLmZpbGxTdHlsZSA9ICJncmVlbiI7Cit0cnkgeworICAgIGNhbnZhcy5iZWdpblBh
dGgoKTsKKyAgICBjYW52YXMubW92ZVRvKEluZmluaXR5LCBJbmZpbml0eSk7CisgICAgY2FudmFz
LnJlY3QoMCwgMCwgMTAwLCAxMDApOworICAgIGNhbnZhcy5maWxsKCk7Cit9IGNhdGNoIChlKSB7
CisgICAgYWxlcnQoZSk7Cit9CisKKy8vIDQuIEluZmluaXRlIGFyZ3VtZW50IHRvIGxpbmVUbwor
Y2FudmFzLnRyYW5zbGF0ZSgxMDAsIDApOworY2FudmFzLmZpbGxTdHlsZSA9ICJyZWQiOworY2Fu
dmFzLmZpbGxSZWN0KDAsIDAsIDEwMCwgMTAwKTsKK2NhbnZhcy5maWxsU3R5bGUgPSAiZ3JlZW4i
OwordHJ5IHsKKyAgICBjYW52YXMuYmVnaW5QYXRoKCk7CisgICAgY2FudmFzLm1vdmVUbygwLDAp
OworICAgIGNhbnZhcy5saW5lVG8oMTAwLCAwKTsKKyAgICBjYW52YXMubGluZVRvKDEwMCwgMTAw
KTsKKyAgICBjYW52YXMubGluZVRvKDAsIDEwMCk7CisgICAgY2FudmFzLmxpbmVUbyhJbmZpbml0
eSwgMTAwKTsKKyAgICBjYW52YXMuZmlsbCgpOworfSBjYXRjaCAoZSkgeworfQorPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNvcnJl
Y3QtYXJncy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXdpdGgtaW5jb3Jy
ZWN0LWFyZ3MuaHRtbAppbmRleCAzYmMxYTljLi41MGUxYmNkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNvcnJlY3QtYXJncy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy13aXRoLWluY29ycmVjdC1hcmdzLmh0bWwKQEAg
LTMsNyArMyw2IEBACiA8c3R5bGU+CiAuZmFpbCB7IGNvbG9yOiByZWQ7IGZvbnQtd2VpZ2h0OiBi
b2xkO30KIC5wYXNzIHsgY29sb3I6IGdyZWVuOyBmb250LXdlaWdodDogYm9sZDt9Ci0udW5kZWZp
bmVkIHsgY29sb3I6IGJsdWU7IGZvbnQtd2VpZ2h0OiBib2xkO30KIDwvc3R5bGU+CiA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiBmYWlsZWQgPSBmYWxzZTsKQEAgLTIzLDEwICsyMiw2
IEBAIGZ1bmN0aW9uIGZhaWwobXNnKSB7CiAgICAgZmFpbGVkID0gdHJ1ZTsKIH0KIAotZnVuY3Rp
b24gdW5kZWZpbmVkKG1zZykgewotICAgIGRlYnVnKCc8c3BhbiBjbGFzcz0idW5kZWZpbmVkIj5V
TkRFRklORUQ8L3NwYW4+ICcgKyBtc2cgKyAnPC9zcGFuPicpOwotfQotCiBmdW5jdGlvbiBydW5U
ZXN0KCkgewogICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
OwogICAgIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CkBAIC00MCwxNSAr
MzUsMTUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAg
Y29udGV4dC5maWxsUmVjdCgwLCAwLCAwLjAvMS4wLCAwLjAvMS4wKTsKLSAgICAgICAgdW5kZWZp
bmVkKCJjYWxsZWQgZmlsbFJlY3Qgd2l0aCBpbmYqaW5mIGZpbGxSZWN0IHdpdGhvdXQgdGhyb3dp
bmcgYW4gZXhjZXB0aW9uLiIpOworICAgICAgICBwYXNzKCJjYWxsZWQgZmlsbFJlY3Qgd2l0aCBp
bmYqaW5mIGZpbGxSZWN0IHdpdGhvdXQgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLiIpOwogICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsg
ZS5jb2RlICsgIiB3aXRoIGluZippbmYgZmlsbFJlY3QiKTsgICAgICAgCisgICAgICAgIGZhaWwo
InRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIHdpdGggaW5mKmluZiBmaWxsUmVj
dCIpOyAgICAgICAKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5maWxsUmVjdCgw
LCAwLCAwLjAvMC4wLCAwLjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93
IGV4Y2VwdGlvbiB3aXRoIG5hbipuYW4gZmlsbFJlY3QuIik7CisgICAgICAgIHBhc3MoImRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggbmFuKm5hbiBmaWxsUmVjdC4iKTsKICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29k
ZSArICIgb24gbmFuKm5hbiBmaWxsUmVjdC4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3
IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIG5hbipuYW4gZmlsbFJlY3QuIik7ICAg
ICAgIAogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCAw
LCAwKTsKQEAgLTU4LDE1ICs1MywxNSBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIH0KICAg
ICB0cnkgewogICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCAwLjAvMS4wLCAwLjAvMS4w
KTsKLSAgICAgICAgdW5kZWZpbmVkKCJjYWxsZWQgY2xlYXJSZWN0IHdpdGggaW5mKmluZiBjbGVh
clJlY3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uIik7CisgICAgICAgIHBhc3MoImNh
bGxlZCBjbGVhclJlY3Qgd2l0aCBpbmYqaW5mIGNsZWFyUmVjdCB3aXRob3V0IHRocm93aW5nIGFu
IGV4Y2VwdGlvbi4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhy
ZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgd2l0aCBpbmYqaW5mIGNsZWFyUmVjdC4i
KTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUg
KyAiIHdpdGggaW5mKmluZiBjbGVhclJlY3QuIik7ICAgICAgIAogICAgIH0KICAgICB0cnkgewog
ICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCAwLjAvMC4wLCAwLjAvMC4wKTsKLSAgICAg
ICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiB3aXRoIG5hbipuYW4gY2xlYXJS
ZWN0LiIpOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiB3aXRoIG5hbipu
YW4gY2xlYXJSZWN0LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0
aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBuYW4qbmFuIGNsZWFyUmVjdC4i
KTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUg
KyAiIG9uIG5hbipuYW4gY2xlYXJSZWN0LiIpOyAgICAgICAKICAgICB9CiAgICAgdHJ5IHsKICAg
ICAgICAgY29udGV4dC5yZWN0KDAsIDAsIDAsIDApOwpAQCAtNzYsMTUgKzcxLDE1IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAgIGNvbnRleHQucmVjdCgw
LCAwLCAwLjAvMS4wLCAwLjAvMS4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJjYWxsZWQgcmVjdCB3
aXRoIGluZippbmYgcmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4iKTsKKyAgICAg
ICAgcGFzcygiY2FsbGVkIHJlY3Qgd2l0aCBpbmYqaW5mIHJlY3Qgd2l0aG91dCB0aHJvd2luZyBh
biBleGNlcHRpb24uIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICB1bmRlZmluZWQoInRo
cmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIHdpdGggaW5mKmluZiByZWN0LiIpOyAg
ICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIg
d2l0aCBpbmYqaW5mIHJlY3QuIik7ICAgICAgIAogICAgIH0KICAgICB0cnkgewogICAgICAgICBj
b250ZXh0LnJlY3QoMCwgMCwgMC4wLzAuMCwgMC4wLzAuMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgi
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBuYW4qbmFuIHJlY3QuIik7CisgICAgICAgIHBh
c3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggbmFuKm5hbiByZWN0LiIpOwogICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsg
ZS5jb2RlICsgIiBvbiBuYW4qbmFuIHJlY3QuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0aHJl
dyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBuYW4qbmFuIHJlY3QuIik7ICAgICAg
IAogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmZpbGwoKTsKQEAgLTEwNiwxNSAr
MTAxLDE1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAg
IGNvbnRleHQuYXJjKDIsIDIsIDEuMC8wLjAsIDAsIDkwLCB0cnVlKTsKLSAgICAgICAgdW5kZWZp
bmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBhcmMgd2l0aCBpbmZpbml0ZSByYWRpdXMi
KTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYXJjIHdpdGggaW5m
aW5pdGUgcmFkaXVzIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICB1bmRlZmluZWQoInRo
cmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGFyYyB3aXRoIGluZmluaXRlIHJh
ZGl1cyIpOyAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29k
ZSArICIgb24gYXJjIHdpdGggaW5maW5pdGUgcmFkaXVzIik7ICAgIAogICAgIH0KICAgICB0cnkg
ewogICAgICAgICBjb250ZXh0LmFyYygyLCAyLCAwLjAvMC4wLCAwLCA5MCwgdHJ1ZSk7Ci0gICAg
ICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYXJjIHdpdGggbmFuLWxl
bmd0aCByYWRpdXMiKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24g
YXJjIHdpdGggbmFuLWxlbmd0aCByYWRpdXMiKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYXJjIHdp
dGggbmFuLWxlbmd0aCByYWRpdXMiKTsgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlv
biBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGFyYyB3aXRoIG5hbi1sZW5ndGggcmFkaXVzIik7ICAg
IAogICAgIH0KICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRyeSB7CkBAIC0xMzgsMTI2
ICsxMzMsMTI2IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdHJ5IHsKICAgICAgICAgY29u
dGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5hcmNUbygyLCAyLCA0LCA0LCAx
LjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBh
cmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cyIpOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93
IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cyIpOwogICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2Rl
ICsgIiBvbiBhcmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cyIpOyAgICAKKyAgICAgICAgZmFpbCgi
dGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYXJjVG8gd2l0aCBpbmZpbml0
ZSByYWRpdXMiKTsgICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CiAgICAgY29u
dGV4dC5iZWdpblBhdGgoKTsKICAgICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwg
MTApOwogICAgICAgICBjb250ZXh0LmFyY1RvKDIsIDIsIDQsIDQsIDAuMC8wLjApOwotICAgICAg
ICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGFyY1RvIHdpdGggbmFuLWxl
bmd0aCByYWRpdXMiKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24g
YXJjVG8gd2l0aCBuYW4tbGVuZ3RoIHJhZGl1cyIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBhcmNU
byB3aXRoIG5hbi1sZW5ndGggcmFkaXVzIik7ICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBleGNl
cHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBhcmNUbyB3aXRoIG5hbi1sZW5ndGggcmFkaXVz
Iik7ICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVn
aW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAg
ICAgICAgY29udGV4dC5saW5lVG8oMS4wLzAuMCwgMS4wLzAuMCk7Ci0gICAgICAgIHVuZGVmaW5l
ZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGluZVRvKGluZiwgaW5mKS4iKTsKKyAgICAg
ICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGluZVRvKGluZiwgaW5mKS4iKTsK
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNv
ZGUgIiArIGUuY29kZSArICIgb24gbGluZVRvKGluZiwgaW5mKS4iKTsgICAgICAgCisgICAgICAg
IGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGxpbmVUbyhpbmYs
IGluZikuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNv
bnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAs
IDEwKTsKICAgICAgICAgY29udGV4dC5saW5lVG8oMC4wLzAuMCwgMC4wLzAuMCk7Ci0gICAgICAg
IHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGluZVRvKG5hbiwgbmFuKS4i
KTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGluZVRvKG5hbiwg
bmFuKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhj
ZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gbGluZVRvKG5hbiwgbmFuKS4iKTsgICAgICAg
CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGxp
bmVUbyhuYW4sIG5hbikuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgp
OwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5t
b3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwg
MS4wLzAuMCwgMS4wLzAuMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIGluZiwgaW5mKS4iKTsKKyAgICAgICAg
cGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAs
IGluZiwgaW5mKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhy
ZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJhdGljQ3VydmVUbygyMCwg
MjAsIGluZiwgaW5mKS4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBj
b2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCBpbmYsIGluZiku
Iik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQu
YmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsK
ICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKDEuMC8wLjAsIDEuMC8wLjAsIDIwLCAy
MCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJh
dGljQ3VydmVUbyhpbmYsIGluZiwgMjAsIDIwKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhpbmYsIGluZiwgMjAsIDIwKS4iKTsK
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNv
ZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJhdGljQ3VydmVUbyhpbmYsIGluZiwgMjAsIDIwKS4i
KTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUg
KyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8oaW5mLCBpbmYsIDIwLCAyMCkuIik7ICAgICAgIAogICAg
IH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAg
ICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4
dC5xdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgMC4wLzAuMCwgMC4wLzAuMCk7Ci0gICAgICAgIHVu
ZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwg
MjAsIG5hbiwgbmFuKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24g
b24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuKS4iKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuKS4iKTsgICAgICAgCisgICAg
ICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRp
Y0N1cnZlVG8oMjAsIDIwLCBuYW4sIG5hbikuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0
LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAg
ICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2
ZVRvKDAuMC8wLjAsIDAuMC8wLjAsIDIwLCAyMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhuYW4sIG5hbiwgMjAsIDIwKS4i
KTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3Vy
dmVUbyhuYW4sIG5hbiwgMjAsIDIwKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVu
ZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJhdGlj
Q3VydmVUbyhuYW4sIG5hbiwgMjAsIDIwKS4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3
IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8obmFuLCBu
YW4sIDIwLCAyMCkuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwog
ICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3Zl
VG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMw
LCAxLjAvMC4wLCAxLjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4
Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBpbmYsIGluZikuIik7Cisg
ICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAs
IDIwLCAzMCwgMzAsIGluZiwgaW5mKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVu
ZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3Vy
dmVUbygyMCwgMjAsIDMwLCAzMCwgaW5mLCBpbmYpLiIpOyAgICAgICAKKyAgICAgICAgZmFpbCgi
dGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwg
MjAsIDMwLCAzMCwgaW5mLCBpbmYpLiIpOyAgICAgICAKICAgICB9CiAgICAgY29udGV4dC5jbG9z
ZVBhdGgoKTsKICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRyeSB7CiAgICAgICAgIGNv
bnRleHQubW92ZVRvKDEwLCAxMCk7CiAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbygyMCwg
MjAsIDEuMC8wLjAsIDEuMC8wLjAsIDMwLCAzMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIGluZiwgaW5mLCAzMCwg
MzApLiIpOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJD
dXJ2ZVRvKDIwLCAyMCwgaW5mLCBpbmYsIDMwLCAzMCkuIik7CiAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICB1bmRlZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9u
IGJlemllckN1cnZlVG8oMjAsIDIwLCBpbmYsIGluZiwgMzAsIDMwKS4iKTsgICAgICAgCisgICAg
ICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJlemllckN1
cnZlVG8oMjAsIDIwLCBpbmYsIGluZiwgMzAsIDMwKS4iKTsgICAgICAgCiAgICAgfQogICAgIGNv
bnRleHQuY2xvc2VQYXRoKCk7CiAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKICAgICB0cnkgewog
ICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwogICAgICAgICBjb250ZXh0LmJlemllckN1
cnZlVG8oMS4wLzAuMCwgMS4wLzAuMCwgMjAsIDIwLCAzMCwgMzApOwotICAgICAgICB1bmRlZmlu
ZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oaW5mLCBpbmYsIDIw
LCAyMCwgMzAsIDMwKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24g
b24gYmV6aWVyQ3VydmVUbyhpbmYsIGluZiwgMjAsIDIwLCAzMCwgMzApLiIpOwogICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5j
b2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjAsIDMwLCAzMCkuIik7ICAg
ICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBv
biBiZXppZXJDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAogICAg
IH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAg
ICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4
dC5iZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCAwLjAvMC4wLCAwLjAvMC4wKTsKLSAgICAg
ICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIw
LCAyMCwgMzAsIDMwLCBuYW4sIG5hbikuIik7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIG5hbiwgbmFuKS4iKTsK
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNv
ZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgbmFuLCBu
YW4pLiIpOyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUu
Y29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgbmFuLCBuYW4pLiIpOyAg
ICAgICAKICAgICB9CiAgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKICAgICBjb250ZXh0LmJlZ2lu
UGF0aCgpOwogICAgIHRyeSB7CiAgICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7CiAgICAg
ICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbygyMCwgMjAsIDAuMC8wLjAsIDAuMC8wLjAsIDMwLCAz
MCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVy
Q3VydmVUbygyMCwgMjAsIG5hbiwgbmFuLCAzMCwgMzApLiIpOworICAgICAgICBwYXNzKCJkaWQg
bm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgbmFuLCBuYW4sIDMw
LCAzMCkuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICB1bmRlZmluZWQoInRocmV3IGV4
Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBuYW4s
IG5hbiwgMzAsIDMwKS4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBj
b2RlICIgKyBlLmNvZGUgKyAiIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBuYW4sIG5hbiwgMzAs
IDMwKS4iKTsgICAgICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CiAgICAgY29u
dGV4dC5iZWdpblBhdGgoKTsKICAgICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwg
MTApOwogICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oMC4wLzAuMCwgMC4wLzAuMCwgMjAs
IDIwLCAzMCwgMzApOwotICAgICAgICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
IG9uIGJlemllckN1cnZlVG8obmFuLCBuYW4sIDIwLCAyMCwgMzAsIDMwKS4iKTsKKyAgICAgICAg
cGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbyhuYW4sIG5hbiwg
MjAsIDIwLCAzMCwgMzApLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVk
KCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKG5h
biwgbmFuLCAyMCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBl
eGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKG5hbiwgbmFuLCAy
MCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgp
OwogCkBAIC0yNjYsNyArMjYxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAgICAgY29u
dGV4dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwogICAgIH0K
IAotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiB9CiA8L3NjcmlwdD4KQEAgLTI3Nyw4ICsyNzIsNiBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
PHByZSBpZD0iY29uc29sZSI+CiBUaGlzIHRlc3RzIHRoZSBiZWhhdmlvdXIgb2YgYSBudW1iZXIg
b2YgdGhlIERPTSBDYW52YXMgZHJhd2luZyBtZXRob2RzIHdoZW4KIGdpdmVuIDAsIGluZiwgb3Ig
TmFOIGFzIHBhcmFtZXRlcnMuCi1BIG51bWJlciBvZiB0aGUgQ2FudmFzIG1ldGhvZHMgZG8gbm90
IGhhdmUgZGVmaW5lZCBiZWhhdmlvdXIgd2hlbiBnaXZlbiBpbmYKLW9yIG5hbiBhbmQgc28gd2Ug
dXNlIDxzcGFuIGNsYXNzPSJ1bmRlZmluZWQiPlVOREVGSU5FRDwvc3Bhbj4gdG8gaW5kaWNhdGUg
dGhpcy4KIAogPC9wcmU+CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKaW5kZXggNjgzMjhmNC4uNzE0YWIxYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREN1c3RvbS5jcHAKQEAgLTE1OCwxNyArMTU4LDE1IEBAIEpTVmFsdWUqIEpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VDb2xvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IExpc3QmCiAKIEpTVmFsdWUqIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VSZWN0
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKIHsgCi0gICAgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEKiBjb250ZXh0ID0gaW1wbCgpOyAgICAKLSAgICBFeGNlcHRpb25Db2RlIGVj
OworICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCogY29udGV4dCA9IGltcGwoKTsKICAgICAK
ICAgICBpZiAoYXJncy5zaXplKCkgPD0gNCkKICAgICAgICAgY29udGV4dC0+c3Ryb2tlUmVjdChh
cmdzWzBdLT50b0Zsb2F0KGV4ZWMpLCBhcmdzWzFdLT50b0Zsb2F0KGV4ZWMpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3NbMl0tPnRvRmxvYXQoZXhlYyksIGFyZ3NbM10tPnRvRmxv
YXQoZXhlYyksIGVjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzJdLT50b0Zs
b2F0KGV4ZWMpLCBhcmdzWzNdLT50b0Zsb2F0KGV4ZWMpKTsKICAgICBlbHNlCiAgICAgICAgIGNv
bnRleHQtPnN0cm9rZVJlY3QoYXJnc1swXS0+dG9GbG9hdChleGVjKSwgYXJnc1sxXS0+dG9GbG9h
dChleGVjKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzJdLT50b0Zsb2F0KGV4
ZWMpLCBhcmdzWzNdLT50b0Zsb2F0KGV4ZWMpLCBhcmdzWzRdLT50b0Zsb2F0KGV4ZWMpLCBlYyk7
Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAgICAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzWzJdLT50b0Zsb2F0KGV4ZWMpLCBhcmdzWzNdLT50b0Zsb2F0KGV4ZWMp
LCBhcmdzWzRdLT50b0Zsb2F0KGV4ZWMpKTsKKwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOyAg
ICAKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAgYi9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCBi
NjExYTg4Li4yZWM3ZWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcAorKysgYi9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcApAQCAtNDA2LDUxICs0MDYsNzkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmNsb3NlUGF0aCgpCiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjptb3ZlVG8oZmxv
YXQgeCwgZmxvYXQgeSkKIHsKLSAgICBzdGF0ZSgpLm1fcGF0aC5tb3ZlVG8oRmxvYXRQb2ludCh4
LCB5KSk7CisgICAgaWYgKGlzZmluaXRlKHgpICYmIGlzZmluaXRlKHkpKQorICAgICAgICBzdGF0
ZSgpLm1fcGF0aC5tb3ZlVG8oRmxvYXRQb2ludCh4LCB5KSk7CiB9CiAKIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpsaW5lVG8oZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBzdGF0ZSgp
Lm1fcGF0aC5hZGRMaW5lVG8oRmxvYXRQb2ludCh4LCB5KSk7CisgICAgaWYgKGlzZmluaXRlKHgp
ICYmIGlzZmluaXRlKHkpKQorICAgICAgICBzdGF0ZSgpLm1fcGF0aC5hZGRMaW5lVG8oRmxvYXRQ
b2ludCh4LCB5KSk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpxdWFkcmF0
aWNDdXJ2ZVRvKGZsb2F0IGNweCwgZmxvYXQgY3B5LCBmbG9hdCB4LCBmbG9hdCB5KQogewotICAg
IHN0YXRlKCkubV9wYXRoLmFkZFF1YWRDdXJ2ZVRvKEZsb2F0UG9pbnQoY3B4LCBjcHkpLCBGbG9h
dFBvaW50KHgsIHkpKTsKKyAgICBpZiAoaXNmaW5pdGUoY3B4KSAmJiBpc2Zpbml0ZShjcHkpICYm
IGlzZmluaXRlKHgpICYmIGlzZmluaXRlKHkpKQorICAgICAgICBzdGF0ZSgpLm1fcGF0aC5hZGRR
dWFkQ3VydmVUbyhGbG9hdFBvaW50KGNweCwgY3B5KSwgRmxvYXRQb2ludCh4LCB5KSk7CiB9CiAK
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpiZXppZXJDdXJ2ZVRvKGZsb2F0IGNwMXgs
IGZsb2F0IGNwMXksIGZsb2F0IGNwMngsIGZsb2F0IGNwMnksIGZsb2F0IHgsIGZsb2F0IHkpCiB7
Ci0gICAgc3RhdGUoKS5tX3BhdGguYWRkQmV6aWVyQ3VydmVUbyhGbG9hdFBvaW50KGNwMXgsIGNw
MXkpLCBGbG9hdFBvaW50KGNwMngsIGNwMnkpLCBGbG9hdFBvaW50KHgsIHkpKTsKKyAgICBpZiAo
aXNmaW5pdGUoY3AxeCkgJiYgaXNmaW5pdGUoY3AxeSkgJiYgaXNmaW5pdGUoY3AyeCkgJiYgaXNm
aW5pdGUoY3AyeSkgJiYgaXNmaW5pdGUoeCkgJiYgaXNmaW5pdGUoeSkpCisgICAgICAgIHN0YXRl
KCkubV9wYXRoLmFkZEJlemllckN1cnZlVG8oRmxvYXRQb2ludChjcDF4LCBjcDF5KSwgRmxvYXRQ
b2ludChjcDJ4LCBjcDJ5KSwgRmxvYXRQb2ludCh4LCB5KSk7CiB9CiAKIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjphcmNUbyhmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwotICAgIGlm
ICghKHIgPiAwKSkgeworICAgIGlmICghKGlzZmluaXRlKHgwKSAmJiBpc2Zpbml0ZSh5MCkgJiYg
aXNmaW5pdGUoeDEpICYmIGlzZmluaXRlKHkxKSAmJiBpc2Zpbml0ZShyKSkpCisgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBpZiAociA8PSAwKSB7CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgCiAgICAgc3RhdGUoKS5tX3BhdGguYWRk
QXJjVG8oRmxvYXRQb2ludCh4MCwgeTApLCBGbG9hdFBvaW50KHgxLCB5MSksIHIpOwogfQogCiB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXJjKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHIsIGZsb2F0IHNhLCBmbG9hdCBlYSwgYm9vbCBhbnRpY2xvY2t3aXNlLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBlYyA9IDA7Ci0gICAgaWYgKCEociA+IDApKSB7CisgICAgaWYgKCFpc2Zp
bml0ZSh4KSAmJiAhaXNmaW5pdGUoeSkgJiYgIWlzZmluaXRlKHIpICYmICFpc2Zpbml0ZShzYSkg
JiYgIWlzZmluaXRlKGVhKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmIChyIDw9IDAp
IHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICAKICAgICBzdGF0ZSgpLm1fcGF0aC5hZGRBcmMoRmxvYXRQb2ludCh4LCB5KSwgciwgc2Es
IGVhLCBhbnRpY2xvY2t3aXNlKTsKIH0KKyAgICAKK3N0YXRpYyBib29sIHZhbGlkYXRlUmVjdEZv
ckNhbnZhcyhmbG9hdCYgeCwgZmxvYXQmIHksIGZsb2F0JiB3aWR0aCwgZmxvYXQmIGhlaWdodCkK
K3sKKyAgICBpZiAoIShpc2Zpbml0ZSh4KSAmJiBpc2Zpbml0ZSh5KSAmJiBpc2Zpbml0ZSh3aWR0
aCkgJiYgaXNmaW5pdGUoaGVpZ2h0KSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICBpZiAod2lkdGggPCAwKSB7CisgICAgICAgIHdpZHRoID0gLXdpZHRoOworICAgICAgICB4IC09
IHdpZHRoOworICAgIH0KKyAgICAKKyAgICBpZiAoaGVpZ2h0IDwgMCkgeworICAgICAgICBoZWln
aHQgPSAtaGVpZ2h0OworICAgICAgICB5IC09IGhlaWdodDsKKyAgICB9CisgICAgCisgICAgcmV0
dXJuIHRydWU7Cit9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZWN0KGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlY3QoZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKIHsKLSAgICBlYyA9IDA7Ci0gICAgaWYgKCEod2lk
dGggPj0gMCAmJiBoZWlnaHQgPj0gMCkpIHsKLSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsK
KyAgICBpZiAoIXZhbGlkYXRlUmVjdEZvckNhbnZhcyh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkKICAg
ICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgCiAgICAgc3RhdGUoKS5tX3BhdGguYWRkUmVj
dChGbG9hdFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwogfQogCkBAIC02MDUsMTMgKzYzMywx
MCBAQCBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluUGF0aChjb25zdCBm
bG9hdCB4LCBjb25zdCBmbG9hdCB5KQogICAgIHJldHVybiBzdGF0ZSgpLm1fcGF0aC5jb250YWlu
cyh0cmFuc2Zvcm1lZFBvaW50KTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmNsZWFyUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBF
eGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclJl
Y3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKIHsKLSAgICBl
YyA9IDA7Ci0gICAgaWYgKCEod2lkdGggPj0gMCAmJiBoZWlnaHQgPj0gMCkpIHsKLSAgICAgICAg
ZWMgPSBJTkRFWF9TSVpFX0VSUjsKKyAgICBpZiAoIXZhbGlkYXRlUmVjdEZvckNhbnZhcyh4LCB5
LCB3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBHcmFwaGljc0Nv
bnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJu
OwpAQCAtNjIwLDE0ICs2NDUsMTAgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNs
ZWFyUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGUKICAgICBjLT5j
bGVhclJlY3QocmVjdCk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxs
UmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KQogewotICAgIGVjID0gMDsK
LQotICAgIGlmICghKHdpZHRoID49IDAgJiYgaGVpZ2h0ID49IDApKSB7Ci0gICAgICAgIGVjID0g
SU5ERVhfU0laRV9FUlI7CisgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lk
dGgsIGhlaWdodCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBHcmFwaGljc0NvbnRl
eHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKQEAgLTY3NywxOSArNjk4LDIw
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpCiAjZW5kaWYKIH0KIAotdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQg
aGVpZ2h0KQogewotICAgIHN0cm9rZVJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCwgc3RhdGUoKS5t
X2xpbmVXaWR0aCwgZWMpOworICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdp
ZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CisgICAgc3Ryb2tlUmVjdCh4LCB5LCB3aWR0
aCwgaGVpZ2h0LCBzdGF0ZSgpLm1fbGluZVdpZHRoKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZs
b2F0IGhlaWdodCwgZmxvYXQgbGluZVdpZHRoLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGxpbmVXaWR0aCkKIHsKLSAgICBlYyA9IDA7Ci0K
LSAgICBpZiAoISh3aWR0aCA+PSAwICYmIGhlaWdodCA+PSAwICYmIGxpbmVXaWR0aCA+PSAwKSkg
ewotICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOworICAgIGlmICghdmFsaWRhdGVSZWN0Rm9y
Q2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
aWYgKCEobGluZVdpZHRoID49IDApKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgR3Jh
cGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9XZWJDb3JlL2h0
bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggMzBmN2E1My4uYzkxMDQ3NiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1dl
YkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMTIxLDcgKzEyMSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBiZXppZXJDdXJ2ZVRvKGZsb2F0IGNw
MXgsIGZsb2F0IGNwMXksIGZsb2F0IGNwMngsIGZsb2F0IGNwMnksIGZsb2F0IHgsIGZsb2F0IHkp
OwogICAgICAgICB2b2lkIGFyY1RvKGZsb2F0IHgwLCBmbG9hdCB5MCwgZmxvYXQgeDEsIGZsb2F0
IHkxLCBmbG9hdCByYWRpdXMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9pZCBhcmMoZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGNsb2Nrd2lz
ZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHJlY3QoZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lk
IHJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CiAKICAg
ICAgICAgdm9pZCBmaWxsKCk7CiAgICAgICAgIHZvaWQgc3Ryb2tlKCk7CkBAIC0xMjksMTAgKzEy
OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBpc1BvaW50SW5QYXRo
KGNvbnN0IGZsb2F0IHgsIGNvbnN0IGZsb2F0IHkpOwogCi0gICAgICAgIHZvaWQgY2xlYXJSZWN0
KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICAgICAgdm9pZCBmaWxsUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0
aCwgZmxvYXQgaGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQgc3Ryb2tlUmVj
dChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgICAgIHZvaWQgc3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3
aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBsaW5lV2lkdGgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICAgICAgdm9pZCBjbGVhclJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0
IGhlaWdodCk7CisgICAgICAgIHZvaWQgZmlsbFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
d2lkdGgsIGZsb2F0IGhlaWdodCk7CisgICAgICAgIHZvaWQgc3Ryb2tlUmVjdChmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAgICAgICAgdm9pZCBzdHJva2VS
ZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGxp
bmVXaWR0aCk7CiAKICAgICAgICAgdm9pZCBzZXRTaGFkb3coZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCwgZmxvYXQgYmx1cik7CiAgICAgICAgIHZvaWQgc2V0U2hhZG93KGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQsIGZsb2F0IGJsdXIsIGNvbnN0IFN0cmluZyYgY29sb3IpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgYi9XZWJDb3JlL2h0
bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCAzZDU2NmQ0Li5jZTA4MGZhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysg
Yi9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApAQCAtNTgsMTAgKzU4
LDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgc2hhZG93Qmx1cjsK
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNo
YWRvd0NvbG9yOwogCi0gICAgICAgIHZvaWQgY2xlYXJSZWN0KGluIGZsb2F0IHgsIGluIGZsb2F0
IHksIGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQpCi0gICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgZmlsbFJlY3QoaW4gZmxvYXQgeCwgaW4gZmxv
YXQgeSwgaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCkKLSAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBjbGVhclJlY3QoaW4gZmxvYXQgeCwgaW4g
ZmxvYXQgeSwgaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCk7CisgICAgICAgIHZvaWQg
ZmlsbFJlY3QoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0
IGhlaWdodCk7CiAKICAgICAgICAgdm9pZCBiZWdpblBhdGgoKTsKICAgICAgICAgdm9pZCBjbG9z
ZVBhdGgoKTsKQEAgLTcxLDggKzY5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkIGJl
emllckN1cnZlVG8oaW4gZmxvYXQgY3AxeCwgaW4gZmxvYXQgY3AxeSwgaW4gZmxvYXQgY3AyeCwg
aW4gZmxvYXQgY3AyeSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSk7CiAgICAgICAgIHZvaWQgYXJj
VG8oaW4gZmxvYXQgeDEsIGluIGZsb2F0IHkxLCBpbiBmbG9hdCB4MiwgaW4gZmxvYXQgeTIsIGlu
IGZsb2F0IHJhZGl1cykKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCByZWN0KGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHdpZHRoLCBpbiBm
bG9hdCBoZWlnaHQpCi0gICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IHZvaWQgcmVjdChpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB3aWR0aCwgaW4gZmxv
YXQgaGVpZ2h0KTsKICAgICAgICAgdm9pZCBhcmMoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4g
ZmxvYXQgcmFkaXVzLCBpbiBmbG9hdCBzdGFydEFuZ2xlLCBpbiBmbG9hdCBlbmRBbmdsZSwgaW4g
Ym9vbGVhbiBhbnRpY2xvY2t3aXNlKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgICAgICB2b2lkIGZpbGwoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20859</attachid>
            <date>2008-04-27 20:30:22 -0700</date>
            <delta_ts>2008-04-27 22:58:32 -0700</delta_ts>
            <desc>Implement new semantics</desc>
            <filename>newsemantics.patch</filename>
            <type>text/plain</type>
            <size>31559</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZDAzZDIxLi4xZmVjNGE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMDQt
MjcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMTcxNzM6IEhUTUw1IENhbnZhcyBBUEkg
cmVxdWlyZXMgdXMgdG8gaWdub3JlIGNlcnRhaW4gb3BlcmF0aW9ucworICAgICAgICA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTczPgorCisgICAgICAgIENvcnJl
Y3Qgb2xkIHRlc3QgY2FzZSBub3cgdGhhdCB1bmRlZmluZWQgYmVoYXZpb3VyIGlzIGRlZmluZWQu
ICBBZGQKKyAgICAgICAgYWRkaXRpb25hbCB0ZXN0cyBmb3Igbm9uLXBhdGggcmVsYXRlZCBjYXNl
cyB0aGF0IGFyZSBhbHNvIG5vdyBkZWZpbmVkLgorCisgICAgICAgICogZmFzdC9jYW52YXMvY2Fu
dmFzLXBhdGgtd2l0aC1pbmYtbmFuLWRpbWVuc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvY2FudmFzLXdpdGgtaW5jb3JyZWN0LWFyZ3MtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy13aXRoLWluY29ycmVjdC1hcmdzLmh0bWw6CisKIDIw
MDgtMDQtMjYgIEFkYW0gQmFydGggIDxoazk1NjVAZ21haWwuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gUm9iZW4gYW5kIFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9jYW52YXMtcGF0aC13aXRoLWluZi1uYW4tZGltZW5zaW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXBhdGgtd2l0aC1pbmYtbmFuLWRpbWVuc2lv
bnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmI5Mjk0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXBhdGgtd2l0aC1p
bmYtbmFuLWRpbWVuc2lvbnMuaHRtbApAQCAtMCwwICsxLDk4IEBACis8Y2FudmFzIHdpZHRoPSIy
MDAiIGhlaWdodD0iMjAwIiBpZD0iY2FudmFzIj5GQUlMOiBubyBjYW52YXMgc3VwcG9ydDwvY2Fu
dmFzPgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
dmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKS5nZXRDb250ZXh0
KCIyZCIpOworLy9mb3VyIHRlc3RzCisvLyAxLiBJbmZpbml0ZSBkaW1lbnNpb25zIHRvIGZpbGxS
ZWN0CitjYW52YXMuZmlsbFN0eWxlID0gImdyZWVuIjsKK2NhbnZhcy5maWxsUmVjdCgwLCAwLCAx
MDAsIDEwMCk7CitjYW52YXMuZmlsbFN0eWxlID0gInJlZCI7Cit0cnkgeworICAgIGNhbnZhcy5m
aWxsUmVjdCgwLCAwLCBJbmZpbml0eSwgSW5maW5pdHkpOworfSBjYXRjaCAoZSkgeworICAgIGNh
bnZhcy5maWxsUmVjdCgwLCAwLCAxMDAsIDEwMCk7Cit9CisKKy8vIDIuIEluZmluaXRlIGRpbWVu
c2lvbnMgdG8gcmVjdAorY2FudmFzLmZpbGxTdHlsZSA9ICJncmVlbiI7CitjYW52YXMuZmlsbFJl
Y3QoMTAwLCAwLCAxMDAsIDEwMCk7CitjYW52YXMuZmlsbFN0eWxlID0gInJlZCI7Cit0cnkgewor
ICAgIGNhbnZhcy5yZWN0KDEwMCwgMCwgSW5maW5pdHksIEluZmluaXR5KTsKKyAgICBjYW52YXMu
ZmlsbCgpOworfSBjYXRjaCAoZSkgeworICAgIGNhbnZhcy5maWxsUmVjdCgxMDAsIDAsIDEwMCwg
MTAwKTsKK30KKworLy8gMy4gSW5maW5pdGUgYXJndW1lbnQgdG8gbW92ZVRvCitjYW52YXMudHJh
bnNsYXRlKDAsIDEwMCk7CitjYW52YXMuZmlsbFN0eWxlID0gInJlZCI7CitjYW52YXMuZmlsbFJl
Y3QoMCwgMCwgMTAwLCAxMDApOworY2FudmFzLmZpbGxTdHlsZSA9ICJncmVlbiI7Cit0cnkgewor
ICAgIGNhbnZhcy5iZWdpblBhdGgoKTsKKyAgICBjYW52YXMubW92ZVRvKEluZmluaXR5LCBJbmZp
bml0eSk7CisgICAgY2FudmFzLnJlY3QoMCwgMCwgMTAwLCAxMDApOworICAgIGNhbnZhcy5maWxs
KCk7Cit9IGNhdGNoIChlKSB7CisgICAgYWxlcnQoZSk7Cit9CisKKy8vIDQuIEluZmluaXRlIGFy
Z3VtZW50IHRvIGxpbmVUbworY2FudmFzLnRyYW5zbGF0ZSgxMDAsIDApOworY2FudmFzLmZpbGxT
dHlsZSA9ICJyZWQiOworY2FudmFzLmZpbGxSZWN0KDAsIDAsIDEwMCwgMTAwKTsKK2NhbnZhcy5m
aWxsU3R5bGUgPSAiZ3JlZW4iOwordHJ5IHsKKyAgICBjYW52YXMuYmVnaW5QYXRoKCk7CisgICAg
Y2FudmFzLm1vdmVUbygwLDApOworICAgIGNhbnZhcy5saW5lVG8oMTAwLCAwKTsKKyAgICBjYW52
YXMubGluZVRvKDEwMCwgMTAwKTsKKyAgICBjYW52YXMubGluZVRvKDAsIDEwMCk7CisgICAgY2Fu
dmFzLmxpbmVUbyhJbmZpbml0eSwgMTAwKTsKKyAgICBjYW52YXMuZmlsbCgpOworfSBjYXRjaCAo
ZSkgeworfQorCitmdW5jdGlvbiBsb2cobXNnKXsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibG9nIikuaW5uZXJIVE1MICs9IG1zZyArICI8YnIvPiI7Cit9CisKK2Z1bmN0aW9uIGRhdGFU
b0FycmF5KGRhdGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5KGRhdGEubGVuZ3RoKQor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykKKyAgICAgICAgcmVzdWx0
W2ldID0gZGF0YVtpXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBnZXRQaXhl
bChjdHgsIHgsIHkpIHsKKyAgICB2YXIgZGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoeCx5LDEsMSk7
CisgICAgaWYgKCFkYXRhKSAvLyBnZXRJbWFnZURhdGEgZmFpbGVkLCB3aGljaCBzaG91bGQgbmV2
ZXIgaGFwcGVuCisgICAgICAgIHJldHVybiBbLTEsLTEsLTEsLTFdOworICAgIHJldHVybiBkYXRh
VG9BcnJheShkYXRhLmRhdGEpOworfQorCitmdW5jdGlvbiBwaXhlbFNob3VsZEJlKGN0eCwgeCwg
eSwgY29sb3VyKSB7CisgICAgdmFyIGN0eENvbG91ciA9IGdldFBpeGVsKGN0eCwgeCwgeSk7Cisg
ICAgdmFyIGNvcnJlY3QgPSB0cnVlOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKQor
ICAgICAgICBpZiAoY29sb3VyW2ldICE9IGN0eENvbG91cltpXSkgeworICAgICAgICAgICAgY29y
cmVjdCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICBpZiAoY29y
cmVjdCkKKyAgICAgICAgbG9nKCJQQVNTOiBwaXhlbCBhdCAoIitbeCx5XSsiKSB3YXMgWyIrY29s
b3VyKyJdIik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUw6IHBpeGVsIGF0ICgiK1t4LHld
KyIpIHdhcyBbIitjdHhDb2xvdXIrIl0sIGV4cGVjdGVkIFsiK2NvbG91cisiXSIpOworfQorCit2
YXIgcG9pbnRzID0gWzI1LCA1MCwgNzUsIDEyNSwgMTUwLCAxNzVdOworZm9yICh2YXIgeCA9IDA7
IHggPCBwb2ludHMubGVuZ3RoOyB4KyspIHsKKyAgICBmb3IgKHZhciB5ID0gMDsgeSA8IHBvaW50
cy5sZW5ndGg7IHkrKykgeworICAgICAgICBwaXhlbFNob3VsZEJlKGNhbnZhcywgcG9pbnRzW3hd
LCBwb2ludHNbeV0sIFswLCAxMjgsIDAsIDI1NV0pOworICAgIH0KK30KKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXdpdGgtaW5jb3JyZWN0LWFy
Z3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXdpdGgtaW5j
b3JyZWN0LWFyZ3MtZXhwZWN0ZWQudHh0CmluZGV4IGNhZmIyOGMuLjZhY2ZkYjIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy13aXRoLWluY29ycmVjdC1hcmdzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNv
cnJlY3QtYXJncy1leHBlY3RlZC50eHQKQEAgLTEsMzcgKzEsMzUgQEAKIAogVGhpcyB0ZXN0cyB0
aGUgYmVoYXZpb3VyIG9mIGEgbnVtYmVyIG9mIHRoZSBET00gQ2FudmFzIGRyYXdpbmcgbWV0aG9k
cyB3aGVuCiBnaXZlbiAwLCBpbmYsIG9yIE5hTiBhcyBwYXJhbWV0ZXJzLgotQSBudW1iZXIgb2Yg
dGhlIENhbnZhcyBtZXRob2RzIGRvIG5vdCBoYXZlIGRlZmluZWQgYmVoYXZpb3VyIHdoZW4gZ2l2
ZW4gaW5mCi1vciBuYW4gYW5kIHNvIHdlIHVzZSBVTkRFRklORUQgdG8gaW5kaWNhdGUgdGhpcy4K
IAogUEFTUyBjYWxsZWQgZmlsbFJlY3QgMCowIGZpbGxSZWN0IHdpdGhvdXQgdGhyb3dpbmcgYW4g
ZXhjZXB0aW9uLgotVU5ERUZJTkVEIGNhbGxlZCBmaWxsUmVjdCB3aXRoIGluZippbmYgZmlsbFJl
Y3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uCi1VTkRFRklORUQgdGhyZXcgZXhjZXB0
aW9uIGNvZGUgMSBvbiBuYW4qbmFuIGZpbGxSZWN0LgorUEFTUyBjYWxsZWQgZmlsbFJlY3Qgd2l0
aCBpbmYqaW5mIGZpbGxSZWN0IHdpdGhvdXQgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLgorUEFTUyBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbiB3aXRoIG5hbipuYW4gZmlsbFJlY3QuCiBQQVNTIGNhbGxl
ZCBjbGVhclJlY3QgMCowIGNsZWFyUmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4K
LVVOREVGSU5FRCBjYWxsZWQgY2xlYXJSZWN0IHdpdGggaW5mKmluZiBjbGVhclJlY3Qgd2l0aG91
dCB0aHJvd2luZyBhbiBleGNlcHRpb24uCi1VTkRFRklORUQgdGhyZXcgZXhjZXB0aW9uIGNvZGUg
MSBvbiBuYW4qbmFuIGNsZWFyUmVjdC4KK1BBU1MgY2FsbGVkIGNsZWFyUmVjdCB3aXRoIGluZipp
bmYgY2xlYXJSZWN0IHdpdGhvdXQgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLgorUEFTUyBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbiB3aXRoIG5hbipuYW4gY2xlYXJSZWN0LgogUEFTUyBjYWxsZWQgcmVj
dCAwKjAgcmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4KLVVOREVGSU5FRCBjYWxs
ZWQgcmVjdCB3aXRoIGluZippbmYgcmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4K
LVVOREVGSU5FRCB0aHJldyBleGNlcHRpb24gY29kZSAxIG9uIG5hbipuYW4gcmVjdC4KK1BBU1Mg
Y2FsbGVkIHJlY3Qgd2l0aCBpbmYqaW5mIHJlY3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRp
b24uCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggbmFuKm5hbiByZWN0LgogUEFT
UyBjYWxsZWQgZmlsbCB3aXRoIGFuIGVtcHR5IHBhdGggd2l0aG91dCB0aHJvd2luZyBhbiBleGNl
cHRpb24uCi1QQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGFyYyB3aXRoIHplcm8tbGVu
Z3RoIHJhZGl1cworRkFJTCB0aHJldyBleGNlcHRpb24gY29kZSAxIG9uIGFyYyB3aXRoIHplcm8t
bGVuZ3RoIHJhZGl1cwogUEFTUyB0aHJldyBleGNlcHRpb24gY29kZSAxIG9uIGFyYyB3aXRoIG5l
Z2F0aXZlLWxlbmd0aCByYWRpdXMKLVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBv
biBhcmMgd2l0aCBpbmZpbml0ZSByYWRpdXMKLVVOREVGSU5FRCB0aHJldyBleGNlcHRpb24gY29k
ZSAxIG9uIGFyYyB3aXRoIG5hbi1sZW5ndGggcmFkaXVzCitQQVNTIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uIG9uIGFyYyB3aXRoIGluZmluaXRlIHJhZGl1cworUEFTUyBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbiBvbiBhcmMgd2l0aCBuYW4tbGVuZ3RoIHJhZGl1cwogUEFTUyB0aHJldyBleGNlcHRp
b24gY29kZSAxIG9uIGFyY1RvIHdpdGggemVyby1sZW5ndGggcmFkaXVzCiBQQVNTIHRocmV3IGV4
Y2VwdGlvbiBjb2RlIDEgb24gYXJjVG8gd2l0aCBuZWdhdGl2ZS1sZW5ndGggcmFkaXVzCi1VTkRF
RklORUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYXJjVG8gd2l0aCBpbmZpbml0ZSByYWRp
dXMKLVVOREVGSU5FRCB0aHJldyBleGNlcHRpb24gY29kZSAxIG9uIGFyY1RvIHdpdGggbmFuLWxl
bmd0aCByYWRpdXMKLVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBsaW5lVG8o
aW5mLCBpbmYpLgotVU5ERUZJTkVEIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGxpbmVUbyhu
YW4sIG5hbikuCi1VTkRFRklORUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGlj
Q3VydmVUbygyMCwgMjAsIGluZiwgaW5mKS4KLVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjApLgotVU5ERUZJTkVEIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCBuYW4sIG5h
bikuCi1VTkRFRklORUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVU
byhuYW4sIG5hbiwgMjAsIDIwKS4KLVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBv
biBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBpbmYsIGluZikuCi1VTkRFRklORUQgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIGluZiwgaW5mLCAz
MCwgMzApLgotVU5ERUZJTkVEIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZl
VG8oaW5mLCBpbmYsIDIwLCAyMCwgMzAsIDMwKS4KLVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBuYW4sIG5hbikuCi1VTkRF
RklORUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIG5h
biwgbmFuLCAzMCwgMzApLgotVU5ERUZJTkVEIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJl
emllckN1cnZlVG8obmFuLCBuYW4sIDIwLCAyMCwgMzAsIDMwKS4KK1BBU1MgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gYXJjVG8gd2l0aCBpbmZpbml0ZSByYWRpdXMKK1BBU1MgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24gb24gYXJjVG8gd2l0aCBuYW4tbGVuZ3RoIHJhZGl1cworUEFTUyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbiBvbiBsaW5lVG8oaW5mLCBpbmYpLgorUEFTUyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbiBvbiBsaW5lVG8obmFuLCBuYW4pLgorUEFTUyBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgaW5mLCBpbmYpLgorUEFTUyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjAp
LgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKDIwLCAy
MCwgbmFuLCBuYW4pLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWND
dXJ2ZVRvKG5hbiwgbmFuLCAyMCwgMjApLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBv
biBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBpbmYsIGluZikuCitQQVNTIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBpbmYsIGluZiwgMzAsIDMw
KS4KK1BBU1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbyhpbmYsIGlu
ZiwgMjAsIDIwLCAzMCwgMzApLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXpp
ZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBuYW4sIG5hbikuCitQQVNTIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBuYW4sIG5hbiwgMzAsIDMwKS4KK1BB
U1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbyhuYW4sIG5hbiwgMjAs
IDIwLCAzMCwgMzApLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtd2l0aC1pbmNvcnJlY3QtYXJncy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLXdpdGgtaW5jb3JyZWN0LWFyZ3MuaHRtbAppbmRleCAxZWRmNDlhLi42NjllODNkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNvcnJlY3QtYXJn
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy13aXRoLWluY29ycmVj
dC1hcmdzLmh0bWwKQEAgLTMsNyArMyw2IEBACiA8c3R5bGU+CiAuZmFpbCB7IGNvbG9yOiByZWQ7
IGZvbnQtd2VpZ2h0OiBib2xkO30KIC5wYXNzIHsgY29sb3I6IGdyZWVuOyBmb250LXdlaWdodDog
Ym9sZDt9Ci0udW5kZWZpbmVkIHsgY29sb3I6IGJsdWU7IGZvbnQtd2VpZ2h0OiBib2xkO30KIDwv
c3R5bGU+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiBmYWlsZWQgPSBmYWxzZTsK
QEAgLTIzLDEwICsyMiw2IEBAIGZ1bmN0aW9uIGZhaWwobXNnKSB7CiAgICAgZmFpbGVkID0gdHJ1
ZTsKIH0KIAotZnVuY3Rpb24gdW5kZWZpbmVkKG1zZykgewotICAgIGRlYnVnKCc8c3BhbiBjbGFz
cz0idW5kZWZpbmVkIj5VTkRFRklORUQ8L3NwYW4+ICcgKyBtc2cgKyAnPC9zcGFuPicpOwotfQot
CiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOwogICAgIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJk
Iik7CkBAIC00MCwxNSArMzUsMTUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9CiAgICAg
dHJ5IHsKICAgICAgICAgY29udGV4dC5maWxsUmVjdCgwLCAwLCAwLjAvMS4wLCAwLjAvMS4wKTsK
LSAgICAgICAgdW5kZWZpbmVkKCJjYWxsZWQgZmlsbFJlY3Qgd2l0aCBpbmYqaW5mIGZpbGxSZWN0
IHdpdGhvdXQgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLiIpOworICAgICAgICBwYXNzKCJjYWxsZWQg
ZmlsbFJlY3Qgd2l0aCBpbmYqaW5mIGZpbGxSZWN0IHdpdGhvdXQgdGhyb3dpbmcgYW4gZXhjZXB0
aW9uLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNl
cHRpb24gY29kZSAiICsgZS5jb2RlICsgIiB3aXRoIGluZippbmYgZmlsbFJlY3QiKTsgICAgICAg
CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIHdpdGgg
aW5mKmluZiBmaWxsUmVjdCIpOyAgICAgICAKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgY29u
dGV4dC5maWxsUmVjdCgwLCAwLCAwLjAvMC4wLCAwLjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVk
KCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiB3aXRoIG5hbipuYW4gZmlsbFJlY3QuIik7CisgICAg
ICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggbmFuKm5hbiBmaWxsUmVjdC4i
KTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9u
IGNvZGUgIiArIGUuY29kZSArICIgb24gbmFuKm5hbiBmaWxsUmVjdC4iKTsgICAgICAgCisgICAg
ICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIG5hbipuYW4g
ZmlsbFJlY3QuIik7ICAgICAgIAogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmNs
ZWFyUmVjdCgwLCAwLCAwLCAwKTsKQEAgLTU4LDE1ICs1MywxNSBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCAw
LjAvMS4wLCAwLjAvMS4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJjYWxsZWQgY2xlYXJSZWN0IHdp
dGggaW5mKmluZiBjbGVhclJlY3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uIik7Cisg
ICAgICAgIHBhc3MoImNhbGxlZCBjbGVhclJlY3Qgd2l0aCBpbmYqaW5mIGNsZWFyUmVjdCB3aXRo
b3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgd2l0aCBpbmYq
aW5mIGNsZWFyUmVjdC4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBj
b2RlICIgKyBlLmNvZGUgKyAiIHdpdGggaW5mKmluZiBjbGVhclJlY3QuIik7ICAgICAgIAogICAg
IH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCAwLjAvMC4wLCAw
LjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiB3aXRo
IG5hbipuYW4gY2xlYXJSZWN0LiIpOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbiB3aXRoIG5hbipuYW4gY2xlYXJSZWN0LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBuYW4q
bmFuIGNsZWFyUmVjdC4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBj
b2RlICIgKyBlLmNvZGUgKyAiIG9uIG5hbipuYW4gY2xlYXJSZWN0LiIpOyAgICAgICAKICAgICB9
CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5yZWN0KDAsIDAsIDAsIDApOwpAQCAtNzYsMTUg
KzcxLDE1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAg
IGNvbnRleHQucmVjdCgwLCAwLCAwLjAvMS4wLCAwLjAvMS4wKTsKLSAgICAgICAgdW5kZWZpbmVk
KCJjYWxsZWQgcmVjdCB3aXRoIGluZippbmYgcmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2Vw
dGlvbi4iKTsKKyAgICAgICAgcGFzcygiY2FsbGVkIHJlY3Qgd2l0aCBpbmYqaW5mIHJlY3Qgd2l0
aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICB1bmRlZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIHdpdGggaW5m
KmluZiByZWN0LiIpOyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUg
IiArIGUuY29kZSArICIgd2l0aCBpbmYqaW5mIHJlY3QuIik7ICAgICAgIAogICAgIH0KICAgICB0
cnkgewogICAgICAgICBjb250ZXh0LnJlY3QoMCwgMCwgMC4wLzAuMCwgMC4wLzAuMCk7Ci0gICAg
ICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBuYW4qbmFuIHJlY3Qu
Iik7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggbmFuKm5hbiBy
ZWN0LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNl
cHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBuYW4qbmFuIHJlY3QuIik7ICAgICAgIAorICAg
ICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBuYW4qbmFu
IHJlY3QuIik7ICAgICAgIAogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmZpbGwo
KTsKQEAgLTEwNiwxNSArMTAxLDE1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgfQogICAg
IHRyeSB7CiAgICAgICAgIGNvbnRleHQuYXJjKDIsIDIsIDEuMC8wLjAsIDAsIDkwLCB0cnVlKTsK
LSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBhcmMgd2l0aCBp
bmZpbml0ZSByYWRpdXMiKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24g
b24gYXJjIHdpdGggaW5maW5pdGUgcmFkaXVzIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICB1bmRlZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGFyYyB3
aXRoIGluZmluaXRlIHJhZGl1cyIpOyAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9u
IGNvZGUgIiArIGUuY29kZSArICIgb24gYXJjIHdpdGggaW5maW5pdGUgcmFkaXVzIik7ICAgIAog
ICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmFyYygyLCAyLCAwLjAvMC4wLCAwLCA5
MCwgdHJ1ZSk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24g
YXJjIHdpdGggbmFuLWxlbmd0aCByYWRpdXMiKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gYXJjIHdpdGggbmFuLWxlbmd0aCByYWRpdXMiKTsKICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29k
ZSArICIgb24gYXJjIHdpdGggbmFuLWxlbmd0aCByYWRpdXMiKTsgICAgCisgICAgICAgIGZhaWwo
InRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGFyYyB3aXRoIG5hbi1sZW5n
dGggcmFkaXVzIik7ICAgIAogICAgIH0KICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRy
eSB7CkBAIC0xMzgsMTI2ICsxMzMsMTI2IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdHJ5
IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5hcmNU
bygyLCAyLCA0LCA0LCAxLjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93
IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cyIpOworICAgICAgICBwYXNz
KCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cyIp
OwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24g
Y29kZSAiICsgZS5jb2RlICsgIiBvbiBhcmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cyIpOyAgICAK
KyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYXJj
VG8gd2l0aCBpbmZpbml0ZSByYWRpdXMiKTsgICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQ
YXRoKCk7CiAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKICAgICB0cnkgewogICAgICAgICBjb250
ZXh0Lm1vdmVUbygxMCwgMTApOwogICAgICAgICBjb250ZXh0LmFyY1RvKDIsIDIsIDQsIDQsIDAu
MC8wLjApOwotICAgICAgICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGFy
Y1RvIHdpdGggbmFuLWxlbmd0aCByYWRpdXMiKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gYXJjVG8gd2l0aCBuYW4tbGVuZ3RoIHJhZGl1cyIpOwogICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5j
b2RlICsgIiBvbiBhcmNUbyB3aXRoIG5hbi1sZW5ndGggcmFkaXVzIik7ICAgIAorICAgICAgICBm
YWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBhcmNUbyB3aXRoIG5h
bi1sZW5ndGggcmFkaXVzIik7ICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwog
ICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3Zl
VG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5saW5lVG8oMS4wLzAuMCwgMS4wLzAuMCk7Ci0g
ICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGluZVRvKGluZiwg
aW5mKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGluZVRv
KGluZiwgaW5mKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhy
ZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gbGluZVRvKGluZiwgaW5mKS4iKTsg
ICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAi
IG9uIGxpbmVUbyhpbmYsIGluZikuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3Nl
UGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29u
dGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5saW5lVG8oMC4wLzAuMCwgMC4w
LzAuMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGlu
ZVRvKG5hbiwgbmFuKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24g
b24gbGluZVRvKG5hbiwgbmFuKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVm
aW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gbGluZVRvKG5hbiwg
bmFuKS4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBl
LmNvZGUgKyAiIG9uIGxpbmVUbyhuYW4sIG5hbikuIik7ICAgICAgIAogICAgIH0KICAgICBjb250
ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAg
ICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5xdWFkcmF0aWND
dXJ2ZVRvKDIwLCAyMCwgMS4wLzAuMCwgMS4wLzAuMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIGluZiwgaW5m
KS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGlj
Q3VydmVUbygyMCwgMjAsIGluZiwgaW5mKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJh
dGljQ3VydmVUbygyMCwgMjAsIGluZiwgaW5mKS4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRo
cmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8oMjAs
IDIwLCBpbmYsIGluZikuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgp
OwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5t
b3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKDEuMC8wLjAs
IDEuMC8wLjAsIDIwLCAyMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhpbmYsIGluZiwgMjAsIDIwKS4iKTsKKyAgICAgICAg
cGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhpbmYsIGlu
ZiwgMjAsIDIwKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhy
ZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJhdGljQ3VydmVUbyhpbmYs
IGluZiwgMjAsIDIwKS4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBj
b2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8oaW5mLCBpbmYsIDIwLCAyMCku
Iik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQu
YmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsK
ICAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgMC4wLzAuMCwgMC4wLzAu
MCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJh
dGljQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuKS4iKTsK
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNv
ZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuKS4i
KTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUg
KyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCBuYW4sIG5hbikuIik7ICAgICAgIAogICAg
IH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAg
ICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4
dC5xdWFkcmF0aWNDdXJ2ZVRvKDAuMC8wLjAsIDAuMC8wLjAsIDIwLCAyMCk7Ci0gICAgICAgIHVu
ZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhuYW4s
IG5hbiwgMjAsIDIwKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24g
b24gcXVhZHJhdGljQ3VydmVUbyhuYW4sIG5hbiwgMjAsIDIwKS4iKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gcXVhZHJhdGljQ3VydmVUbyhuYW4sIG5hbiwgMjAsIDIwKS4iKTsgICAgICAgCisgICAg
ICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRp
Y0N1cnZlVG8obmFuLCBuYW4sIDIwLCAyMCkuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0
LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAg
ICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRv
KDIwLCAyMCwgMzAsIDMwLCAxLjAvMC4wLCAxLjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJk
aWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBp
bmYsIGluZikuIik7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJl
emllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIGluZiwgaW5mKS4iKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgaW5mLCBpbmYpLiIpOyAgICAgICAK
KyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6
aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgaW5mLCBpbmYpLiIpOyAgICAgICAKICAgICB9CiAg
ICAgY29udGV4dC5jbG9zZVBhdGgoKTsKICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRy
eSB7CiAgICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7CiAgICAgICAgIGNvbnRleHQuYmV6
aWVyQ3VydmVUbygyMCwgMjAsIDEuMC8wLjAsIDEuMC8wLjAsIDMwLCAzMCk7Ci0gICAgICAgIHVu
ZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAs
IGluZiwgaW5mLCAzMCwgMzApLiIpOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgaW5mLCBpbmYsIDMwLCAzMCkuIik7CiAgICAg
fSBjYXRjaCAoZSkgewotICAgICAgICB1bmRlZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIg
KyBlLmNvZGUgKyAiIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBpbmYsIGluZiwgMzAsIDMwKS4i
KTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUg
KyAiIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBpbmYsIGluZiwgMzAsIDMwKS4iKTsgICAgICAg
CiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CiAgICAgY29udGV4dC5iZWdpblBhdGgo
KTsKICAgICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwogICAgICAgICBj
b250ZXh0LmJlemllckN1cnZlVG8oMS4wLzAuMCwgMS4wLzAuMCwgMjAsIDIwLCAzMCwgMzApOwot
ICAgICAgICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZl
VG8oaW5mLCBpbmYsIDIwLCAyMCwgMzAsIDMwKS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbyhpbmYsIGluZiwgMjAsIDIwLCAzMCwgMzAp
LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRp
b24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjAs
IDMwLCAzMCkuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAi
ICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjAsIDMwLCAzMCku
Iik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQu
YmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsK
ICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCAwLjAvMC4wLCAw
LjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBi
ZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBuYW4sIG5hbikuIik7CisgICAgICAgIHBhc3Mo
ImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAs
IG5hbiwgbmFuKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhy
ZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAs
IDMwLCAzMCwgbmFuLCBuYW4pLiIpOyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0
aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwg
bmFuLCBuYW4pLiIpOyAgICAgICAKICAgICB9CiAgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKICAg
ICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRyeSB7CiAgICAgICAgIGNvbnRleHQubW92ZVRv
KDEwLCAxMCk7CiAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbygyMCwgMjAsIDAuMC8wLjAs
IDAuMC8wLjAsIDMwLCAzMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuLCAzMCwgMzApLiIpOworICAg
ICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAy
MCwgbmFuLCBuYW4sIDMwLCAzMCkuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICB1bmRl
ZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJlemllckN1cnZl
VG8oMjAsIDIwLCBuYW4sIG5hbiwgMzAsIDMwKS4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRo
cmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJlemllckN1cnZlVG8oMjAsIDIw
LCBuYW4sIG5hbiwgMzAsIDMwKS4iKTsgICAgICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQ
YXRoKCk7CiAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKICAgICB0cnkgewogICAgICAgICBjb250
ZXh0Lm1vdmVUbygxMCwgMTApOwogICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oMC4wLzAu
MCwgMC4wLzAuMCwgMjAsIDIwLCAzMCwgMzApOwotICAgICAgICB1bmRlZmluZWQoImRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8obmFuLCBuYW4sIDIwLCAyMCwgMzAsIDMw
KS4iKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3Vy
dmVUbyhuYW4sIG5hbiwgMjAsIDIwLCAzMCwgMzApLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBi
ZXppZXJDdXJ2ZVRvKG5hbiwgbmFuLCAyMCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAorICAgICAg
ICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2
ZVRvKG5hbiwgbmFuLCAyMCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAogICAgIH0KICAgICBjb250
ZXh0LmNsb3NlUGF0aCgpOwogCkBAIC0yNjYsNyArMjYxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKICAgICAgICAgY29udGV4dC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5o
ZWlnaHQpOwogICAgIH0KIAotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CiB9CiA8L3NjcmlwdD4KQEAgLTI3Nyw4ICsyNzIsNiBAQCBmdW5jdGlv
biBydW5UZXN0KCkgewogPHByZSBpZD0iY29uc29sZSI+CiBUaGlzIHRlc3RzIHRoZSBiZWhhdmlv
dXIgb2YgYSBudW1iZXIgb2YgdGhlIERPTSBDYW52YXMgZHJhd2luZyBtZXRob2RzIHdoZW4KIGdp
dmVuIDAsIGluZiwgb3IgTmFOIGFzIHBhcmFtZXRlcnMuCi1BIG51bWJlciBvZiB0aGUgQ2FudmFz
IG1ldGhvZHMgZG8gbm90IGhhdmUgZGVmaW5lZCBiZWhhdmlvdXIgd2hlbiBnaXZlbiBpbmYKLW9y
IG5hbiBhbmQgc28gd2UgdXNlIDxzcGFuIGNsYXNzPSJ1bmRlZmluZWQiPlVOREVGSU5FRDwvc3Bh
bj4gdG8gaW5kaWNhdGUgdGhpcy4KIAogPC9wcmU+CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY4NTk2MC4uYWNkZTA5NCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMiBAQAorMjAwOC0wNC0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAxNzE3Mzog
SFRNTDUgQ2FudmFzIEFQSSByZXF1aXJlcyB1cyB0byBpZ25vcmUgY2VydGFpbiBvcGVyYXRpb25z
CisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzM+
CisKKyAgICAgICAgVGhpcyBmaXhlcyB0aGUgc2VtYW50aWNzIG9mIGEgbnVtYmVyIG9mIENhbnZh
cyBmdW5jdGlvbnMgdG8gbWF0Y2gKKyAgICAgICAgdGhlIG5ldyBIVE1MNSBub24tdGhyb3dpbmcg
c2VtYW50aWNzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2NhbnZhcy1wYXRoLXdpdGgt
aW5mLW5hbi1kaW1lbnNpb25zLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VSZWN0KToKKyAgICAgICAgKiBodG1sL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnF1YWRyYXRpY0N1cnZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpiZXppZXJDdXJ2ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6YXJjVG8pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjphcmMpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVSZWN0Rm9yQ2FudmFz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNsZWFyUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdCk6Cisg
ICAgICAgICogaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1s
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisKIDIwMDgtMDQtMjYgIEFkYW0gQmFydGgg
IDxoazk1NjVAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4gYW5k
IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCmluZGV4IGEzNjc1YWEuLmU5NTIzMDIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRDdXN0b20uY3BwCkBAIC0xNjAsMTcgKzE2MCwxNSBAQCBKU1ZhbHVlKiBKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlQ29sb3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0
JgogCiBKU1ZhbHVlKiBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QmIGFyZ3MpCiB7IAotICAgIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCogY29udGV4dCA9IGltcGwoKTsgICAgCi0gICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAg
ICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNvbnRleHQgPSBpbXBsKCk7CiAgICAgCiAgICAg
aWYgKGFyZ3Muc2l6ZSgpIDw9IDQpCiAgICAgICAgIGNvbnRleHQtPnN0cm9rZVJlY3QoYXJnc1sw
XS0+dG9GbG9hdChleGVjKSwgYXJnc1sxXS0+dG9GbG9hdChleGVjKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmdzWzJdLT50b0Zsb2F0KGV4ZWMpLCBhcmdzWzNdLT50b0Zsb2F0KGV4
ZWMpLCBlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1syXS0+dG9GbG9hdChl
eGVjKSwgYXJnc1szXS0+dG9GbG9hdChleGVjKSk7CiAgICAgZWxzZQogICAgICAgICBjb250ZXh0
LT5zdHJva2VSZWN0KGFyZ3NbMF0tPnRvRmxvYXQoZXhlYyksIGFyZ3NbMV0tPnRvRmxvYXQoZXhl
YyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1syXS0+dG9GbG9hdChleGVjKSwg
YXJnc1szXS0+dG9GbG9hdChleGVjKSwgYXJnc1s0XS0+dG9GbG9hdChleGVjKSwgZWMpOwotICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXJnc1syXS0+dG9GbG9hdChleGVjKSwgYXJnc1szXS0+dG9GbG9hdChleGVjKSwgYXJn
c1s0XS0+dG9GbG9hdChleGVjKSk7CisKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsgICAgCiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
IGIvV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggOTEwMjE0
NC4uN2Y2Yzk0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
QEAgLTQzNyw1MSArNDM3LDc5IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbG9z
ZVBhdGgoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6bW92ZVRvKGZsb2F0IHgs
IGZsb2F0IHkpCiB7Ci0gICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkpKTsKKyAgICBp
ZiAoaXNmaW5pdGUoeCkgJiYgaXNmaW5pdGUoeSkpCisgICAgICAgIG1fcGF0aC5tb3ZlVG8oRmxv
YXRQb2ludCh4LCB5KSk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpsaW5l
VG8oZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBtX3BhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQo
eCwgeSkpOworICAgIGlmIChpc2Zpbml0ZSh4KSAmJiBpc2Zpbml0ZSh5KSkKKyAgICAgICAgbV9w
YXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KHgsIHkpKTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnF1YWRyYXRpY0N1cnZlVG8oZmxvYXQgY3B4LCBmbG9hdCBjcHksIGZsb2F0
IHgsIGZsb2F0IHkpCiB7Ci0gICAgbV9wYXRoLmFkZFF1YWRDdXJ2ZVRvKEZsb2F0UG9pbnQoY3B4
LCBjcHkpLCBGbG9hdFBvaW50KHgsIHkpKTsKKyAgICBpZiAoaXNmaW5pdGUoY3B4KSAmJiBpc2Zp
bml0ZShjcHkpICYmIGlzZmluaXRlKHgpICYmIGlzZmluaXRlKHkpKQorICAgICAgICBtX3BhdGgu
YWRkUXVhZEN1cnZlVG8oRmxvYXRQb2ludChjcHgsIGNweSksIEZsb2F0UG9pbnQoeCwgeSkpOwog
fQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YmV6aWVyQ3VydmVUbyhmbG9hdCBj
cDF4LCBmbG9hdCBjcDF5LCBmbG9hdCBjcDJ4LCBmbG9hdCBjcDJ5LCBmbG9hdCB4LCBmbG9hdCB5
KQogewotICAgIG1fcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKEZsb2F0UG9pbnQoY3AxeCwgY3AxeSks
IEZsb2F0UG9pbnQoY3AyeCwgY3AyeSksIEZsb2F0UG9pbnQoeCwgeSkpOworICAgIGlmIChpc2Zp
bml0ZShjcDF4KSAmJiBpc2Zpbml0ZShjcDF5KSAmJiBpc2Zpbml0ZShjcDJ4KSAmJiBpc2Zpbml0
ZShjcDJ5KSAmJiBpc2Zpbml0ZSh4KSAmJiBpc2Zpbml0ZSh5KSkKKyAgICAgICAgbV9wYXRoLmFk
ZEJlemllckN1cnZlVG8oRmxvYXRQb2ludChjcDF4LCBjcDF5KSwgRmxvYXRQb2ludChjcDJ4LCBj
cDJ5KSwgRmxvYXRQb2ludCh4LCB5KSk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjphcmNUbyhmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQg
ciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwotICAgIGlmICghKHIgPiAwKSkg
eworICAgIGlmICghKGlzZmluaXRlKHgwKSAmJiBpc2Zpbml0ZSh5MCkgJiYgaXNmaW5pdGUoeDEp
ICYmIGlzZmluaXRlKHkxKSAmJiBpc2Zpbml0ZShyKSkpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBpZiAociA8PSAwKSB7CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CisgICAgCiAgICAgbV9wYXRoLmFkZEFyY1RvKEZsb2F0UG9pbnQoeDAs
IHkwKSwgRmxvYXRQb2ludCh4MSwgeTEpLCByKTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmFyYyhmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQg
ZWEsIGJvb2wgYW50aWNsb2Nrd2lzZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAw
OwotICAgIGlmICghKHIgPj0gMCkpIHsKKyAgICBpZiAoIWlzZmluaXRlKHgpICYmICFpc2Zpbml0
ZSh5KSAmJiAhaXNmaW5pdGUocikgJiYgIWlzZmluaXRlKHNhKSAmJiAhaXNmaW5pdGUoZWEpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKHIgPD0gMCkgewogICAgICAgICBlYyA9IElO
REVYX1NJWkVfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIAogICAgIG1fcGF0aC5h
ZGRBcmMoRmxvYXRQb2ludCh4LCB5KSwgciwgc2EsIGVhLCBhbnRpY2xvY2t3aXNlKTsKIH0KKyAg
ICAKK3N0YXRpYyBib29sIHZhbGlkYXRlUmVjdEZvckNhbnZhcyhmbG9hdCYgeCwgZmxvYXQmIHks
IGZsb2F0JiB3aWR0aCwgZmxvYXQmIGhlaWdodCkKK3sKKyAgICBpZiAoIShpc2Zpbml0ZSh4KSAm
JiBpc2Zpbml0ZSh5KSAmJiBpc2Zpbml0ZSh3aWR0aCkgJiYgaXNmaW5pdGUoaGVpZ2h0KSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAod2lkdGggPCAwKSB7CisgICAgICAg
IHdpZHRoID0gLXdpZHRoOworICAgICAgICB4IC09IHdpZHRoOworICAgIH0KKyAgICAKKyAgICBp
ZiAoaGVpZ2h0IDwgMCkgeworICAgICAgICBoZWlnaHQgPSAtaGVpZ2h0OworICAgICAgICB5IC09
IGhlaWdodDsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CiAKLXZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpyZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkK
IHsKLSAgICBlYyA9IDA7Ci0gICAgaWYgKCEod2lkdGggPj0gMCAmJiBoZWlnaHQgPj0gMCkpIHsK
LSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKKyAgICBpZiAoIXZhbGlkYXRlUmVjdEZvckNh
bnZhcyh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAg
ICAgCiAgICAgbV9wYXRoLmFkZFJlY3QoRmxvYXRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsK
IH0KIApAQCAtNjMxLDEzICs2NTksMTAgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmlzUG9pbnRJblBhdGgoY29uc3QgZmxvYXQgeCwgY29uc3QgZmxvYXQgeSkKICAgICByZXR1cm4g
bV9wYXRoLmNvbnRhaW5zKHRyYW5zZm9ybWVkUG9pbnQpOwogfQogCi12b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmNsZWFyUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVp
Z2h0KQogewotICAgIGVjID0gMDsKLSAgICBpZiAoISh3aWR0aCA+PSAwICYmIGhlaWdodCA+PSAw
KSkgewotICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOworICAgIGlmICghdmFsaWRhdGVSZWN0
Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQpKQogICAgICAgICByZXR1cm47Ci0gICAgfQog
ICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQog
ICAgICAgICByZXR1cm47CkBAIC02NDYsMTQgKzY3MSwxMCBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9h
dCBoZQogICAgIGMtPmNsZWFyUmVjdChyZWN0KTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpCiB7
Ci0gICAgZWMgPSAwOwotCi0gICAgaWYgKCEod2lkdGggPj0gMCAmJiBoZWlnaHQgPj0gMCkpIHsK
LSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKKyAgICBpZiAoIXZhbGlkYXRlUmVjdEZvckNh
bnZhcyh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAg
IEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQpAQCAt
Njk5LDE5ICs3MjAsMjAgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxSZWN0
KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWkKICNlbmRpZgogfQogCi12
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHdpZHRoLCBmbG9hdCBoZWlnaHQpCiB7Ci0gICAgc3Ryb2tlUmVjdCh4LCB5LCB3aWR0aCwgaGVp
Z2h0LCBzdGF0ZSgpLm1fbGluZVdpZHRoLCBlYyk7CisgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JD
YW52YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkpCisgICAgICAgIHJldHVybjsKKyAgICBzdHJva2VS
ZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQsIHN0YXRlKCkubV9saW5lV2lkdGgpOwogfQogCi12b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBsaW5lV2lkdGgsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgbGluZVdpZHRoKQogewot
ICAgIGVjID0gMDsKLQotICAgIGlmICghKHdpZHRoID49IDAgJiYgaGVpZ2h0ID49IDAgJiYgbGlu
ZVdpZHRoID49IDApKSB7Ci0gICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAgaWYgKCF2
YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkpCisgICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBpZiAoIShsaW5lV2lkdGggPj0gMCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICB9CiAKICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlm
ICghYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCBiL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCBiNDViNTIy
Li5mYzE4MjA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgKKysrIGIvV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC0x
MjQsNyArMTI0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGJlemllckN1
cnZlVG8oZmxvYXQgY3AxeCwgZmxvYXQgY3AxeSwgZmxvYXQgY3AyeCwgZmxvYXQgY3AyeSwgZmxv
YXQgeCwgZmxvYXQgeSk7CiAgICAgICAgIHZvaWQgYXJjVG8oZmxvYXQgeDAsIGZsb2F0IHkwLCBm
bG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHJhZGl1cywgRXhjZXB0aW9uQ29kZSYpOwogICAgICAg
ICB2b2lkIGFyYyhmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEs
IGJvb2wgY2xvY2t3aXNlLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQgcmVjdChmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7
CisgICAgICAgIHZvaWQgcmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQg
aGVpZ2h0KTsKIAogICAgICAgICB2b2lkIGZpbGwoKTsKICAgICAgICAgdm9pZCBzdHJva2UoKTsK
QEAgLTEzMiwxMCArMTMyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29s
IGlzUG9pbnRJblBhdGgoY29uc3QgZmxvYXQgeCwgY29uc3QgZmxvYXQgeSk7CiAKLSAgICAgICAg
dm9pZCBjbGVhclJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIGZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAg
dm9pZCBzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln
aHQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9pZCBzdHJva2VSZWN0KGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGxpbmVXaWR0aCwgRXhjZXB0
aW9uQ29kZSYpOworICAgICAgICB2b2lkIGNsZWFyUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAgICAgICAgdm9pZCBmaWxsUmVjdChmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAgICAgICAgdm9pZCBzdHJva2VS
ZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworICAgICAg
ICB2b2lkIHN0cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCwgZmxvYXQgbGluZVdpZHRoKTsKIAogICAgICAgICB2b2lkIHNldFNoYWRvdyhmbG9hdCB3
aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBibHVyKTsKICAgICAgICAgdm9pZCBzZXRTaGFkb3co
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgYmx1ciwgY29uc3QgU3RyaW5nJiBjb2xv
cik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bCBiL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCmluZGV4IDJiOTQ3
N2UuLmY5Zjc0MTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRs
CkBAIC01OCwxMCArNTgsOCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCBzaGFkb3dCbHVyOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgc2hhZG93Q29sb3I7CiAKLSAgICAgICAgdm9pZCBjbGVhclJlY3QoaW4gZmxv
YXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCkKLSAgICAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBmaWxsUmVjdChpbiBm
bG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KQotICAg
ICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIGNsZWFyUmVjdChp
biBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsK
KyAgICAgICAgdm9pZCBmaWxsUmVjdChpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB3
aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsKIAogICAgICAgICB2b2lkIGJlZ2luUGF0aCgpOwogICAg
ICAgICB2b2lkIGNsb3NlUGF0aCgpOwpAQCAtNzEsOCArNjksNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIHZvaWQgYmV6aWVyQ3VydmVUbyhpbiBmbG9hdCBjcDF4LCBpbiBmbG9hdCBjcDF5LCBp
biBmbG9hdCBjcDJ4LCBpbiBmbG9hdCBjcDJ5LCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsKICAg
ICAgICAgdm9pZCBhcmNUbyhpbiBmbG9hdCB4MSwgaW4gZmxvYXQgeTEsIGluIGZsb2F0IHgyLCBp
biBmbG9hdCB5MiwgaW4gZmxvYXQgcmFkaXVzKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNl
cHRpb24pOwotICAgICAgICB2b2lkIHJlY3QoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxv
YXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCkKLSAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCByZWN0KGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0
IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQpOwogICAgICAgICB2b2lkIGFyYyhpbiBmbG9hdCB4LCBp
biBmbG9hdCB5LCBpbiBmbG9hdCByYWRpdXMsIGluIGZsb2F0IHN0YXJ0QW5nbGUsIGluIGZsb2F0
IGVuZEFuZ2xlLCBpbiBib29sZWFuIGFudGljbG9ja3dpc2UpCiAgICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgZmlsbCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20861</attachid>
            <date>2008-04-27 22:58:32 -0700</date>
            <delta_ts>2008-04-27 23:00:54 -0700</delta_ts>
            <desc>Updated with more tests</desc>
            <filename>newsemantics.patch</filename>
            <type>text/plain</type>
            <size>44186</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyOWZkY2IyLi5jNDg0MjY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMDQt
MjcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMTcxNzM6IEhUTUw1IENhbnZhcyBBUEkg
cmVxdWlyZXMgdXMgdG8gaWdub3JlIGNlcnRhaW4gb3BlcmF0aW9ucworICAgICAgICA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTczPgorCisgICAgICAgIENvcnJl
Y3Qgb2xkIHRlc3QgY2FzZSBub3cgdGhhdCB1bmRlZmluZWQgYmVoYXZpb3VyIGlzIGRlZmluZWQu
ICBBZGQKKyAgICAgICAgYWRkaXRpb25hbCB0ZXN0cyBmb3Igbm9uLXBhdGggcmVsYXRlZCBjYXNl
cyB0aGF0IGFyZSBhbHNvIG5vdyBkZWZpbmVkLgorCisgICAgICAgICogZmFzdC9jYW52YXMvY2Fu
dmFzLXBhdGgtd2l0aC1pbmYtbmFuLWRpbWVuc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvY2FudmFzLXdpdGgtaW5jb3JyZWN0LWFyZ3MtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy13aXRoLWluY29ycmVjdC1hcmdzLmh0bWw6CisKIDIw
MDgtMDQtMjcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1wYXRoLXdpdGgtaW5mLW5hbi1kaW1lbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtcGF0aC13aXRoLWluZi1uYW4tZGltZW5zaW9ucy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmYjkyOTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcGF0aC13aXRoLWluZi1uYW4tZGltZW5z
aW9ucy5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzxjYW52YXMgd2lkdGg9IjIwMCIgaGVpZ2h0PSIy
MDAiIGlkPSJjYW52YXMiPkZBSUw6IG5vIGNhbnZhcyBzdXBwb3J0PC9jYW52YXM+Cis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7CisvL2Zv
dXIgdGVzdHMKKy8vIDEuIEluZmluaXRlIGRpbWVuc2lvbnMgdG8gZmlsbFJlY3QKK2NhbnZhcy5m
aWxsU3R5bGUgPSAiZ3JlZW4iOworY2FudmFzLmZpbGxSZWN0KDAsIDAsIDEwMCwgMTAwKTsKK2Nh
bnZhcy5maWxsU3R5bGUgPSAicmVkIjsKK3RyeSB7CisgICAgY2FudmFzLmZpbGxSZWN0KDAsIDAs
IEluZmluaXR5LCBJbmZpbml0eSk7Cit9IGNhdGNoIChlKSB7CisgICAgY2FudmFzLmZpbGxSZWN0
KDAsIDAsIDEwMCwgMTAwKTsKK30KKworLy8gMi4gSW5maW5pdGUgZGltZW5zaW9ucyB0byByZWN0
CitjYW52YXMuZmlsbFN0eWxlID0gImdyZWVuIjsKK2NhbnZhcy5maWxsUmVjdCgxMDAsIDAsIDEw
MCwgMTAwKTsKK2NhbnZhcy5maWxsU3R5bGUgPSAicmVkIjsKK3RyeSB7CisgICAgY2FudmFzLnJl
Y3QoMTAwLCAwLCBJbmZpbml0eSwgSW5maW5pdHkpOworICAgIGNhbnZhcy5maWxsKCk7Cit9IGNh
dGNoIChlKSB7CisgICAgY2FudmFzLmZpbGxSZWN0KDEwMCwgMCwgMTAwLCAxMDApOworfQorCisv
LyAzLiBJbmZpbml0ZSBhcmd1bWVudCB0byBtb3ZlVG8KK2NhbnZhcy50cmFuc2xhdGUoMCwgMTAw
KTsKK2NhbnZhcy5maWxsU3R5bGUgPSAicmVkIjsKK2NhbnZhcy5maWxsUmVjdCgwLCAwLCAxMDAs
IDEwMCk7CitjYW52YXMuZmlsbFN0eWxlID0gImdyZWVuIjsKK3RyeSB7CisgICAgY2FudmFzLmJl
Z2luUGF0aCgpOworICAgIGNhbnZhcy5tb3ZlVG8oSW5maW5pdHksIEluZmluaXR5KTsKKyAgICBj
YW52YXMucmVjdCgwLCAwLCAxMDAsIDEwMCk7CisgICAgY2FudmFzLmZpbGwoKTsKK30gY2F0Y2gg
KGUpIHsKKyAgICBhbGVydChlKTsKK30KKworLy8gNC4gSW5maW5pdGUgYXJndW1lbnQgdG8gbGlu
ZVRvCitjYW52YXMudHJhbnNsYXRlKDEwMCwgMCk7CitjYW52YXMuZmlsbFN0eWxlID0gInJlZCI7
CitjYW52YXMuZmlsbFJlY3QoMCwgMCwgMTAwLCAxMDApOworY2FudmFzLmZpbGxTdHlsZSA9ICJn
cmVlbiI7Cit0cnkgeworICAgIGNhbnZhcy5iZWdpblBhdGgoKTsKKyAgICBjYW52YXMubW92ZVRv
KDAsMCk7CisgICAgY2FudmFzLmxpbmVUbygxMDAsIDApOworICAgIGNhbnZhcy5saW5lVG8oMTAw
LCAxMDApOworICAgIGNhbnZhcy5saW5lVG8oMCwgMTAwKTsKKyAgICBjYW52YXMubGluZVRvKElu
ZmluaXR5LCAxMDApOworICAgIGNhbnZhcy5maWxsKCk7Cit9IGNhdGNoIChlKSB7Cit9CisKK2Z1
bmN0aW9uIGxvZyhtc2cpeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5l
ckhUTUwgKz0gbXNnICsgIjxici8+IjsKK30KKworZnVuY3Rpb24gZGF0YVRvQXJyYXkoZGF0YSkg
eworICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXkoZGF0YS5sZW5ndGgpCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKQorICAgICAgICByZXN1bHRbaV0gPSBkYXRhW2ld
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIGdldFBpeGVsKGN0eCwgeCwgeSkg
eworICAgIHZhciBkYXRhID0gY3R4LmdldEltYWdlRGF0YSh4LHksMSwxKTsKKyAgICBpZiAoIWRh
dGEpIC8vIGdldEltYWdlRGF0YSBmYWlsZWQsIHdoaWNoIHNob3VsZCBuZXZlciBoYXBwZW4KKyAg
ICAgICAgcmV0dXJuIFstMSwtMSwtMSwtMV07CisgICAgcmV0dXJuIGRhdGFUb0FycmF5KGRhdGEu
ZGF0YSk7Cit9CisKK2Z1bmN0aW9uIHBpeGVsU2hvdWxkQmUoY3R4LCB4LCB5LCBjb2xvdXIpIHsK
KyAgICB2YXIgY3R4Q29sb3VyID0gZ2V0UGl4ZWwoY3R4LCB4LCB5KTsKKyAgICB2YXIgY29ycmVj
dCA9IHRydWU7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspCisgICAgICAgIGlmIChj
b2xvdXJbaV0gIT0gY3R4Q29sb3VyW2ldKSB7CisgICAgICAgICAgICBjb3JyZWN0ID0gZmFsc2U7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIGlmIChjb3JyZWN0KQorICAgICAg
ICBsb2coIlBBU1M6IHBpeGVsIGF0ICgiK1t4LHldKyIpIHdhcyBbIitjb2xvdXIrIl0iKTsKKyAg
ICBlbHNlCisgICAgICAgIGxvZygiRkFJTDogcGl4ZWwgYXQgKCIrW3gseV0rIikgd2FzIFsiK2N0
eENvbG91cisiXSwgZXhwZWN0ZWQgWyIrY29sb3VyKyJdIik7Cit9CisKK3ZhciBwb2ludHMgPSBb
MjUsIDUwLCA3NSwgMTI1LCAxNTAsIDE3NV07Citmb3IgKHZhciB4ID0gMDsgeCA8IHBvaW50cy5s
ZW5ndGg7IHgrKykgeworICAgIGZvciAodmFyIHkgPSAwOyB5IDwgcG9pbnRzLmxlbmd0aDsgeSsr
KSB7CisgICAgICAgIHBpeGVsU2hvdWxkQmUoY2FudmFzLCBwb2ludHNbeF0sIHBvaW50c1t5XSwg
WzAsIDEyOCwgMCwgMjU1XSk7CisgICAgfQorfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNvcnJlY3QtYXJncy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNvcnJlY3QtYXJncy1l
eHBlY3RlZC50eHQKaW5kZXggY2FmYjI4Yy4uZjAzMDU3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLXdpdGgtaW5jb3JyZWN0LWFyZ3MtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy13aXRoLWluY29ycmVjdC1hcmdzLWV4
cGVjdGVkLnR4dApAQCAtMSwzNyArMSw1OSBAQAogCiBUaGlzIHRlc3RzIHRoZSBiZWhhdmlvdXIg
b2YgYSBudW1iZXIgb2YgdGhlIERPTSBDYW52YXMgZHJhd2luZyBtZXRob2RzIHdoZW4KLWdpdmVu
IDAsIGluZiwgb3IgTmFOIGFzIHBhcmFtZXRlcnMuCi1BIG51bWJlciBvZiB0aGUgQ2FudmFzIG1l
dGhvZHMgZG8gbm90IGhhdmUgZGVmaW5lZCBiZWhhdmlvdXIgd2hlbiBnaXZlbiBpbmYKLW9yIG5h
biBhbmQgc28gd2UgdXNlIFVOREVGSU5FRCB0byBpbmRpY2F0ZSB0aGlzLgorZ2l2ZW4gMCwgSW5m
aW5pdHksIG9yIE5hTiBhcyBwYXJhbWV0ZXJzLgogCiBQQVNTIGNhbGxlZCBmaWxsUmVjdCAwKjAg
ZmlsbFJlY3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uCi1VTkRFRklORUQgY2FsbGVk
IGZpbGxSZWN0IHdpdGggaW5mKmluZiBmaWxsUmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2Vw
dGlvbi4KLVVOREVGSU5FRCB0aHJldyBleGNlcHRpb24gY29kZSAxIG9uIG5hbipuYW4gZmlsbFJl
Y3QuCitQQVNTIGNhbGxlZCBmaWxsUmVjdCB3aXRoIEluZmluaXR5KkluZmluaXR5IGZpbGxSZWN0
IHdpdGhvdXQgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbiB3aXRoIE5hTipOYU4gZmlsbFJlY3QuCiBQQVNTIGNhbGxlZCBjbGVhclJlY3QgMCowIGNs
ZWFyUmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4KLVVOREVGSU5FRCBjYWxsZWQg
Y2xlYXJSZWN0IHdpdGggaW5mKmluZiBjbGVhclJlY3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNl
cHRpb24uCi1VTkRFRklORUQgdGhyZXcgZXhjZXB0aW9uIGNvZGUgMSBvbiBuYW4qbmFuIGNsZWFy
UmVjdC4KK1BBU1MgY2FsbGVkIGNsZWFyUmVjdCB3aXRoIEluZmluaXR5KkluZmluaXR5IGNsZWFy
UmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4KK1BBU1MgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24gd2l0aCBOYU4qTmFOIGNsZWFyUmVjdC4KIFBBU1MgY2FsbGVkIHJlY3QgMCowIHJl
Y3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uCi1VTkRFRklORUQgY2FsbGVkIHJlY3Qg
d2l0aCBpbmYqaW5mIHJlY3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uCi1VTkRFRklO
RUQgdGhyZXcgZXhjZXB0aW9uIGNvZGUgMSBvbiBuYW4qbmFuIHJlY3QuCitQQVNTIGNhbGxlZCBy
ZWN0IHdpdGggSW5maW5pdHkqSW5maW5pdHkgcmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2Vw
dGlvbi4KK1BBU1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBOYU4qTmFOIHJlY3QuCiBQ
QVNTIGNhbGxlZCBmaWxsIHdpdGggYW4gZW1wdHkgcGF0aCB3aXRob3V0IHRocm93aW5nIGFuIGV4
Y2VwdGlvbi4KIFBBU1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYXJjIHdpdGggemVyby1s
ZW5ndGggcmFkaXVzCiBQQVNTIHRocmV3IGV4Y2VwdGlvbiBjb2RlIDEgb24gYXJjIHdpdGggbmVn
YXRpdmUtbGVuZ3RoIHJhZGl1cwotVU5ERUZJTkVEIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9u
IGFyYyB3aXRoIGluZmluaXRlIHJhZGl1cwotVU5ERUZJTkVEIHRocmV3IGV4Y2VwdGlvbiBjb2Rl
IDEgb24gYXJjIHdpdGggbmFuLWxlbmd0aCByYWRpdXMKLVBBU1MgdGhyZXcgZXhjZXB0aW9uIGNv
ZGUgMSBvbiBhcmNUbyB3aXRoIHplcm8tbGVuZ3RoIHJhZGl1cworUEFTUyBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbiBvbiBhcmMgd2l0aCBpbmZpbml0ZSByYWRpdXMKK1BBU1MgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gYXJjIHdpdGggTmFOLWxlbmd0aCByYWRpdXMKK1BBU1MgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24gb24gYXJjVG8gd2l0aCB6ZXJvLWxlbmd0aCByYWRpdXMKIFBBU1MgdGhy
ZXcgZXhjZXB0aW9uIGNvZGUgMSBvbiBhcmNUbyB3aXRoIG5lZ2F0aXZlLWxlbmd0aCByYWRpdXMK
LVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIGluZmluaXRl
IHJhZGl1cwotVU5ERUZJTkVEIHRocmV3IGV4Y2VwdGlvbiBjb2RlIDEgb24gYXJjVG8gd2l0aCBu
YW4tbGVuZ3RoIHJhZGl1cwotVU5ERUZJTkVEIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGxp
bmVUbyhpbmYsIGluZikuCi1VTkRFRklORUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGlu
ZVRvKG5hbiwgbmFuKS4KLVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFk
cmF0aWNDdXJ2ZVRvKDIwLCAyMCwgaW5mLCBpbmYpLgotVU5ERUZJTkVEIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZlVG8oaW5mLCBpbmYsIDIwLCAyMCkuCi1VTkRFRklO
RUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIG5h
biwgbmFuKS4KLVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWND
dXJ2ZVRvKG5hbiwgbmFuLCAyMCwgMjApLgotVU5ERUZJTkVEIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIGluZiwgaW5mKS4KLVVOREVGSU5F
RCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgaW5mLCBp
bmYsIDMwLCAzMCkuCi1VTkRFRklORUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVy
Q3VydmVUbyhpbmYsIGluZiwgMjAsIDIwLCAzMCwgMzApLgotVU5ERUZJTkVEIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIG5hbiwgbmFuKS4K
LVVOREVGSU5FRCBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAy
MCwgbmFuLCBuYW4sIDMwLCAzMCkuCi1VTkRFRklORUQgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24g
b24gYmV6aWVyQ3VydmVUbyhuYW4sIG5hbiwgMjAsIDIwLCAzMCwgMzApLgorUEFTUyBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cworUEFTUyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIE5hTi1sZW5ndGggcmFkaXVzCitQQVNT
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGxpbmVUbyhJbmZpbml0eSwgSW5maW5pdHkpLgor
UEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBsaW5lVG8oSW5maW5pdHksIDIwKS4KK1BB
U1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbGluZVRvKDIwLCBJbmZpbml0eSkuCitQQVNT
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGxpbmVUbyhOYU4sIE5hTikuCitQQVNTIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uIG9uIGxpbmVUbygyMCwgTmFOKS4KK1BBU1MgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gbGluZVRvKE5hTiwgMjApLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgSW5maW5pdHksIEluZmluaXR5KS4KK1BB
U1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhJbmZpbml0eSwg
SW5maW5pdHksIDIwLCAyMCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIHF1YWRy
YXRpY0N1cnZlVG8oSW5maW5pdHksIDIwLCAyMCwgMjApLgorUEFTUyBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKDIwLCBJbmZpbml0eSwgMjAsIDIwKS4KK1BBU1Mg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIEluZmlu
aXR5LCAyMCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZl
VG8oMjAsIDIwLCAyMCwgSW5maW5pdHkpLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBv
biBxdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgTmFOLCBOYU4pLgorUEFTUyBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKE5hTiwgTmFOLCAyMCwgMjApLgorUEFTUyBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKE5hTiwgMjAsIDIwLCAy
MCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZlVG8oMjAs
IE5hTiwgMjAsIDIwKS4KK1BBU1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGlj
Q3VydmVUbygyMCwgMjAsIE5hbiwgMjApLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBv
biBxdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgMjAsIE5hTikuCitQQVNTIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIEluZmluaXR5LCBJbmZp
bml0eSkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAs
IDIwLCAzMCwgMzAsIDMwLCBJbmZpbml0eSkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
IG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIEluZmluaXR5LCAzMCkuCitQQVNTIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBJbmZpbml0eSwg
SW5maW5pdHksIDMwLCAzMCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemll
ckN1cnZlVG8oMjAsIDIwLCAzMCwgSW5maW5pdHksIDMwLCAzMCkuCitQQVNTIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBJbmZpbml0eSwgMzAsIDMwLCAz
MCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oSW5maW5p
dHksIEluZmluaXR5LCAyMCwgMjAsIDMwLCAzMCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uIG9uIGJlemllckN1cnZlVG8oMzAsIEluZmluaXR5LCAyMCwgMjAsIDMwLCAzMCkuCitQQVNT
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oSW5maW5pdHksIDMwLCAy
MCwgMjAsIDMwLCAzMCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1
cnZlVG8oMjAsIDIwLCAzMCwgMzAsIE5hTiwgTmFOKS4KK1BBU1MgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgMCwgTmFOKS4KK1BBU1MgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgTmFO
LCAwKS4KK1BBU1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwg
MjAsIE5hTiwgTmFOLCAzMCwgMzApLgorUEFTUyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBi
ZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIE5hTiwgMzAsIDMwKS4KK1BBU1MgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIE5hTiwgMzAsIDMwLCAzMCkuCitQ
QVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oTmFOLCBOYU4sIDIw
LCAyMCwgMzAsIDMwKS4KK1BBU1MgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3Vy
dmVUbygyMCwgTmFOLCAyMCwgMjAsIDMwLCAzMCkuCitQQVNTIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uIG9uIGJlemllckN1cnZlVG8oTmFOLCAyMCwgMjAsIDIwLCAzMCwgMzApLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNvcnJlY3QtYXJncy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXdpdGgtaW5jb3JyZWN0LWFyZ3Mu
aHRtbAppbmRleCAxZWRmNDlhLi4xZjgwOGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtd2l0aC1pbmNvcnJlY3QtYXJncy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy13aXRoLWluY29ycmVjdC1hcmdzLmh0bWwKQEAgLTMsNyArMyw2
IEBACiA8c3R5bGU+CiAuZmFpbCB7IGNvbG9yOiByZWQ7IGZvbnQtd2VpZ2h0OiBib2xkO30KIC5w
YXNzIHsgY29sb3I6IGdyZWVuOyBmb250LXdlaWdodDogYm9sZDt9Ci0udW5kZWZpbmVkIHsgY29s
b3I6IGJsdWU7IGZvbnQtd2VpZ2h0OiBib2xkO30KIDwvc3R5bGU+CiA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CiBmYWlsZWQgPSBmYWxzZTsKQEAgLTIzLDEwICsyMiw2IEBAIGZ1bmN0
aW9uIGZhaWwobXNnKSB7CiAgICAgZmFpbGVkID0gdHJ1ZTsKIH0KIAotZnVuY3Rpb24gdW5kZWZp
bmVkKG1zZykgewotICAgIGRlYnVnKCc8c3BhbiBjbGFzcz0idW5kZWZpbmVkIj5VTkRFRklORUQ8
L3NwYW4+ICcgKyBtc2cgKyAnPC9zcGFuPicpOwotfQotCiBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwogICAgIHZh
ciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CkBAIC00MCwxNSArMzUsMTUgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5m
aWxsUmVjdCgwLCAwLCAwLjAvMS4wLCAwLjAvMS4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJjYWxs
ZWQgZmlsbFJlY3Qgd2l0aCBpbmYqaW5mIGZpbGxSZWN0IHdpdGhvdXQgdGhyb3dpbmcgYW4gZXhj
ZXB0aW9uLiIpOworICAgICAgICBwYXNzKCJjYWxsZWQgZmlsbFJlY3Qgd2l0aCBJbmZpbml0eSpJ
bmZpbml0eSBmaWxsUmVjdCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4iKTsKICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiAr
IGUuY29kZSArICIgd2l0aCBpbmYqaW5mIGZpbGxSZWN0Iik7ICAgICAgIAorICAgICAgICBmYWls
KCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiB3aXRoIEluZmluaXR5KkluZmlu
aXR5IGZpbGxSZWN0Iik7ICAgICAgIAogICAgIH0KICAgICB0cnkgewotICAgICAgICBjb250ZXh0
LmZpbGxSZWN0KDAsIDAsIDAuMC8wLjAsIDAuMC8wLjApOwotICAgICAgICB1bmRlZmluZWQoImRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggbmFuKm5hbiBmaWxsUmVjdC4iKTsKKyAgICAgICAg
Y29udGV4dC5maWxsUmVjdCgwLCAwLCBOYU4sIE5hTik7CisgICAgICAgIHBhc3MoImRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uIHdpdGggTmFOKk5hTiBmaWxsUmVjdC4iKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gbmFuKm5hbiBmaWxsUmVjdC4iKTsgICAgICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4
Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIE5hTipOYU4gZmlsbFJlY3QuIik7ICAgICAg
IAogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCAwLCAw
KTsKQEAgLTU4LDE1ICs1MywxNSBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIH0KICAgICB0
cnkgewogICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCAwLjAvMS4wLCAwLjAvMS4wKTsK
LSAgICAgICAgdW5kZWZpbmVkKCJjYWxsZWQgY2xlYXJSZWN0IHdpdGggaW5mKmluZiBjbGVhclJl
Y3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uIik7CisgICAgICAgIHBhc3MoImNhbGxl
ZCBjbGVhclJlY3Qgd2l0aCBJbmZpbml0eSpJbmZpbml0eSBjbGVhclJlY3Qgd2l0aG91dCB0aHJv
d2luZyBhbiBleGNlcHRpb24uIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICB1bmRlZmlu
ZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIHdpdGggaW5mKmluZiBjbGVh
clJlY3QuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsg
ZS5jb2RlICsgIiB3aXRoIEluZmluaXR5KkluZmluaXR5IGNsZWFyUmVjdC4iKTsgICAgICAgCiAg
ICAgfQogICAgIHRyeSB7Ci0gICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIDAuMC8wLjAs
IDAuMC8wLjApOwotICAgICAgICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdp
dGggbmFuKm5hbiBjbGVhclJlY3QuIik7CisgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAs
IE5hTiwgTmFOKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBO
YU4qTmFOIGNsZWFyUmVjdC4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5l
ZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gbmFuKm5hbiBjbGVhclJl
Y3QuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5j
b2RlICsgIiBvbiBOYU4qTmFOIGNsZWFyUmVjdC4iKTsgICAgICAgCiAgICAgfQogICAgIHRyeSB7
CiAgICAgICAgIGNvbnRleHQucmVjdCgwLCAwLCAwLCAwKTsKQEAgLTc2LDE1ICs3MSwxNSBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LnJl
Y3QoMCwgMCwgMC4wLzEuMCwgMC4wLzEuMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiY2FsbGVkIHJl
Y3Qgd2l0aCBpbmYqaW5mIHJlY3Qgd2l0aG91dCB0aHJvd2luZyBhbiBleGNlcHRpb24uIik7Cisg
ICAgICAgIHBhc3MoImNhbGxlZCByZWN0IHdpdGggSW5maW5pdHkqSW5maW5pdHkgcmVjdCB3aXRo
b3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgd2l0aCBpbmYq
aW5mIHJlY3QuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAi
ICsgZS5jb2RlICsgIiB3aXRoIEluZmluaXR5KkluZmluaXR5IHJlY3QuIik7ICAgICAgIAogICAg
IH0KICAgICB0cnkgewotICAgICAgICBjb250ZXh0LnJlY3QoMCwgMCwgMC4wLzAuMCwgMC4wLzAu
MCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBuYW4q
bmFuIHJlY3QuIik7CisgICAgICAgIGNvbnRleHQucmVjdCgwLCAwLCBOYU4sIE5hTik7CisgICAg
ICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggTmFOKk5hTiByZWN0LiIpOwog
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29k
ZSAiICsgZS5jb2RlICsgIiBvbiBuYW4qbmFuIHJlY3QuIik7ICAgICAgIAorICAgICAgICBmYWls
KCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBOYU4qTmFOIHJlY3QuIik7
ICAgICAgIAogICAgIH0KICAgICB0cnkgewogICAgICAgICBjb250ZXh0LmZpbGwoKTsKQEAgLTEw
NSwyNCArMTAwLDI0IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgICAgIHBhc3MoInRocmV3
IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGFyYyB3aXRoIG5lZ2F0aXZlLWxlbmd0
aCByYWRpdXMiKTsgICAgCiAgICAgfQogICAgIHRyeSB7Ci0gICAgICAgIGNvbnRleHQuYXJjKDIs
IDIsIDEuMC8wLjAsIDAsIDkwLCB0cnVlKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbiBvbiBhcmMgd2l0aCBpbmZpbml0ZSByYWRpdXMiKTsKKyAgICAgICAgY29u
dGV4dC5hcmMoMiwgMiwgSW5maW5pdHksIDAsIDkwLCB0cnVlKTsKKyAgICAgICAgcGFzcygiZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24gb24gYXJjIHdpdGggaW5maW5pdGUgcmFkaXVzIik7CiAgICAg
fSBjYXRjaCAoZSkgewotICAgICAgICB1bmRlZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIg
KyBlLmNvZGUgKyAiIG9uIGFyYyB3aXRoIGluZmluaXRlIHJhZGl1cyIpOyAgICAKKyAgICAgICAg
ZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYXJjIHdpdGggaW5m
aW5pdGUgcmFkaXVzIik7ICAgIAogICAgIH0KICAgICB0cnkgewotICAgICAgICBjb250ZXh0LmFy
YygyLCAyLCAwLjAvMC4wLCAwLCA5MCwgdHJ1ZSk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24gb24gYXJjIHdpdGggbmFuLWxlbmd0aCByYWRpdXMiKTsKKyAgICAg
ICAgY29udGV4dC5hcmMoMiwgMiwgTmFOLCAwLCA5MCwgdHJ1ZSk7CisgICAgICAgIHBhc3MoImRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGFyYyB3aXRoIE5hTi1sZW5ndGggcmFkaXVzIik7CiAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICB1bmRlZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2Rl
ICIgKyBlLmNvZGUgKyAiIG9uIGFyYyB3aXRoIG5hbi1sZW5ndGggcmFkaXVzIik7ICAgIAorICAg
ICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBhcmMgd2l0
aCBOYU4tbGVuZ3RoIHJhZGl1cyIpOyAgICAKICAgICB9CiAgICAgY29udGV4dC5iZWdpblBhdGgo
KTsKICAgICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwogICAgICAgICBj
b250ZXh0LmFyY1RvKDIsIDIsIDQsIDQsIDApOwotICAgICAgICBmYWlsKCJkaWQgbm90IHRocm93
IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIHplcm8tbGVuZ3RoIHJhZGl1cyIpOworICAgICAgICBw
YXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIHplcm8tbGVuZ3RoIHJh
ZGl1cyIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgcGFzcygidGhyZXcgZXhjZXB0aW9u
IGNvZGUgIiArIGUuY29kZSArICIgb24gYXJjVG8gd2l0aCB6ZXJvLWxlbmd0aCByYWRpdXMiKTsg
ICAgCisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9u
IGFyY1RvIHdpdGggemVyby1sZW5ndGggcmFkaXVzIik7ICAgIAogICAgIH0KICAgICBjb250ZXh0
LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CkBAIC0xMzcsMTI3ICsxMzIs
MzQzIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKICAg
ICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwotICAgICAgICBjb250ZXh0
LmFyY1RvKDIsIDIsIDQsIDQsIDEuMC8wLjApOwotICAgICAgICB1bmRlZmluZWQoImRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uIG9uIGFyY1RvIHdpdGggaW5maW5pdGUgcmFkaXVzIik7CisgICAgICAg
IGNvbnRleHQuYXJjVG8oMiwgMiwgNCwgNCwgSW5maW5pdHkpOworICAgICAgICBwYXNzKCJkaWQg
bm90IHRocm93IGV4Y2VwdGlvbiBvbiBhcmNUbyB3aXRoIGluZmluaXRlIHJhZGl1cyIpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUu
Y29kZSArICIgb24gYXJjVG8gd2l0aCBpbmZpbml0ZSByYWRpdXMiKTsgICAgCisgICAgfQorICAg
IGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKyAgICB0cnkg
eworICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOworICAgICAgICBjb250ZXh0LmFyY1Rv
KDIsIDIsIDQsIDQsIE5hTik7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
IG9uIGFyY1RvIHdpdGggTmFOLWxlbmd0aCByYWRpdXMiKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGFyY1Rv
IHdpdGggTmFOLWxlbmd0aCByYWRpdXMiKTsgICAgCisgICAgfQorICAgIGNvbnRleHQuY2xvc2VQ
YXRoKCk7CisgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKyAgICB0cnkgeworICAgICAgICBjb250
ZXh0Lm1vdmVUbygxMCwgMTApOworICAgICAgICBjb250ZXh0LmxpbmVUbyhJbmZpbml0eSwgSW5m
aW5pdHkpOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBsaW5lVG8o
SW5maW5pdHksIEluZmluaXR5KS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGZhaWwo
InRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGxpbmVUbyhJbmZpbml0eSwg
SW5maW5pdHkpLiIpOyAgICAgICAKKyAgICB9CisgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKKyAg
ICBjb250ZXh0LmJlZ2luUGF0aCgpOworICAgIHRyeSB7CisgICAgICAgIGNvbnRleHQubW92ZVRv
KDEwLCAxMCk7CisgICAgICAgIGNvbnRleHQubGluZVRvKEluZmluaXR5LCAyMCk7CisgICAgICAg
IHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGxpbmVUbyhJbmZpbml0eSwgMjApLiIp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUg
IiArIGUuY29kZSArICIgb24gbGluZVRvKEluZmluaXR5LCAyMCkuIik7ICAgICAgIAorICAgIH0K
KyAgICBjb250ZXh0LmNsb3NlUGF0aCgpOworICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAg
dHJ5IHsKKyAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKKyAgICAgICAgY29udGV4dC5s
aW5lVG8oMjAsIEluZmluaXR5KTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24gb24gbGluZVRvKDIwLCBJbmZpbml0eSkuIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBsaW5lVG8oMjAs
IEluZmluaXR5KS4iKTsgICAgICAgCisgICAgfQorICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7Cisg
ICAgY29udGV4dC5iZWdpblBhdGgoKTsKKyAgICB0cnkgeworICAgICAgICBjb250ZXh0Lm1vdmVU
bygxMCwgMTApOworICAgICAgICBjb250ZXh0LmxpbmVUbyhOYU4sIE5hTik7CisgICAgICAgIHBh
c3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGxpbmVUbyhOYU4sIE5hTikuIik7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5j
b2RlICsgIiBvbiBsaW5lVG8oTmFOLCBOYU4pLiIpOyAgICAgICAKKyAgICB9CisgICAgY29udGV4
dC5jbG9zZVBhdGgoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworICAgIHRyeSB7CisgICAg
ICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7CisgICAgICAgIGNvbnRleHQubGluZVRvKDIwLCBO
YU4pOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBsaW5lVG8oMjAs
IE5hTikuIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRp
b24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBsaW5lVG8oMjAsIE5hTikuIik7ICAgICAgIAorICAg
IH0KKyAgICBjb250ZXh0LmNsb3NlUGF0aCgpOworICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7Cisg
ICAgdHJ5IHsKKyAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKKyAgICAgICAgY29udGV4
dC5saW5lVG8oTmFOLCAyMCk7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
IG9uIGxpbmVUbyhOYU4sIDIwKS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGZhaWwo
InRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGxpbmVUbyhOYU4sIDIwKS4i
KTsgICAgICAgCisgICAgfQorICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29udGV4dC5i
ZWdpblBhdGgoKTsKKyAgICB0cnkgeworICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwor
ICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCBJbmZpbml0eSwgSW5maW5p
dHkpOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWND
dXJ2ZVRvKDIwLCAyMCwgSW5maW5pdHksIEluZmluaXR5KS4iKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1
YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCBJbmZpbml0eSwgSW5maW5pdHkpLiIpOyAgICAgICAKKyAg
ICB9CisgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwor
ICAgIHRyeSB7CisgICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7CisgICAgICAgIGNvbnRl
eHQucXVhZHJhdGljQ3VydmVUbyhJbmZpbml0eSwgSW5maW5pdHksIDIwLCAyMCk7CisgICAgICAg
IHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZlVG8oSW5maW5p
dHksIEluZmluaXR5LCAyMCwgMjApLiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZmFp
bCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJhdGljQ3VydmVU
byhJbmZpbml0eSwgSW5maW5pdHksIDIwLCAyMCkuIik7ICAgICAgIAorICAgIH0KKyAgICBjb250
ZXh0LmNsb3NlUGF0aCgpOworICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAgdHJ5IHsKKyAg
ICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKKyAgICAgICAgY29udGV4dC5xdWFkcmF0aWND
dXJ2ZVRvKEluZmluaXR5LCAyMCwgMjAsIDIwKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhJbmZpbml0eSwgMjAsIDIwLCAyMCkuIik7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAi
ICsgZS5jb2RlICsgIiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKEluZmluaXR5LCAyMCwgMjAsIDIwKS4i
KTsgICAgICAgCisgICAgfQorICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29udGV4dC5i
ZWdpblBhdGgoKTsKKyAgICB0cnkgeworICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwor
ICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oMjAsIEluZmluaXR5LCAyMCwgMjApOwor
ICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2ZVRv
KDIwLCBJbmZpbml0eSwgMjAsIDIwKS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGZh
aWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRpY0N1cnZl
VG8oMjAsIEluZmluaXR5LCAyMCwgMjApLiIpOyAgICAgICAKKyAgICB9CisgICAgY29udGV4dC5j
bG9zZVBhdGgoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworICAgIHRyeSB7CisgICAgICAg
IGNvbnRleHQubW92ZVRvKDEwLCAxMCk7CisgICAgICAgIGNvbnRleHQucXVhZHJhdGljQ3VydmVU
bygyMCwgMjAsIEluZmluaXR5LCAyMCk7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCBJbmZpbml0eSwgMjApLiIpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUu
Y29kZSArICIgb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIEluZmluaXR5LCAyMCkuIik7ICAg
ICAgIAorICAgIH0KKyAgICBjb250ZXh0LmNsb3NlUGF0aCgpOworICAgIGNvbnRleHQuYmVnaW5Q
YXRoKCk7CisgICAgdHJ5IHsKKyAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKKyAgICAg
ICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgMjAsIEluZmluaXR5KTsKKyAgICAg
ICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwg
MjAsIDIwLCBJbmZpbml0eSkuIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBmYWlsKCJ0
aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKDIw
LCAyMCwgMjAsIEluZmluaXR5KS4iKTsgICAgICAgCisgICAgfQorICAgIGNvbnRleHQuY2xvc2VQ
YXRoKCk7CisgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKyAgICB0cnkgeworICAgICAgICBjb250
ZXh0Lm1vdmVUbygxMCwgMTApOworICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oMjAs
IDIwLCBOYU4sIE5hTik7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9u
IHF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCBOYU4sIE5hTikuIik7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBx
dWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgTmFOLCBOYU4pLiIpOyAgICAgICAKKyAgICB9CisgICAg
Y29udGV4dC5jbG9zZVBhdGgoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworICAgIHRyeSB7
CisgICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7CisgICAgICAgIGNvbnRleHQucXVhZHJh
dGljQ3VydmVUbyhOYU4sIE5hTiwgMjAsIDIwKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhOYU4sIE5hTiwgMjAsIDIwKS4iKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBl
LmNvZGUgKyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8oTmFOLCBOYU4sIDIwLCAyMCkuIik7ICAgICAg
IAorICAgIH0KKyAgICBjb250ZXh0LmNsb3NlUGF0aCgpOworICAgIGNvbnRleHQuYmVnaW5QYXRo
KCk7CisgICAgdHJ5IHsKKyAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKKyAgICAgICAg
Y29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKE5hTiwgMjAsIDIwLCAyMCk7CisgICAgICAgIHBhc3Mo
ImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZlVG8oTmFOLCAyMCwgMjAs
IDIwKS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlv
biBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIHF1YWRyYXRpY0N1cnZlVG8oTmFOLCAyMCwgMjAsIDIw
KS4iKTsgICAgICAgCisgICAgfQorICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29udGV4
dC5iZWdpblBhdGgoKTsKKyAgICB0cnkgeworICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTAp
OworICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oMjAsIE5hTiwgMjAsIDIwKTsKKyAg
ICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygy
MCwgTmFOLCAyMCwgMjApLiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZmFpbCgidGhy
ZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gcXVhZHJhdGljQ3VydmVUbygyMCwg
TmFOLCAyMCwgMjApLiIpOyAgICAgICAKKyAgICB9CisgICAgY29udGV4dC5jbG9zZVBhdGgoKTsK
KyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworICAgIHRyeSB7CisgICAgICAgIGNvbnRleHQubW92
ZVRvKDEwLCAxMCk7CisgICAgICAgIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIE5h
TiwgMjApOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0
aWNDdXJ2ZVRvKDIwLCAyMCwgTmFuLCAyMCkuIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBxdWFkcmF0aWND
dXJ2ZVRvKDIwLCAyMCwgTmFOLCAyMCkuIik7ICAgICAgIAorICAgIH0KKyAgICBjb250ZXh0LmNs
b3NlUGF0aCgpOworICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAgdHJ5IHsKKyAgICAgICAg
Y29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKKyAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRv
KDIwLCAyMCwgMjAsIE5hTik7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
IG9uIHF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCAyMCwgTmFOKS4iKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9u
IHF1YWRyYXRpY0N1cnZlVG8oMjAsIDIwLCAyMCwgTmFOKS4iKTsgICAgICAgCisgICAgfQorICAg
IGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKyAgICB0cnkg
eworICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOworICAgICAgICBjb250ZXh0LmJlemll
ckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIEluZmluaXR5LCBJbmZpbml0eSk7CisgICAgICAgIHBh
c3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwg
MzAsIEluZmluaXR5LCBJbmZpbml0eSkuIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBm
YWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRv
KDIwLCAyMCwgMzAsIDMwLCBJbmZpbml0eSwgSW5maW5pdHkpLiIpOyAgICAgICAKKyAgICB9Cisg
ICAgY29udGV4dC5jbG9zZVBhdGgoKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworICAgIHRy
eSB7CisgICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7CisgICAgICAgIGNvbnRleHQuYmV6
aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgMzAsIEluZmluaXR5KTsKKyAgICAgICAgcGFzcygi
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwg
MzAsIEluZmluaXR5KS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGZhaWwoInRocmV3
IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAz
MCwgMzAsIDMwLCBJbmZpbml0eSkuIik7ICAgICAgIAorICAgIH0KKyAgICBjb250ZXh0LmNsb3Nl
UGF0aCgpOworICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAgdHJ5IHsKKyAgICAgICAgY29u
dGV4dC5tb3ZlVG8oMTAsIDEwKTsKKyAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKDIwLCAy
MCwgMzAsIDMwLCBJbmZpbml0eSwgMzApOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4
Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBJbmZpbml0eSwgMzApLiIp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUg
IiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgSW5maW5pdHks
IDMwKS4iKTsgICAgICAgCisgICAgfQorICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CisgICAgY29u
dGV4dC5iZWdpblBhdGgoKTsKKyAgICB0cnkgeworICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwg
MTApOworICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oMjAsIDIwLCBJbmZpbml0eSwgSW5m
aW5pdHksIDMwLCAzMCk7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9u
IGJlemllckN1cnZlVG8oMjAsIDIwLCBJbmZpbml0eSwgSW5maW5pdHksIDMwLCAzMCkuIik7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsg
ZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgSW5maW5pdHksIEluZmluaXR5LCAz
MCwgMzApLiIpOyAgICAgICAKKyAgICB9CisgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKKyAgICBj
b250ZXh0LmJlZ2luUGF0aCgpOworICAgIHRyeSB7CisgICAgICAgIGNvbnRleHQubW92ZVRvKDEw
LCAxMCk7CisgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCBJbmZpbml0
eSwgMzAsIDMwKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6
aWVyQ3VydmVUbygyMCwgMjAsIDMwLCBJbmZpbml0eSwgMzAsIDMwKS4iKTsKICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29k
ZSArICIgb24gYXJjVG8gd2l0aCBpbmZpbml0ZSByYWRpdXMiKTsgICAgCisgICAgICAgIGZhaWwo
InRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJlemllckN1cnZlVG8oMjAs
IDIwLCAzMCwgSW5maW5pdHksIDMwLCAzMCkuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0
LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAg
ICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKLSAgICAgICAgY29udGV4dC5hcmNUbygyLCAyLCA0
LCA0LCAwLjAvMC4wKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlv
biBvbiBhcmNUbyB3aXRoIG5hbi1sZW5ndGggcmFkaXVzIik7CisgICAgICAgIGNvbnRleHQuYmV6
aWVyQ3VydmVUbygyMCwgMjAsIEluZmluaXR5LCAzMCwgMzAsIDMwKTsKKyAgICAgICAgcGFzcygi
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIEluZmluaXR5
LCAzMCwgMzAsIDMwKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgi
dGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYXJjVG8gd2l0aCBuYW4tbGVu
Z3RoIHJhZGl1cyIpOyAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiAr
IGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIEluZmluaXR5LCAzMCwgMzAsIDMw
KS4iKTsgICAgICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CiAgICAgY29udGV4
dC5iZWdpblBhdGgoKTsKICAgICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTAp
OwotICAgICAgICBjb250ZXh0LmxpbmVUbygxLjAvMC4wLCAxLjAvMC4wKTsKLSAgICAgICAgdW5k
ZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBsaW5lVG8oaW5mLCBpbmYpLiIpOwor
ICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oSW5maW5pdHksIEluZmluaXR5LCAyMCwgMjAs
IDMwLCAzMCk7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemll
ckN1cnZlVG8oSW5maW5pdHksIEluZmluaXR5LCAyMCwgMjAsIDMwLCAzMCkuIik7CiAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICB1bmRlZmluZWQoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBl
LmNvZGUgKyAiIG9uIGxpbmVUbyhpbmYsIGluZikuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0
aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKEluZmlu
aXR5LCBJbmZpbml0eSwgMjAsIDIwLCAzMCwgMzApLiIpOyAgICAgICAKICAgICB9CiAgICAgY29u
dGV4dC5jbG9zZVBhdGgoKTsKICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRyeSB7CiAg
ICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7Ci0gICAgICAgIGNvbnRleHQubGluZVRvKDAu
MC8wLjAsIDAuMC8wLjApOwotICAgICAgICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uIG9uIGxpbmVUbyhuYW4sIG5hbikuIik7CisgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVU
bygzMCwgSW5maW5pdHksIDIwLCAyMCwgMzAsIDMwKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygzMCwgSW5maW5pdHksIDIwLCAyMCwgMzAs
IDMwKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhj
ZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gbGluZVRvKG5hbiwgbmFuKS4iKTsgICAgICAg
CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJl
emllckN1cnZlVG8oMzAsIEluZmluaXR5LCAyMCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAogICAg
IH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAg
ICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKLSAgICAgICAgY29udGV4
dC5xdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgMS4wLzAuMCwgMS4wLzAuMCk7Ci0gICAgICAgIHVu
ZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbygyMCwg
MjAsIGluZiwgaW5mKS4iKTsKKyAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKEluZmluaXR5
LCAzMCwgMjAsIDIwLCAzMCwgMzApOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbiBvbiBiZXppZXJDdXJ2ZVRvKEluZmluaXR5LCAzMCwgMjAsIDIwLCAzMCwgMzApLiIpOwog
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29k
ZSAiICsgZS5jb2RlICsgIiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKDIwLCAyMCwgaW5mLCBpbmYpLiIp
OyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gYmV6aWVyQ3VydmVUbyhJbmZpbml0eSwgMzAsIDIwLCAyMCwgMzAsIDMwKS4iKTsgICAg
ICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CiAgICAgY29udGV4dC5iZWdpblBh
dGgoKTsKICAgICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwotICAgICAg
ICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oMS4wLzAuMCwgMS4wLzAuMCwgMjAsIDIwKTsKLSAg
ICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBxdWFkcmF0aWNDdXJ2
ZVRvKGluZiwgaW5mLCAyMCwgMjApLiIpOworICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8o
MjAsIDIwLCAzMCwgMzAsIE5hTiwgTmFOKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgTmFOLCBOYU4pLiIpOwog
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29k
ZSAiICsgZS5jb2RlICsgIiBvbiBxdWFkcmF0aWNDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjApLiIp
OyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgTmFOLCBOYU4pLiIpOyAgICAgICAK
ICAgICB9CiAgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKICAgICBjb250ZXh0LmJlZ2luUGF0aCgp
OwogICAgIHRyeSB7CiAgICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7Ci0gICAgICAgIGNv
bnRleHQucXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIDAuMC8wLjAsIDAuMC8wLjApOwotICAgICAg
ICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIHF1YWRyYXRpY0N1cnZlVG8o
MjAsIDIwLCBuYW4sIG5hbikuIik7CisgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbygyMCwg
MjAsIDMwLCAzMCwgMCwgTmFOKTsKKyAgICAgICAgcGFzcygiZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgMCwgTmFOKS4iKTsKICAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUu
Y29kZSArICIgb24gcXVhZHJhdGljQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuKS4iKTsgICAgICAg
CisgICAgICAgIGZhaWwoInRocmV3IGV4Y2VwdGlvbiBjb2RlICIgKyBlLmNvZGUgKyAiIG9uIGJl
emllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIDAsIE5hTikuIik7ICAgICAgIAogICAgIH0KICAg
ICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5
IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKLSAgICAgICAgY29udGV4dC5xdWFk
cmF0aWNDdXJ2ZVRvKDAuMC8wLjAsIDAuMC8wLjAsIDIwLCAyMCk7Ci0gICAgICAgIHVuZGVmaW5l
ZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gcXVhZHJhdGljQ3VydmVUbyhuYW4sIG5hbiwg
MjAsIDIwKS4iKTsKKyAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMw
LCBOYU4sIDApOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXpp
ZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIDMwLCBOYU4sIDApLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBv
biBxdWFkcmF0aWNDdXJ2ZVRvKG5hbiwgbmFuLCAyMCwgMjApLiIpOyAgICAgICAKKyAgICAgICAg
ZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVU
bygyMCwgMjAsIDMwLCAzMCwgTmFOLCAwKS4iKTsgICAgICAgCiAgICAgfQogICAgIGNvbnRleHQu
Y2xvc2VQYXRoKCk7CiAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKICAgICB0cnkgewogICAgICAg
ICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwotICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8o
MjAsIDIwLCAzMCwgMzAsIDEuMC8wLjAsIDEuMC8wLjApOwotICAgICAgICB1bmRlZmluZWQoImRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIGlu
ZiwgaW5mKS4iKTsKKyAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKDIwLCAyMCwgTmFOLCBO
YU4sIDMwLCAzMCk7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJl
emllckN1cnZlVG8oMjAsIDIwLCBOYU4sIE5hTiwgMzAsIDMwKS4iKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCAzMCwgaW5mLCBpbmYpLiIpOyAgICAgICAK
KyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6
aWVyQ3VydmVUbygyMCwgMjAsIE5hTiwgTmFOLCAzMCwgMzApLiIpOyAgICAgICAKICAgICB9CiAg
ICAgY29udGV4dC5jbG9zZVBhdGgoKTsKICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRy
eSB7CiAgICAgICAgIGNvbnRleHQubW92ZVRvKDEwLCAxMCk7Ci0gICAgICAgIGNvbnRleHQuYmV6
aWVyQ3VydmVUbygyMCwgMjAsIDEuMC8wLjAsIDEuMC8wLjAsIDMwLCAzMCk7Ci0gICAgICAgIHVu
ZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAs
IGluZiwgaW5mLCAzMCwgMzApLiIpOworICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oMjAs
IDIwLCAzMCwgTmFOLCAzMCwgMzApOworICAgICAgICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgMzAsIE5hTiwgMzAsIDMwKS4iKTsKICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiAr
IGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIGluZiwgaW5mLCAzMCwgMzApLiIp
OyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSAr
ICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMwLCBOYU4sIDMwLCAzMCkuIik7ICAgICAgIAog
ICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgpOwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7
CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAsIDEwKTsKLSAgICAgICAgY29u
dGV4dC5iZXppZXJDdXJ2ZVRvKDEuMC8wLjAsIDEuMC8wLjAsIDIwLCAyMCwgMzAsIDMwKTsKLSAg
ICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRv
KGluZiwgaW5mLCAyMCwgMjAsIDMwLCAzMCkuIik7CisgICAgICAgIGNvbnRleHQuYmV6aWVyQ3Vy
dmVUbygyMCwgMjAsIE5hTiwgMzAsIDMwLCAzMCk7CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oMjAsIDIwLCBOYU4sIDMwLCAzMCwgMzApLiIp
OwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24g
Y29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKGluZiwgaW5mLCAyMCwgMjAsIDMw
LCAzMCkuIik7ICAgICAgIAorICAgICAgICBmYWlsKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsg
ZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCAyMCwgTmFOLCAzMCwgMzAsIDMwKS4iKTsg
ICAgICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7CiAgICAgY29udGV4dC5iZWdp
blBhdGgoKTsKICAgICB0cnkgewogICAgICAgICBjb250ZXh0Lm1vdmVUbygxMCwgMTApOwotICAg
ICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIDAuMC8wLjAsIDAuMC8w
LjApOwotICAgICAgICB1bmRlZmluZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemll
ckN1cnZlVG8oMjAsIDIwLCAzMCwgMzAsIG5hbiwgbmFuKS4iKTsKKyAgICAgICAgY29udGV4dC5i
ZXppZXJDdXJ2ZVRvKE5hTiwgTmFOLCAyMCwgMjAsIDMwLCAzMCk7CisgICAgICAgIHBhc3MoImRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8oTmFOLCBOYU4sIDIwLCAyMCwg
MzAsIDMwKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5lZCgidGhyZXcg
ZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIDMw
LCAzMCwgbmFuLCBuYW4pLiIpOyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcgZXhjZXB0aW9u
IGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbyhOYU4sIE5hTiwgMjAsIDIwLCAz
MCwgMzApLiIpOyAgICAgICAKICAgICB9CiAgICAgY29udGV4dC5jbG9zZVBhdGgoKTsKICAgICBj
b250ZXh0LmJlZ2luUGF0aCgpOwogICAgIHRyeSB7CiAgICAgICAgIGNvbnRleHQubW92ZVRvKDEw
LCAxMCk7Ci0gICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbygyMCwgMjAsIDAuMC8wLjAsIDAu
MC8wLjAsIDMwLCAzMCk7Ci0gICAgICAgIHVuZGVmaW5lZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24gb24gYmV6aWVyQ3VydmVUbygyMCwgMjAsIG5hbiwgbmFuLCAzMCwgMzApLiIpOworICAgICAg
ICBjb250ZXh0LmJlemllckN1cnZlVG8oMjAsIE5hTiwgMjAsIDIwLCAzMCwgMzApOworICAgICAg
ICBwYXNzKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKDIwLCBOYU4s
IDIwLCAyMCwgMzAsIDMwKS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHVuZGVmaW5l
ZCgidGhyZXcgZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygy
MCwgMjAsIG5hbiwgbmFuLCAzMCwgMzApLiIpOyAgICAgICAKKyAgICAgICAgZmFpbCgidGhyZXcg
ZXhjZXB0aW9uIGNvZGUgIiArIGUuY29kZSArICIgb24gYmV6aWVyQ3VydmVUbygyMCwgTmFOLCAy
MCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAogICAgIH0KICAgICBjb250ZXh0LmNsb3NlUGF0aCgp
OwogICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CiAgICAgdHJ5IHsKICAgICAgICAgY29udGV4dC5t
b3ZlVG8oMTAsIDEwKTsKLSAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKDAuMC8wLjAsIDAu
MC8wLjAsIDIwLCAyMCwgMzAsIDMwKTsKLSAgICAgICAgdW5kZWZpbmVkKCJkaWQgbm90IHRocm93
IGV4Y2VwdGlvbiBvbiBiZXppZXJDdXJ2ZVRvKG5hbiwgbmFuLCAyMCwgMjAsIDMwLCAzMCkuIik7
CisgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhOYU4sIDIwLCAyMCwgMjAsIDMwLCAzMCk7
CisgICAgICAgIHBhc3MoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIGJlemllckN1cnZlVG8o
TmFOLCAyMCwgMjAsIDIwLCAzMCwgMzApLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
dW5kZWZpbmVkKCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJD
dXJ2ZVRvKG5hbiwgbmFuLCAyMCwgMjAsIDMwLCAzMCkuIik7ICAgICAgIAorICAgICAgICBmYWls
KCJ0aHJldyBleGNlcHRpb24gY29kZSAiICsgZS5jb2RlICsgIiBvbiBiZXppZXJDdXJ2ZVRvKE5h
TiwgMjAsIDIwLCAyMCwgMzAsIDMwKS4iKTsgICAgICAgCiAgICAgfQogICAgIGNvbnRleHQuY2xv
c2VQYXRoKCk7CiAKQEAgLTI2Niw3ICs0NzcsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAg
ICAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7
CiAgICAgfQogCi0gICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKIH0KIDwvc2NyaXB0PgpAQCAtMjc2LDkgKzQ4Nyw3IEBAIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CiA8Y2FudmFzIGlkPSJ0ZXN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52
YXM+PGJyIC8+CiA8cHJlIGlkPSJjb25zb2xlIj4KIFRoaXMgdGVzdHMgdGhlIGJlaGF2aW91ciBv
ZiBhIG51bWJlciBvZiB0aGUgRE9NIENhbnZhcyBkcmF3aW5nIG1ldGhvZHMgd2hlbgotZ2l2ZW4g
MCwgaW5mLCBvciBOYU4gYXMgcGFyYW1ldGVycy4KLUEgbnVtYmVyIG9mIHRoZSBDYW52YXMgbWV0
aG9kcyBkbyBub3QgaGF2ZSBkZWZpbmVkIGJlaGF2aW91ciB3aGVuIGdpdmVuIGluZgotb3IgbmFu
IGFuZCBzbyB3ZSB1c2UgPHNwYW4gY2xhc3M9InVuZGVmaW5lZCI+VU5ERUZJTkVEPC9zcGFuPiB0
byBpbmRpY2F0ZSB0aGlzLgorZ2l2ZW4gMCwgSW5maW5pdHksIG9yIE5hTiBhcyBwYXJhbWV0ZXJz
LgogCiA8L3ByZT4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjM2JjZWU4Li5jOGQxYThkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDA4LTA0LTI3
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDE3MTczOiBIVE1MNSBDYW52YXMgQVBJIHJl
cXVpcmVzIHVzIHRvIGlnbm9yZSBjZXJ0YWluIG9wZXJhdGlvbnMKKyAgICAgICAgPGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE3Mz4KKworICAgICAgICBUaGlzIGZp
eGVzIHRoZSBzZW1hbnRpY3Mgb2YgYSBudW1iZXIgb2YgQ2FudmFzIGZ1bmN0aW9ucyB0byBtYXRj
aAorICAgICAgICB0aGUgbmV3IEhUTUw1IG5vbi10aHJvd2luZyBzZW1hbnRpY3MuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXBhdGgtd2l0aC1pbmYtbmFuLWRpbWVuc2lvbnMu
aHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OnN0cm9rZVJlY3QpOgorICAgICAgICAqIGh0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6bW92ZVRvKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6bGluZVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cXVhZHJhdGljQ3VydmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmJlemllckN1
cnZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcmNU
byk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFyYyk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVJlY3RGb3JDYW52YXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VSZWN0KToKKyAgICAgICAgKiBodG1sL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmlkbDoKKwogMjAwOC0wNC0yNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRl
eCBhMzY3NWFhLi5lOTUyMzAyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcApAQCAtMTYwLDE3ICsxNjAsMTUg
QEAgSlNWYWx1ZSogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldFN0cm9rZUNvbG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYKIAogSlNWYWx1ZSogSlNDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnN0cm9rZVJlY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKQog
eyAKLSAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNvbnRleHQgPSBpbXBsKCk7ICAgIAot
ICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjb250
ZXh0ID0gaW1wbCgpOwogICAgIAogICAgIGlmIChhcmdzLnNpemUoKSA8PSA0KQogICAgICAgICBj
b250ZXh0LT5zdHJva2VSZWN0KGFyZ3NbMF0tPnRvRmxvYXQoZXhlYyksIGFyZ3NbMV0tPnRvRmxv
YXQoZXhlYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1syXS0+dG9GbG9hdChl
eGVjKSwgYXJnc1szXS0+dG9GbG9hdChleGVjKSwgZWMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ3NbMl0tPnRvRmxvYXQoZXhlYyksIGFyZ3NbM10tPnRvRmxvYXQoZXhlYykpOwog
ICAgIGVsc2UKICAgICAgICAgY29udGV4dC0+c3Ryb2tlUmVjdChhcmdzWzBdLT50b0Zsb2F0KGV4
ZWMpLCBhcmdzWzFdLT50b0Zsb2F0KGV4ZWMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ3NbMl0tPnRvRmxvYXQoZXhlYyksIGFyZ3NbM10tPnRvRmxvYXQoZXhlYyksIGFyZ3NbNF0t
PnRvRmxvYXQoZXhlYyksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwotICAg
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMl0tPnRvRmxvYXQoZXhlYyksIGFy
Z3NbM10tPnRvRmxvYXQoZXhlYyksIGFyZ3NbNF0tPnRvRmxvYXQoZXhlYykpOworCiAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7ICAgIAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCmluZGV4IDkxMDIxNDQuLjRjMzJjNTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0zNTYsOCArMzU2LDggQEAgdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OnRyYW5zZm9ybShmbG9hdCBtMTEsIGZsb2F0IG0xMiwgZmxvYXQg
bTIxLCBmbG9hdAogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gSFRNTDUgMy4xNC4xMS4x
IC0tIGlnbm9yZSBhbnkgY2FsbHMgdGhhdCBwYXNzIG5vbi1maW5pdGUgbnVtYmVycwotICAgIGlm
ICghaXNmaW5pdGUobTExKSB8fCAhaXNmaW5pdGUobTIxKSB8fCAhaXNmaW5pdGUoZHgpIHx8IAot
ICAgICAgICAhaXNmaW5pdGUobTEyKSB8fCAhaXNmaW5pdGUobTIyKSB8fCAhaXNmaW5pdGUoZHkp
KQorICAgIGlmICghaXNmaW5pdGUobTExKSB8ICFpc2Zpbml0ZShtMjEpIHwgIWlzZmluaXRlKGR4
KSB8IAorICAgICAgICAhaXNmaW5pdGUobTEyKSB8ICFpc2Zpbml0ZShtMjIpIHwgIWlzZmluaXRl
KGR5KSkKICAgICAgICAgcmV0dXJuOwogICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0obTEx
LCBtMTIsIG0yMSwgbTIyLCBkeCwgZHkpOwogICAgIGMtPmNvbmNhdENUTSh0cmFuc2Zvcm0pOwpA
QCAtNDM3LDUxICs0MzcsODMgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNsb3Nl
UGF0aCgpCiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjptb3ZlVG8oZmxvYXQgeCwg
ZmxvYXQgeSkKIHsKKyAgICBpZiAoIWlzZmluaXRlKHgpIHwgIWlzZmluaXRlKHkpKQorICAgICAg
ICByZXR1cm47CiAgICAgbV9wYXRoLm1vdmVUbyhGbG9hdFBvaW50KHgsIHkpKTsKIH0KIAogdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmxpbmVUbyhmbG9hdCB4LCBmbG9hdCB5KQogewor
ICAgIGlmICghaXNmaW5pdGUoeCkgfCAhaXNmaW5pdGUoeSkpCisgICAgICAgIHJldHVybjsKICAg
ICBtX3BhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQoeCwgeSkpOwogfQogCiB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6cXVhZHJhdGljQ3VydmVUbyhmbG9hdCBjcHgsIGZsb2F0IGNweSwg
ZmxvYXQgeCwgZmxvYXQgeSkKIHsKKyAgICBpZiAoIWlzZmluaXRlKGNweCkgfCAhaXNmaW5pdGUo
Y3B5KSB8ICFpc2Zpbml0ZSh4KSB8ICFpc2Zpbml0ZSh5KSkKKyAgICAgICAgcmV0dXJuOwogICAg
IG1fcGF0aC5hZGRRdWFkQ3VydmVUbyhGbG9hdFBvaW50KGNweCwgY3B5KSwgRmxvYXRQb2ludCh4
LCB5KSk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpiZXppZXJDdXJ2ZVRv
KGZsb2F0IGNwMXgsIGZsb2F0IGNwMXksIGZsb2F0IGNwMngsIGZsb2F0IGNwMnksIGZsb2F0IHgs
IGZsb2F0IHkpCiB7CisgICAgaWYgKCFpc2Zpbml0ZShjcDF4KSB8ICFpc2Zpbml0ZShjcDF5KSB8
ICFpc2Zpbml0ZShjcDJ4KSB8ICFpc2Zpbml0ZShjcDJ5KSB8ICFpc2Zpbml0ZSh4KSB8ICFpc2Zp
bml0ZSh5KSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKEZs
b2F0UG9pbnQoY3AxeCwgY3AxeSksIEZsb2F0UG9pbnQoY3AyeCwgY3AyeSksIEZsb2F0UG9pbnQo
eCwgeSkpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXJjVG8oZmxvYXQg
eDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHIsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGVjID0gMDsKLSAgICBpZiAoIShyID4gMCkpIHsKKyAgICBpZiAoIWlzZmlu
aXRlKHgwKSB8ICFpc2Zpbml0ZSh5MCkgfCAhaXNmaW5pdGUoeDEpIHwgIWlzZmluaXRlKHkxKSB8
ICFpc2Zpbml0ZShyKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmIChyIDwgMCkgewog
ICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAg
IAogICAgIG1fcGF0aC5hZGRBcmNUbyhGbG9hdFBvaW50KHgwLCB5MCksIEZsb2F0UG9pbnQoeDEs
IHkxKSwgcik7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcmMoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGFudGljbG9ja3dp
c2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKLSAgICBpZiAoIShyID49IDAp
KSB7CisgICAgaWYgKCFpc2Zpbml0ZSh4KSB8ICFpc2Zpbml0ZSh5KSB8ICFpc2Zpbml0ZShyKSB8
ICFpc2Zpbml0ZShzYSkgfCAhaXNmaW5pdGUoZWEpKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgaWYgKHIgPCAwKSB7CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisgICAgCiAgICAgbV9wYXRoLmFkZEFyYyhGbG9hdFBvaW50KHgsIHkpLCBy
LCBzYSwgZWEsIGFudGljbG9ja3dpc2UpOwogfQorICAgIAorc3RhdGljIGJvb2wgdmFsaWRhdGVS
ZWN0Rm9yQ2FudmFzKGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHdpZHRoLCBmbG9hdCYgaGVp
Z2h0KQoreworICAgIGlmICghaXNmaW5pdGUoeCkgfCAhaXNmaW5pdGUoeSkgfCAhaXNmaW5pdGUo
d2lkdGgpIHwgIWlzZmluaXRlKGhlaWdodCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICBpZiAod2lkdGggPCAwKSB7CisgICAgICAgIHdpZHRoID0gLXdpZHRoOworICAgICAgICB4
IC09IHdpZHRoOworICAgIH0KKyAgICAKKyAgICBpZiAoaGVpZ2h0IDwgMCkgeworICAgICAgICBo
ZWlnaHQgPSAtaGVpZ2h0OworICAgICAgICB5IC09IGhlaWdodDsKKyAgICB9CisgICAgCisgICAg
cmV0dXJuIHRydWU7Cit9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZWN0KGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlY3QoZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKIHsKLSAgICBlYyA9IDA7Ci0gICAgaWYgKCEo
d2lkdGggPj0gMCAmJiBoZWlnaHQgPj0gMCkpIHsKLSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKKyAgICBpZiAoIXZhbGlkYXRlUmVjdEZvckNhbnZhcyh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkK
ICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgCiAgICAgbV9wYXRoLmFkZFJlY3QoRmxv
YXRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKIH0KIApAQCAtNjMxLDEzICs2NjMsMTAgQEAg
Ym9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmlzUG9pbnRJblBhdGgoY29uc3QgZmxvYXQg
eCwgY29uc3QgZmxvYXQgeSkKICAgICByZXR1cm4gbV9wYXRoLmNvbnRhaW5zKHRyYW5zZm9ybWVk
UG9pbnQpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJSZWN0KGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNsZWFyUmVjdChmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KQogewotICAgIGVjID0gMDsKLSAgICBp
ZiAoISh3aWR0aCA+PSAwICYmIGhlaWdodCA+PSAwKSkgewotICAgICAgICBlYyA9IElOREVYX1NJ
WkVfRVJSOworICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWln
aHQpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CkBAIC02NDYsMTQg
KzY3NSwxMCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZQogICAgIGMtPmNsZWFyUmVjdChyZWN0
KTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxSZWN0KGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpCiB7Ci0gICAgZWMgPSAwOwotCi0gICAgaWYgKCEo
d2lkdGggPj0gMCAmJiBoZWlnaHQgPj0gMCkpIHsKLSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKKyAgICBpZiAoIXZhbGlkYXRlUmVjdEZvckNhbnZhcyh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkK
ICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdp
bmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQpAQCAtNjk5LDE5ICs3MjQsMjAgQEAgdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWkKICNlbmRpZgogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0
LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJv
a2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpCiB7Ci0g
ICAgc3Ryb2tlUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBzdGF0ZSgpLm1fbGluZVdpZHRoLCBl
Yyk7CisgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkp
CisgICAgICAgIHJldHVybjsKKyAgICBzdHJva2VSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQsIHN0
YXRlKCkubV9saW5lV2lkdGgpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBm
bG9hdCBsaW5lV2lkdGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0
IGhlaWdodCwgZmxvYXQgbGluZVdpZHRoKQogewotICAgIGVjID0gMDsKLQotICAgIGlmICghKHdp
ZHRoID49IDAgJiYgaGVpZ2h0ID49IDAgJiYgbGluZVdpZHRoID49IDApKSB7Ci0gICAgICAgIGVj
ID0gSU5ERVhfU0laRV9FUlI7CisgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwg
d2lkdGgsIGhlaWdodCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAoIShsaW5lV2lk
dGggPj0gMCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBHcmFwaGljc0NvbnRleHQq
IGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaAppbmRleCBiNDViNTIyLi5mYzE4MjA4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIvV2ViQ29yZS9odG1sL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC0xMjQsNyArMTI0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2b2lkIGJlemllckN1cnZlVG8oZmxvYXQgY3AxeCwgZmxvYXQgY3Ax
eSwgZmxvYXQgY3AyeCwgZmxvYXQgY3AyeSwgZmxvYXQgeCwgZmxvYXQgeSk7CiAgICAgICAgIHZv
aWQgYXJjVG8oZmxvYXQgeDAsIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHJh
ZGl1cywgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICB2b2lkIGFyYyhmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgY2xvY2t3aXNlLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgICAgIHZvaWQgcmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwg
ZmxvYXQgaGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgcmVjdChmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKIAogICAgICAgICB2b2lkIGZp
bGwoKTsKICAgICAgICAgdm9pZCBzdHJva2UoKTsKQEAgLTEzMiwxMCArMTMyLDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIGlzUG9pbnRJblBhdGgoY29uc3QgZmxvYXQg
eCwgY29uc3QgZmxvYXQgeSk7CiAKLSAgICAgICAgdm9pZCBjbGVhclJlY3QoZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAg
ICB2b2lkIGZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln
aHQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9pZCBzdHJva2VSZWN0KGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAg
ICAgdm9pZCBzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsIGZsb2F0IGxpbmVXaWR0aCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIGNs
ZWFyUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAg
ICAgICAgdm9pZCBmaWxsUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQg
aGVpZ2h0KTsKKyAgICAgICAgdm9pZCBzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworICAgICAgICB2b2lkIHN0cm9rZVJlY3QoZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgbGluZVdpZHRoKTsKIAog
ICAgICAgICB2b2lkIHNldFNoYWRvdyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBi
bHVyKTsKICAgICAgICAgdm9pZCBzZXRTaGFkb3coZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwg
ZmxvYXQgYmx1ciwgY29uc3QgU3RyaW5nJiBjb2xvcik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1dlYkNvcmUvaHRtbC9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsCmluZGV4IDVhMTY5NzEuLjI4MWI2YzIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCisrKyBiL1dlYkNvcmUvaHRt
bC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC01OSwxMCArNTksOCBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBzaGFkb3dCbHVyOwogICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2hhZG93Q29sb3I7CiAK
LSAgICAgICAgdm9pZCBjbGVhclJlY3QoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQg
d2lkdGgsIGluIGZsb2F0IGhlaWdodCkKLSAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgdm9pZCBmaWxsUmVjdChpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9h
dCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KQotICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOworICAgICAgICB2b2lkIGNsZWFyUmVjdChpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBm
bG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsKKyAgICAgICAgdm9pZCBmaWxsUmVjdChpbiBm
bG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsKIAog
ICAgICAgICB2b2lkIGJlZ2luUGF0aCgpOwogICAgICAgICB2b2lkIGNsb3NlUGF0aCgpOwpAQCAt
NzIsOCArNzAsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgYmV6aWVyQ3VydmVUbyhp
biBmbG9hdCBjcDF4LCBpbiBmbG9hdCBjcDF5LCBpbiBmbG9hdCBjcDJ4LCBpbiBmbG9hdCBjcDJ5
LCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsKICAgICAgICAgdm9pZCBhcmNUbyhpbiBmbG9hdCB4
MSwgaW4gZmxvYXQgeTEsIGluIGZsb2F0IHgyLCBpbiBmbG9hdCB5MiwgaW4gZmxvYXQgcmFkaXVz
KQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHJlY3Qo
aW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCkK
LSAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCByZWN0KGlu
IGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQpOwog
ICAgICAgICB2b2lkIGFyYyhpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCByYWRpdXMs
IGluIGZsb2F0IHN0YXJ0QW5nbGUsIGluIGZsb2F0IGVuZEFuZ2xlLCBpbiBib29sZWFuIGFudGlj
bG9ja3dpc2UpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZv
aWQgZmlsbCgpOwo=
</data>
<flag name="review"
          id="9124"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>