<?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>237111</bug_id>
          
          <creation_ts>2022-02-23 14:19:17 -0800</creation_ts>
          <short_desc>Modernize / simplify ScrollingStateTree a bit</short_desc>
          <delta_ts>2022-02-23 19:20:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845313</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 14:19:17 -0800</bug_when>
    <thetext>Modernize / simplify ScrollingStateTree a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845319</commentid>
    <comment_count>1</comment_count>
      <attachid>453028</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 14:30:19 -0800</bug_when>
    <thetext>Created attachment 453028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845487</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-23 19:19:40 -0800</bug_when>
    <thetext>Committed r290411 (247719@main): &lt;https://commits.webkit.org/247719@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453028.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845488</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-23 19:20:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89393757&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453028</attachid>
            <date>2022-02-23 14:30:19 -0800</date>
            <delta_ts>2022-02-23 19:19:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237111-20220223143018.patch</filename>
            <type>text/plain</type>
            <size>18780</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZmNWQxZWIzMmM4NmQ2
Y2U2ZGNlMzY4YzViNzZjZTI0ZmQyMTMxYi4uYjU1YzQ0MTUyMzdlYzBlYzFkMWI0OWRhNWQzYTg3
ZWIxYmQ0NDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAyLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuaXplIC8gc2ltcGxp
ZnkgU2Nyb2xsaW5nU3RhdGVUcmVlIGEgYml0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb2Rlcm5pemUgLyBzaW1wbGlmeSBTY3JvbGxpbmdTdGF0ZVRy
ZWUgYSBiaXQuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9kZVR5cGVBbmRQYXJlbnRNYXRjaCk6CisgICAgICAg
IFNpbXBsaWZ5IGZ1bmN0aW9uIGJvZHkgdG8gYmUgb24gb25lIGxpbmUgYW5kIG1ha2UgZnVuY3Rp
b24gc3RhdGljIHNpbmNlIGl0IGRvZXNuJ3QKKyAgICAgICAgbmVlZCBhbiBpbnN0YW5jZS4KKwor
ICAgICAgICAoV2ViQ29yZTo6bm9kZVdhc1JlYXR0YWNoZWRSZWN1cnNpdmUpOgorICAgICAgICBN
YWtlIGZ1bmN0aW9uIHN0YXRpYyBzaW5jZSBpdCBkb2Vzbid0IG5lZWQgYW4gaW5zdGFuY2UuCisK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlVW5wYXJlbnRlZE5v
ZGUpOgorICAgICAgICAtIFBhc3MgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyCisKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6aW5zZXJ0Tm9kZSk6CisgICAgICAg
IC0gVXNlIHRlbXBsYXRlIGRlZHVjdGlvbiBmb3IgUmVmPD4KKyAgICAgICAgLSBEcm9wIHVubmVj
ZXNzYXJpbHkgMC1jaGVjayBmb3IgcGFyZW50SUQgc2luY2Ugc3RhdGVOb2RlRm9ySUQocGFyZW50
SUQpIHdvdWxkIGhhdmUKKyAgICAgICAgICByZXR1cm5lZCBudWxsIGFuZCB3ZSB3b3VsZCBoYXZl
IHJldHVybmVkIGVhcmx5IGEgZmV3IGxpbmVzIGFib3ZlLgorCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdTdGF0ZVRyZWU6OnVucGFyZW50Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVRyZWU6OnVucGFyZW50Q2hpbGRyZW5BbmREZXN0cm95Tm9kZSk6CisgICAgICAg
IC0gVXNlIFJlZlB0ciB0eXBlIGZvciBwcm90ZWN0ZWROb2RlIGJhc2VkIG9uIHRoZSB2YXJpYWJs
ZSBuYW1pbmcuIFByZXZpb3VzbHksIGF1dG8KKyAgICAgICAgICB3b3VsZCBoYXZlIGRlZHVjZWQg
dG8gYSByYXcgcG9pbnRlci4KKworICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVl
OjpkZXRhY2hBbmREZXN0cm95U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNsZWFyKToKKyAgICAgICAgUGFzcyBtb3JlIHJlZmVyZW5jZXMgaW5zdGVhZCBv
ZiBwb2ludGVycy4KKworICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjpjb21t
aXQpOgorICAgICAgICB1c2UgYXV0byBhbmQgc3RkOjpleGNoYW5nZSgpIHRvIG1ha2UgdGhlIGNv
ZGUgYSBiaXQgbW9yZSBjb25jaXNlLgorCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0
ZVRyZWU6OnJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyk6CisgICAgICAgIFRha2UgYSByZWZl
cmVuY2UgaW4gcGFyYW1ldGVyIGluc3RlYWQgb2YgYSByYXcgcG9pbnRlciBzaW5jZSB0aGUgcG9p
bnRlciBjb3VsZG4ndAorICAgICAgICBiZSBudWxsLgorCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVRyZWU6OnJlY3Vyc2l2ZU5vZGVXaWxsQmVSZW1vdmVkKToKKyAgICAgICAgLSBU
YWtlIGEgcmVmZXJlbmNlIGluIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGEgcmF3IHBvaW50ZXIgc2lu
Y2UgdGhlIHBvaW50ZXIgY291bGRuJ3QKKyAgICAgICAgYmUgbnVsbC4KKyAgICAgICAgLSBSZW5h
bWUgY3Vyck5vZGUgdG8gY3VycmVudE5vZGUgcGVyIFdlYktpdCBjb2Rpbmcgc3R5bGUuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6d2lsbFJlbW92ZU5vZGUpOgorICAg
ICAgICBUYWtlIGEgcmVmZXJlbmNlIGluIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGEgcmF3IHBvaW50
ZXIgc2luY2UgdGhlIHBvaW50ZXIgY291bGRuJ3QKKyAgICAgICAgYmUgbnVsbC4KKworICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjpzdGF0ZU5vZGVGb3JJRCBjb25zdCk6Cisg
ICAgICAgIFJld3JpdGUgZnVuY3Rpb24gaW4gYSBtb3JlIGNvbmNpc2Ugd2F5IGJ5IGNhbGxpbmcg
SGFzaE1hcDo6Z2V0KCkgaW5zdGVhZCBvZiBIYXNoTWFwOjpmaW5kKCkuCisKKyAgICAgICAgKFdl
YkNvcmU6OnJlY29uY2lsZUxheWVyUG9zaXRpb25zUmVjdXJzaXZlKToKKyAgICAgICAgLSBNYWtl
IGZ1bmN0aW9uIHN0YXRpYyBzaW5jZSBpdCBkb2Vzbid0IG5lZWQgYW4gaW5zdGFuY2UKKyAgICAg
ICAgLSBSZW5hbWUgY3Vyck5vZGUgdG8gY3VycmVudE5vZGUgcGVyIFdlYktpdCBjb2Rpbmcgc3R5
bGUKKworICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjpyZWNvbmNpbGVWaWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3NpdGlvbnMpOgorICAgICAgICBNYWtlIGZ1bmN0aW9uIGEg
Yml0IG1vcmUgY29uY2lzZSBieSBub3QgZG9pbmcgYW4gZWFybHkgcmV0dXJuLgorCisgICAgICAg
IChzaG93U2Nyb2xsaW5nU3RhdGVUcmVlKToKKyAgICAgICAgVGFrZSBpbiBhIHJlZmVyZW5jZSBp
bnN0ZWFkIG9mIGEgcmF3IHBvaW50ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlVHJlZTo6bm9kZVR5cGVBbmRQYXJlbnRNYXRjaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6Om5vZGVXYXNSZWF0dGFjaGVkUmVjdXJzaXZl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6cmVjb25j
aWxlTGF5ZXJQb3NpdGlvbnNSZWN1cnNpdmUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oOgorCiAyMDIyLTAyLTIzICBBbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0gTGluZUxheW91
dDo6Zmlyc3RMaW5lUGh5c2ljYWxCYXNlbGluZS9sYXN0TGluZUxvZ2ljYWxCYXNlbGluZSBzaG91
bGQgZmxpcCBib3ggYmFzZWxpbmUgdmFsdWUgZm9yIHZlcnRpY2FsLWxyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAppbmRleCA1
MWVhMzJiMjAyYTQxYzMwOTlkNDgxMmFhNmM4MmRmMDc4MzY5NTIzLi43NWQwYTgyYjliNzQ2ZmEz
OTI4OWMzNjc3N2E5MmVmNjRkNWVkNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKQEAgLTQyLDYgKzQyLDIyIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGJvb2wgbm9kZVR5cGVBbmRQYXJlbnRNYXRj
aChTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBT
Y3JvbGxpbmdTdGF0ZU5vZGUqIHBhcmVudE5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUubm9kZVR5
cGUoKSA9PSBub2RlVHlwZSAmJiBub2RlLnBhcmVudCgpID09IHBhcmVudE5vZGU7Cit9CisKK3N0
YXRpYyB2b2lkIG5vZGVXYXNSZWF0dGFjaGVkUmVjdXJzaXZlKFNjcm9sbGluZ1N0YXRlTm9kZSYg
bm9kZSkKK3sKKyAgICAvLyBXaGVuIGEgbm9kZSBpcyByZS1hdHRhY2hlZCwgdGhlIFNjcm9sbGlu
Z1RyZWUgaXMgcmVjcmVhdGluZyB0aGUgU2Nyb2xsaW5nTm9kZSBmcm9tIHNjcmF0Y2gsIHNvIHdl
IG5lZWQgdG8gc2V0IGFsbCB0aGUgZGlydHkgYml0cy4KKyAgICBub2RlLnNldFByb3BlcnR5Q2hh
bmdlc0FmdGVyUmVhdHRhY2goKTsKKworICAgIGlmIChhdXRvKiBjaGlsZHJlbiA9IG5vZGUuY2hp
bGRyZW4oKSkgeworICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDogKmNoaWxkcmVuKQorICAgICAg
ICAgICAgbm9kZVdhc1JlYXR0YWNoZWRSZWN1cnNpdmUoKmNoaWxkKTsKKyAgICB9Cit9CisKIFNj
cm9sbGluZ1N0YXRlVHJlZTo6U2Nyb2xsaW5nU3RhdGVUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRv
cihzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKQEAgLTg2LDE0ICsxMDIsNiBAQCBSZWY8U2Nyb2xs
aW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUgbm9kZVR5cAogICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6Y3JlYXRl
KCp0aGlzLCBub2RlSUQpOwogfQogCi1ib29sIFNjcm9sbGluZ1N0YXRlVHJlZTo6bm9kZVR5cGVB
bmRQYXJlbnRNYXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUsIFNjcm9sbGluZ05vZGVUeXBl
IG5vZGVUeXBlLCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHBhcmVudE5vZGUpIGNvbnN0Ci17Ci0gICAg
aWYgKG5vZGUubm9kZVR5cGUoKSAhPSBub2RlVHlwZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgcmV0dXJuIG5vZGUucGFyZW50KCkgPT0gcGFyZW50Tm9kZTsKLX0KLQogU2Nyb2xsaW5n
Tm9kZUlEIFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlVW5wYXJlbnRlZE5vZGUoU2Nyb2xsaW5n
Tm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBuZXdOb2RlSUQpCiB7CiAgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbGluZ1RyZWUsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nU3RhdGVUcmVl
ICIgPDwgdGhpcyA8PCAiIGNyZWF0ZVVucGFyZW50ZWROb2RlICIgPDwgbmV3Tm9kZUlEKTsKQEAg
LTExNSw3ICsxMjMsNyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVh
dGVVbnBhcmVudGVkTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVAogICAgIH0KIAogICAgIGF1
dG8gc3RhdGVOb2RlID0gY3JlYXRlTm9kZShub2RlVHlwZSwgbmV3Tm9kZUlEKTsKLSAgICBhZGRO
b2RlKHN0YXRlTm9kZS5nZXQoKSk7CisgICAgYWRkTm9kZShzdGF0ZU5vZGUpOwogICAgIG1fdW5w
YXJlbnRlZE5vZGVzLmFkZChuZXdOb2RlSUQsIFdURk1vdmUoc3RhdGVOb2RlKSk7CiAgICAgcmV0
dXJuIG5ld05vZGVJRDsKIH0KQEAgLTEzNiw3ICsxNDQsNyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Ny
b2xsaW5nU3RhdGVUcmVlOjppbnNlcnROb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBT
Y3JvbAogICAgICAgICAgICAgICAgIHJldHVybiBuZXdOb2RlSUQ7CiAKICAgICAgICAgICAgIEFT
U0VSVChjdXJyZW50SW5kZXggIT0gbm90Rm91bmQpOwotICAgICAgICAgICAgUmVmPFNjcm9sbGlu
Z1N0YXRlTm9kZT4gcHJvdGVjdGVkTm9kZSgqbm9kZSk7CisgICAgICAgICAgICBSZWYgcHJvdGVj
dGVkTm9kZSB7ICpub2RlIH07CiAgICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkQXRJbmRl
eChjdXJyZW50SW5kZXgpOwogCiAgICAgICAgICAgICBpZiAoY2hpbGRJbmRleCA9PSBub3RGb3Vu
ZCkKQEAgLTE3NCwxNyArMTgyLDE2IEBAIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdTdGF0ZVRy
ZWU6Omluc2VydE5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sCiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChwYXJlbnRJRCkgewotICAg
ICAgICAgICAgaWYgKGF1dG8gdW5wYXJlbnRlZE5vZGUgPSBtX3VucGFyZW50ZWROb2Rlcy50YWtl
KG5ld05vZGVJRCkpIHsKLSAgICAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
VHJlZSwgc3RyZWFtIDw8ICJTY3JvbGxpbmdTdGF0ZVRyZWUgIiA8PCB0aGlzIDw8ICIgaW5zZXJ0
Tm9kZSByZWF0dGFjaGluZyBub2RlICIgPDwgbmV3Tm9kZUlEKTsKLSAgICAgICAgICAgICAgICBu
ZXdOb2RlID0gdW5wYXJlbnRlZE5vZGUuZ2V0KCk7Ci0gICAgICAgICAgICAgICAgbm9kZVdhc1Jl
YXR0YWNoZWRSZWN1cnNpdmUoKnVucGFyZW50ZWROb2RlKTsKLQotICAgICAgICAgICAgICAgIGlm
IChjaGlsZEluZGV4ID09IG5vdEZvdW5kKQotICAgICAgICAgICAgICAgICAgICBwYXJlbnQtPmFw
cGVuZENoaWxkKHVucGFyZW50ZWROb2RlLnJlbGVhc2VOb25OdWxsKCkpOwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcGFyZW50LT5pbnNlcnRDaGlsZCh1bnBhcmVu
dGVkTm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBjaGlsZEluZGV4KTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgQVNTRVJUKHBhcmVudElEKTsKKyAgICAgICAgaWYgKGF1dG8gdW5wYXJlbnRlZE5vZGUg
PSBtX3VucGFyZW50ZWROb2Rlcy50YWtlKG5ld05vZGVJRCkpIHsKKyAgICAgICAgICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAi
IDw8IHRoaXMgPDwgIiBpbnNlcnROb2RlIHJlYXR0YWNoaW5nIG5vZGUgIiA8PCBuZXdOb2RlSUQp
OworICAgICAgICAgICAgbmV3Tm9kZSA9IHVucGFyZW50ZWROb2RlLmdldCgpOworICAgICAgICAg
ICAgbm9kZVdhc1JlYXR0YWNoZWRSZWN1cnNpdmUoKnVucGFyZW50ZWROb2RlKTsKKworICAgICAg
ICAgICAgaWYgKGNoaWxkSW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgICAgICAgICAgcGFyZW50
LT5hcHBlbmRDaGlsZCh1bnBhcmVudGVkTm9kZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwYXJlbnQtPmluc2VydENoaWxkKHVucGFyZW50ZWRO
b2RlLnJlbGVhc2VOb25OdWxsKCksIGNoaWxkSW5kZXgpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFuZXdOb2RlKSB7CkBAIC0yMDksNyArMjE2LDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVRy
ZWU6OnVucGFyZW50Tm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRo
aXMgPDwgIiB1bnBhcmVudE5vZGUgIiA8PCBub2RlSUQpOwogCiAgICAgLy8gVGhlIG5vZGUgbWF5
IG5vdCBiZSBmb3VuZCBpZiBjbGVhcigpIHdhcyByZWNlbnRseSBjYWxsZWQuCi0gICAgYXV0byBw
cm90ZWN0ZWROb2RlID0gbV9zdGF0ZU5vZGVNYXAuZ2V0KG5vZGVJRCk7CisgICAgUmVmUHRyIHBy
b3RlY3RlZE5vZGUgPSBtX3N0YXRlTm9kZU1hcC5nZXQobm9kZUlEKTsKICAgICBpZiAoIXByb3Rl
Y3RlZE5vZGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjI4LDE1ICsyMzUsMTQgQEAgdm9pZCBT
Y3JvbGxpbmdTdGF0ZVRyZWU6OnVucGFyZW50Q2hpbGRyZW5BbmREZXN0cm95Tm9kZShTY3JvbGxp
bmdOb2RlSUQgbm9kZUlEKQogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJl
YW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwgIiB1bnBhcmVudENoaWxkcmVu
QW5kRGVzdHJveU5vZGUgIiA8PCBub2RlSUQpOwogCiAgICAgLy8gVGhlIG5vZGUgbWF5IG5vdCBi
ZSBmb3VuZCBpZiBjbGVhcigpIHdhcyByZWNlbnRseSBjYWxsZWQuCi0gICAgYXV0byBwcm90ZWN0
ZWROb2RlID0gbV9zdGF0ZU5vZGVNYXAudGFrZShub2RlSUQpOworICAgIFJlZlB0ciBwcm90ZWN0
ZWROb2RlID0gbV9zdGF0ZU5vZGVNYXAudGFrZShub2RlSUQpOwogICAgIGlmICghcHJvdGVjdGVk
Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHByb3RlY3RlZE5vZGUgPT0gbV9yb290
U3RhdGVOb2RlKQogICAgICAgICBtX3Jvb3RTdGF0ZU5vZGUgPSBudWxscHRyOwogCi0gICAgaWYg
KHByb3RlY3RlZE5vZGUtPmNoaWxkcmVuKCkpIHsKLSAgICAgICAgYXV0byBpc29sYXRlZENoaWxk
cmVuID0gcHJvdGVjdGVkTm9kZS0+dGFrZUNoaWxkcmVuKCk7CisgICAgaWYgKGF1dG8gaXNvbGF0
ZWRDaGlsZHJlbiA9IHByb3RlY3RlZE5vZGUtPnRha2VDaGlsZHJlbigpKSB7CiAgICAgICAgIGZv
ciAoYXV0byBjaGlsZCA6ICppc29sYXRlZENoaWxkcmVuKSB7CiAgICAgICAgICAgICBjaGlsZC0+
cmVtb3ZlRnJvbVBhcmVudCgpOwogICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGlu
Z1RyZWUsIHN0cmVhbSA8PCAiIG1vdmluZyAiIDw8IGNoaWxkLT5zY3JvbGxpbmdOb2RlSUQoKSA8
PCAiIHRvIHVucGFyZW50ZWQgbm9kZXMiKTsKQEAgLTI0NSw3ICsyNTEsNyBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlVHJlZTo6dW5wYXJlbnRDaGlsZHJlbkFuZERlc3Ryb3lOb2RlKFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCiAgICAgfQogICAgIAogICAgIHByb3RlY3RlZE5vZGUtPnJlbW92ZUZyb21Q
YXJlbnQoKTsKLSAgICB3aWxsUmVtb3ZlTm9kZShwcm90ZWN0ZWROb2RlLmdldCgpKTsKKyAgICB3
aWxsUmVtb3ZlTm9kZSgqcHJvdGVjdGVkTm9kZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVU
cmVlOjpkZXRhY2hBbmREZXN0cm95U3VidHJlZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAt
MjYyLDI5ICsyNjgsMTggQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OmRldGFjaEFuZERlc3Ry
b3lTdWJ0cmVlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiAKICAgICAvLyBJZiB0aGUgbm9kZSB3
YXMgdW5wYXJlbnRlZCwgcmVtb3ZlIGl0IGZyb20gbV91bnBhcmVudGVkTm9kZXMgKGtlZXBpbmcg
aXQgYWxpdmUgdW50aWwgdGhpcyBmdW5jdGlvbiByZXR1cm5zKS4KICAgICBhdXRvIHVucGFyZW50
ZWROb2RlID0gbV91bnBhcmVudGVkTm9kZXMudGFrZShub2RlSUQpOwotICAgIHJlbW92ZU5vZGVB
bmRBbGxEZXNjZW5kYW50cyhub2RlLmdldCgpKTsKKyAgICByZW1vdmVOb2RlQW5kQWxsRGVzY2Vu
ZGFudHMoKm5vZGUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6Y2xlYXIoKQogewot
ICAgIGlmIChyb290U3RhdGVOb2RlKCkpCi0gICAgICAgIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5k
YW50cyhyb290U3RhdGVOb2RlKCkpOworICAgIGlmIChhdXRvKiBub2RlID0gcm9vdFN0YXRlTm9k
ZSgpKQorICAgICAgICByZW1vdmVOb2RlQW5kQWxsRGVzY2VuZGFudHMoKm5vZGUpOwogCiAgICAg
bV9zdGF0ZU5vZGVNYXAuY2xlYXIoKTsKICAgICBtX3VucGFyZW50ZWROb2Rlcy5jbGVhcigpOwog
fQogCi12b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6bm9kZVdhc1JlYXR0YWNoZWRSZWN1cnNpdmUo
U2Nyb2xsaW5nU3RhdGVOb2RlJiBub2RlKQotewotICAgIC8vIFdoZW4gYSBub2RlIGlzIHJlLWF0
dGFjaGVkLCB0aGUgU2Nyb2xsaW5nVHJlZSBpcyByZWNyZWF0aW5nIHRoZSBTY3JvbGxpbmdOb2Rl
IGZyb20gc2NyYXRjaCwgc28gd2UgbmVlZCB0byBzZXQgYWxsIHRoZSBkaXJ0eSBiaXRzLgotICAg
IG5vZGUuc2V0UHJvcGVydHlDaGFuZ2VzQWZ0ZXJSZWF0dGFjaCgpOwotCi0gICAgaWYgKGF1dG8q
IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbigpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgY2hpbGQg
OiAqY2hpbGRyZW4pCi0gICAgICAgICAgICBub2RlV2FzUmVhdHRhY2hlZFJlY3Vyc2l2ZSgqY2hp
bGQpOwotICAgIH0KLX0KLQogc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gU2Ny
b2xsaW5nU3RhdGVUcmVlOjpjb21taXQoTGF5ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSBwcmVmZXJy
ZWRMYXllclJlcHJlc2VudGF0aW9uKQogewogICAgIGlmICghbV91bnBhcmVudGVkTm9kZXMuaXNF
bXB0eSgpKSB7CkBAIC0yOTMsMTggKzI4OCwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5n
U3RhdGVUcmVlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNvbW1pdChMYXllclJlcHJlc2VudGF0aQog
ICAgIH0KIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2xvbmVzIGFuZCByZXNldHMgdGhlIGN1cnJl
bnQgc3RhdGUgdHJlZSwgYnV0IGxlYXZlcyB0aGUgdHJlZSBzdHJ1Y3R1cmUgaW50YWN0LgotICAg
IHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHRyZWVTdGF0ZUNsb25lID0gbWFr
ZVVuaXF1ZTxTY3JvbGxpbmdTdGF0ZVRyZWU+KCk7CisgICAgYXV0byB0cmVlU3RhdGVDbG9uZSA9
IG1ha2VVbmlxdWU8U2Nyb2xsaW5nU3RhdGVUcmVlPigpOwogICAgIHRyZWVTdGF0ZUNsb25lLT5z
ZXRQcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKHByZWZlcnJlZExheWVyUmVwcmVzZW50YXRp
b24pOwogCiAgICAgaWYgKG1fcm9vdFN0YXRlTm9kZSkKICAgICAgICAgdHJlZVN0YXRlQ2xvbmUt
PnNldFJvb3RTdGF0ZU5vZGUoc3RhdGljX3JlZmVyZW5jZV9jYXN0PFNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0ZU5vZGUtPmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0
ZUNsb25lKSkpOwogCiAgICAgLy8gTm93IHRoZSBjbG9uZSB0cmVlIGhhcyBjaGFuZ2VkIHByb3Bl
cnRpZXMsIGFuZCB0aGUgb3JpZ2luYWwgdHJlZSBkb2VzIG5vdC4KLSAgICB0cmVlU3RhdGVDbG9u
ZS0+bV9oYXNDaGFuZ2VkUHJvcGVydGllcyA9IG1faGFzQ2hhbmdlZFByb3BlcnRpZXM7Ci0gICAg
bV9oYXNDaGFuZ2VkUHJvcGVydGllcyA9IGZhbHNlOwotCi0gICAgdHJlZVN0YXRlQ2xvbmUtPm1f
aGFzTmV3Um9vdFN0YXRlTm9kZSA9IG1faGFzTmV3Um9vdFN0YXRlTm9kZTsKLSAgICBtX2hhc05l
d1Jvb3RTdGF0ZU5vZGUgPSBmYWxzZTsKKyAgICB0cmVlU3RhdGVDbG9uZS0+bV9oYXNDaGFuZ2Vk
UHJvcGVydGllcyA9IHN0ZDo6ZXhjaGFuZ2UobV9oYXNDaGFuZ2VkUHJvcGVydGllcywgZmFsc2Up
OworICAgIHRyZWVTdGF0ZUNsb25lLT5tX2hhc05ld1Jvb3RTdGF0ZU5vZGUgPSBzdGQ6OmV4Y2hh
bmdlKG1faGFzTmV3Um9vdFN0YXRlTm9kZSwgZmFsc2UpOwogCiAgICAgcmV0dXJuIHRyZWVTdGF0
ZUNsb25lOwogfQpAQCAtMzE5LDYzICszMTEsNTYgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6
OmFkZE5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlJiBub2RlKQogICAgIG1fc3RhdGVOb2RlTWFwLmFk
ZChub2RlLnNjcm9sbGluZ05vZGVJRCgpLCAmbm9kZSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3Rh
dGVUcmVlOjpyZW1vdmVOb2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBu
b2RlKQordm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50
cyhTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUpCiB7Ci0gICAgYXV0byogcGFyZW50ID0gbm9kZS0+
cGFyZW50KCk7CisgICAgYXV0byogcGFyZW50ID0gbm9kZS5wYXJlbnQoKTsKIAogICAgIHJlY3Vy
c2l2ZU5vZGVXaWxsQmVSZW1vdmVkKG5vZGUpOwogCi0gICAgaWYgKG5vZGUgPT0gbV9yb290U3Rh
dGVOb2RlKQorICAgIGlmICgmbm9kZSA9PSBtX3Jvb3RTdGF0ZU5vZGUpCiAgICAgICAgIG1fcm9v
dFN0YXRlTm9kZSA9IG51bGxwdHI7CiAgICAgZWxzZSBpZiAocGFyZW50KSB7CiAgICAgICAgIEFT
U0VSVChwYXJlbnQtPmNoaWxkcmVuKCkpOwotICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJl
bigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hp
bGRyZW4oKS0+Y29udGFpbnMoJm5vZGUpKTsKICAgICAgICAgaWYgKGF1dG8qIGNoaWxkcmVuID0g
cGFyZW50LT5jaGlsZHJlbigpKSB7Ci0gICAgICAgICAgICBzaXplX3QgaW5kZXggPSBjaGlsZHJl
bi0+ZmluZChub2RlKTsKLSAgICAgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkKKyAgICAg
ICAgICAgIGlmIChzaXplX3QgaW5kZXggPSBjaGlsZHJlbi0+ZmluZCgmbm9kZSk7IGluZGV4ICE9
IG5vdEZvdW5kKQogICAgICAgICAgICAgICAgIGNoaWxkcmVuLT5yZW1vdmUoaW5kZXgpOwogICAg
ICAgICB9CiAgICAgfQogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6cmVjdXJzaXZlTm9k
ZVdpbGxCZVJlbW92ZWQoU2Nyb2xsaW5nU3RhdGVOb2RlKiBjdXJyTm9kZSkKK3ZvaWQgU2Nyb2xs
aW5nU3RhdGVUcmVlOjpyZWN1cnNpdmVOb2RlV2lsbEJlUmVtb3ZlZChTY3JvbGxpbmdTdGF0ZU5v
ZGUmIGN1cnJlbnROb2RlKQogewotICAgIGN1cnJOb2RlLT5zZXRQYXJlbnQobnVsbHB0cik7Ci0g
ICAgd2lsbFJlbW92ZU5vZGUoY3Vyck5vZGUpOworICAgIGN1cnJlbnROb2RlLnNldFBhcmVudChu
dWxscHRyKTsKKyAgICB3aWxsUmVtb3ZlTm9kZShjdXJyZW50Tm9kZSk7CiAKLSAgICBpZiAoYXV0
byogY2hpbGRyZW4gPSBjdXJyTm9kZS0+Y2hpbGRyZW4oKSkgeworICAgIGlmIChhdXRvKiBjaGls
ZHJlbiA9IGN1cnJlbnROb2RlLmNoaWxkcmVuKCkpIHsKICAgICAgICAgZm9yIChhdXRvJiBjaGls
ZCA6ICpjaGlsZHJlbikKLSAgICAgICAgICAgIHJlY3Vyc2l2ZU5vZGVXaWxsQmVSZW1vdmVkKGNo
aWxkLmdldCgpKTsKKyAgICAgICAgICAgIHJlY3Vyc2l2ZU5vZGVXaWxsQmVSZW1vdmVkKCpjaGls
ZCk7CiAgICAgfQogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6d2lsbFJlbW92ZU5vZGUo
U2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlKQordm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OndpbGxS
ZW1vdmVOb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSYgbm9kZSkKIHsKLSAgICBtX3N0YXRlTm9kZU1h
cC5yZW1vdmUobm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCkpOworICAgIG1fc3RhdGVOb2RlTWFwLnJl
bW92ZShub2RlLnNjcm9sbGluZ05vZGVJRCgpKTsKICAgICBzZXRIYXNDaGFuZ2VkUHJvcGVydGll
cygpOwogfQogCiBTY3JvbGxpbmdTdGF0ZU5vZGUqIFNjcm9sbGluZ1N0YXRlVHJlZTo6c3RhdGVO
b2RlRm9ySUQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbExheWVySUQpIGNvbnN0CiB7Ci0gICAgaWYg
KCFzY3JvbGxMYXllcklEKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8gaXQg
PSBtX3N0YXRlTm9kZU1hcC5maW5kKHNjcm9sbExheWVySUQpOwotICAgIGlmIChpdCA9PSBtX3N0
YXRlTm9kZU1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBBU1NFUlQo
aXQtPnZhbHVlLT5zY3JvbGxpbmdOb2RlSUQoKSA9PSBzY3JvbGxMYXllcklEKTsKLSAgICByZXR1
cm4gaXQtPnZhbHVlLmdldCgpOworICAgIGF1dG8qIG5vZGUgPSBzY3JvbGxMYXllcklEID8gbV9z
dGF0ZU5vZGVNYXAuZ2V0KHNjcm9sbExheWVySUQpIDogbnVsbHB0cjsKKyAgICBBU1NFUlQoIW5v
ZGUgfHwgbm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCkgPT0gc2Nyb2xsTGF5ZXJJRCk7CisgICAgcmV0
dXJuIG5vZGU7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpyZWNvbmNpbGVMYXllclBv
c2l0aW9uc1JlY3Vyc2l2ZShTY3JvbGxpbmdTdGF0ZU5vZGUmIGN1cnJOb2RlLCBjb25zdCBMYXlv
dXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBhY3Rp
b24pCitzdGF0aWMgdm9pZCByZWNvbmNpbGVMYXllclBvc2l0aW9uc1JlY3Vyc2l2ZShTY3JvbGxp
bmdTdGF0ZU5vZGUmIGN1cnJlbnROb2RlLCBjb25zdCBMYXlvdXRSZWN0JiBsYXlvdXRWaWV3cG9y
dCwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBhY3Rpb24pCiB7Ci0gICAgY3Vyck5vZGUu
cmVjb25jaWxlTGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0UmVjdChsYXlvdXRWaWV3cG9ydCwgYWN0
aW9uKTsKKyAgICBjdXJyZW50Tm9kZS5yZWNvbmNpbGVMYXllclBvc2l0aW9uRm9yVmlld3BvcnRS
ZWN0KGxheW91dFZpZXdwb3J0LCBhY3Rpb24pOwogCi0gICAgaWYgKCFjdXJyTm9kZS5jaGlsZHJl
bigpKQorICAgIGlmICghY3VycmVudE5vZGUuY2hpbGRyZW4oKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAotICAgIGZvciAoYXV0byYgY2hpbGQgOiAqY3Vyck5vZGUuY2hpbGRyZW4oKSkgeworICAg
IGZvciAoYXV0byYgY2hpbGQgOiAqY3VycmVudE5vZGUuY2hpbGRyZW4oKSkgewogICAgICAgICAv
LyBOZXZlciBuZWVkIHRvIGNyb3NzIGZyYW1lIGJvdW5kYXJpZXMsIHNpbmNlIHZpZXdwb3J0IHJl
Y3QgcmVjb25jaWxpYXRpb24gaXMgcGVyIGZyYW1lLgogICAgICAgICBpZiAoaXM8U2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KGNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpA
QCAtMzg2LDI0ICszNzEsMTggQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnJlY29uY2lsZUxh
eWVyUG9zaXRpb25zUmVjdXJzaXZlKFNjcm9sbGluZ1N0YXRlTm9kZSYgY3UKIAogdm9pZCBTY3Jv
bGxpbmdTdGF0ZVRyZWU6OnJlY29uY2lsZVZpZXdwb3J0Q29uc3RyYWluZWRMYXllclBvc2l0aW9u
cyhTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlELCBjb25zdCBMYXlvdXRSZWN0JiBsYXlv
dXRWaWV3cG9ydCwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBhY3Rpb24pCiB7Ci0gICAg
YXV0byogc2Nyb2xsaW5nTm9kZSA9IHN0YXRlTm9kZUZvcklEKHNjcm9sbGluZ05vZGVJRCk7Ci0g
ICAgaWYgKCFzY3JvbGxpbmdOb2RlKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgcmVjb25j
aWxlTGF5ZXJQb3NpdGlvbnNSZWN1cnNpdmUoKnNjcm9sbGluZ05vZGUsIGxheW91dFZpZXdwb3J0
LCBhY3Rpb24pOworICAgIGlmIChhdXRvKiBzY3JvbGxpbmdOb2RlID0gc3RhdGVOb2RlRm9ySUQo
c2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAgcmVjb25jaWxlTGF5ZXJQb3NpdGlvbnNSZWN1cnNp
dmUoKnNjcm9sbGluZ05vZGUsIGxheW91dFZpZXdwb3J0LCBhY3Rpb24pOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCi12b2lkIHNob3dTY3JvbGxpbmdTdGF0
ZVRyZWUoY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlKiB0cmVlKQordm9pZCBzaG93
U2Nyb2xsaW5nU3RhdGVUcmVlKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZSYgdHJl
ZSkKIHsKLSAgICBpZiAoIXRyZWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gcm9vdE5v
ZGUgPSB0cmVlLT5yb290U3RhdGVOb2RlKCk7CisgICAgYXV0byByb290Tm9kZSA9IHRyZWUucm9v
dFN0YXRlTm9kZSgpOwogICAgIGlmICghcm9vdE5vZGUpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlz
KCJTY3JvbGxpbmcgc3RhdGUgdHJlZSAlcCB3aXRoIG5vIHJvb3Qgbm9kZVxuIiwgdHJlZSk7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiU2Nyb2xsaW5nIHN0YXRlIHRyZWUgJXAgd2l0aCBubyByb290
IG5vZGVcbiIsICZ0cmVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDExLDEyICsz
OTAsOSBAQCB2b2lkIHNob3dTY3JvbGxpbmdTdGF0ZVRyZWUoY29uc3QgV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVUcmVlKiB0cmVlKQogICAgIFdURkxvZ0Fsd2F5cygiJXNcbiIsIG91dHB1dC51dGY4
KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBzaG93U2Nyb2xsaW5nU3RhdGVUcmVlKGNvbnN0IFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlTm9kZSogbm9kZSkKK3ZvaWQgc2hvd1Njcm9sbGluZ1N0YXRlVHJl
ZShjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUpCiB7Ci0gICAgaWYgKCFu
b2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzaG93U2Nyb2xsaW5nU3RhdGVUcmVlKCZub2Rl
LT5zY3JvbGxpbmdTdGF0ZVRyZWUoKSk7CisgICAgc2hvd1Njcm9sbGluZ1N0YXRlVHJlZShub2Rl
LnNjcm9sbGluZ1N0YXRlVHJlZSgpKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oCmluZGV4IDAwYWY0MTgyODNj
ZjRiZTRjZmU5OTllZWIzNjQyMzZjZmMyZmRhZmIuLjNhZThlOWRiZTQ3MGUxYTRjYThmMTBlYjY3
OTNiOWU0NTk3ZWM4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1N0YXRlVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1N0YXRlVHJlZS5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB1bnNp
Z25lZCBub2RlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlTm9kZU1hcC5zaXplKCk7IH0K
ICAgICB1bnNpZ25lZCBzY3JvbGxpbmdOb2RlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bGluZ05vZGVDb3VudDsgfQogCi0gICAgdHlwZWRlZiBIYXNoTWFwPFNjcm9sbGluZ05vZGVJRCwg
UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+IFN0YXRlTm9kZU1hcDsKKyAgICB1c2luZyBTdGF0
ZU5vZGVNYXAgPSBIYXNoTWFwPFNjcm9sbGluZ05vZGVJRCwgUmVmUHRyPFNjcm9sbGluZ1N0YXRl
Tm9kZT4+OwogICAgIGNvbnN0IFN0YXRlTm9kZU1hcCYgbm9kZU1hcCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhdGVOb2RlTWFwOyB9CiAKICAgICBMYXllclJlcHJlc2VudGF0aW9uOjpUeXBlIHByZWZl
cnJlZExheWVyUmVwcmVzZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZExheWVy
UmVwcmVzZW50YXRpb247IH0KQEAgLTg1LDIzICs4NSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIC0t
bV9zY3JvbGxpbmdOb2RlQ291bnQ7CiAgICAgfQogCi0KIHByaXZhdGU6CiAgICAgdm9pZCBzZXRS
b290U3RhdGVOb2RlKFJlZjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4mJik7CiAg
ICAgdm9pZCBhZGROb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSYpOwogCi0gICAgdm9pZCBub2RlV2Fz
UmVhdHRhY2hlZFJlY3Vyc2l2ZShTY3JvbGxpbmdTdGF0ZU5vZGUmKTsKLQogICAgIFJlZjxTY3Jv
bGxpbmdTdGF0ZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCk7CiAKLSAgICBib29sIG5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVO
b2RlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ1N0YXRlTm9kZSogcGFyZW50Tm9kZSkg
Y29uc3Q7Ci0KLSAgICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3JvbGxpbmdT
dGF0ZU5vZGUqKTsKLQotICAgIHZvaWQgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoU2Nyb2xs
aW5nU3RhdGVOb2RlKik7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlTm9kZShTY3JvbGxpbmdTdGF0ZU5v
ZGUqKTsKKyAgICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0
ZU5vZGUmKTsKIAotICAgIHZvaWQgcmVjb25jaWxlTGF5ZXJQb3NpdGlvbnNSZWN1cnNpdmUoU2Ny
b2xsaW5nU3RhdGVOb2RlJiwgY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0LCBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyAgICB2b2lkIHJlY3Vyc2l2ZU5vZGVXaWxsQmVSZW1v
dmVkKFNjcm9sbGluZ1N0YXRlTm9kZSYpOworICAgIHZvaWQgd2lsbFJlbW92ZU5vZGUoU2Nyb2xs
aW5nU3RhdGVOb2RlJik7CiAKICAgICBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBtX3Njcm9s
bGluZ0Nvb3JkaW5hdG9yOwogICAgIC8vIENvbnRhaW5zIGFsbCB0aGUgbm9kZXMgd2Uga25vdyBh
Ym91dCAodGhvc2UgaW4gdGhlIG1fcm9vdFN0YXRlTm9kZSB0cmVlLCBhbmQgaW4gbV91bnBhcmVu
dGVkTm9kZXMgc3VidHJlZXMpLgpAQCAtMTEwLDE3ICsxMDMsMTcgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFNjcm9sbGluZ05vZGVJRCwgUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+IG1fdW5w
YXJlbnRlZE5vZGVzOwogCiAgICAgUmVmUHRyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdO
b2RlPiBtX3Jvb3RTdGF0ZU5vZGU7Ci0gICAgYm9vbCBtX2hhc0NoYW5nZWRQcm9wZXJ0aWVzIHsg
ZmFsc2UgfTsKLSAgICBib29sIG1faGFzTmV3Um9vdFN0YXRlTm9kZSB7IGZhbHNlIH07CiAgICAg
dW5zaWduZWQgbV9zY3JvbGxpbmdOb2RlQ291bnQgeyAwIH07CiAgICAgTGF5ZXJSZXByZXNlbnRh
dGlvbjo6VHlwZSBtX3ByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24geyBMYXllclJlcHJlc2Vu
dGF0aW9uOjpHcmFwaGljc0xheWVyUmVwcmVzZW50YXRpb24gfTsKKyAgICBib29sIG1faGFzQ2hh
bmdlZFByb3BlcnRpZXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNOZXdSb290U3RhdGVOb2Rl
IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmbmRlZiBOREVC
VUcKLXZvaWQgc2hvd1Njcm9sbGluZ1N0YXRlVHJlZShjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWUqKTsKLXZvaWQgc2hvd1Njcm9sbGluZ1N0YXRlVHJlZShjb25zdCBXZWJDb3JlOjpT
Y3JvbGxpbmdTdGF0ZU5vZGUqKTsKK3ZvaWQgc2hvd1Njcm9sbGluZ1N0YXRlVHJlZShjb25zdCBX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWUmKTsKK3ZvaWQgc2hvd1Njcm9sbGluZ1N0YXRlVHJl
ZShjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGUmKTsKICNlbmRpZgogCiAjZW5kaWYg
Ly8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
</data>

          </attachment>
      

    </bug>

</bugzilla>