<?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>134040</bug_id>
          
          <creation_ts>2014-06-18 14:12:39 -0700</creation_ts>
          <short_desc>Make ScrollingStateNodes refcounted, and other minor cleanup</short_desc>
          <delta_ts>2014-06-18 14:44:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016535</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-18 14:12:39 -0700</bug_when>
    <thetext>Make ScrollingStateNodes refcounted, and other minor cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016536</commentid>
    <comment_count>1</comment_count>
      <attachid>233327</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-18 14:14:37 -0700</bug_when>
    <thetext>Created attachment 233327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016546</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-18 14:44:04 -0700</bug_when>
    <thetext>https://trac.webkit.org/r170118</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233327</attachid>
            <date>2014-06-18 14:14:37 -0700</date>
            <delta_ts>2014-06-18 14:21:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134040-20140618141415.patch</filename>
            <type>text/plain</type>
            <size>26197</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlMzFmY2QzZDNhZDJj
NmI5OWY0YTc5N2IwMDBjOTk3OWM3MmUyZS4uNjA0MGY3MGI1NGMwNGE1MTdmYWYyMjY4MTk5ZGJh
YmM2N2I4ZDkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE0LTA2LTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
aW5nU3RhdGVOb2RlcyByZWZjb3VudGVkLCBhbmQgb3RoZXIgbWlub3IgY2xlYW51cAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MDQwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlcGFyZSBmb3IgZnV0
dXJlIHNjcm9sbGluZyBmcmFtZSBneXJhdGlvbnMgYnkgbWFraW5nCisgICAgICAgIFNjcm9sbGlu
Z1N0YXRlTm9kZXMgcmVmY291bnRlZC4KKyAgICAgICAgCisgICAgICAgIFJlbmFtZSBTY3JvbGxp
bmdTdGF0ZU5vZGU6OnJlbW92ZUNoaWxkKCkgdG8gcmVtb3ZlRGVzY2VuZGFudCgpCisgICAgICAg
IHNpbmNlIHRoYXQncyB3aGF0IGl0IGRvZXMuIEFsc28gcmVuYW1lIGRpZFJlbW92ZU5vZGUoKSB0
byB3aWxsUmVtb3ZlTm9kZSgpCisgICAgICAgIHRvIGJldHRlciBtYXRjaCB0aGUgYmVoYXZpb3Iu
CisgICAgICAgIAorICAgICAgICBVc2UgJ2F1dG8nIGluIG1vcmUgcGxhY2VzLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jQ2hpbGRQb3NpdGlvbnMp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OmNsb25lKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5oOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmNsb25l
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlOjphcHBlbmRDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OnJlbW92ZURlc2NlbmRhbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlOjp3aWxsQmVSZW1vdmVkRnJvbVN0YXRl
VHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OnJlbW92ZUNoaWxk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZTo6Y2hpbGRyZW4pOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Nj
cm9sbGluZ05vZGU6OmNsb25lKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVN0aWNreU5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGU6OmNsb25lKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVN0aWNreU5vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6cmVtb3ZlTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6OndpbGxSZW1vdmVOb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6ZGlkUmVtb3ZlTm9kZSk6IERl
bGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6OnNldFJvb3RTdGF0ZU5vZGUpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUpOgorCiAyMDE0LTA2
LTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFtV
SS1zaWRlIGNvbXBvc2l0aW5nXSBmaXggcmVmbGVjdGlvbnMgb24gY29tcG9zaXRlZCBsYXllcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmMzBhMmE0N2VhMmQwYTYwMDEyZDM3ZTQwZWEwOGJlNTIwNTVkYWFiLi5k
MDYwNTFlYTU4MGIwMjFlMzEwNTQ4NDkxNjMwN2JlYTJlNDQwNmM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTQtMDYtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWFrZSBTY3JvbGxpbmdTdGF0ZU5vZGVzIHJlZmNvdW50ZWQsIGFu
ZCBvdGhlciBtaW5vciBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzQwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmVuY29kZU5vZGVBbmREZXNjZW5k
YW50cyk6CisKIDIwMTQtMDYtMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgW1VJLXNpZGUgY29tcG9zaXRpbmddIGZpeCByZWZsZWN0aW9ucyBvbiBj
b21wb3NpdGVkIGxheWVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1YWMxMDRmN2M5OThl
NzI3NTdiNTU3M2Y1MmVjMGVjNjEyOTE5OWI1Li44MDg3OTAyZmFjODM4NTJiYTNhYzYzNDIwNmY2
OWI1MDExN2JkYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzQ0LDcgKzM0NCw3IEBA
IHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY0NoaWxkUG9zaXRpb25zKGNvbnN0
IExheW91dFJlY3QmIHZpZXdwb3J0UmVjCiAgICAgaWYgKCFtX3Njcm9sbGluZ1N0YXRlVHJlZS0+
cm9vdFN0YXRlTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8T3duUHRyPFNj
cm9sbGluZ1N0YXRlTm9kZT4+KiBjaGlsZHJlbiA9IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290
U3RhdGVOb2RlKCktPmNoaWxkcmVuKCk7CisgICAgYXV0byBjaGlsZHJlbiA9IG1fc2Nyb2xsaW5n
U3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCktPmNoaWxkcmVuKCk7CiAgICAgaWYgKCFjaGlsZHJl
bikKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAKaW5kZXggY2NlNDJlYjdlNTIy
MDEwOTBmYmE4NTU3NWZkNzAyYjdhOWUxZDk1Zi4uZDBmZWFmMjc1YTdhNjZkOTlhNjE3OTQ1ZGU4
Yjg3YTJmNzExNDUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmNwcApAQCAtMzUsOSArMzUsOSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU+
IFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBzdGF0
ZVRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRl
Rml4ZWROb2RlPiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6Y3JlYXRlKFNjcm9sbGluZ1N0YXRl
VHJlZSYgc3RhdGVUcmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUoc3RhdGVUcmVlLCBub2RlSUQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlKHN0YXRlVHJl
ZSwgbm9kZUlEKSk7CiB9CiAKIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpTY3JvbGxpbmdTdGF0
ZUZpeGVkTm9kZShTY3JvbGxpbmdTdGF0ZVRyZWUmIHRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCkBAIC01NSw5ICs1NSw5IEBAIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjp+U2Nyb2xsaW5n
U3RhdGVGaXhlZE5vZGUoKQogewogfQogCi1QYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4g
U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OmNsb25lKFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRp
dmVUcmVlKQorUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlRml4
ZWROb2RlOjpjbG9uZShTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlKCp0aGlzLCBhZG9wdGl2
ZVRyZWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ1N0YXRlRml4ZWROb2Rl
KCp0aGlzLCBhZG9wdGl2ZVRyZWUpKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9k
ZTo6dXBkYXRlQ29uc3RyYWludHMoY29uc3QgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmgKaW5kZXggOTQ1YTZlMDI0N2NmZDJiMTQ2Mjhk
ODc0NTA0MzU4YTEyN2Y1YTUwZS4uMGIxZTlmNmMyODlmMzMzYjljNzY4YTBlYjE5ZmE3MWU4ZWMx
NTcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVGaXhlZE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZS5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIEZpeGVkUG9zaXRp
b25WaWV3cG9ydENvbnN0cmFpbnRzOwogCiBjbGFzcyBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZSBm
aW5hbCA6IHB1YmxpYyBTY3JvbGxpbmdTdGF0ZU5vZGUgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlPiBjcmVhdGUoU2Nyb2xsaW5nU3RhdGVU
cmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3JvbGxpbmdT
dGF0ZUZpeGVkTm9kZT4gY3JlYXRlKFNjcm9sbGluZ1N0YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJ
RCk7CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShT
Y3JvbGxpbmdTdGF0ZVRyZWUmKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3Rh
dGVOb2RlPiBjbG9uZShTY3JvbGxpbmdTdGF0ZVRyZWUmKTsKIAogICAgIHZpcnR1YWwgflNjcm9s
bGluZ1N0YXRlRml4ZWROb2RlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNw
cAppbmRleCA3MzJiZDk4ZWZmZjJhOTdlYmU0ZjA1OGZmNWY5ZWQxMGFjMDMzOGJkLi41NTE1NTZi
YmZlNTYxNDIzOWFlZTBjYTJjYWJhMzAxNGMxNTIwZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGUuY3BwCkBAIC0zNCw5ICszNCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4gU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmNyZWF0ZShTY3JvbGxpbmdTdGF0ZVRyZWUmIHN0YXRl
VHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1Bhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGU+IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpjcmVh
dGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBzdGF0ZVRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZShzdGF0ZVRyZWUsIG5vZGVJRCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xs
aW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUoc3RhdGVUcmVlLCBub2RlSUQpKTsKIH0KIAogU2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlKFNjcm9sbGluZ1N0YXRlVHJlZSYgc3RhdGVUcmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQpAQCAtOTYsOSArOTYsOSBAQCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6
flNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlKCkKIHsKIH0KIAotUGFzc093blB0cjxT
Y3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpjbG9u
ZShTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKK1Bhc3NSZWZQdHI8U2Nyb2xsaW5n
U3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Y2xvbmUoU2Nyb2xs
aW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBT
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSgqdGhpcywgYWRvcHRpdmVUcmVlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSgq
dGhpcywgYWRvcHRpdmVUcmVlKSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9s
bGluZ05vZGU6OnNldEZyYW1lU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVGcmFtZVNjcm9sbGluZ05vZGUuaAppbmRleCAzOGI3MmUzNmQ4ZTk1ZjdkOGFmY2JiMWMxZjI4
MWQwOWNiN2IxYTE0Li4xMWU5ODBjYjY4ZTZlZWQ2ZWIxZTk5NGM2ZDY0OGYzOWZiZGNjYzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZy
YW1lU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNs
dWRlICJTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw5
ICs0MCw5IEBAIGNsYXNzIFNjcm9sbGJhcjsKIAogY2xhc3MgU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGUgZmluYWwgOiBwdWJsaWMgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZT4gY3JlYXRlKFNjcm9sbGluZ1N0YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+IGNy
ZWF0ZShTY3JvbGxpbmdTdGF0ZVRyZWUmLCBTY3JvbGxpbmdOb2RlSUQpOwogCi0gICAgdmlydHVh
bCBQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVl
Jik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoU2Ny
b2xsaW5nU3RhdGVUcmVlJik7CiAKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAppbmRleCBhOTI5Y2Y1MGQwYTU2ZTEyYzcyODUyNzU3MGFm
Y2Y5MTlhMzYwMDlmLi41ZDUxNjExMDk0YzY3NzcyMWIwZGRlNmQ3YmRkOTI2OTA1MDU0NDEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
Tm9kZS5jcHAKQEAgLTcyLDkgKzcyLDkgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldFBy
b3BlcnR5Q2hhbmdlZCh1bnNpZ25lZCBwcm9wZXJ0eUJpdCkKICAgICBtX3Njcm9sbGluZ1N0YXRl
VHJlZS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcygpOwogfQogCi1QYXNzT3duUHRyPFNjcm9sbGlu
Z1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0
YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQorUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNj
cm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0
aXZlVHJlZSkKIHsKLSAgICBPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZSA9IHRoaXMt
PmNsb25lKGFkb3B0aXZlVHJlZSk7CisgICAgUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xv
bmUgPSB0aGlzLT5jbG9uZShhZG9wdGl2ZVRyZWUpOwogCiAgICAgLy8gTm93IHRoYXQgdGhpcyBu
b2RlIGlzIGNsb25lZCwgcmVzZXQgb3VyIGNoYW5nZSBwcm9wZXJ0aWVzLgogICAgIHJlc2V0Q2hh
bmdlZFByb3BlcnRpZXMoKTsKQEAgLTkyLDI1ICs5MiwyMiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRl
Tm9kZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNj
cm9sbAogICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVBbmRSZXNldChhZG9w
dGl2ZVRyZWUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFBh
c3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjaGlsZE5vZGUpCit2b2lkIFNjcm9sbGluZ1N0
YXRlTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNoaWxk
Tm9kZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0aGlzKTsKIAogICAgIGlmICghbV9j
aGlsZHJlbikKLSAgICAgICAgbV9jaGlsZHJlbiA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8T3duUHRy
PFNjcm9sbGluZ1N0YXRlTm9kZT4+KTsKKyAgICAgICAgbV9jaGlsZHJlbiA9IGFkb3B0UHRyKG5l
dyBWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+KTsKIAogICAgIG1fY2hpbGRyZW4t
PmFwcGVuZChjaGlsZE5vZGUpOwogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6cmVtb3Zl
Q2hpbGQoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlKQordm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6
OnJlbW92ZURlc2NlbmRhbnQoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlKQogewogICAgIGlmICgh
bV9jaGlsZHJlbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2l6ZV90IGluZGV4ID0gbV9jaGls
ZHJlbi0+ZmluZChub2RlKTsKLQotICAgIC8vIFRoZSBpbmRleCB3aWxsIGJlIG5vdEZvdW5kIGlm
IHRoZSBub2RlIHRvIHJlbW92ZSBpcyBhIGRlZXBlci10aGFuLTEtbGV2ZWwgZGVzY2VuZGFudCBv
cgotICAgIC8vIGlmIG5vZGUgaXMgdGhlIHJvb3Qgc3RhdGUgbm9kZS4KICAgICBpZiAoaW5kZXgg
IT0gbm90Rm91bmQpIHsKICAgICAgICAgbm9kZS0+d2lsbEJlUmVtb3ZlZEZyb21TdGF0ZVRyZWUo
KTsKICAgICAgICAgbV9jaGlsZHJlbi0+cmVtb3ZlKGluZGV4KTsKQEAgLTExOCwxMyArMTE1LDEy
IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpyZW1vdmVDaGlsZChTY3JvbGxpbmdTdGF0ZU5v
ZGUqIG5vZGUpCiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBjaGlsZCA6ICptX2NoaWxkcmVuKQot
ICAgICAgICBjaGlsZC0+cmVtb3ZlQ2hpbGQobm9kZSk7CisgICAgICAgIGNoaWxkLT5yZW1vdmVE
ZXNjZW5kYW50KG5vZGUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6d2lsbEJlUmVt
b3ZlZEZyb21TdGF0ZVRyZWUoKQogewotICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLmRpZFJlbW92
ZU5vZGUoc2Nyb2xsaW5nTm9kZUlEKCkpOwotCisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkud2ls
bFJlbW92ZU5vZGUodGhpcyk7CiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVO
b2RlLmgKaW5kZXggYzkwZDE1OWEwOTYxYzJjNTAxYWRjNjA4Yzc3OTMxNDYyMWYyODExOS4uMWE2
MjQzNWI0N2EwY2Y3MjJmZDFlOWM4ZGM2OWMyYmI0M2E0MzI2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmgKQEAgLTMxLDcgKzMx
LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTUwLDcgKzE1MCw3IEBAIHByaXZhdGU6
CiAgICAgVHlwZSBtX3JlcHJlc2VudGF0aW9uOwogfTsKIAotY2xhc3MgU2Nyb2xsaW5nU3RhdGVO
b2RlIHsKK2NsYXNzIFNjcm9sbGluZ1N0YXRlTm9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNjcm9s
bGluZ1N0YXRlTm9kZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIFNjcm9sbGluZ1N0YXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nU3RhdGVU
cmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsKQEAgLTE2NCw4ICsxNjQsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0ZyYW1lU2Nyb2xsaW5nTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZVR5cGUgPT0g
RnJhbWVTY3JvbGxpbmdOb2RlOyB9CiAgICAgYm9vbCBpc092ZXJmbG93U2Nyb2xsaW5nTm9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbm9kZVR5cGUgPT0gT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOyB9CiAK
LSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShTY3JvbGxp
bmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkgPSAwOwotICAgIFBhc3NPd25QdHI8U2Nyb2xsaW5n
U3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVl
KTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShTY3Jv
bGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkgPSAwOworICAgIFBhc3NSZWZQdHI8U2Nyb2xs
aW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVU
cmVlKTsKICAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUm
LCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAKICAgICBlbnVtIHsKQEAgLTE5
NSwxMCArMTk1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhcmVudChTY3JvbGxpbmdTdGF0
ZU5vZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogICAgIFNjcm9sbGluZ05vZGVJ
RCBwYXJlbnROb2RlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudCA/IG1fcGFyZW50LT5zY3Jv
bGxpbmdOb2RlSUQoKSA6IDA7IH0KIAotICAgIFZlY3RvcjxPd25QdHI8U2Nyb2xsaW5nU3RhdGVO
b2RlPj4qIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQorICAg
IFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4qIGNoaWxkcmVuKCkgY29uc3QgeyBy
ZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQogCi0gICAgdm9pZCBhcHBlbmRDaGlsZChQYXNzT3du
UHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4pOwotICAgIHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5n
U3RhdGVOb2RlKik7CisgICAgdm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0
YXRlTm9kZT4pOworICAgIHZvaWQgcmVtb3ZlRGVzY2VuZGFudChTY3JvbGxpbmdTdGF0ZU5vZGUq
KTsKIAogICAgIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKSBjb25zdDsKIApAQCAt
MjE4LDcgKzIxOCw3IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nU3RhdGVUcmVlJiBtX3Njcm9s
bGluZ1N0YXRlVHJlZTsKIAogICAgIFNjcm9sbGluZ1N0YXRlTm9kZSogbV9wYXJlbnQ7Ci0gICAg
T3duUHRyPFZlY3RvcjxPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4+IG1fY2hpbGRyZW47Cisg
ICAgT3duUHRyPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4+IG1fY2hpbGRyZW47
CiAKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fbGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGlu
Z05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVP
dmVyZmxvd1Njcm9sbGluZ05vZGUuY3BwCmluZGV4IDdmZjRhMzc0YWI5ODJhZTliZDE1ZWM4NTdk
ZjA5YjA3N2FjNmJjYzkuLjlmYzk3YzEyNjRlYzBkMzE2MDAxOTMwZmM1MGE3MWYwYzQxYWVlZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTM0LDkgKzM0
LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlPiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZTo6Y3JlYXRlKFNjcm9sbGluZ1N0YXRlVHJlZSYgc3RhdGVUcmVlLCBTY3JvbGxpbmdOb2RlSUQg
bm9kZUlEKQorUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4g
U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNyZWF0ZShTY3JvbGxpbmdTdGF0
ZVRyZWUmIHN0YXRlVHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKHN0YXRlVHJl
ZSwgbm9kZUlEKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JvbGxpbmdTdGF0ZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZShzdGF0ZVRyZWUsIG5vZGVJRCkpOwogfQogCiBTY3JvbGxpbmdTdGF0
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05v
ZGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBzdGF0ZVRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQp
CkBAIC01NSw5ICs1NSw5IEBAIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjp+
U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUoKQogewogfQogCi1QYXNzT3duUHRy
PFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6
OmNsb25lKFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQorUGFzc1JlZlB0cjxTY3Jv
bGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjbG9u
ZShTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKCp0aGlzLCBhZG9wdGl2
ZVRyZWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlKCp0aGlzLCBhZG9wdGl2ZVRyZWUpKTsKIH0KICAgICAKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OnNldFNjcm9sbGVkQ29udGVudHNMYXllcihj
b25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBsYXllclJlcHJlc2VudGF0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Nj
cm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmgKaW5kZXggMDY1OWIwMmIzY2RlZTcyOWQ1YjcwNWIw
ODA5ZDdmZjNjNGE3YzFjMy4uYWYwOTg5MjYwNWZlMGMwOTU4OWE3NjQzNDBjYjM0OGFiYjcxZDAy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5oCkBAIC0zNCw5ICszNCw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Nj
cm9sbGluZ05vZGUgOiBwdWJsaWMgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZT4gY3JlYXRlKFNjcm9sbGluZ1N0YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU+IGNy
ZWF0ZShTY3JvbGxpbmdTdGF0ZVRyZWUmLCBTY3JvbGxpbmdOb2RlSUQpOwogCi0gICAgdmlydHVh
bCBQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVl
Jik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoU2Ny
b2xsaW5nU3RhdGVUcmVlJik7CiAKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdTdGF0ZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcAppbmRleCBkNDBjZTVhYmVlOTg4
YmE0ZTg3OGZlNWQyYjhkNTZiN2QwYTlhZThhLi5iY2VmNTY4Y2ZkNDZhZDhhZWU2NDZhOTVlNDY4
ZTM0MGVjZTI5OTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKQEAgLTM1LDkgKzM1LDkgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9k
ZT4gU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBz
dGF0ZVRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitQYXNzUmVmUHRyPFNjcm9sbGluZ1N0
YXRlU3RpY2t5Tm9kZT4gU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpjcmVhdGUoU2Nyb2xsaW5n
U3RhdGVUcmVlJiBzdGF0ZVRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoc3RhdGVUcmVlLCBub2Rl
SUQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZShz
dGF0ZVRyZWUsIG5vZGVJRCkpOwogfQogCiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OlNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZShTY3JvbGxpbmdTdGF0ZVRyZWUmIHRyZWUsIFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCkBAIC01NSw5ICs1NSw5IEBAIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZTo6
flNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSgpCiB7CiB9CiAKLVBhc3NPd25QdHI8U2Nyb2xsaW5n
U3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OmNsb25lKFNjcm9sbGluZ1N0YXRl
VHJlZSYgYWRvcHRpdmVUcmVlKQorUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZTo6Y2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRy
ZWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUo
KnRoaXMsIGFkb3B0aXZlVHJlZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlKCp0aGlzLCBhZG9wdGl2ZVRyZWUpKTsKIH0KIAogdm9pZCBTY3JvbGxp
bmdTdGF0ZVN0aWNreU5vZGU6OnVwZGF0ZUNvbnN0cmFpbnRzKGNvbnN0IFN0aWNreVBvc2l0aW9u
Vmlld3BvcnRDb25zdHJhaW50cyYgY29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oCmluZGV4IDc1
ZTcyNzkxYzkwNDg3OTJkZjRmNzVlNWMyNjM0MDU4M2VlNGQ3OTQuLjFkNmNiZGIyMDBkY2I3OGQy
ODA1ZjM0ZThmMTg4ZTJlMDIxZDkxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oCkBAIC0zOSw5ICszOSw5
IEBAIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIAogY2xhc3MgU2Ny
b2xsaW5nU3RhdGVTdGlja3lOb2RlIGZpbmFsIDogcHVibGljIFNjcm9sbGluZ1N0YXRlTm9kZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2Rl
PiBjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU+IGNyZWF0ZShTY3JvbGxpbmdT
dGF0ZVRyZWUmLCBTY3JvbGxpbmdOb2RlSUQpOwogCi0gICAgdmlydHVhbCBQYXNzT3duUHRyPFNj
cm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJik7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVl
Jik7CiAKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAK
aW5kZXggN2MwMjRhNzRjNGRkZDI4YmI1ZWRiNWZkZGMyMjAwNWI1ODI1OTk3OC4uMmUzMjRlZWE2
NGEyZjljZWE5ZTdlNjM2ZThlZTRlNTZjMzU5NzdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCkBAIC03Miw5ICs3Miwx
MyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hOb2RlKFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbAogICAgIEFTU0VSVChuZXdOb2RlSUQpOwogCiAg
ICAgaWYgKFNjcm9sbGluZ1N0YXRlTm9kZSogbm9kZSA9IHN0YXRlTm9kZUZvcklEKG5ld05vZGVJ
RCkpIHsKKyAgICAgICAgaWYgKCFwYXJlbnRJRCkKKyAgICAgICAgICAgIHJldHVybiBuZXdOb2Rl
SUQ7CisKICAgICAgICAgU2Nyb2xsaW5nU3RhdGVOb2RlKiBwYXJlbnQgPSBzdGF0ZU5vZGVGb3JJ
RChwYXJlbnRJRCk7CiAgICAgICAgIGlmICghcGFyZW50KQogICAgICAgICAgICAgcmV0dXJuIG5l
d05vZGVJRDsKKwogICAgICAgICBpZiAobm9kZS0+cGFyZW50KCkgPT0gcGFyZW50KQogICAgICAg
ICAgICAgcmV0dXJuIG5ld05vZGVJRDsKIApAQCAtODIsNyArODYsNyBAQCBTY3JvbGxpbmdOb2Rl
SUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVU
eXBlLCBTY3JvbAogICAgICAgICByZW1vdmVOb2RlKG5vZGUpOwogICAgIH0KIAotICAgIFNjcm9s
bGluZ1N0YXRlTm9kZSogbmV3Tm9kZSA9IDA7CisgICAgU2Nyb2xsaW5nU3RhdGVOb2RlKiBuZXdO
b2RlID0gbnVsbHB0cjsKICAgICBpZiAoIXBhcmVudElEKSB7CiAgICAgICAgIC8vIElmIHdlJ3Jl
IHJlc2V0dGluZyB0aGUgcm9vdCBub2RlLCB3ZSBzaG91bGQgY2xlYXIgdGhlIEhhc2hNYXAgYW5k
IGRlc3Ryb3kgdGhlIGN1cnJlbnQgY2hpbGRyZW4uCiAgICAgICAgIGNsZWFyKCk7CkBAIC05Nywy
NSArMTAxLDI1IEBAIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdTdGF0ZVRyZWU6OmF0dGFjaE5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sCiAKICAgICAgICAgc3dpdGNoIChu
b2RlVHlwZSkgewogICAgICAgICBjYXNlIEZpeGVkTm9kZTogewotICAgICAgICAgICAgT3duUHRy
PFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlPiBmaXhlZE5vZGUgPSBTY3JvbGxpbmdTdGF0ZUZpeGVk
Tm9kZTo6Y3JlYXRlKCp0aGlzLCBuZXdOb2RlSUQpOworICAgICAgICAgICAgUmVmUHRyPFNjcm9s
bGluZ1N0YXRlRml4ZWROb2RlPiBmaXhlZE5vZGUgPSBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6
Y3JlYXRlKCp0aGlzLCBuZXdOb2RlSUQpOwogICAgICAgICAgICAgbmV3Tm9kZSA9IGZpeGVkTm9k
ZS5nZXQoKTsKICAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoZml4ZWROb2RlLnJlbGVh
c2UoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFN0aWNr
eU5vZGU6IHsKLSAgICAgICAgICAgIE93blB0cjxTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU+IHN0
aWNreU5vZGUgPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbmV3Tm9k
ZUlEKTsKKyAgICAgICAgICAgIFJlZlB0cjxTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU+IHN0aWNr
eU5vZGUgPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbmV3Tm9kZUlE
KTsKICAgICAgICAgICAgIG5ld05vZGUgPSBzdGlja3lOb2RlLmdldCgpOwogICAgICAgICAgICAg
cGFyZW50LT5hcHBlbmRDaGlsZChzdGlja3lOb2RlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZTogewotICAg
ICAgICAgICAgT3duUHRyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPiBzY3JvbGxp
bmdOb2RlID0gU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmNyZWF0ZSgqdGhpcywg
bmV3Tm9kZUlEKTsKKyAgICAgICAgICAgIFJlZlB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZT4gc2Nyb2xsaW5nTm9kZSA9IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2Rl
OjpjcmVhdGUoKnRoaXMsIG5ld05vZGVJRCk7CiAgICAgICAgICAgICBuZXdOb2RlID0gc2Nyb2xs
aW5nTm9kZS5nZXQoKTsKICAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoc2Nyb2xsaW5n
Tm9kZS5yZWxlYXNlKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBPdmVyZmxvd1Njcm9sbGluZ05vZGU6IHsKLSAgICAgICAgICAgIE93blB0cjxTY3JvbGxp
bmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4gc2Nyb2xsaW5nTm9kZSA9IFNjcm9sbGluZ1N0
YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjcmVhdGUoKnRoaXMsIG5ld05vZGVJRCk7CisgICAg
ICAgICAgICBSZWZQdHI8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU+IHNjcm9s
bGluZ05vZGUgPSBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKCp0
aGlzLCBuZXdOb2RlSUQpOwogICAgICAgICAgICAgbmV3Tm9kZSA9IHNjcm9sbGluZ05vZGUuZ2V0
KCk7CiAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKHNjcm9sbGluZ05vZGUucmVsZWFz
ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTc5LDI0ICsxODMsMjMgQEAgdm9pZCBTY3Jv
bGxpbmdTdGF0ZVRyZWU6OnJlbW92ZU5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAobm9kZSA9PSBtX3Jvb3RTdGF0ZU5vZGUpIHsKLSAgICAg
ICAgZGlkUmVtb3ZlTm9kZShub2RlLT5zY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgIHdpbGxS
ZW1vdmVOb2RlKG5vZGUpOwogICAgICAgICBtX3Jvb3RTdGF0ZU5vZGUgPSBudWxscHRyOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKG1fcm9vdFN0YXRlTm9kZSk7Ci0gICAg
bV9yb290U3RhdGVOb2RlLT5yZW1vdmVDaGlsZChub2RlKTsKKyAgICBtX3Jvb3RTdGF0ZU5vZGUt
PnJlbW92ZURlc2NlbmRhbnQobm9kZSk7CiAKLSAgICAvLyBTY3JvbGxpbmdTdGF0ZVRyZWU6OnJl
bW92ZU5vZGUoKSB3aWxsIGRlc3Ryb3kgY2hpbGRyZW4sIHNvIHdlIGhhdmUgdG8gbWFrZSBzdXJl
IHdlIHJlbW92ZSB0aG9zZSBjaGlsZHJlbgorICAgIC8vIFNjcm9sbGluZ1N0YXRlVHJlZTo6cmVt
b3ZlRGVzY2VuZGFudCgpIHdpbGwgZGVzdHJveSBjaGlsZHJlbiwgc28gd2UgaGF2ZSB0byBtYWtl
IHN1cmUgd2UgcmVtb3ZlIHRob3NlIGNoaWxkcmVuCiAgICAgLy8gZnJvbSB0aGUgSGFzaE1hcC4K
LSAgICBzaXplX3Qgc2l6ZSA9IG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0LnNpemUoKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9zdGF0ZU5v
ZGVNYXAucmVtb3ZlKG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0W2ldKTsKKyAgICBmb3Ig
KGF1dG8gcmVtb3ZlZE5vZGVJRCA6IG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0KQorICAg
ICAgICBtX3N0YXRlTm9kZU1hcC5yZW1vdmUocmVtb3ZlZE5vZGVJRCk7CiB9CiAKLXZvaWQgU2Ny
b2xsaW5nU3RhdGVUcmVlOjpkaWRSZW1vdmVOb2RlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCit2
b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6d2lsbFJlbW92ZU5vZGUoU2Nyb2xsaW5nU3RhdGVOb2Rl
KiBub2RlKQogewotICAgIG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0LmFwcGVuZChub2Rl
SUQpOworICAgIG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0LmFwcGVuZChub2RlLT5zY3Jv
bGxpbmdOb2RlSUQoKSk7CiAgICAgc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaApp
bmRleCBkM2Y5ZTg3MTQ0NmE2ZTY3Zjc2NDEyYTUxY2UwMmQ1OWZjZGZkNDMzLi5hMGQwMTU2NGQ3
ZjAxZDBmMmI3ZDllY2Y0Mjc0MGJiNjFiZTM5M2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaApAQCAtNzksMTQgKzc5LDE0IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nU3RhdGVUcmVlKEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqKTsKIAotICAgIHZvaWQgc2V0Um9vdFN0YXRlTm9kZShQYXNzT3duUHRyPFNj
cm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPiByb290U3RhdGVOb2RlKSB7IG1fcm9vdFN0
YXRlTm9kZSA9IHJvb3RTdGF0ZU5vZGU7IH0KKyAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFz
c1JlZlB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4gcm9vdFN0YXRlTm9kZSkg
eyBtX3Jvb3RTdGF0ZU5vZGUgPSByb290U3RhdGVOb2RlOyB9CiAgICAgdm9pZCBhZGROb2RlKFNj
cm9sbGluZ1N0YXRlTm9kZSopOwogICAgIHZvaWQgcmVtb3ZlTm9kZShTY3JvbGxpbmdTdGF0ZU5v
ZGUqKTsKLSAgICB2b2lkIGRpZFJlbW92ZU5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2b2lk
IHdpbGxSZW1vdmVOb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSopOwogCiAgICAgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciogbV9zY3JvbGxpbmdDb29yZGluYXRvcjsKICAgICBTdGF0ZU5vZGVNYXAg
bV9zdGF0ZU5vZGVNYXA7Ci0gICAgT3duUHRyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdO
b2RlPiBtX3Jvb3RTdGF0ZU5vZGU7CisgICAgUmVmUHRyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3Jv
bGxpbmdOb2RlPiBtX3Jvb3RTdGF0ZU5vZGU7CiAgICAgVmVjdG9yPFNjcm9sbGluZ05vZGVJRD4g
bV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQ7CiAgICAgYm9vbCBtX2hhc0NoYW5nZWRQcm9w
ZXJ0aWVzOwogICAgIGJvb2wgbV9oYXNOZXdSb290U3RhdGVOb2RlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCA2ODlmMzY0NDc2MTlk
YTI4MzQxZWM4MzQ1NzRmZjM5YWM3YzEzNTdlLi5jNzI4NjFjNjlhODg2MjQ4YWFlM2Y2M2U5NTQ0
YTRlMWE5YWFhZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcApAQCAtMTk3LDExICsxOTcsOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnVw
ZGF0ZVRyZWVGcm9tU3RhdGVOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSogc3RhdGVOb2Rl
KQogICAgIH0KIAogICAgIC8vIE5vdyB1cGRhdGUgdGhlIGNoaWxkcmVuIGlmIHdlIGhhdmUgYW55
LgotICAgIFZlY3RvcjxPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4qIHN0YXRlTm9kZUNoaWxk
cmVuID0gc3RhdGVOb2RlLT5jaGlsZHJlbigpOwotICAgIGlmIChzdGF0ZU5vZGVDaGlsZHJlbikg
ewotICAgICAgICBzaXplX3Qgc2l6ZSA9IHN0YXRlTm9kZUNoaWxkcmVuLT5zaXplKCk7Ci0gICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICAgICAgdXBkYXRl
VHJlZUZyb21TdGF0ZU5vZGUoc3RhdGVOb2RlQ2hpbGRyZW4tPmF0KGkpLmdldCgpKTsKKyAgICBp
ZiAoYXV0byBjaGlsZHJlbiA9IHN0YXRlTm9kZS0+Y2hpbGRyZW4oKSkgeworICAgICAgICBmb3Ig
KGF1dG8mIGNoaWxkIDogKmNoaWxkcmVuKQorICAgICAgICAgICAgdXBkYXRlVHJlZUZyb21TdGF0
ZU5vZGUoY2hpbGQuZ2V0KCkpOwogICAgIH0KICAgICBub2RlLT51cGRhdGVBZnRlckNoaWxkcmVu
KCpzdGF0ZU5vZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2Fj
dGlvbi5jcHAKaW5kZXggYTJlZjA2MmZhZWY4MzYwMDg4ODg4YTZlYTNiODcyMjU1MDhkMjAxMC4u
MjgzMzk5N2JiY2MwN2VjOWEyOTFjNTQzOTUwMWFiMWI0ZjViN2RkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRy
YW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0zMzcsMTAgKzMzNyw4IEBA
IHN0YXRpYyB2b2lkIGVuY29kZU5vZGVBbmREZXNjZW5kYW50cyhJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsCiAgICAgaWYgKCFzdGF0ZU5vZGUuY2hpbGRyZW4oKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0ZU5vZGUu
Y2hpbGRyZW4oKS0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgT3duUHRyPFNjcm9sbGlu
Z1N0YXRlTm9kZT4mIGNoaWxkID0gc3RhdGVOb2RlLmNoaWxkcmVuKCktPmF0KGkpOworICAgIGZv
ciAoY29uc3QgYXV0byYgY2hpbGQgOiAqc3RhdGVOb2RlLmNoaWxkcmVuKCkpCiAgICAgICAgIGVu
Y29kZU5vZGVBbmREZXNjZW5kYW50cyhlbmNvZGVyLCAqY2hpbGQuZ2V0KCkpOwotICAgIH0KIH0K
IAogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cg==
</data>
<flag name="review"
          id="257823"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>