<?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>136236</bug_id>
          
          <creation_ts>2014-08-25 15:24:15 -0700</creation_ts>
          <short_desc>Subpixel layout: remove roundedLayoutPoint/roundedLayoutSize functions.</short_desc>
          <delta_ts>2014-08-26 20:16:01 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136275</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1031234</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-08-25 15:24:15 -0700</bug_when>
    <thetext>Their names are misleading. They don&apos;t round at all now with subpixel always on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031236</commentid>
    <comment_count>1</comment_count>
      <attachid>237110</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-08-25 15:28:10 -0700</bug_when>
    <thetext>Created attachment 237110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031285</commentid>
    <comment_count>2</comment_count>
      <attachid>237110</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 19:11:56 -0700</bug_when>
    <thetext>Comment on attachment 237110
Patch

Clearing flags on attachment: 237110

Committed r172948: &lt;http://trac.webkit.org/changeset/172948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031286</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 19:11:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237110</attachid>
            <date>2014-08-25 15:28:10 -0700</date>
            <delta_ts>2014-08-25 19:11:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136236-20140825152803.patch</filename>
            <type>text/plain</type>
            <size>33099</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyOTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Y5N2JhNDdlOWMzMjkw
NWY1MzMyZDZlM2M3NzFkYmM4Yzg3N2I1ZC4uODQ0Y2QyNzY5NTI4OGRkOTQ5OGY5MjdjMTU3MDQ3
ZjE4MzVmOTdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE0LTA4LTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgbGF5b3V0OiBy
ZW1vdmUgcm91bmRlZExheW91dFBvaW50L3JvdW5kZWRMYXlvdXRTaXplIGZ1bmN0aW9ucy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjIzNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGZ1bmN0
aW9ucyBzaW1wbHkgY2FsbCBMYXlvdXRQb2ludC9MYXlvdXRTaXplIGMndG9ycy4gVGhleSBkb24n
dCByb3VuZCB0aGUgaW5wdXQgdmFsdWUgYXQgYWxsLgorCisgICAgICAgIE5vbiBjaGFuZ2UgaW4g
ZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6Y29tcHV0ZVBhZ2VMb2NhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6Y29tcHV0ZVJlbGF0aXZlUG9z
aXRpb24pOgorICAgICAgICAqIGRvbS9Ub3VjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aDo6VG91Y2gpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJvbVBv
aW50KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmVsZW1lbnRVbmRlck1vdXNlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzZWxlY3Rpb25FeHRlbnRSZXNwZWN0aW5nRWRpdGluZ0JvdW5k
YXJ5KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1M6OnVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbCk6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpz
ZXRTY3JvbGxMYXllclBvc2l0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9MYXlv
dXRQb2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6cm91bmRlZExheW91dFBvaW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmg6CisgICAgICAgIChX
ZWJDb3JlOjpyb3VuZGVkTGF5b3V0U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5n
L0VsbGlwc2lzQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsbGlwc2lzQm94Ojpub2RlQXRQ
b2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cG9z
aXRpb25MaW5lQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWls
YWJsZVBsdWdpbkluZGljYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmxvY2FsQ2FyZXRSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphYnNv
bHV0ZVRvQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0
ZUNsaXBSZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1Ro
cmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQ6
Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRh
aW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXBlT3V0c2lkZUluZm86OmNyZWF0ZVNoYXBlRm9ySW1hZ2Up
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6bm9kZUF0RmxvYXRQb2ludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdEZsb2F0UG9pbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHSW1hZ2U6Om5vZGVBdEZsb2F0UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hh
cGU6Om5vZGVBdEZsb2F0UG9pbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bm9kZXNGcm9tUmVjdCk6CisKIDIwMTQtMDgt
MjUgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
ZHVjZSBzdHlsZSBtYXJraW5nIHdoZW4gdXNpbmcgdGhlIHBzZXVkbyBjbGFzcyA6cGxhY2Vob2xk
ZXItc2hvd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkOTcyZjE1MDZjODI3MGJiN2RjZmU3NWI5ZjhkOWEwOGE2
NWVmNTg5Li43MzM2MDM1NTZlYzdmNDRhYWM0ZWZlNzYzZDJjZjk0MGJmYTc4NjVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDgtMjUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBTdWJwaXhlbCBsYXlvdXQ6IHJlbW92ZSByb3VuZGVkTGF5b3V0
UG9pbnQvcm91bmRlZExheW91dFNpemUgZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgZnVuY3Rpb25zIHNpbXBseSBjYWxsIExh
eW91dFBvaW50L0xheW91dFNpemUgYyd0b3JzLiBUaGV5IGRvbid0IHJvdW5kIHRoZSBpbnB1dCB2
YWx1ZSBhdCBhbGwuCisKKyAgICAgICAgTm9uIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KToKKwogMjAx
NC0wOC0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIGxvYWQgc2NoZWR1bGluZyBjb2RlIGZyb20gbmV0d29yayBwcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAppbmRleCA1M2Y5MTRlZjg0ODM5YmU5NGUzZDcz
OTU0ZWJmY2YyODA3NTcwN2E4Li40ZGMzNzA0ZDI3NmUyMmY5ZTM1NDliYjVjYTgwYjhkOTNkZWRh
NDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKQEAgLTE0MCw3
ICsxNDAsNyBAQCBzdGF0aWMgZmxvYXQgZnJhbWVTY2FsZUZhY3Rvcihjb25zdCBVSUV2ZW50KiBl
dmVudCkKIHZvaWQgTW91c2VSZWxhdGVkRXZlbnQ6OmNvbXB1dGVQYWdlTG9jYXRpb24oKQogewog
ICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gcGFnZVpvb21GYWN0b3IodGhpcykgKiBmcmFtZVNjYWxl
RmFjdG9yKHRoaXMpOwotICAgIHNldEFic29sdXRlTG9jYXRpb24ocm91bmRlZExheW91dFBvaW50
KEZsb2F0UG9pbnQocGFnZVgoKSAqIHNjYWxlRmFjdG9yLCBwYWdlWSgpICogc2NhbGVGYWN0b3Ip
KSk7CisgICAgc2V0QWJzb2x1dGVMb2NhdGlvbihMYXlvdXRQb2ludChwYWdlWCgpICogc2NhbGVG
YWN0b3IsIHBhZ2VZKCkgKiBzY2FsZUZhY3RvcikpOwogfQogCiB2b2lkIE1vdXNlUmVsYXRlZEV2
ZW50OjpyZWNlaXZlZFRhcmdldCgpCkBAIC0xNjMsOCArMTYzLDcgQEAgdm9pZCBNb3VzZVJlbGF0
ZWRFdmVudDo6Y29tcHV0ZVJlbGF0aXZlUG9zaXRpb24oKQogCiAgICAgLy8gQWRqdXN0IG9mZnNl
dExvY2F0aW9uIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSB0YXJnZXQncyBwb3NpdGlvbi4KICAgICBp
ZiAoUmVuZGVyT2JqZWN0KiByID0gdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSkgewotICAgICAgICBG
bG9hdFBvaW50IGxvY2FsUG9zID0gci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlTG9jYXRpb24o
KSwgVXNlVHJhbnNmb3Jtcyk7Ci0gICAgICAgIG1fb2Zmc2V0TG9jYXRpb24gPSByb3VuZGVkTGF5
b3V0UG9pbnQobG9jYWxQb3MpOworICAgICAgICBtX29mZnNldExvY2F0aW9uID0gTGF5b3V0UG9p
bnQoci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3Jtcykp
OwogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IDEgLyAocGFnZVpvb21GYWN0b3IodGhpcykg
KiBmcmFtZVNjYWxlRmFjdG9yKHRoaXMpKTsKICAgICAgICAgaWYgKHNjYWxlRmFjdG9yICE9IDEu
MGYpCiAgICAgICAgICAgICBtX29mZnNldExvY2F0aW9uLnNjYWxlKHNjYWxlRmFjdG9yLCBzY2Fs
ZUZhY3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmNwcAppbmRleCA5MzkyNWYyMGY4MjJiODNjMjVkN2U1OTM1
OTMxY2UzNGNmZmI0ZTE5Li40NTQwZWU3NTdjYWMwNzQ2ODU2NDcxNTllOGE1ZjZjMGRiNDg2YzU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ub3VjaC5jcHAKQEAgLTcwLDkgKzcwLDcgQEAgVG91Y2g6OlRvdWNoKEZyYW1l
KiBmcmFtZSwgRXZlbnRUYXJnZXQqIHRhcmdldCwgdW5zaWduZWQgaWRlbnRpZmllciwgaW50IHNj
cmVlblgKICAgICAsIG1fZm9yY2UoZm9yY2UpCiB7CiAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBm
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCk7Ci0gICAg
ZmxvYXQgeCA9IHBhZ2VYICogc2NhbGVGYWN0b3I7Ci0gICAgZmxvYXQgeSA9IHBhZ2VZICogc2Nh
bGVGYWN0b3I7Ci0gICAgbV9hYnNvbHV0ZUxvY2F0aW9uID0gcm91bmRlZExheW91dFBvaW50KEZs
b2F0UG9pbnQoeCwgeSkpOworICAgIG1fYWJzb2x1dGVMb2NhdGlvbiA9IExheW91dFBvaW50KHBh
Z2VYICogc2NhbGVGYWN0b3IsIHBhZ2VZICogc2NhbGVGYWN0b3IpOwogfQogCiBUb3VjaDo6VG91
Y2goRXZlbnRUYXJnZXQqIHRhcmdldCwgdW5zaWduZWQgaWRlbnRpZmllciwgaW50IGNsaWVudFgs
IGludCBjbGllbnRZLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLCBpbnQgcmFkaXVzWCwgaW50IHJhZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUsIGZsb2F0
IGZvcmNlLCBMYXlvdXRQb2ludCBhYnNvbHV0ZUxvY2F0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggZjAzYjdkM2M3NGVj
ODU1N2UxMzdhNDIzYmZhNDNlNjViM2QyN2M0OC4uZGE4NGViZGFlYmNkNmVmN2I3ZWQ4ZDBmZjM2
NzYzMzMxMjdhNDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVs
ZW1lbnQ6OnNldFBvc2l0aW9uRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50JiBhYnNvbHV0ZVBv
aW50KQogICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShpbnB1dC5n
ZXQoKSk7CiAgICAgYm9vbCBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uID0gcmVuZGVyQm94KCktPnN0
eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpOwogICAgIAotICAgIExheW91dFBvaW50IG9m
ZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChpbnB1dFJlbmRlcmVyLmFic29sdXRlVG9Mb2NhbChh
YnNvbHV0ZVBvaW50LCBVc2VUcmFuc2Zvcm1zKSk7CisgICAgTGF5b3V0UG9pbnQgb2Zmc2V0KGlu
cHV0UmVuZGVyZXIuYWJzb2x1dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIFVzZVRyYW5zZm9ybXMp
KTsKICAgICBGbG9hdFJlY3QgdHJhY2tCb3VuZGluZ0JveCA9IHRyYWNrUmVuZGVyZXIubG9jYWxU
b0NvbnRhaW5lclF1YWQoRmxvYXRSZWN0KDAsIDAsIHRyYWNrUmVuZGVyZXIud2lkdGgoKSwgdHJh
Y2tSZW5kZXJlci5oZWlnaHQoKSksICZpbnB1dFJlbmRlcmVyKS5lbmNsb3NpbmdCb3VuZGluZ0Jv
eCgpOwogCiAgICAgTGF5b3V0VW5pdCB0cmFja0xlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKaW5kZXggMWIxOWZlOTNmNzJmZjJmOWE0ZDA0YmIzYTFmNTgwYjExNDAy
MzBhYi4uMTYyZWU0OWI1YWYzZmNmZWRkOTY4ZjNmMjk0MDgyNWI4MWZjNjMxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTI4NCw3ICsyODQsNyBAQCBzdGF0aWMg
RWxlbWVudCogZWxlbWVudFVuZGVyTW91c2UoRG9jdW1lbnQqIGRvY3VtZW50VW5kZXJNb3VzZSwg
Y29uc3QgSW50UG9pbnQmCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnRVbmRlck1vdXNl
LT5mcmFtZSgpOwogICAgIGZsb2F0IHpvb21GYWN0b3IgPSBmcmFtZSA/IGZyYW1lLT5wYWdlWm9v
bUZhY3RvcigpIDogMTsKLSAgICBMYXlvdXRQb2ludCBwb2ludCA9IHJvdW5kZWRMYXlvdXRQb2lu
dChGbG9hdFBvaW50KHAueCgpICogem9vbUZhY3RvciwgcC55KCkgKiB6b29tRmFjdG9yKSk7Cisg
ICAgTGF5b3V0UG9pbnQgcG9pbnQocC54KCkgKiB6b29tRmFjdG9yLCBwLnkoKSAqIHpvb21GYWN0
b3IpOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9u
bHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hh
ZG93Q29udGVudCk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQocG9pbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDFjNzVmMTZkOWY2ZjFjZmRhOWI5MDFlNGI4ODYz
YjYxZTEzYzA0M2EuLjAzYTEwMzMxNmFiODE4MWE0MWI0YjY3Zjc2YjYzM2ZkYmY5YTYzYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTg5OCw3ICs4OTgsNyBAQCB2b2lk
IEV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKCkKIAogc3RhdGljIFZp
c2libGVQb3NpdGlvbiBzZWxlY3Rpb25FeHRlbnRSZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJ5KGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgTGF5b3V0UG9pbnQmIGxvY2Fs
UG9pbnQsIE5vZGUqIHRhcmdldE5vZGUpCiB7Ci0gICAgTGF5b3V0UG9pbnQgc2VsZWN0aW9uRW5k
UG9pbnQgPSBsb2NhbFBvaW50OworICAgIEZsb2F0UG9pbnQgc2VsZWN0aW9uRW5kUG9pbnQgPSBs
b2NhbFBvaW50OwogICAgIEVsZW1lbnQqIGVkaXRhYmxlRWxlbWVudCA9IHNlbGVjdGlvbi5yb290
RWRpdGFibGVFbGVtZW50KCk7CiAKICAgICBpZiAoIXRhcmdldE5vZGUtPnJlbmRlcmVyKCkpCkBA
IC05MDksMTEgKzkwOSwxMSBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHNlbGVjdGlvbkV4dGVu
dFJlc3BlY3RpbmdFZGl0aW5nQm91bmRhcnkoY29uc3QgVmlzaWJsZVNlbAogICAgICAgICAgICAg
cmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwogCiAgICAgICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVQ
b2ludCA9IHRhcmdldE5vZGUtPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50
KHNlbGVjdGlvbkVuZFBvaW50KSk7Ci0gICAgICAgIHNlbGVjdGlvbkVuZFBvaW50ID0gcm91bmRl
ZExheW91dFBvaW50KGVkaXRhYmxlRWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2Fs
KGFic29sdXRlUG9pbnQpKTsKKyAgICAgICAgc2VsZWN0aW9uRW5kUG9pbnQgPSBlZGl0YWJsZUVs
ZW1lbnQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZVBvaW50KTsKICAgICAg
ICAgdGFyZ2V0Tm9kZSA9IGVkaXRhYmxlRWxlbWVudDsKICAgICB9CiAKLSAgICByZXR1cm4gdGFy
Z2V0Tm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChzZWxlY3Rpb25FbmRQb2ludCwg
bnVsbHB0cik7CisgICAgcmV0dXJuIHRhcmdldE5vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9y
UG9pbnQoTGF5b3V0UG9pbnQoc2VsZWN0aW9uRW5kUG9pbnQpLCBudWxscHRyKTsKIH0KIAogdm9p
ZCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBIaXRUZXN0
UmVzdWx0JiBoaXRUZXN0UmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUy5tbQppbmRleCA5MDkzZGU1MWNmNTQwMmUxNDMzZTE1NTNhYTc4NjcwZGIyM2RmZGE4
Li40YzgzZDIxNDUyNWJiNzY3NTUyYmU4Y2IwZGJiOWQ1Y2RkNTkwYTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQ2hpbGROb2Rlc0Fm
dGVyU2Nyb2xsKGNvbnN0IEZsb2F0CiAgICAgU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRz
IGJlaGF2aW9yRm9yRml4ZWQgPSBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMoKTsKICAg
ICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCA9IHNjcm9sbFBvc2l0aW9uIC0gdG9JbnRTaXplKHNj
cm9sbE9yaWdpbigpKTsKICAgICBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0KEZsb2F0UG9pbnQoKSwg
c2Nyb2xsYWJsZUFyZWFTaXplKCkpOwotICAgIEZsb2F0U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhl
ZENoaWxkcmVuID0gRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGVuY2xv
c2luZ0xheW91dFJlY3Qodmlld3BvcnRSZWN0KSwgcm91bmRlZExheW91dFNpemUodG90YWxDb250
ZW50c1NpemUoKSksIHJvdW5kZWRMYXlvdXRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmln
aW4oKSwgZnJhbWVTY2FsZUZhY3RvcigpLCBmYWxzZSwgYmVoYXZpb3JGb3JGaXhlZCwgaGVhZGVy
SGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKTsKKyAgICBGbG9hdFNpemUgc2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWRDaGlsZHJlbiA9IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihl
bmNsb3NpbmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50
c1NpemUoKSksIExheW91dFBvaW50KHNjcm9sbE9mZnNldCksIHNjcm9sbE9yaWdpbigpLCBmcmFt
ZVNjYWxlRmFjdG9yKCksIGZhbHNlLCBiZWhhdmlvckZvckZpeGVkLCBoZWFkZXJIZWlnaHQoKSwg
Zm9vdGVySGVpZ2h0KCkpOwogCiAgICAgW21fY291bnRlclNjcm9sbGluZ0xheWVyIHNldFBvc2l0
aW9uOkZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbildOwogCkBAIC0xNTgs
NyArMTU4LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRh
dGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoY29uc3QgRmxvYXQKICAgICAgICAgLy8gdGhlbiB3ZSBz
aG91bGQgcmVjb21wdXRlIHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4gZm9yIHRoZSBiYW5u
ZXIgd2l0aCBhIHNjYWxlIGZhY3RvciBvZiAxLgogICAgICAgICBmbG9hdCBob3Jpem9udGFsU2Ny
b2xsT2Zmc2V0Rm9yQmFubmVyID0gc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbi53aWR0aCgp
OwogICAgICAgICBpZiAoZnJhbWVTY2FsZUZhY3RvcigpICE9IDEpCi0gICAgICAgICAgICBob3Jp
em9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JG
aXhlZFBvc2l0aW9uKGVuY2xvc2luZ0xheW91dFJlY3Qodmlld3BvcnRSZWN0KSwgcm91bmRlZExh
eW91dFNpemUodG90YWxDb250ZW50c1NpemUoKSksIHJvdW5kZWRMYXlvdXRQb2ludChzY3JvbGxP
ZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwgMSwgZmFsc2UsIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRl
ckhlaWdodCgpLCBmb290ZXJIZWlnaHQoKSkud2lkdGgoKTsKKyAgICAgICAgICAgIGhvcml6b250
YWxTY3JvbGxPZmZzZXRGb3JCYW5uZXIgPSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVk
UG9zaXRpb24oZW5jbG9zaW5nTGF5b3V0UmVjdCh2aWV3cG9ydFJlY3QpLCBMYXlvdXRTaXplKHRv
dGFsQ29udGVudHNTaXplKCkpLCBMYXlvdXRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmln
aW4oKSwgMSwgZmFsc2UsIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJI
ZWlnaHQoKSkud2lkdGgoKTsKIAogICAgICAgICBpZiAobV9oZWFkZXJMYXllcikKICAgICAgICAg
ICAgIFttX2hlYWRlckxheWVyIHNldFBvc2l0aW9uOkZsb2F0UG9pbnQoaG9yaXpvbnRhbFNjcm9s
bE9mZnNldEZvckJhbm5lciwgMCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYy5tbQppbmRleCA1NDgzODFiYWQ1Mjg0NmMxODk3YjlkMzUzZjkwNDIxMDVlOWI1ODVh
Li5lNTRiZDNiZTc4MTc2ZDQxNDY5MWU2YjBhNGRhODc4YTJiZmFhZjA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtMzc2LDExICszNzYsMTEgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxMYXllclBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQKICAgICBtX3Njcm9sbExheWVyLmdldCgpLnBvc2l0aW9u
ID0gQ0dQb2ludE1ha2UoLXBvc2l0aW9uLngoKSArIHNjcm9sbE9yaWdpbigpLngoKSwgLXBvc2l0
aW9uLnkoKSArIHNjcm9sbE9yaWdpbigpLnkoKSk7CiAKICAgICBTY3JvbGxCZWhhdmlvckZvckZp
eGVkRWxlbWVudHMgYmVoYXZpb3JGb3JGaXhlZCA9IHNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVt
ZW50cygpOwotICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zmc2V0ID0gcG9zaXRpb24gLSB0b0Zsb2F0
U2l6ZShzY3JvbGxPcmlnaW4oKSk7CisgICAgTGF5b3V0UG9pbnQgc2Nyb2xsT2Zmc2V0ID0gTGF5
b3V0UG9pbnQocG9zaXRpb24pIC0gdG9MYXlvdXRTaXplKHNjcm9sbE9yaWdpbigpKTsKICAgICBG
bG9hdFJlY3Qgdmlld3BvcnRSZWN0KEZsb2F0UG9pbnQoKSwgc2Nyb2xsYWJsZUFyZWFTaXplKCkp
OwogICAgIAotICAgIEZsb2F0U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZENoaWxkcmVuID0gRnJh
bWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGVuY2xvc2luZ0xheW91dFJlY3Qo
dmlld3BvcnRSZWN0KSwKLSAgICAgICAgcm91bmRlZExheW91dFNpemUodG90YWxDb250ZW50c1Np
emUoKSksIHJvdW5kZWRMYXlvdXRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwg
ZnJhbWVTY2FsZUZhY3RvcigpLCBmYWxzZSwgYmVoYXZpb3JGb3JGaXhlZCwgaGVhZGVySGVpZ2h0
KCksIGZvb3RlckhlaWdodCgpKTsKKyAgICBGbG9hdFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRD
aGlsZHJlbiA9IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihlbmNsb3Np
bmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50c1NpemUo
KSksIHNjcm9sbE9mZnNldCwgc2Nyb2xsT3JpZ2luKCksIGZyYW1lU2NhbGVGYWN0b3IoKSwKKyAg
ICAgICAgZmFsc2UsIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWln
aHQoKSk7CiAgICAgCiAgICAgaWYgKG1fY291bnRlclNjcm9sbGluZ0xheWVyKQogICAgICAgICBt
X2NvdW50ZXJTY3JvbGxpbmdMYXllci5nZXQoKS5wb3NpdGlvbiA9IEZsb2F0UG9pbnQoc2Nyb2xs
T2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbik7CkBAIC00MDAsNyArNDAwLDcgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQKICAgICAgICAgLy8gdGhlbiB3ZSBzaG91bGQgcmVjb21wdXRlIHNjcm9sbE9m
ZnNldEZvckZpeGVkQ2hpbGRyZW4gZm9yIHRoZSBiYW5uZXIgd2l0aCBhIHNjYWxlIGZhY3RvciBv
ZiAxLgogICAgICAgICBmbG9hdCBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gc2Ny
b2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbi53aWR0aCgpOwogICAgICAgICBpZiAoZnJhbWVTY2Fs
ZUZhY3RvcigpICE9IDEpCi0gICAgICAgICAgICBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFu
bmVyID0gRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGVuY2xvc2luZ0xh
eW91dFJlY3Qodmlld3BvcnRSZWN0KSwgcm91bmRlZExheW91dFNpemUodG90YWxDb250ZW50c1Np
emUoKSksIHJvdW5kZWRMYXlvdXRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwg
MSwgZmFsc2UsIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQo
KSkud2lkdGgoKTsKKyAgICAgICAgICAgIGhvcml6b250YWxTY3JvbGxPZmZzZXRGb3JCYW5uZXIg
PSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oZW5jbG9zaW5nTGF5b3V0
UmVjdCh2aWV3cG9ydFJlY3QpLCBMYXlvdXRTaXplKHRvdGFsQ29udGVudHNTaXplKCkpLCBzY3Jv
bGxPZmZzZXQsIHNjcm9sbE9yaWdpbigpLCAxLCBmYWxzZSwgYmVoYXZpb3JGb3JGaXhlZCwgaGVh
ZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKS53aWR0aCgpOwogCiAgICAgICAgIGlmIChtX2hl
YWRlckxheWVyKQogICAgICAgICAgICAgbV9oZWFkZXJMYXllci5nZXQoKS5wb3NpdGlvbiA9IEZs
b2F0UG9pbnQoaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciwgRnJhbWVWaWV3Ojp5UG9z
aXRpb25Gb3JIZWFkZXJMYXllcihwb3NpdGlvbiwgdG9wQ29udGVudEluc2V0KSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRQb2ludC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UG9pbnQuaAppbmRleCBmOGVkNmZl
ZmQwNjdmNWE4MTk1YjYzYWMwODc4YzNiMzQyZTgzMWRkLi5lNjI0Y2VhMmE4OWFmNDNhZTk4NGIw
M2VlMjgzYjlhMTEyY2VkMjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9MYXlvdXRQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0xheW91dFBvaW50LmgKQEAgLTE5OSwxMSArMTk5LDYgQEAgaW5saW5lIEZsb2F0UG9pbnQg
Y2VpbGVkRm9yUGFpbnRpbmcoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBmbG9hdCBwaXhlbFNu
YXBwaW4KICAgICByZXR1cm4gRmxvYXRQb2ludChjZWlsVG9EZXZpY2VQaXhlbChwb2ludC54KCks
IHBpeGVsU25hcHBpbmdGYWN0b3IpLCBjZWlsVG9EZXZpY2VQaXhlbChwb2ludC55KCksIHBpeGVs
U25hcHBpbmdGYWN0b3IpKTsKIH0KIAotaW5saW5lIExheW91dFBvaW50IHJvdW5kZWRMYXlvdXRQ
b2ludChjb25zdCBGbG9hdFBvaW50JiBwKQotewotICAgIHJldHVybiBMYXlvdXRQb2ludChwKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTGF5b3V0UG9pbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCmluZGV4IDhj
MmEwYmEyOGFlMjUxMDk1MmVjNzg2MzM2YTFjNDZkMDgyYjNhMzAuLmZkNTRhZGUyZjRiZWM1MTRi
ZjJlZTA5NzFmZGM2MDg1OTFmYjJkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9MYXlvdXRTaXplLmgKQEAgLTE4MywxMSArMTgzLDYgQEAgaW5saW5lIEludFNpemUg
cm91bmRlZEludFNpemUoY29uc3QgTGF5b3V0U2l6ZSYgcykKICAgICByZXR1cm4gSW50U2l6ZShz
LndpZHRoKCkucm91bmQoKSwgcy5oZWlnaHQoKS5yb3VuZCgpKTsKIH0KIAotaW5saW5lIExheW91
dFNpemUgcm91bmRlZExheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiBzKQotewotICAgIHJldHVy
biBMYXlvdXRTaXplKHMpOwotfQotCiBpbmxpbmUgRmxvYXRTaXplIGZsb29yZWRGb3JQYWludGlu
Zyhjb25zdCBMYXlvdXRTaXplJiBzaXplLCBmbG9hdCBwaXhlbFNuYXBwaW5nRmFjdG9yKQogewog
ICAgIHJldHVybiBGbG9hdFNpemUoZmxvb3JUb0RldmljZVBpeGVsKHNpemUud2lkdGgoKSwgcGl4
ZWxTbmFwcGluZ0ZhY3RvciksIGZsb29yVG9EZXZpY2VQaXhlbChzaXplLmhlaWdodCgpLCBwaXhl
bFNuYXBwaW5nRmFjdG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RWxsaXBzaXNCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0VsbGlwc2lzQm94LmNw
cAppbmRleCA4NzNjNDA4YzVhYTk3NGQxN2M1NjU5MTA3ZjdiNDVjNGE3ZDIzZWYxLi5hMDViMTEw
ZjhiYTc1NDY0Njg5MzJlNDQ2Mjg0Y2IwMDIxMjkyY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRWxsaXBzaXNCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9FbGxpcHNpc0JveC5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIEVsbGlwc2lzQm94
OjpwYWludFNlbGVjdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFBv
aW50JiBwYQogCiBib29sIEVsbGlwc2lzQm94Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRp
b24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9m
ZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pCiB7Ci0gICAg
TGF5b3V0UG9pbnQgYWRqdXN0ZWRMb2NhdGlvbiA9IGFjY3VtdWxhdGVkT2Zmc2V0ICsgcm91bmRl
ZExheW91dFBvaW50KHRvcExlZnQoKSk7CisgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRMb2NhdGlv
biA9IGFjY3VtdWxhdGVkT2Zmc2V0ICsgTGF5b3V0UG9pbnQodG9wTGVmdCgpKTsKIAogICAgIC8v
IEhpdCB0ZXN0IHRoZSBtYXJrdXAgYm94LgogICAgIGlmIChJbmxpbmVCb3gqIG1hcmt1cEJveCA9
IHRoaXMtPm1hcmt1cEJveCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAppbmRleCBkNzc3MGRiMWQyMWE2YjQzMzQzZDQ5NTlkOGE2YjY4MWRjM2Q3M2RjLi5hNDU3
Nzg2NzEwMDc4OTAzOGMyMTgyYjU1NjM2NjdhYmM3ODY0MTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE4NDcsNyArMTg0Nyw3IEBAIEdhcFJlY3RzIFJl
bmRlckJsb2NrOjpzZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCoKIAogICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9y
bVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgRmxvYXRQb2ludCgpKTsKICAgICBtYXBM
b2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBBcHBseUNv
bnRhaW5lckZsaXAgfCBVc2VUcmFuc2Zvcm1zKTsKLSAgICBMYXlvdXRQb2ludCBvZmZzZXRGcm9t
UmVwYWludENvbnRhaW5lciA9IHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBw
ZWRQb2ludCgpKSAtIHNjcm9sbGVkQ29udGVudE9mZnNldCgpOworICAgIExheW91dFBvaW50IG9m
ZnNldEZyb21SZXBhaW50Q29udGFpbmVyKHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkgLSBz
Y3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAKICAgICBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2Fj
aGVzIGNhY2hlKCp0aGlzKTsKICAgICBMYXlvdXRVbml0IGxhc3RUb3AgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBiZTc1YmViZTU2ZjMxMzMwODIxNzgzMGY1
NTQ1Yjk4NzJjMjc0YmU2Li4yNWYwMTljNThhODM1OWE3Y2ZjNGIyMDIxZTI4OTZkYTk5YTg3NTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTkwMiw3ICsxOTAy
LDcgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW4KICAgICBpZiAod2FzRml4ZWQpCiAgICAgICAg
ICp3YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAgIAotICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOworICAgIExheW91dFNpemUgY29udGFpbmVyT2Zm
c2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5t
YXBwZWRQb2ludCgpKSk7CiAgICAgCiAgICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRy
YW5zZm9ybXMgJiYgKG8tPnN0eWxlKCkucHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLnByZXNlcnZl
czNEKCkpOwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKG8pKSB7CkBAIC0yMDUxLDcgKzIwNTEsNyBAQCB2b2lkIFJlbmRlckJv
eDo6cG9zaXRpb25MaW5lQm94KElubGluZUVsZW1lbnRCb3gmIGJveCkKICAgICB9CiAKICAgICBp
ZiAoaXNSZXBsYWNlZCgpKSB7Ci0gICAgICAgIHNldExvY2F0aW9uKHJvdW5kZWRMYXlvdXRQb2lu
dChib3gudG9wTGVmdCgpKSk7CisgICAgICAgIHNldExvY2F0aW9uKExheW91dFBvaW50KGJveC50
b3BMZWZ0KCkpKTsKICAgICAgICAgc2V0SW5saW5lQm94V3JhcHBlcigmYm94KTsKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cAppbmRleCBjYmMyY2FmMDVmMjEyZmNmZDY0YTJhZmM1YTQ0YjU2NzUyZmZlNzQ3Li43ZDk2OWFm
YThhZWIxMDRlNDUxNjZhZmY0NWExYmMxNzc1NDIzYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTU3OCw3ICs1NzgsNyBA
QCBib29sIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojpsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxE
aXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbAogfQogCiAKLWJvb2wgUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OmlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnQpIGNvbnN0Citib29sIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojppc0luVW5hdmFpbGFibGVQbHVn
aW5JbmRpY2F0b3IoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgRmxvYXRS
ZWN0IGNvbnRlbnRSZWN0OwogICAgIEZsb2F0UmVjdCBpbmRpY2F0b3JSZWN0OwpAQCAtNTkzLDcg
KzU5Myw3IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWlsYWJsZVBsdWdp
bkluZGljYXRvcihjb25zdCBMYXlvdXRQb2ludCYgcG9pCiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OmlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihNb3VzZUV2ZW50KiBldmVudCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKHJvdW5k
ZWRMYXlvdXRQb2ludChhYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3JtcykpKTsKKyAgICByZXR1cm4gaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNh
dG9yKGFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zv
cm1zKSk7CiB9CiAKIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmhhbmRsZVVuYXZhaWxhYmxl
UGx1Z2luSW5kaWNhdG9yRXZlbnQoRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAppbmRleCAwN2ZmODQxZDQ1MzljM2ZiODA2
MmI5MDU4MGM1MWU1YmEyNjA1MGZjLi40ZDM0MmQ3ODQ0MTBiN2E3MmU3MTEzYjZiZDgyYTgxYTZl
NzVkNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuaApAQCAtODUsNyArODUsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRVbmF2YWls
YWJsZVBsdWdpbkluZGljYXRvcklzUHJlc3NlZChib29sKTsKICAgICBib29sIGlzSW5VbmF2YWls
YWJsZVBsdWdpbkluZGljYXRvcihNb3VzZUV2ZW50KikgY29uc3Q7Ci0gICAgYm9vbCBpc0luVW5h
dmFpbGFibGVQbHVnaW5JbmRpY2F0b3IoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKKyAgICBi
b29sIGlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihjb25zdCBGbG9hdFBvaW50JikgY29u
c3Q7CiAgICAgYm9vbCBnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRyeShjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQsIEZsb2F0UmVjdCYgY29udGVudFJlY3QsIEZsb2F0UmVjdCYg
aW5kaWNhdG9yUmVjdCwgRmxvYXRSZWN0JiByZXBsYWNlbWVudFRleHRSZWN0LCBGbG9hdFJlY3Qm
IGFycm93UmVjdCwgRm9udCYsIFRleHRSdW4mLCBmbG9hdCYgdGV4dFdpZHRoKSBjb25zdDsKICAg
ICBMYXlvdXRSZWN0IHVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yQm91bmRzKGNvbnN0IExheW91
dFBvaW50JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKaW5kZXggNTU5YjM1MWMzNTRkNmJkNGM4ZjBmNGU1NjA0NjZjNzlhNjJmMzIzYy4uYjNjNzgw
MzIzNWQxODEwMjVkNjU3NjY2NGRhMjBkMDQ4ZDQ0MGNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBMYXlvdXRSZWN0IFJl
bmRlcklubGluZTo6bG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiBpbmxpbmVCb3gsIGludCwgTGF5
b3V0VW5pdCogZQogICAgIExheW91dFJlY3QgY2FyZXRSZWN0ID0gbG9jYWxDYXJldFJlY3RGb3JF
bXB0eUVsZW1lbnQoaG9yaXpvbnRhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKSwgMCk7CiAKICAg
ICBpZiAoSW5saW5lQm94KiBmaXJzdEJveCA9IGZpcnN0TGluZUJveCgpKQotICAgICAgICBjYXJl
dFJlY3QubW92ZUJ5KHJvdW5kZWRMYXlvdXRQb2ludChmaXJzdEJveC0+dG9wTGVmdCgpKSk7Cisg
ICAgICAgIGNhcmV0UmVjdC5tb3ZlQnkoTGF5b3V0UG9pbnQoZmlyc3RCb3gtPnRvcExlZnQoKSkp
OwogCiAgICAgcmV0dXJuIGNhcmV0UmVjdDsKIH0KQEAgLTEyMzQsMTMgKzEyMzQsMTMgQEAgdm9p
ZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnQKIAogICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlw
ICYmIG8tPmlzQm94KCkpIHsKICAgICAgICAgaWYgKG8tPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgTGF5b3V0UG9pbnQgY2VudGVyUG9pbnQgPSBy
b3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSk7CisgICAgICAg
ICAgICBMYXlvdXRQb2ludCBjZW50ZXJQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgp
KTsKICAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUodG9SZW5kZXJCb3gobyktPmZsaXBG
b3JXcml0aW5nTW9kZShjZW50ZXJQb2ludCkgLSBjZW50ZXJQb2ludCk7CiAgICAgICAgIH0KICAg
ICAgICAgbW9kZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIH0KIAotICAgIExheW91dFNp
emUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0
UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOworICAgIExheW91dFNpemUgY29u
dGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBMYXlvdXRQb2ludCh0cmFuc2Zv
cm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7CiAKICAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYg
VXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCkucHJl
c2VydmVzM0QoKSk7CiAgICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRy
YW5zZm9ybUZyb21Db250YWluZXIobykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IGEzYTQ2ZTYzOTZjMDUyNDJiNGM2ZmEwM2MzYzBmYzJmZDBmNWRmNzMu
LjdkMGFmMjliNTkxMjY0YjFhNzY1YzVkNGQ1NzMyMjBkOGM2NjlhNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTU0Nyw3ICsxNTQ3LDcgQEAgUmVuZGVy
TGF5ZXIqIFJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZygpIGNvbnN0CiBMYXlv
dXRQb2ludCBSZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKGNvbnN0IExheW91dFBvaW50
JiBhYnNvbHV0ZVBvaW50KSBjb25zdAogewogICAgIC8vIFdlIGRvbid0IHVzZSBjb252ZXJ0VG9M
YXllckNvb3JkcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyBhYm91dCB0cmFuc2Zvcm1zCi0gICAg
cmV0dXJuIHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLmFic29sdXRlVG9Mb2NhbChhYnNv
bHV0ZVBvaW50LCBVc2VUcmFuc2Zvcm1zKSk7CisgICAgcmV0dXJuIExheW91dFBvaW50KHJlbmRl
cmVyKCkuYWJzb2x1dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIFVzZVRyYW5zZm9ybXMpKTsKIH0K
IAogYm9vbCBSZW5kZXJMYXllcjo6Y2Fubm90QmxpdFRvV2luZG93KCkgY29uc3QKQEAgLTUyOTYs
OCArNTI5Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyhjb25zdCBD
bGlwUmVjdHNDb250ZXh0JiBjbGlwUmVjdHNDb250ZXh0LCBDCiAgICAgICAgIC8vIFRoaXMgb2Zm
c2V0IGNhbm5vdCB1c2UgY29udmVydFRvTGF5ZXJDb29yZHMsIGJlY2F1c2Ugc29tZXRpbWVzIG91
ciByb290TGF5ZXIgbWF5IGJlIGFjcm9zcwogICAgICAgICAvLyBzb21lIHRyYW5zZm9ybWVkIGxh
eWVyIGJvdW5kYXJ5LCBmb3IgZXhhbXBsZSwgaW4gdGhlIFJlbmRlckxheWVyQ29tcG9zaXRvciBv
dmVybGFwTWFwLCB3aGVyZQogICAgICAgICAvLyBjbGlwUmVjdHMgYXJlIG5lZWRlZCBpbiB2aWV3
IHNwYWNlLgotICAgICAgICBMYXlvdXRQb2ludCBvZmZzZXQ7Ci0gICAgICAgIG9mZnNldCA9IHJv
dW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLmxvY2FsVG9Db250YWluZXJQb2ludChGbG9hdFBv
aW50KCksICZjbGlwUmVjdHNDb250ZXh0LnJvb3RMYXllci0+cmVuZGVyZXIoKSkpOworICAgICAg
ICBMYXlvdXRQb2ludCBvZmZzZXQocmVuZGVyZXIoKS5sb2NhbFRvQ29udGFpbmVyUG9pbnQoRmxv
YXRQb2ludCgpLCAmY2xpcFJlY3RzQ29udGV4dC5yb290TGF5ZXItPnJlbmRlcmVyKCkpKTsKICAg
ICAgICAgaWYgKGNsaXBSZWN0cy5maXhlZCgpICYmICZjbGlwUmVjdHNDb250ZXh0LnJvb3RMYXll
ci0+cmVuZGVyZXIoKSA9PSAmcmVuZGVyZXIoKS52aWV3KCkpCiAgICAgICAgICAgICBvZmZzZXQg
LT0gcmVuZGVyZXIoKS52aWV3KCkuZnJhbWVWaWV3KCkuc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3Np
dGlvbigpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAKaW5kZXggN2M5MjA4NWNiZGY2MjRjYTkw
OTRhZGU5MGYxZmI2MjBmMWUzOTM5ZC4uYTY3M2NkODcyN2ZiNTYzMjAyNzhiMjgzNzFlN2Q2YzJh
MjYyZjAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCB2b2lkIFJlbmRl
ck11bHRpQ29sdW1uRmxvd1RocmVhZDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRp
bmF0ZXNGbGFncyBtbwogewogICAgIC8vIEZpcnN0IGdldCB0aGUgdHJhbnNmb3JtIHN0YXRlJ3Mg
cG9pbnQgaW50byB0aGUgYmxvY2sgZmxvdyB0aHJlYWQncyBwaHlzaWNhbCBjb29yZGluYXRlIHNw
YWNlLgogICAgIHBhcmVudCgpLT5tYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChtb2RlLCB0cmFuc2Zv
cm1TdGF0ZSk7Ci0gICAgTGF5b3V0UG9pbnQgdHJhbnNmb3JtUG9pbnQgPSByb3VuZGVkTGF5b3V0
UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSk7CisgICAgTGF5b3V0UG9pbnQgdHJh
bnNmb3JtUG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSk7CiAgICAgCiAgICAgLy8g
Tm93IHdhbGsgdGhyb3VnaCBlYWNoIHJlZ2lvbi4KICAgICBjb25zdCBSZW5kZXJNdWx0aUNvbHVt
blNldCogY2FuZGlkYXRlQ29sdW1uU2V0ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMDViNjQyYzBjNDcyZTg0OGNkYzljOGNiYTMwNWQ5
ZTg0OGI3MTgzYi4uYjg1MDFlNWNmYTBiYTE1MDUyZTBmMmRjZTUxMTc4M2QwMjg1NDZmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTE2NDcsMTAgKzE2
NDcsMTAgQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnQKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gRklYTUU6IHRoaXMgc2hvdWxkIGNhbGwgb2Zmc2V0RnJvbUNvbnRhaW5lciB0byBzaGFyZSBj
b2RlLCBidXQgSSdtIG5vdCBzdXJlIGl0J3MgZXZlciBjYWxsZWQuCi0gICAgTGF5b3V0UG9pbnQg
Y2VudGVyUG9pbnQgPSByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9p
bnQoKSk7CisgICAgTGF5b3V0UG9pbnQgY2VudGVyUG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVk
UG9pbnQoKSk7CiAgICAgaWYgKG1vZGUgJiBBcHBseUNvbnRhaW5lckZsaXAgJiYgby0+aXNCb3go
KSkgewogICAgICAgICBpZiAoby0+c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgp
KQotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b1JlbmRlckJveChvKS0+ZmxpcEZv
cldyaXRpbmdNb2RlKHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2lu
dCgpKSkgLSBjZW50ZXJQb2ludCk7CisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRv
UmVuZGVyQm94KG8pLT5mbGlwRm9yV3JpdGluZ01vZGUoTGF5b3V0UG9pbnQodHJhbnNmb3JtU3Rh
dGUubWFwcGVkUG9pbnQoKSkpIC0gY2VudGVyUG9pbnQpOwogICAgICAgICBtb2RlICY9IH5BcHBs
eUNvbnRhaW5lckZsaXA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCAzNGYxYmExOWMyNzBiNGVhNWUz
YmNmY2U1MTQyNjcwOGI1YzZjODkyLi4wZDE3ZjgxZjA0ZGU4MzJhMWNmMDgzZTJlYjJiZjY0NmU0
ZWQwYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
T3V0c2lkZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hh
cGVPdXRzaWRlSW5mby5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBzdGF0aWMgTGF5b3V0UmVjdCBn
ZXRTaGFwZUltYWdlTWFyZ2luUmVjdChjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCwgY29uc3Qg
TGF5bwogCiBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IFNoYXBlT3V0c2lkZUluZm86OmNyZWF0ZVNo
YXBlRm9ySW1hZ2UoU3R5bGVJbWFnZSogc3R5bGVJbWFnZSwgZmxvYXQgc2hhcGVJbWFnZVRocmVz
aG9sZCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIGZsb2F0IG1hcmdpbikgY29uc3QKIHsKLSAg
ICBjb25zdCBMYXlvdXRTaXplJiBpbWFnZVNpemUgPSBtX3JlbmRlcmVyLmNhbGN1bGF0ZUltYWdl
SW50cmluc2ljRGltZW5zaW9ucyhzdHlsZUltYWdlLCByb3VuZGVkTGF5b3V0U2l6ZShtX3JlZmVy
ZW5jZUJveExvZ2ljYWxTaXplKSwgUmVuZGVySW1hZ2U6OlNjYWxlQnlFZmZlY3RpdmVab29tKTsK
KyAgICBjb25zdCBMYXlvdXRTaXplJiBpbWFnZVNpemUgPSBtX3JlbmRlcmVyLmNhbGN1bGF0ZUlt
YWdlSW50cmluc2ljRGltZW5zaW9ucyhzdHlsZUltYWdlLCBtX3JlZmVyZW5jZUJveExvZ2ljYWxT
aXplLCBSZW5kZXJJbWFnZTo6U2NhbGVCeUVmZmVjdGl2ZVpvb20pOwogICAgIHN0eWxlSW1hZ2Ut
PnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcigmbV9yZW5kZXJlciwgaW1hZ2VTaXplLCBtX3Jl
bmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKIAogICAgIGNvbnN0IExheW91dFJlY3Qm
IG1hcmdpblJlY3QgPSBnZXRTaGFwZUltYWdlTWFyZ2luUmVjdChtX3JlbmRlcmVyLCBtX3JlZmVy
ZW5jZUJveExvZ2ljYWxTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRleCA5ZGJjYTVjMzA2MGM4YWIzZjMzYWVmMWUw
OTU5OTM2Mzc1ZDUwMjIwLi40Y2FhMWJhM2RjNWMyMzdmMDk4M2U3ZTc2MzdkYTNmM2ExOGY0ZDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRh
aW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250
YWluZXIuY3BwCkBAIC0xODAsMTQgKzE4MCwxNCBAQCBib29sIFJlbmRlclNWR0NvbnRhaW5lcjo6
bm9kZUF0RmxvYXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdAog
ICAgICAgICAgICAgICAgIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGxhc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpIHsKICAgICAgICAg
aWYgKGNoaWxkLT5ub2RlQXRGbG9hdFBvaW50KHJlcXVlc3QsIHJlc3VsdCwgbG9jYWxQb2ludCwg
aGl0VGVzdEFjdGlvbikpIHsKLSAgICAgICAgICAgIHVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0
LCByb3VuZGVkTGF5b3V0UG9pbnQobG9jYWxQb2ludCkpOworICAgICAgICAgICAgdXBkYXRlSGl0
VGVzdFJlc3VsdChyZXN1bHQsIExheW91dFBvaW50KGxvY2FsUG9pbnQpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gQWNjZXNzaWJpbGl0eSB3
YW50cyB0byByZXR1cm4gU1ZHIGNvbnRhaW5lcnMsIGlmIGFwcHJvcHJpYXRlLgogICAgIGlmIChy
ZXF1ZXN0LnR5cGUoKSAmIEhpdFRlc3RSZXF1ZXN0OjpBY2Nlc3NpYmlsaXR5SGl0VGVzdCAmJiBt
X29iamVjdEJvdW5kaW5nQm94LmNvbnRhaW5zKGxvY2FsUG9pbnQpKSB7Ci0gICAgICAgIHVwZGF0
ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCByb3VuZGVkTGF5b3V0UG9pbnQobG9jYWxQb2ludCkpOwor
ICAgICAgICB1cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgTGF5b3V0UG9pbnQobG9jYWxQb2lu
dCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAppbmRl
eCBlOWI2MzRhNDJhMTNjMTZhZjAxNjM0Y2JkNzgzYWI4ZTVlNWZjMjFlLi5hOWEzZGY1ZTkzZTMy
YTA1ZDA0ODg0ODQ3MGVhOWM4MmU0YWI0YTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKQEAgLTE4NCw3ICsx
ODQsNyBAQCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdEZsb2F0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAvLyBGT3MgZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCwgc28gd2UgbmVlZCB0byBo
aXQtdGVzdCBhbGwgbGF5ZXJzLgotICAgIEhpdFRlc3RMb2NhdGlvbiBoaXRUZXN0TG9jYXRpb24o
cm91bmRlZExheW91dFBvaW50KGxvY2FsUG9pbnQpKTsKKyAgICBIaXRUZXN0TG9jYXRpb24gaGl0
VGVzdExvY2F0aW9uKGxvY2FsUG9pbnQpOwogICAgIHJldHVybiBSZW5kZXJCbG9jazo6bm9kZUF0
UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBoaXRUZXN0TG9jYXRpb24sIExheW91dFBvaW50KCksIEhp
dFRlc3RGb3JlZ3JvdW5kKQogICAgICAgICB8fCBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQocmVx
dWVzdCwgcmVzdWx0LCBoaXRUZXN0TG9jYXRpb24sIExheW91dFBvaW50KCksIEhpdFRlc3RGbG9h
dCkKICAgICAgICAgfHwgUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3VsdCwg
aGl0VGVzdExvY2F0aW9uLCBMYXlvdXRQb2ludCgpLCBIaXRUZXN0Q2hpbGRCbG9ja0JhY2tncm91
bmRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5j
cHAKaW5kZXggOTkxMjY1Zjc0Y2Q0MjZjMmM4NTRmYzI5ZGI4ZTFlMWNkYzVlZmJmNy4uZWIyZDMz
ZWVjNDI5ZGE2ZTI2ODY0OGQxYmE3YWQ5MDdhNTY4NDNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKQEAgLTE5MSw3ICsxOTEsNyBAQCBi
b29sIFJlbmRlclNWR0ltYWdlOjpub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBIaXRUZXN0UmVzdQogCiAgICAgICAgIGlmIChoaXRSdWxlcy5jYW5IaXRGaWxs
KSB7CiAgICAgICAgICAgICBpZiAobV9vYmplY3RCb3VuZGluZ0JveC5jb250YWlucyhsb2NhbFBv
aW50KSkgewotICAgICAgICAgICAgICAgIHVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCByb3Vu
ZGVkTGF5b3V0UG9pbnQobG9jYWxQb2ludCkpOworICAgICAgICAgICAgICAgIHVwZGF0ZUhpdFRl
c3RSZXN1bHQocmVzdWx0LCBMYXlvdXRQb2ludChsb2NhbFBvaW50KSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggMDMzNmQ2NWY4NWJj
MTJkY2NkZjZmNzdjMWY2NTI1YTcxOGNmMjhhOC4uMGU4NmIzNTVlODc5MTJhNjAxMzJjZTllZjQ1
OWE2NGVkYjllOTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdTaGFwZS5jcHAKQEAgLTM0Niw3ICszNDYsNyBAQCBib29sIFJlbmRlclNWR1NoYXBlOjpu
b2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVz
dQogICAgICAgICAgICAgZmlsbFJ1bGUgPSBzdmdTdHlsZS5jbGlwUnVsZSgpOwogICAgICAgICBp
ZiAoKGhpdFJ1bGVzLmNhbkhpdFN0cm9rZSAmJiAoc3ZnU3R5bGUuaGFzU3Ryb2tlKCkgfHwgIWhp
dFJ1bGVzLnJlcXVpcmVTdHJva2UpICYmIHN0cm9rZUNvbnRhaW5zKGxvY2FsUG9pbnQsIGhpdFJ1
bGVzLnJlcXVpcmVTdHJva2UpKQogICAgICAgICAgICAgfHwgKGhpdFJ1bGVzLmNhbkhpdEZpbGwg
JiYgKHN2Z1N0eWxlLmhhc0ZpbGwoKSB8fCAhaGl0UnVsZXMucmVxdWlyZUZpbGwpICYmIGZpbGxD
b250YWlucyhsb2NhbFBvaW50LCBoaXRSdWxlcy5yZXF1aXJlRmlsbCwgZmlsbFJ1bGUpKSkgewot
ICAgICAgICAgICAgdXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIHJvdW5kZWRMYXlvdXRQb2lu
dChsb2NhbFBvaW50KSk7CisgICAgICAgICAgICB1cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwg
TGF5b3V0UG9pbnQobG9jYWxQb2ludCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMTJmYmVk
NDZjMTJmNjJjOGQ1ZGMzMDZmNmJhMTQ0Y2ZlYmZlNmY5MS4uNGM3Mzk0MGM2YzliY2ExYjUzYzU0
ODNlNjdjMzMyZThjYmFmYjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMTExNSw3ICsxMTE1LDcgQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gSW50ZXJuYWxzOjpub2Rl
c0Zyb21SZWN0KERvY3VtZW50KiBkb2N1bWVudCwgaW50IGNlbnRlclgsIGkKICAgICBkb2N1bWVu
dC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBmbG9hdCB6
b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCk7Ci0gICAgTGF5b3V0UG9pbnQgcG9p
bnQgPSByb3VuZGVkTGF5b3V0UG9pbnQoRmxvYXRQb2ludChjZW50ZXJYICogem9vbUZhY3RvciAr
IGZyYW1lVmlldy0+c2Nyb2xsWCgpLCBjZW50ZXJZICogem9vbUZhY3RvciArIGZyYW1lVmlldy0+
c2Nyb2xsWSgpKSk7CisgICAgTGF5b3V0UG9pbnQgcG9pbnQoY2VudGVyWCAqIHpvb21GYWN0b3Ig
KyBmcmFtZVZpZXctPnNjcm9sbFgoKSwgY2VudGVyWSAqIHpvb21GYWN0b3IgKyBmcmFtZVZpZXct
PnNjcm9sbFkoKSk7CiAKICAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhp
dFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZl
OwogICAgIGlmIChpZ25vcmVDbGlwcGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggNmRkN2U3ZDNlYjdkNTk1NjdmNjkyODc4MDA0
MWVmNjkxODEyMDdiZS4uZjczZjUzNzQ4MTY1MzNhNjA1OGFiNTUwNTdiMWY5NjMxM2UwNzY5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
QEAgLTIzOCw3ICsyMzgsNyBAQCBXZWJDb3JlOjpGbG9hdFJlY3QgV2ViUGFnZVByb3h5Ojpjb21w
dXRlQ3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoY29uc3QgRmxvYXRSZWN0JgogICAgICAgICBjb25z
dHJhaW5lZFVub2JzY3VyZWRSZWN0LnNldEhlaWdodChhZGp1c3RlZFVuZXhwb3NlZE1heEVkZ2Uo
ZG9jdW1lbnRSZWN0Lm1heFkoKSwgY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdC5tYXhZKCksIGZh
Y3RvcikgLSBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0LnkoKSk7CiAgICAgfQogICAgIAotICAg
IHJldHVybiBGcmFtZVZpZXc6OnJlY3RGb3JWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyhlbmNs
b3NpbmdMYXlvdXRSZWN0KGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3QpLCByb3VuZGVkTGF5b3V0
U2l6ZShjb250ZW50c1NpemUpLCBkaXNwbGF5ZWRDb250ZW50U2NhbGUsIGZhbHNlLCBTdGlja1Rv
Vmlld3BvcnRCb3VuZHMpOworICAgIHJldHVybiBGcmFtZVZpZXc6OnJlY3RGb3JWaWV3cG9ydENv
bnN0cmFpbmVkT2JqZWN0cyhlbmNsb3NpbmdMYXlvdXRSZWN0KGNvbnN0cmFpbmVkVW5vYnNjdXJl
ZFJlY3QpLCBMYXlvdXRTaXplKGNvbnRlbnRzU2l6ZSksIGRpc3BsYXllZENvbnRlbnRTY2FsZSwg
ZmFsc2UsIFN0aWNrVG9WaWV3cG9ydEJvdW5kcyk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpv
dmVyZmxvd1Njcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>