<?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>152590</bug_id>
          
          <creation_ts>2015-12-29 16:51:12 -0800</creation_ts>
          <short_desc>Rename &quot;scrollOffsetForFixedPosition&quot; and related functions to refer to scrollPosition</short_desc>
          <delta_ts>2015-12-29 22:25:10 -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>New Bugs</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></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>bdakin</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1151571</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-29 16:51:12 -0800</bug_when>
    <thetext>Rename &quot;scrollOffsetForFixedPosition&quot; and related functions to refer to scrollPosition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151572</commentid>
    <comment_count>1</comment_count>
      <attachid>267993</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-29 16:52:41 -0800</bug_when>
    <thetext>Created attachment 267993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151575</commentid>
    <comment_count>2</comment_count>
      <attachid>267994</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-29 18:43:04 -0800</bug_when>
    <thetext>Created attachment 267994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151589</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-29 22:25:10 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/194442</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267993</attachid>
            <date>2015-12-29 16:52:41 -0800</date>
            <delta_ts>2015-12-29 18:43:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152590-20151229165206.patch</filename>
            <type>text/plain</type>
            <size>29263</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY0NTAyMWE5YjQ0NTU0
ZThkNDAyNDIwYzE2MmU4ZTdiODgxNjE5Ny4uMDYxMGI2Mzg0NWUwNTBiOTNlMGUxMDYwMjg0NWM4
ODViMzEyOWFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE1LTEyLTI5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJlbmFtZSAic2Ny
b2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbiIgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIHJlZmVy
IHRvIHNjcm9sbFBvc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTI1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBhY3R1
YWxseSByZXR1cm5lZCBhIHNjcm9sbCBwb3NpdGlvbgorICAgICAgICAocG9zc2libHkgbmVnYXRp
dmUgZm9yIFJUTCBjb250ZW50KSwgbm90IGEgc2Nyb2xsIG9mZnNldCwgc28gcmVuYW1lIGl0IGFu
ZCByZWxhdGVkCisgICAgICAgIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zml4ZWRTY3JvbGxhYmxlQXJlYUJv
dW5kc0luZmxhdGVkRm9yU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2Nyb2xsUG9zaXRpb25SZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnZpZXdwb3J0Q29uc3RyYWluZWRWaXNpYmxlQ29udGVudFJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRSZXNwZWN0
aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2Vydmlj
ZSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6c2Nyb2xsV2FzVXBk
YXRlZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQ2hpbGRO
b2Rlc0FmdGVyU2Nyb2xsKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uOjpzZXRTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0
ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0
cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3
OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisKKzIwMTUtMTItMjkgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgUmVtb3ZlIFNjcm9sbFZpZXc6OnNjcm9s
bE9mZnNldCgpIGluIHByZXBhcmF0aW9uIGZvciBzY3JvbGxPZmZzZXQgdnMuIHNjcm9sbFBvc2l0
aW9uIGNsYXJpZmljYXRpb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MjU4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggOTkyM2Ri
NzhhYWI4MGM5MGI0Zjc3YTczYTIwOWVlYmUxNGUzMjY5MC4uYjNkMGNlYmVlYTdiODY4ZTEzMGRj
NWZmOTdjY2U5NTAwNjFlYmU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTA3
OCwyMCArMTA3OCwyMCBAQCB2b2lkIEZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dp
bmdUaHJvdHRsaW5nKCkKIAogTGF5b3V0UmVjdCBGcmFtZVZpZXc6OmZpeGVkU2Nyb2xsYWJsZUFy
ZWFCb3VuZHNJbmZsYXRlZEZvclNjcm9sbGluZyhjb25zdCBMYXlvdXRSZWN0JiB1bmluZmxhdGVk
Qm91bmRzKSBjb25zdAogewotICAgIExheW91dFNpemUgc2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxP
ZmZzZXRSZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpOworICAgIExheW91dFBvaW50IHNj
cm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25SZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlv
bigpOwogCi0gICAgTGF5b3V0U2l6ZSB0b3BMZWZ0RXhwYW5zaW9uID0gc2Nyb2xsUG9zaXRpb24g
LSB0b0xheW91dFNpemUobWluaW11bVNjcm9sbFBvc2l0aW9uKCkpOwotICAgIExheW91dFNpemUg
Ym90dG9tUmlnaHRFeHBhbnNpb24gPSB0b0xheW91dFNpemUobWF4aW11bVNjcm9sbFBvc2l0aW9u
KCkpIC0gc2Nyb2xsUG9zaXRpb247CisgICAgTGF5b3V0U2l6ZSB0b3BMZWZ0RXhwYW5zaW9uID0g
c2Nyb2xsUG9zaXRpb24gLSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKTsKKyAgICBMYXlvdXRTaXpl
IGJvdHRvbVJpZ2h0RXhwYW5zaW9uID0gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgLSBzY3JvbGxQ
b3NpdGlvbjsKIAogICAgIHJldHVybiBMYXlvdXRSZWN0KHVuaW5mbGF0ZWRCb3VuZHMubG9jYXRp
b24oKSAtIHRvcExlZnRFeHBhbnNpb24sIHVuaW5mbGF0ZWRCb3VuZHMuc2l6ZSgpICsgdG9wTGVm
dEV4cGFuc2lvbiArIGJvdHRvbVJpZ2h0RXhwYW5zaW9uKTsKIH0KIAotTGF5b3V0U2l6ZSBGcmFt
ZVZpZXc6OnNjcm9sbE9mZnNldFJlc3BlY3RpbmdDdXN0b21GaXhlZFBvc2l0aW9uKCkgY29uc3QK
K0xheW91dFBvaW50IEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25SZXNwZWN0aW5nQ3VzdG9tRml4
ZWRQb3NpdGlvbigpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHJldHVybiB1c2VD
dXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCgpID8gY3VzdG9tRml4ZWRQb3NpdGlvbkxheW91
dFJlY3QoKS5sb2NhdGlvbigpIC0gTGF5b3V0UG9pbnQoKSA6IHRvTGF5b3V0U2l6ZShzY3JvbGxQ
b3NpdGlvbigpKTsKICNlbHNlCi0gICAgcmV0dXJuIHNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRp
b24oKTsKKyAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCk7CiAjZW5k
aWYKIH0KIApAQCAtMTczMyw3ICsxNzMzLDcgQEAgTGF5b3V0UmVjdCBGcmFtZVZpZXc6OnZpZXdw
b3J0Q29uc3RyYWluZWRWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdAogI2VuZGlmCiAgICAgTGF5
b3V0UmVjdCB2aWV3cG9ydFJlY3QgPSB2aXNpYmxlQ29udGVudFJlY3QoKTsKIAotICAgIHZpZXdw
b3J0UmVjdC5zZXRMb2NhdGlvbih0b0xheW91dFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkUG9z
aXRpb24oKSkpOworICAgIHZpZXdwb3J0UmVjdC5zZXRMb2NhdGlvbihzY3JvbGxQb3NpdGlvbkZv
ckZpeGVkUG9zaXRpb24oKSk7CiAgICAgcmV0dXJuIHZpZXdwb3J0UmVjdDsKIH0KIApAQCAtMTc0
Miw3ICsxNzQyLDcgQEAgZmxvYXQgRnJhbWVWaWV3OjpmcmFtZVNjYWxlRmFjdG9yKCkgY29uc3QK
ICAgICByZXR1cm4gZnJhbWUoKS5mcmFtZVNjYWxlRmFjdG9yKCk7CiB9CiAKLUxheW91dFNpemUg
RnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGNvbnN0IExheW91dFJlY3Qm
IHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgdG90YWxDb250ZW50c1NpemUs
IGNvbnN0IExheW91dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgTGF5b3V0UG9pbnQmIHNj
cm9sbE9yaWdpbiwgZmxvYXQgZnJhbWVTY2FsZUZhY3RvciwgYm9vbCBmaXhlZEVsZW1lbnRzTGF5
b3V0UmVsYXRpdmVUb0ZyYW1lLCBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMgYmVoYXZp
b3JGb3JGaXhlZCwgaW50IGhlYWRlckhlaWdodCwgaW50IGZvb3RlckhlaWdodCkKK0xheW91dFBv
aW50IEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKGNvbnN0IExheW91
dFJlY3QmIHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgdG90YWxDb250ZW50
c1NpemUsIGNvbnN0IExheW91dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgTGF5b3V0UG9p
bnQmIHNjcm9sbE9yaWdpbiwgZmxvYXQgZnJhbWVTY2FsZUZhY3RvciwgYm9vbCBmaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLCBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMg
YmVoYXZpb3JGb3JGaXhlZCwgaW50IGhlYWRlckhlaWdodCwgaW50IGZvb3RlckhlaWdodCkKIHsK
ICAgICBMYXlvdXRQb2ludCBwb3NpdGlvbjsKICAgICBpZiAoYmVoYXZpb3JGb3JGaXhlZCA9PSBT
dGlja1RvRG9jdW1lbnRCb3VuZHMpCkBAIC0xNzU3LDcgKzE3NTcsNyBAQCBMYXlvdXRTaXplIEZy
YW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihjb25zdCBMYXlvdXRSZWN0JiB2
aXNpYmxlQ29udAogICAgIGZsb2F0IGRyYWdGYWN0b3JYID0gKGZpeGVkRWxlbWVudHNMYXlvdXRS
ZWxhdGl2ZVRvRnJhbWUgfHwgIW1heFNpemUud2lkdGgoKSkgPyAxIDogKHRvdGFsQ29udGVudHNT
aXplLndpZHRoKCkgLSB2aXNpYmxlQ29udGVudFJlY3Qud2lkdGgoKSAqIGZyYW1lU2NhbGVGYWN0
b3IpIC8gbWF4U2l6ZS53aWR0aCgpOwogICAgIGZsb2F0IGRyYWdGYWN0b3JZID0gKGZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgfHwgIW1heFNpemUuaGVpZ2h0KCkpID8gMSA6ICh0
b3RhbENvbnRlbnRzU2l6ZS5oZWlnaHQoKSAtIHZpc2libGVDb250ZW50UmVjdC5oZWlnaHQoKSAq
IGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4U2l6ZS5oZWlnaHQoKTsKIAotICAgIHJldHVybiBMYXlv
dXRTaXplKHBvc2l0aW9uLngoKSAqIGRyYWdGYWN0b3JYIC8gZnJhbWVTY2FsZUZhY3RvciwgcG9z
aXRpb24ueSgpICogZHJhZ0ZhY3RvclkgLyBmcmFtZVNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4g
TGF5b3V0UG9pbnQocG9zaXRpb24ueCgpICogZHJhZ0ZhY3RvclggLyBmcmFtZVNjYWxlRmFjdG9y
LCBwb3NpdGlvbi55KCkgKiBkcmFnRmFjdG9yWSAvIGZyYW1lU2NhbGVGYWN0b3IpOwogfQogCiBm
bG9hdCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKGNvbnN0IEZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCB0b3BDb250ZW50SW5zZXQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAppbmRleCAyMmNjZDQ5MjMzMDU1YzM3OWEzMzExMWE0MmU5ZjE5OWMzYjQ3N2QyLi5h
MDU2ZjJjMjhmNjE0NDM4ODM4ZTM5N2Q3NTY4NTE3Mzg5ZWRmOGFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTI3OCwxMyArMjc4LDEzIEBAIHB1YmxpYzoKIAogICAgIC8vIEZ1bmN0aW9u
cyBmb3IgcXVlcnlpbmcgdGhlIGN1cnJlbnQgc2Nyb2xsZWQgcG9zaXRpb24sIG5lZ2F0aW5nIHRo
ZSBlZmZlY3RzIG9mIG92ZXJoYW5nCiAgICAgLy8gYW5kIGFkanVzdGluZyBmb3IgcGFnZSBzY2Fs
ZS4KLSAgICBMYXlvdXRTaXplIHNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAor
ICAgIExheW91dFBvaW50IHNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbih2aXNpYmxl
Q29udGVudFJlY3QoKSwgdG90YWxDb250ZW50c1NpemUoKSwgc2Nyb2xsUG9zaXRpb24oKSwgc2Ny
b2xsT3JpZ2luKCksIGZyYW1lU2NhbGVGYWN0b3IoKSwgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZSgpLCBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMoKSwgaGVhZGVySGVp
Z2h0KCksIGZvb3RlckhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uRm9y
Rml4ZWRQb3NpdGlvbih2aXNpYmxlQ29udGVudFJlY3QoKSwgdG90YWxDb250ZW50c1NpemUoKSwg
c2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsT3JpZ2luKCksIGZyYW1lU2NhbGVGYWN0b3IoKSwgZml4
ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpLCBzY3JvbGxCZWhhdmlvckZvckZpeGVk
RWxlbWVudHMoKSwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKTsKICAgICB9CiAgICAg
CiAgICAgLy8gU3RhdGljIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVh
ZC4KLSAgICBzdGF0aWMgTGF5b3V0U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGNv
bnN0IExheW91dFJlY3QmIHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgdG90
YWxDb250ZW50c1NpemUsIGNvbnN0IExheW91dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
TGF5b3V0UG9pbnQmIHNjcm9sbE9yaWdpbiwgZmxvYXQgZnJhbWVTY2FsZUZhY3RvciwgYm9vbCBm
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLCBTY3JvbGxCZWhhdmlvckZvckZpeGVk
RWxlbWVudHMsIGludCBoZWFkZXJIZWlnaHQsIGludCBmb290ZXJIZWlnaHQpOworICAgIHN0YXRp
YyBMYXlvdXRQb2ludCBzY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oY29uc3QgTGF5b3V0
UmVjdCYgdmlzaWJsZUNvbnRlbnRSZWN0LCBjb25zdCBMYXlvdXRTaXplJiB0b3RhbENvbnRlbnRz
U2l6ZSwgY29uc3QgTGF5b3V0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRQb2lu
dCYgc2Nyb2xsT3JpZ2luLCBmbG9hdCBmcmFtZVNjYWxlRmFjdG9yLCBib29sIGZpeGVkRWxlbWVu
dHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUsIFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cywg
aW50IGhlYWRlckhlaWdodCwgaW50IGZvb3RlckhlaWdodCk7CiAKICAgICAvLyBUaGVzZSBsYXll
cnMgYXJlIHBvc2l0aW9uZWQgZGlmZmVyZW50bHkgd2hlbiB0aGVyZSBpcyBhIHRvcENvbnRlbnRJ
bnNldCwgYSBoZWFkZXIsIG9yIGEgZm9vdGVyLiBUaGVzZSB2YWx1ZSBuZWVkIHRvIGJlIGNvbXB1
dGVkCiAgICAgLy8gb24gYm90aCB0aGUgbWFpbiB0aHJlYWQgYW5kIHRoZSBzY3JvbGxpbmcgdGhy
ZWFkLgpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgTGF5b3V0UmVj
dCBmaXhlZFNjcm9sbGFibGVBcmVhQm91bmRzSW5mbGF0ZWRGb3JTY3JvbGxpbmcoY29uc3QgTGF5
b3V0UmVjdCYgdW5pbmZsYXRlZEJvdW5kcykgY29uc3Q7Ci0gICAgTGF5b3V0U2l6ZSBzY3JvbGxP
ZmZzZXRSZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpIGNvbnN0OworICAgIExheW91dFBv
aW50IHNjcm9sbFBvc2l0aW9uUmVzcGVjdGluZ0N1c3RvbUZpeGVkUG9zaXRpb24oKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgaW50IGhlYWRlckhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1faGVhZGVySGVpZ2h0OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIZWFkZXJIZWln
aHQoaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5jcHAKaW5kZXggNjc1NmUzMjg0MmQ4MDMyMWRjN2NhODg1ZWFmYWY2MDAxOTI3NTY2Ni4uNTEw
OTQ5YjAyZTdlNjdmMGUzMzA4YzY1MjVjYTg1MTBjODZjNzgzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKQEAgLTU2NCw5ICs1NjQsOSBA
QCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZpY2UoKQogI2lmIEVOQUJMRShD
U1NfQU5JTUFUSU9OU19MRVZFTF8yKQogICAgICAgICBpZiAobV9hbmltYXRpb24tPnRyaWdnZXIo
KS0+aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpIHsKICAgICAgICAgICAgIGlmIChtX29iamVj
dCkgewotICAgICAgICAgICAgICAgIGZsb2F0IGN1cnJlbnRTY3JvbGxPZmZzZXQgPSBtX29iamVj
dC0+dmlldygpLmZyYW1lVmlldygpLnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKS5oZWln
aHQoKS50b0Zsb2F0KCk7CisgICAgICAgICAgICAgICAgZmxvYXQgY3VycmVudFNjcm9sbFBvc2l0
aW9uID0gbV9vYmplY3QtPnZpZXcoKS5mcmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvbkZvckZpeGVk
UG9zaXRpb24oKS55KCkudG9GbG9hdCgpOwogICAgICAgICAgICAgICAgIFNjcm9sbEFuaW1hdGlv
blRyaWdnZXImIHNjcm9sbFRyaWdnZXIgPSBkb3duY2FzdDxTY3JvbGxBbmltYXRpb25UcmlnZ2Vy
PigqbV9hbmltYXRpb24tPnRyaWdnZXIoKS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGN1
cnJlbnRTY3JvbGxPZmZzZXQgPj0gc2Nyb2xsVHJpZ2dlci5zdGFydFZhbHVlKCkudmFsdWUoKSAm
JiAoIXNjcm9sbFRyaWdnZXIuaGFzRW5kVmFsdWUoKSB8fCBjdXJyZW50U2Nyb2xsT2Zmc2V0IDw9
IHNjcm9sbFRyaWdnZXIuZW5kVmFsdWUoKS52YWx1ZSgpKSkKKyAgICAgICAgICAgICAgICBpZiAo
Y3VycmVudFNjcm9sbFBvc2l0aW9uID49IHNjcm9sbFRyaWdnZXIuc3RhcnRWYWx1ZSgpLnZhbHVl
KCkgJiYgKCFzY3JvbGxUcmlnZ2VyLmhhc0VuZFZhbHVlKCkgfHwgY3VycmVudFNjcm9sbFBvc2l0
aW9uIDw9IHNjcm9sbFRyaWdnZXIuZW5kVmFsdWUoKS52YWx1ZSgpKSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gLTE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IDM4ZTE4Y2MyNWMyNTg0NWNjMzkyOWRjOWMxYWQ3ZjBiZjc0MWVlYTUuLmNi
ZjczNDE0NWY3ZGMzOWQ3OTc1ZjVkN2Q2NDNkMGUxNmU4YjU0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC01
NTksNyArNTU5LDggQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6c2Nyb2xsV2Fz
VXBkYXRlZCgpCiAgICAgYXV0byogdmlldyA9IG1fZnJhbWUudmlldygpOwogICAgIGlmICghdmll
dyB8fCAhd2FudHNTY3JvbGxVcGRhdGVzKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3Njcm9s
bFBvc2l0aW9uID0gdmlldy0+c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpLmhlaWdodCgp
LnRvRmxvYXQoKTsKKworICAgIG1fc2Nyb2xsUG9zaXRpb24gPSB2aWV3LT5zY3JvbGxQb3NpdGlv
bkZvckZpeGVkUG9zaXRpb24oKS55KCkudG9GbG9hdCgpOwogCiAgICAgLy8gRklYTUU6IFRoaXMg
aXMgdXBkYXRpbmcgYWxsIHRoZSBhbmltYXRpb25zLCByYXRoZXIgdGhhbiBqdXN0IHRoZSBvbmVz
CiAgICAgLy8gdGhhdCBhcmUgZGVwZW5kZW50IG9uIHNjcm9sbC4gV2UgdG8gZ28gZnJvbSBvdXIg
QW5pbWF0aW9uQmFzZSB0byBpdHMgQ29tcG9zaXRlQW5pbWF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IDkwOWNjOTY3ZjU1ODFiOGI5MTYxYzExNTdiNjkyOGMzMmNiNWNjZWEuLjMwMTYw
YzBhNDI1ZTkzODg0NDcxYmU3NzA4N2I4NGRlMjM5M2JiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCkBAIC0zMTksMjAgKzMxOSwyMCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdObwogICAgICAg
ICAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xsZWRDb250ZW50c0xheWVyID0gcm9vdENvbnRlbnRM
YXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwogICAgICAgICAgICAgR3JhcGhpY3NMYXllciog
aGVhZGVyTGF5ZXIgPSBoZWFkZXJMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwogICAgICAg
ICAgICAgR3JhcGhpY3NMYXllciogZm9vdGVyTGF5ZXIgPSBmb290ZXJMYXllckZvckZyYW1lVmll
dyhmcmFtZVZpZXcpOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhl
ZCA9IGZyYW1lVmlldy5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCk7CisgICAgICAgICAg
ICBMYXlvdXRQb2ludCBzY3JvbGxQb3NpdGlvbkZvckZpeGVkID0gZnJhbWVWaWV3LnNjcm9sbFBv
c2l0aW9uRm9yRml4ZWRQb3NpdGlvbigpOwogCiAgICAgICAgICAgICBmbG9hdCB0b3BDb250ZW50
SW5zZXQgPSBmcmFtZVZpZXcudG9wQ29udGVudEluc2V0KCk7CiAgICAgICAgICAgICBGbG9hdFBv
aW50IHBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIgPSBGbG9hdFBvaW50KDAsIEZyYW1lVmlldzo6
eVBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIoc2Nyb2xsUG9zaXRpb24sIHRvcENvbnRlbnRJbnNl
dCkpOwogICAgICAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckNvbnRlbnRzTGF5ZXIgPSBG
bG9hdFBvaW50KHNjcm9sbGVkQ29udGVudHNMYXllci0+cG9zaXRpb24oKS54KCksCiAgICAgICAg
ICAgICAgICAgRnJhbWVWaWV3Ojp5UG9zaXRpb25Gb3JSb290Q29udGVudExheWVyKHNjcm9sbFBv
c2l0aW9uLCB0b3BDb250ZW50SW5zZXQsIGZyYW1lVmlldy5oZWFkZXJIZWlnaHQoKSkpOwotICAg
ICAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckhlYWRlckxheWVyID0gRmxvYXRQb2ludChz
Y3JvbGxPZmZzZXRGb3JGaXhlZC53aWR0aCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckhlYWRl
ckxheWVyKHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50SW5zZXQpKTsKLSAgICAgICAgICAgIEZs
b2F0UG9pbnQgcG9zaXRpb25Gb3JGb290ZXJMYXllciA9IEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0
Rm9yRml4ZWQud2lkdGgoKSwKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JIZWFk
ZXJMYXllciA9IEZsb2F0UG9pbnQoc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZC54KCksIEZyYW1lVmll
dzo6eVBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIoc2Nyb2xsUG9zaXRpb24sIHRvcENvbnRlbnRJbnNl
dCkpOworICAgICAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckZvb3RlckxheWVyID0gRmxv
YXRQb2ludChzY3JvbGxQb3NpdGlvbkZvckZpeGVkLngoKSwKICAgICAgICAgICAgICAgICBGcmFt
ZVZpZXc6OnlQb3NpdGlvbkZvckZvb3RlckxheWVyKHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50
SW5zZXQsIGZyYW1lVmlldy50b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpLCBmcmFtZVZpZXcu
Zm9vdGVySGVpZ2h0KCkpKTsKIAogICAgICAgICAgICAgaWYgKHByb2dyYW1tYXRpY1Njcm9sbCB8
fCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGluZ0xheWVyUG9zaXRp
b24pIHsKICAgICAgICAgICAgICAgICBzY3JvbGxMYXllci0+c2V0UG9zaXRpb24oLWZyYW1lVmll
dy5zY3JvbGxQb3NpdGlvbigpKTsKICAgICAgICAgICAgICAgICBpZiAoY291bnRlclNjcm9sbGlu
Z0xheWVyKQotICAgICAgICAgICAgICAgICAgICBjb3VudGVyU2Nyb2xsaW5nTGF5ZXItPnNldFBv
c2l0aW9uKHRvTGF5b3V0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgY291bnRlclNjcm9sbGluZ0xheWVyLT5zZXRQb3NpdGlvbihzY3JvbGxQb3NpdGlv
bkZvckZpeGVkKTsKICAgICAgICAgICAgICAgICBpZiAoaW5zZXRDbGlwTGF5ZXIpCiAgICAgICAg
ICAgICAgICAgICAgIGluc2V0Q2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckluc2V0
Q2xpcExheWVyKTsKICAgICAgICAgICAgICAgICBpZiAoY29udGVudFNoYWRvd0xheWVyKQpAQCAt
MzQ2LDcgKzM0Niw3IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Ny
b2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIHNjcm9sbExheWVyLT5zeW5jUG9zaXRpb24oLWZyYW1lVmll
dy5zY3JvbGxQb3NpdGlvbigpKTsKICAgICAgICAgICAgICAgICBpZiAoY291bnRlclNjcm9sbGlu
Z0xheWVyKQotICAgICAgICAgICAgICAgICAgICBjb3VudGVyU2Nyb2xsaW5nTGF5ZXItPnN5bmNQ
b3NpdGlvbih0b0xheW91dFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkKSk7CisgICAgICAgICAg
ICAgICAgICAgIGNvdW50ZXJTY3JvbGxpbmdMYXllci0+c3luY1Bvc2l0aW9uKHNjcm9sbFBvc2l0
aW9uRm9yRml4ZWQpOwogICAgICAgICAgICAgICAgIGlmIChpbnNldENsaXBMYXllcikKICAgICAg
ICAgICAgICAgICAgICAgaW5zZXRDbGlwTGF5ZXItPnN5bmNQb3NpdGlvbihwb3NpdGlvbkZvcklu
c2V0Q2xpcExheWVyKTsKICAgICAgICAgICAgICAgICBpZiAoY29udGVudFNoYWRvd0xheWVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCA1NjgyZjUx
ZGMxODhhODI0NzBmYTAzYTg3NzQxOTRmNGNhYzEzMGZmLi5jNGI1Mjg3NjhhZDc5OTJmNjY3Yzcx
NmM4ZDdlOGU3NmE0NzU2Nzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUy5tbQpAQCAtMTQ4LDE3ICsxNDgsMTcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoY29uc3QgRmxvYXQK
ICAgICBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMgYmVoYXZpb3JGb3JGaXhlZCA9IHNj
cm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cygpOwogICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zm
c2V0ID0gc2Nyb2xsUG9zaXRpb24gLSB0b0ludFNpemUoc2Nyb2xsT3JpZ2luKCkpOwogICAgIEZs
b2F0UmVjdCB2aWV3cG9ydFJlY3QoRmxvYXRQb2ludCgpLCBzY3JvbGxhYmxlQXJlYVNpemUoKSk7
Ci0gICAgRmxvYXRTaXplIHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4gPSBGcmFtZVZpZXc6
OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oZW5jbG9zaW5nTGF5b3V0UmVjdCh2aWV3cG9y
dFJlY3QpLCBMYXlvdXRTaXplKHRvdGFsQ29udGVudHNTaXplKCkpLCBMYXlvdXRQb2ludChzY3Jv
bGxPZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwgZnJhbWVTY2FsZUZhY3RvcigpLCBmaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCksIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdo
dCgpLCBmb290ZXJIZWlnaHQoKSk7CisgICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbkZvckZp
eGVkQ2hpbGRyZW4gPSBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbihl
bmNsb3NpbmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50
c1NpemUoKSksIExheW91dFBvaW50KHNjcm9sbE9mZnNldCksIHNjcm9sbE9yaWdpbigpLCBmcmFt
ZVNjYWxlRmFjdG9yKCksIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSwgYmVo
YXZpb3JGb3JGaXhlZCwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKTsKIAotICAgIFtt
X2NvdW50ZXJTY3JvbGxpbmdMYXllciBzZXRQb3NpdGlvbjpGbG9hdFBvaW50KHNjcm9sbE9mZnNl
dEZvckZpeGVkQ2hpbGRyZW4pXTsKKyAgICBbbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIgc2V0UG9z
aXRpb246c2Nyb2xsUG9zaXRpb25Gb3JGaXhlZENoaWxkcmVuXTsKIAogICAgIGlmIChtX2hlYWRl
ckxheWVyIHx8IG1fZm9vdGVyTGF5ZXIpIHsKICAgICAgICAgLy8gR2VuZXJhbGx5IHRoZSBiYW5u
ZXJzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGhvcml6b250YWwtcG9zaXRpb24gY29tcHV0YXRpb24g
YXMgYSBmaXhlZCBlbGVtZW50LiBIb3dldmVyLAogICAgICAgICAvLyB0aGUgYmFubmVycyBhcmUg
bm90IGFmZmVjdGVkIGJ5IHRoZSBmcmFtZVNjYWxlRmFjdG9yKCksIHNvIGlmIHRoZXJlIGlzIGN1
cnJlbnRseSBhIG5vbi0xIGZyYW1lU2NhbGVGYWN0b3IoKQotICAgICAgICAvLyB0aGVuIHdlIHNo
b3VsZCByZWNvbXB1dGUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbiBmb3IgdGhlIGJhbm5l
ciB3aXRoIGEgc2NhbGUgZmFjdG9yIG9mIDEuCi0gICAgICAgIGZsb2F0IGhvcml6b250YWxTY3Jv
bGxPZmZzZXRGb3JCYW5uZXIgPSBzY3JvbGxPZmZzZXRGb3JGaXhlZENoaWxkcmVuLndpZHRoKCk7
CisgICAgICAgIC8vIHRoZW4gd2Ugc2hvdWxkIHJlY29tcHV0ZSBzY3JvbGxQb3NpdGlvbkZvckZp
eGVkQ2hpbGRyZW4gZm9yIHRoZSBiYW5uZXIgd2l0aCBhIHNjYWxlIGZhY3RvciBvZiAxLgorICAg
ICAgICBmbG9hdCBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gc2Nyb2xsUG9zaXRp
b25Gb3JGaXhlZENoaWxkcmVuLngoKTsKICAgICAgICAgaWYgKGZyYW1lU2NhbGVGYWN0b3IoKSAh
PSAxKQotICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciA9IEZyYW1l
Vmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihlbmNsb3NpbmdMYXlvdXRSZWN0KHZp
ZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50c1NpemUoKSksIExheW91dFBvaW50
KHNjcm9sbE9mZnNldCksIHNjcm9sbE9yaWdpbigpLCAxLCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVs
YXRpdmVUb0ZyYW1lKCksIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJI
ZWlnaHQoKSkud2lkdGgoKTsKKyAgICAgICAgICAgIGhvcml6b250YWxTY3JvbGxPZmZzZXRGb3JC
YW5uZXIgPSBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRDaGlsZHJlbihlbmNsb3Np
bmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50c1NpemUo
KSksIExheW91dFBvaW50KHNjcm9sbE9mZnNldCksIHNjcm9sbE9yaWdpbigpLCAxLCBmaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCksIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhl
aWdodCgpLCBmb290ZXJIZWlnaHQoKSkueCgpOwogCiAgICAgICAgIGlmIChtX2hlYWRlckxheWVy
KQogICAgICAgICAgICAgW21faGVhZGVyTGF5ZXIgc2V0UG9zaXRpb246RmxvYXRQb2ludChob3Jp
em9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyLCAwKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDcyNTc0NDZkNDI0M2UyNWJiOWEyMDAxZjBhNzA1
OWRhM2M3MzY5ZGUuLmNhZDg5OTQzZDNiMTEzZjJlZGZhY2I2N2E4N2JhMTYwMzNjZjI4NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC00MDMsMTEg
KzQwMywxMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnNldFNj
cm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludAogICAgIExheW91dFBvaW50IHNjcm9s
bE9mZnNldCA9IExheW91dFBvaW50KHBvc2l0aW9uKSAtIHRvTGF5b3V0U2l6ZShzY3JvbGxPcmln
aW4oKSk7CiAgICAgRmxvYXRSZWN0IHZpZXdwb3J0UmVjdChGbG9hdFBvaW50KCksIHNjcm9sbGFi
bGVBcmVhU2l6ZSgpKTsKICAgICAKLSAgICBGbG9hdFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRD
aGlsZHJlbiA9IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihlbmNsb3Np
bmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50c1NpemUo
KSksIHNjcm9sbE9mZnNldCwgc2Nyb2xsT3JpZ2luKCksIGZyYW1lU2NhbGVGYWN0b3IoKSwKKyAg
ICBGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uRm9yRml4ZWRDaGlsZHJlbiA9IEZyYW1lVmlldzo6
c2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKGVuY2xvc2luZ0xheW91dFJlY3Qodmlld3Bv
cnRSZWN0KSwgTGF5b3V0U2l6ZSh0b3RhbENvbnRlbnRzU2l6ZSgpKSwgc2Nyb2xsT2Zmc2V0LCBz
Y3JvbGxPcmlnaW4oKSwgZnJhbWVTY2FsZUZhY3RvcigpLAogICAgICAgICBmaXhlZEVsZW1lbnRz
TGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCksIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgp
LCBmb290ZXJIZWlnaHQoKSk7CiAgICAgCiAgICAgaWYgKG1fY291bnRlclNjcm9sbGluZ0xheWVy
KQotICAgICAgICBtX2NvdW50ZXJTY3JvbGxpbmdMYXllci5nZXQoKS5wb3NpdGlvbiA9IEZsb2F0
UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbik7CisgICAgICAgIG1fY291bnRlclNj
cm9sbGluZ0xheWVyLmdldCgpLnBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZENoaWxk
cmVuOwogCiAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0gdGhpcy0+dG9wQ29udGVudEluc2V0
KCk7CiAgICAgaWYgKG1faW5zZXRDbGlwTGF5ZXIgJiYgbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIg
JiYgdG9wQ29udGVudEluc2V0KSB7CkBAIC00MjIsOSArNDIyLDkgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQKICAgICAgICAgLy8gR2VuZXJhbGx5IHRoZSBiYW5uZXJzIHNob3VsZCBoYXZlIHRo
ZSBzYW1lIGhvcml6b250YWwtcG9zaXRpb24gY29tcHV0YXRpb24gYXMgYSBmaXhlZCBlbGVtZW50
LiBIb3dldmVyLAogICAgICAgICAvLyB0aGUgYmFubmVycyBhcmUgbm90IGFmZmVjdGVkIGJ5IHRo
ZSBmcmFtZVNjYWxlRmFjdG9yKCksIHNvIGlmIHRoZXJlIGlzIGN1cnJlbnRseSBhIG5vbi0xIGZy
YW1lU2NhbGVGYWN0b3IoKQogICAgICAgICAvLyB0aGVuIHdlIHNob3VsZCByZWNvbXB1dGUgc2Ny
b2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbiBmb3IgdGhlIGJhbm5lciB3aXRoIGEgc2NhbGUgZmFj
dG9yIG9mIDEuCi0gICAgICAgIGZsb2F0IGhvcml6b250YWxTY3JvbGxPZmZzZXRGb3JCYW5uZXIg
PSBzY3JvbGxPZmZzZXRGb3JGaXhlZENoaWxkcmVuLndpZHRoKCk7CisgICAgICAgIGZsb2F0IGhv
cml6b250YWxTY3JvbGxPZmZzZXRGb3JCYW5uZXIgPSBzY3JvbGxQb3NpdGlvbkZvckZpeGVkQ2hp
bGRyZW4ueCgpOwogICAgICAgICBpZiAoZnJhbWVTY2FsZUZhY3RvcigpICE9IDEpCi0gICAgICAg
ICAgICBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gRnJhbWVWaWV3OjpzY3JvbGxP
ZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGVuY2xvc2luZ0xheW91dFJlY3Qodmlld3BvcnRSZWN0KSwg
TGF5b3V0U2l6ZSh0b3RhbENvbnRlbnRzU2l6ZSgpKSwgc2Nyb2xsT2Zmc2V0LCBzY3JvbGxPcmln
aW4oKSwgMSwgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpLCBiZWhhdmlvckZv
ckZpeGVkLCBoZWFkZXJIZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkpLndpZHRoKCk7CisgICAgICAg
ICAgICBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gRnJhbWVWaWV3OjpzY3JvbGxQ
b3NpdGlvbkZvckZpeGVkUG9zaXRpb24oZW5jbG9zaW5nTGF5b3V0UmVjdCh2aWV3cG9ydFJlY3Qp
LCBMYXlvdXRTaXplKHRvdGFsQ29udGVudHNTaXplKCkpLCBzY3JvbGxPZmZzZXQsIHNjcm9sbE9y
aWdpbigpLCAxLCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCksIGJlaGF2aW9y
Rm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQoKSkueCgpOwogCiAgICAgICAg
IGlmIChtX2hlYWRlckxheWVyKQogICAgICAgICAgICAgbV9oZWFkZXJMYXllci5nZXQoKS5wb3Np
dGlvbiA9IEZsb2F0UG9pbnQoaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciwgRnJhbWVW
aWV3Ojp5UG9zaXRpb25Gb3JIZWFkZXJMYXllcihwb3NpdGlvbiwgdG9wQ29udGVudEluc2V0KSk7
CkBAIC00NTksNyArNDU5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
TWFjOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQKICAgICBpZiAoIW1f
Y2hpbGRyZW4pCiAgICAgICAgIHJldHVybjsKIAotICAgIHZpZXdwb3J0UmVjdC5zZXRMb2NhdGlv
bihGbG9hdFBvaW50KCkgKyBzY3JvbGxPZmZzZXRGb3JGaXhlZENoaWxkcmVuKTsKKyAgICB2aWV3
cG9ydFJlY3Quc2V0TG9jYXRpb24oc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZENoaWxkcmVuKTsKIAog
ICAgIGZvciAoYXV0byYgY2hpbGQgOiAqbV9jaGlsZHJlbikKICAgICAgICAgY2hpbGQtPnVwZGF0
ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoKnRoaXMsIHZpZXdwb3J0UmVjdCwgRmxvYXRTaXpl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApp
bmRleCBhMDM4NTE2ODdmZmM2Mzk1MjU1NmFkYzAzYjdmOWFlNWY5YWYxOTRkLi41ZmEyZjA1YjVk
Yzg5MDMwODcxOGI2YjQ1YjNhNzMxZjQwNDdlMDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtMjk0LDcgKzI5NCw2IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNp
emUpCiAgICAgaWYgKCFtX3ZpZGVvRGlzcGxheSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTGF5
b3V0U2l6ZSBzY3JvbGxPZmZzZXQ7CiAgICAgSW50UG9pbnQgcG9zaXRpb25JbldpbmRvdyhtX2xh
c3RQYWludFJlY3QubG9jYXRpb24oKSk7CiAKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBudWxscHRy
OwpAQCAtMzA0LDEyICszMDMsMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb246OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgZGV2aWNlU2NhbGVG
YWN0b3IgPSBtX3BsYXllci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+ZG9jdW1lbnQoKS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKTsKICAgICB9CiAKKyAgICBMYXlvdXRQb2ludCBzY3JvbGxQb3NpdGlv
bjsKICAgICBpZiAodmlldykgewotICAgICAgICBzY3JvbGxPZmZzZXQgPSB2aWV3LT5zY3JvbGxP
ZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gdmlldy0+
c2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCk7CiAgICAgICAgIHBvc2l0aW9uSW5XaW5k
b3cgPSB2aWV3LT5jb252ZXJ0VG9Db250YWluaW5nV2luZG93KEludFBvaW50KG1fbGFzdFBhaW50
UmVjdC5sb2NhdGlvbigpKSk7CiAgICAgfQogCi0gICAgcG9zaXRpb25JbldpbmRvdy5tb3ZlKC1z
Y3JvbGxPZmZzZXQud2lkdGgoKS50b0ludCgpLCAtc2Nyb2xsT2Zmc2V0LmhlaWdodCgpLnRvSW50
KCkpOworICAgIHBvc2l0aW9uSW5XaW5kb3cubW92ZSgtc2Nyb2xsUG9zaXRpb24ueCgpLnRvSW50
KCksIC1zY3JvbGxQb3NpdGlvbi55KCkudG9JbnQoKSk7CiAKICAgICBpbnQgeCA9IHBvc2l0aW9u
SW5XaW5kb3cueCgpICogZGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgaW50IHkgPSBwb3NpdGlvbklu
V2luZG93LnkoKSAqIGRldmljZVNjYWxlRmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggYzdhMmJjODlkOWU0MWU4N2Vh
NDIwYmYxNDE4MTJjZjU5MGY3NjYwOC4uMDQwYTAyNTQzMDg4OTZiZDUyNjJmZDNmMjE4OTI4NzI3
M2Y5YTVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCkBAIC0xMTExLDkgKzExMTEsOSBAQCBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnko
YwogICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFJlY3Quc2V0TG9jYXRpb24oTGF5b3V0UG9p
bnQoMCwgLXRvcENvbnRlbnRJbnNldCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0gZWxzZSBpZiAodXNlRml4ZWRMYXlvdXQgfHwgZnJhbWVWaWV3LmZyYW1lU2NhbGVGYWN0b3Io
KSAhPSAxKSB7Ci0gICAgICAgICAgICAgICAgLy8gc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlv
bigpIGlzIGFkanVzdGVkIGZvciBwYWdlIHNjYWxlIGFuZCBpdCBkb2VzIG5vdCBpbmNsdWRlCisg
ICAgICAgICAgICAgICAgLy8gc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCkgaXMgYWRq
dXN0ZWQgZm9yIHBhZ2Ugc2NhbGUgYW5kIGl0IGRvZXMgbm90IGluY2x1ZGUKICAgICAgICAgICAg
ICAgICAvLyB0b3BDb250ZW50SW5zZXQgc28gZG8gbm90IGFkZCBpdCB0byB0aGUgY2FsY3VsYXRp
b24gYmVsb3cuCi0gICAgICAgICAgICAgICAgdmlld3BvcnRSZWN0LnNldExvY2F0aW9uKHRvTGF5
b3V0UG9pbnQoZnJhbWVWaWV3LnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSkpOworICAg
ICAgICAgICAgICAgIHZpZXdwb3J0UmVjdC5zZXRMb2NhdGlvbihmcmFtZVZpZXcuc2Nyb2xsUG9z
aXRpb25Gb3JGaXhlZFBvc2l0aW9uKCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAvLyBkb2N1bWVudFNjcm9sbE9mZnNldFJlbGF0aXZlVG9WaWV3T3JpZ2luKCkgaW5j
bHVkZXMgLXRvcENvbnRlbnRJbnNldCBpbiBpdHMgaGVpZ2h0CiAgICAgICAgICAgICAgICAgLy8g
c28gd2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGF0IGluIGNhbGN1bGF0aW5nIHRoZSBwaGFzZSBz
aXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAwZmEzNGYw
MDNlM2Q5MTgxMjMzMDVhZjI2NjFmZmI2YzZjNTc3YWQxLi4zMmJiYjVjMTMwYzcwMWNmMWQ5MDg1
OTA2NjI4MDcwMTI0MDdlYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKQEAgLTU1MDQsNyArNTUwNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNs
aXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiBjbGlwUmVjdHNDb250ZXh0LCBDCiAgICAg
ICAgIC8vIGNsaXBSZWN0cyBhcmUgbmVlZGVkIGluIHZpZXcgc3BhY2UuCiAgICAgICAgIExheW91
dFBvaW50IG9mZnNldChyZW5kZXJlcigpLmxvY2FsVG9Db250YWluZXJQb2ludChGbG9hdFBvaW50
KCksICZjbGlwUmVjdHNDb250ZXh0LnJvb3RMYXllci0+cmVuZGVyZXIoKSkpOwogICAgICAgICBp
ZiAoY2xpcFJlY3RzLmZpeGVkKCkgJiYgJmNsaXBSZWN0c0NvbnRleHQucm9vdExheWVyLT5yZW5k
ZXJlcigpID09ICZyZW5kZXJlcigpLnZpZXcoKSkKLSAgICAgICAgICAgIG9mZnNldCAtPSByZW5k
ZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCk7
CisgICAgICAgICAgICBvZmZzZXQgLT0gdG9MYXlvdXRTaXplKHJlbmRlcmVyKCkudmlldygpLmZy
YW1lVmlldygpLnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbigpKTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChyZW5kZXJlcigpLmhhc092ZXJmbG93Q2xpcCgpKSB7CiAgICAgICAgICAgICBD
bGlwUmVjdCBuZXdPdmVyZmxvd0NsaXAgPSBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkp
Lm92ZXJmbG93Q2xpcFJlY3RGb3JDaGlsZExheWVycyhvZmZzZXQsIGN1cnJlbnRSZW5kZXJOYW1l
ZEZsb3dGcmFnbWVudCgpLCBjbGlwUmVjdHNDb250ZXh0Lm92ZXJsYXlTY3JvbGxiYXJTaXplUmVs
ZXZhbmN5KTsKQEAgLTU1NjgsNyArNTU2OCw3IEBAIENsaXBSZWN0IFJlbmRlckxheWVyOjpiYWNr
Z3JvdW5kQ2xpcFJlY3QoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29udGV4CiAK
ICAgICAvLyBOb3RlOiBpbmZpbml0ZSBjbGlwUmVjdHMgc2hvdWxkIG5vdCBiZSBzY3JvbGxlZCBo
ZXJlLCBvdGhlcndpc2UgdGhleSB3aWxsIGFjY2lkZW50YWxseSBubyBsb25nZXIgYmUgY29uc2lk
ZXJlZCBpbmZpbml0ZS4KICAgICBpZiAocGFyZW50UmVjdHMuZml4ZWQoKSAmJiAmY2xpcFJlY3Rz
Q29udGV4dC5yb290TGF5ZXItPnJlbmRlcmVyKCkgPT0gJnZpZXcgJiYgIWJhY2tncm91bmRDbGlw
UmVjdC5pc0luZmluaXRlKCkpCi0gICAgICAgIGJhY2tncm91bmRDbGlwUmVjdC5tb3ZlKHZpZXcu
ZnJhbWVWaWV3KCkuc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpKTsKKyAgICAgICAgYmFj
a2dyb3VuZENsaXBSZWN0Lm1vdmVCeSh2aWV3LmZyYW1lVmlldygpLnNjcm9sbFBvc2l0aW9uRm9y
Rml4ZWRQb3NpdGlvbigpKTsKIAogICAgIHJldHVybiBiYWNrZ3JvdW5kQ2xpcFJlY3Q7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4
IDFhYjZkNjQwNThjMjIzZWNhNTQ0MGZjNjk2NzE0YjQwYjJkNzdhZDEuLjYxZjIyMDM3YTQ5OTZj
Y2Q2NGMwY2Q3MGM2NWZmNjAwNTNjODI5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC05MjQsNyArOTI0LDcgQEAgdm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KCkKICAgICAgICAgRmxvYXRTaXplIGJhY2tn
cm91bmRTaXplID0gY29udGVudHNTaXplOwogICAgICAgICBpZiAoYmFja2dyb3VuZExheWVyUGFp
bnRzRml4ZWRSb290QmFja2dyb3VuZCgpKSB7CiAgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcm
IGZyYW1lVmlldyA9IHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpOwotICAgICAgICAgICAg
YmFja2dyb3VuZFBvc2l0aW9uID0gdG9MYXlvdXRQb2ludChmcmFtZVZpZXcuc2Nyb2xsT2Zmc2V0
Rm9yRml4ZWRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIGJhY2tncm91bmRQb3NpdGlvbiA9IGZy
YW1lVmlldy5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oKTsKICAgICAgICAgICAgIGJh
Y2tncm91bmRTaXplID0gZnJhbWVWaWV3LmxheW91dFNpemUoKTsKICAgICAgICAgfQogICAgICAg
ICBtX2JhY2tncm91bmRMYXllci0+c2V0UG9zaXRpb24oYmFja2dyb3VuZFBvc2l0aW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
aW5kZXggYzg3OThhMTU1NzkzNGZiNGZlM2Q4NTYxMmZiNmNmZGU1ODJjM2IzNC4uNDc5YzkyZGM5
NzFmYzUyNWYwNTY5ZDY1MzliYzEyYzhkOGUzY2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTE3NjksNyArMTc2OSw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxMYXllclBvc2l0aW9u
KCkKICAgICBtX3Njcm9sbExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KC1zY3JvbGxQb3Np
dGlvbi54KCksIC1zY3JvbGxQb3NpdGlvbi55KCkpKTsKIAogICAgIGlmIChHcmFwaGljc0xheWVy
KiBmaXhlZEJhY2tncm91bmRMYXllciA9IGZpeGVkUm9vdEJhY2tncm91bmRMYXllcigpKQotICAg
ICAgICBmaXhlZEJhY2tncm91bmRMYXllci0+c2V0UG9zaXRpb24odG9MYXlvdXRQb2ludChmcmFt
ZVZpZXcuc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpKSk7CisgICAgICAgIGZpeGVkQmFj
a2dyb3VuZExheWVyLT5zZXRQb3NpdGlvbihmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb25Gb3JGaXhl
ZFBvc2l0aW9uKCkpOwogfQogCiBGbG9hdFBvaW50IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cG9z
aXRpb25Gb3JDbGlwTGF5ZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCmluZGV4IDg4MWZjZDUxNDQwNjAwMjBjOWUzOTdjZjY0YjJkNWJhNjdmMmU3NTYuLmZm
NmZmOWEzNTJiYWExMTc2ODMzMDkwMjViMjEwMjg0NTk3ZWQyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTQ0MSw3ICs0NDEsNyBAQCB2b2lkIFJlbmRlclZp
ZXc6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaQogICAgIH0KICAgICAKICAgICBpZiAobW9kZSAmIElzRml4ZWQpCi0gICAgICAg
IHRyYW5zZm9ybVN0YXRlLm1vdmUoZnJhbWVWaWV3KCkuc2Nyb2xsT2Zmc2V0UmVzcGVjdGluZ0N1
c3RvbUZpeGVkUG9zaXRpb24oKSk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUodG9MYXlv
dXRTaXplKGZyYW1lVmlldygpLnNjcm9sbFBvc2l0aW9uUmVzcGVjdGluZ0N1c3RvbUZpeGVkUG9z
aXRpb24oKSkpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclZpZXc6OnB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApAQCAtNDUwLDE0ICs0
NTAsMTQgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJWaWV3OjpwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmoKICAgICAvLyB0aGVuIHdlIHNob3VsZCBo
YXZlIGZvdW5kIGl0IGJ5IG5vdy4KICAgICBBU1NFUlRfQVJHKGFuY2VzdG9yVG9TdG9wQXQsICFh
bmNlc3RvclRvU3RvcEF0IHx8IGFuY2VzdG9yVG9TdG9wQXQgPT0gdGhpcyk7CiAKLSAgICBMYXlv
dXRTaXplIHNjcm9sbE9mZnNldCA9IGZyYW1lVmlldygpLnNjcm9sbE9mZnNldFJlc3BlY3RpbmdD
dXN0b21GaXhlZFBvc2l0aW9uKCk7CisgICAgTGF5b3V0UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBm
cmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvblJlc3BlY3RpbmdDdXN0b21GaXhlZFBvc2l0aW9uKCk7
CiAKICAgICBpZiAoIWFuY2VzdG9yVG9TdG9wQXQgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNv
bnRhaW5lcihudWxscHRyKSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAg
ICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG51bGxwdHIsIExheW91dFNpemUoKSwgdCk7
Ci0gICAgICAgIGdlb21ldHJ5TWFwLnB1c2hWaWV3KHRoaXMsIHNjcm9sbE9mZnNldCwgJnQpOwor
ICAgICAgICBnZW9tZXRyeU1hcC5wdXNoVmlldyh0aGlzLCB0b0xheW91dFNpemUoc2Nyb2xsUG9z
aXRpb24pLCAmdCk7CiAgICAgfSBlbHNlCi0gICAgICAgIGdlb21ldHJ5TWFwLnB1c2hWaWV3KHRo
aXMsIHNjcm9sbE9mZnNldCk7CisgICAgICAgIGdlb21ldHJ5TWFwLnB1c2hWaWV3KHRoaXMsIHRv
TGF5b3V0U2l6ZShzY3JvbGxQb3NpdGlvbikpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBA
IC00NjUsNyArNDY1LDcgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJWaWV3OjpwdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmoKIHZvaWQgUmVuZGVyVmll
dzo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgaWYgKG1vZGUgJiBJc0Zp
eGVkKQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGZyYW1lVmlldygpLnNjcm9sbE9mZnNl
dFJlc3BlY3RpbmdDdXN0b21GaXhlZFBvc2l0aW9uKCkpOworICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKHRvTGF5b3V0U2l6ZShmcmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvblJlc3BlY3RpbmdD
dXN0b21GaXhlZFBvc2l0aW9uKCkpKTsKIAogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAm
JiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG51bGxwdHIpKSB7CiAgICAgICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IHQ7CkBAIC02OTYsMTAgKzY5Niw5IEBAIExheW91dFJlY3QgUmVu
ZGVyVmlldzo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNv
bnN0IFJlbmRlCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3Quc2V0WCh2aWV3V2lkdGgoKSAtIGFk
anVzdGVkUmVjdC5tYXhYKCkpOwogICAgIH0KIAotICAgIGlmIChmaXhlZCkgewotICAgICAgICBh
ZGp1c3RlZFJlY3QubW92ZShmcmFtZVZpZXcoKS5zY3JvbGxPZmZzZXRSZXNwZWN0aW5nQ3VzdG9t
Rml4ZWRQb3NpdGlvbigpKTsKLSAgICB9Ci0gICAgICAgIAorICAgIGlmIChmaXhlZCkKKyAgICAg
ICAgYWRqdXN0ZWRSZWN0Lm1vdmVCeShmcmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvblJlc3BlY3Rp
bmdDdXN0b21GaXhlZFBvc2l0aW9uKCkpOworICAgIAogICAgIC8vIEFwcGx5IG91ciB0cmFuc2Zv
cm0gaWYgd2UgaGF2ZSBvbmUgKGJlY2F1c2Ugb2YgZnVsbCBwYWdlIHpvb21pbmcpLgogICAgIGlm
ICghcmVwYWludENvbnRhaW5lciAmJiBsYXllcigpICYmIGxheWVyKCktPnRyYW5zZm9ybSgpKQog
ICAgICAgICBhZGp1c3RlZFJlY3QgPSBMYXlvdXRSZWN0KGxheWVyKCktPnRyYW5zZm9ybSgpLT5t
YXBSZWN0KHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYWRqdXN0ZWRSZWN0LCBkb2N1bWVudCgpLmRl
dmljZVNjYWxlRmFjdG9yKCkpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267994</attachid>
            <date>2015-12-29 18:43:04 -0800</date>
            <delta_ts>2015-12-29 18:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152590-20151229184229.patch</filename>
            <type>text/plain</type>
            <size>29279</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1ZTI1OWRlZTM0ZjMw
YWE1OWU0ZjZiYWFiYzgzNjJhMmI1ZWJlNC4uZDU4Yzk5Yzc5OTMyMGMwMGFjOTk5Y2NjNWJlNDFj
MjhjODgxZDY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE1LTEyLTI5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJlbmFtZSAic2Ny
b2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbiIgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIHJlZmVy
IHRvIHNjcm9sbFBvc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTI1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBhY3R1
YWxseSByZXR1cm5lZCBhIHNjcm9sbCBwb3NpdGlvbgorICAgICAgICAocG9zc2libHkgbmVnYXRp
dmUgZm9yIFJUTCBjb250ZW50KSwgbm90IGEgc2Nyb2xsIG9mZnNldCwgc28gcmVuYW1lIGl0IGFu
ZCByZWxhdGVkCisgICAgICAgIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zml4ZWRTY3JvbGxhYmxlQXJlYUJv
dW5kc0luZmxhdGVkRm9yU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2Nyb2xsUG9zaXRpb25SZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnZpZXdwb3J0Q29uc3RyYWluZWRWaXNpYmxlQ29udGVudFJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRSZXNwZWN0
aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2Vydmlj
ZSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6c2Nyb2xsV2FzVXBk
YXRlZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQ2hpbGRO
b2Rlc0FmdGVyU2Nyb2xsKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uOjpzZXRTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0
ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0
cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3
OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisKKzIwMTUtMTItMjkgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgRml4IHRoZSBXaW5kb3dzIGJ1aWxkLgog
CiAgICAgICAgICogcGFnZS93aW4vRnJhbWVDR1dpbi5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggOTkyM2RiNzhhYWI4MGM5MGI0Zjc3YTczYTIwOWVlYmUxNGUzMjY5MC4uMDM1
MmI0Yjg5ZDM2Zjc1NmUwYTlmN2MwOTZlZTVmNDg4OTcxMWZiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtMTA3OCwyMCArMTA3OCwyMCBAQCB2b2lkIEZyYW1lVmlldzo6c2NoZWR1
bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKCkKIAogTGF5b3V0UmVjdCBGcmFtZVZpZXc6
OmZpeGVkU2Nyb2xsYWJsZUFyZWFCb3VuZHNJbmZsYXRlZEZvclNjcm9sbGluZyhjb25zdCBMYXlv
dXRSZWN0JiB1bmluZmxhdGVkQm91bmRzKSBjb25zdAogewotICAgIExheW91dFNpemUgc2Nyb2xs
UG9zaXRpb24gPSBzY3JvbGxPZmZzZXRSZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpOwor
ICAgIExheW91dFBvaW50IHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25SZXNwZWN0aW5n
Q3VzdG9tRml4ZWRQb3NpdGlvbigpOwogCi0gICAgTGF5b3V0U2l6ZSB0b3BMZWZ0RXhwYW5zaW9u
ID0gc2Nyb2xsUG9zaXRpb24gLSB0b0xheW91dFNpemUobWluaW11bVNjcm9sbFBvc2l0aW9uKCkp
OwotICAgIExheW91dFNpemUgYm90dG9tUmlnaHRFeHBhbnNpb24gPSB0b0xheW91dFNpemUobWF4
aW11bVNjcm9sbFBvc2l0aW9uKCkpIC0gc2Nyb2xsUG9zaXRpb247CisgICAgTGF5b3V0U2l6ZSB0
b3BMZWZ0RXhwYW5zaW9uID0gc2Nyb2xsUG9zaXRpb24gLSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24o
KTsKKyAgICBMYXlvdXRTaXplIGJvdHRvbVJpZ2h0RXhwYW5zaW9uID0gbWF4aW11bVNjcm9sbFBv
c2l0aW9uKCkgLSBzY3JvbGxQb3NpdGlvbjsKIAogICAgIHJldHVybiBMYXlvdXRSZWN0KHVuaW5m
bGF0ZWRCb3VuZHMubG9jYXRpb24oKSAtIHRvcExlZnRFeHBhbnNpb24sIHVuaW5mbGF0ZWRCb3Vu
ZHMuc2l6ZSgpICsgdG9wTGVmdEV4cGFuc2lvbiArIGJvdHRvbVJpZ2h0RXhwYW5zaW9uKTsKIH0K
IAotTGF5b3V0U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldFJlc3BlY3RpbmdDdXN0b21GaXhl
ZFBvc2l0aW9uKCkgY29uc3QKK0xheW91dFBvaW50IEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25S
ZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oSU9T
KQotICAgIHJldHVybiB1c2VDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCgpID8gY3VzdG9t
Rml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKS5sb2NhdGlvbigpIC0gTGF5b3V0UG9pbnQoKSA6IHRv
TGF5b3V0U2l6ZShzY3JvbGxQb3NpdGlvbigpKTsKKyAgICByZXR1cm4gdXNlQ3VzdG9tRml4ZWRQ
b3NpdGlvbkxheW91dFJlY3QoKSA/IGN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KCkubG9j
YXRpb24oKSA6IHNjcm9sbFBvc2l0aW9uKCk7CiAjZWxzZQotICAgIHJldHVybiBzY3JvbGxPZmZz
ZXRGb3JGaXhlZFBvc2l0aW9uKCk7CisgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQ
b3NpdGlvbigpOwogI2VuZGlmCiB9CiAKQEAgLTE3MzMsNyArMTczMyw3IEBAIExheW91dFJlY3Qg
RnJhbWVWaWV3Ojp2aWV3cG9ydENvbnN0cmFpbmVkVmlzaWJsZUNvbnRlbnRSZWN0KCkgY29uc3QK
ICNlbmRpZgogICAgIExheW91dFJlY3Qgdmlld3BvcnRSZWN0ID0gdmlzaWJsZUNvbnRlbnRSZWN0
KCk7CiAKLSAgICB2aWV3cG9ydFJlY3Quc2V0TG9jYXRpb24odG9MYXlvdXRQb2ludChzY3JvbGxP
ZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkpKTsKKyAgICB2aWV3cG9ydFJlY3Quc2V0TG9jYXRpb24o
c2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCkpOwogICAgIHJldHVybiB2aWV3cG9ydFJl
Y3Q7CiB9CiAKQEAgLTE3NDIsNyArMTc0Miw3IEBAIGZsb2F0IEZyYW1lVmlldzo6ZnJhbWVTY2Fs
ZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIGZyYW1lKCkuZnJhbWVTY2FsZUZhY3RvcigpOwog
fQogCi1MYXlvdXRTaXplIEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihj
b25zdCBMYXlvdXRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QsIGNvbnN0IExheW91dFNpemUmIHRv
dGFsQ29udGVudHNTaXplLCBjb25zdCBMYXlvdXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0
IExheW91dFBvaW50JiBzY3JvbGxPcmlnaW4sIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3IsIGJvb2wg
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSwgU2Nyb2xsQmVoYXZpb3JGb3JGaXhl
ZEVsZW1lbnRzIGJlaGF2aW9yRm9yRml4ZWQsIGludCBoZWFkZXJIZWlnaHQsIGludCBmb290ZXJI
ZWlnaHQpCitMYXlvdXRQb2ludCBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3Np
dGlvbihjb25zdCBMYXlvdXRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QsIGNvbnN0IExheW91dFNp
emUmIHRvdGFsQ29udGVudHNTaXplLCBjb25zdCBMYXlvdXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IExheW91dFBvaW50JiBzY3JvbGxPcmlnaW4sIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3Is
IGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSwgU2Nyb2xsQmVoYXZpb3JG
b3JGaXhlZEVsZW1lbnRzIGJlaGF2aW9yRm9yRml4ZWQsIGludCBoZWFkZXJIZWlnaHQsIGludCBm
b290ZXJIZWlnaHQpCiB7CiAgICAgTGF5b3V0UG9pbnQgcG9zaXRpb247CiAgICAgaWYgKGJlaGF2
aW9yRm9yRml4ZWQgPT0gU3RpY2tUb0RvY3VtZW50Qm91bmRzKQpAQCAtMTc1Nyw3ICsxNzU3LDcg
QEAgTGF5b3V0U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oY29u
c3QgTGF5b3V0UmVjdCYgdmlzaWJsZUNvbnQKICAgICBmbG9hdCBkcmFnRmFjdG9yWCA9IChmaXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lIHx8ICFtYXhTaXplLndpZHRoKCkpID8gMSA6
ICh0b3RhbENvbnRlbnRzU2l6ZS53aWR0aCgpIC0gdmlzaWJsZUNvbnRlbnRSZWN0LndpZHRoKCkg
KiBmcmFtZVNjYWxlRmFjdG9yKSAvIG1heFNpemUud2lkdGgoKTsKICAgICBmbG9hdCBkcmFnRmFj
dG9yWSA9IChmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lIHx8ICFtYXhTaXplLmhl
aWdodCgpKSA/IDEgOiAodG90YWxDb250ZW50c1NpemUuaGVpZ2h0KCkgLSB2aXNpYmxlQ29udGVu
dFJlY3QuaGVpZ2h0KCkgKiBmcmFtZVNjYWxlRmFjdG9yKSAvIG1heFNpemUuaGVpZ2h0KCk7CiAK
LSAgICByZXR1cm4gTGF5b3V0U2l6ZShwb3NpdGlvbi54KCkgKiBkcmFnRmFjdG9yWCAvIGZyYW1l
U2NhbGVGYWN0b3IsIHBvc2l0aW9uLnkoKSAqIGRyYWdGYWN0b3JZIC8gZnJhbWVTY2FsZUZhY3Rv
cik7CisgICAgcmV0dXJuIExheW91dFBvaW50KHBvc2l0aW9uLngoKSAqIGRyYWdGYWN0b3JYIC8g
ZnJhbWVTY2FsZUZhY3RvciwgcG9zaXRpb24ueSgpICogZHJhZ0ZhY3RvclkgLyBmcmFtZVNjYWxl
RmFjdG9yKTsKIH0KIAogZmxvYXQgRnJhbWVWaWV3Ojp5UG9zaXRpb25Gb3JJbnNldENsaXBMYXll
cihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgZmxvYXQgdG9wQ29udGVudEluc2V0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMjJjY2Q0OTIzMzA1NWMzNzlhMzMxMTFhNDJl
OWYxOTljM2I0NzdkMi4uYTA1NmYyYzI4ZjYxNDQzODgzOGUzOTdkNzU2ODUxNzM4OWVkZjhhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yNzgsMTMgKzI3OCwxMyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBGdW5jdGlvbnMgZm9yIHF1ZXJ5aW5nIHRoZSBjdXJyZW50IHNjcm9sbGVkIHBvc2l0
aW9uLCBuZWdhdGluZyB0aGUgZWZmZWN0cyBvZiBvdmVyaGFuZwogICAgIC8vIGFuZCBhZGp1c3Rp
bmcgZm9yIHBhZ2Ugc2NhbGUuCi0gICAgTGF5b3V0U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZFBv
c2l0aW9uKCkgY29uc3QKKyAgICBMYXlvdXRQb2ludCBzY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9z
aXRpb24oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHNjcm9sbE9mZnNldEZvckZpeGVk
UG9zaXRpb24odmlzaWJsZUNvbnRlbnRSZWN0KCksIHRvdGFsQ29udGVudHNTaXplKCksIHNjcm9s
bFBvc2l0aW9uKCksIHNjcm9sbE9yaWdpbigpLCBmcmFtZVNjYWxlRmFjdG9yKCksIGZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSwgc2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1l
bnRzKCksIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBz
Y3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24odmlzaWJsZUNvbnRlbnRSZWN0KCksIHRvdGFs
Q29udGVudHNTaXplKCksIHNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbE9yaWdpbigpLCBmcmFtZVNj
YWxlRmFjdG9yKCksIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSwgc2Nyb2xs
QmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKCksIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQo
KSk7CiAgICAgfQogICAgIAogICAgIC8vIFN0YXRpYyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZy
b20gYW5vdGhlciB0aHJlYWQuCi0gICAgc3RhdGljIExheW91dFNpemUgc2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWRQb3NpdGlvbihjb25zdCBMYXlvdXRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QsIGNvbnN0
IExheW91dFNpemUmIHRvdGFsQ29udGVudHNTaXplLCBjb25zdCBMYXlvdXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IExheW91dFBvaW50JiBzY3JvbGxPcmlnaW4sIGZsb2F0IGZyYW1lU2Nh
bGVGYWN0b3IsIGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSwgU2Nyb2xs
QmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzLCBpbnQgaGVhZGVySGVpZ2h0LCBpbnQgZm9vdGVySGVp
Z2h0KTsKKyAgICBzdGF0aWMgTGF5b3V0UG9pbnQgc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0
aW9uKGNvbnN0IExheW91dFJlY3QmIHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6
ZSYgdG90YWxDb250ZW50c1NpemUsIGNvbnN0IExheW91dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Y29uc3QgTGF5b3V0UG9pbnQmIHNjcm9sbE9yaWdpbiwgZmxvYXQgZnJhbWVTY2FsZUZhY3Rvciwg
Ym9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLCBTY3JvbGxCZWhhdmlvckZv
ckZpeGVkRWxlbWVudHMsIGludCBoZWFkZXJIZWlnaHQsIGludCBmb290ZXJIZWlnaHQpOwogCiAg
ICAgLy8gVGhlc2UgbGF5ZXJzIGFyZSBwb3NpdGlvbmVkIGRpZmZlcmVudGx5IHdoZW4gdGhlcmUg
aXMgYSB0b3BDb250ZW50SW5zZXQsIGEgaGVhZGVyLCBvciBhIGZvb3Rlci4gVGhlc2UgdmFsdWUg
bmVlZCB0byBiZSBjb21wdXRlZAogICAgIC8vIG9uIGJvdGggdGhlIG1haW4gdGhyZWFkIGFuZCB0
aGUgc2Nyb2xsaW5nIHRocmVhZC4KQEAgLTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogICAgIExheW91dFJlY3QgZml4ZWRTY3JvbGxhYmxlQXJlYUJvdW5kc0luZmxhdGVkRm9yU2Ny
b2xsaW5nKGNvbnN0IExheW91dFJlY3QmIHVuaW5mbGF0ZWRCb3VuZHMpIGNvbnN0OwotICAgIExh
eW91dFNpemUgc2Nyb2xsT2Zmc2V0UmVzcGVjdGluZ0N1c3RvbUZpeGVkUG9zaXRpb24oKSBjb25z
dDsKKyAgICBMYXlvdXRQb2ludCBzY3JvbGxQb3NpdGlvblJlc3BlY3RpbmdDdXN0b21GaXhlZFBv
c2l0aW9uKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWlnaHQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0SGVhZGVySGVpZ2h0KGludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IDY3NTZlMzI4NDJkODAzMjFkYzdjYTg4NWVhZmFm
NjAwMTkyNzU2NjYuLjUxMDk0OWIwMmU3ZTY3ZjBlMzMwOGM2NTI1Y2E4NTEwYzg2Yzc4MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBA
IC01NjQsOSArNTY0LDkgQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNl
KCkKICNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKICAgICAgICAgaWYgKG1fYW5p
bWF0aW9uLT50cmlnZ2VyKCktPmlzU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcigpKSB7CiAgICAgICAg
ICAgICBpZiAobV9vYmplY3QpIHsKLSAgICAgICAgICAgICAgICBmbG9hdCBjdXJyZW50U2Nyb2xs
T2Zmc2V0ID0gbV9vYmplY3QtPnZpZXcoKS5mcmFtZVZpZXcoKS5zY3JvbGxPZmZzZXRGb3JGaXhl
ZFBvc2l0aW9uKCkuaGVpZ2h0KCkudG9GbG9hdCgpOworICAgICAgICAgICAgICAgIGZsb2F0IGN1
cnJlbnRTY3JvbGxQb3NpdGlvbiA9IG1fb2JqZWN0LT52aWV3KCkuZnJhbWVWaWV3KCkuc2Nyb2xs
UG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCkueSgpLnRvRmxvYXQoKTsKICAgICAgICAgICAgICAg
ICBTY3JvbGxBbmltYXRpb25UcmlnZ2VyJiBzY3JvbGxUcmlnZ2VyID0gZG93bmNhc3Q8U2Nyb2xs
QW5pbWF0aW9uVHJpZ2dlcj4oKm1fYW5pbWF0aW9uLT50cmlnZ2VyKCkuZ2V0KCkpOwotICAgICAg
ICAgICAgICAgIGlmIChjdXJyZW50U2Nyb2xsT2Zmc2V0ID49IHNjcm9sbFRyaWdnZXIuc3RhcnRW
YWx1ZSgpLnZhbHVlKCkgJiYgKCFzY3JvbGxUcmlnZ2VyLmhhc0VuZFZhbHVlKCkgfHwgY3VycmVu
dFNjcm9sbE9mZnNldCA8PSBzY3JvbGxUcmlnZ2VyLmVuZFZhbHVlKCkudmFsdWUoKSkpCisgICAg
ICAgICAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA+PSBzY3JvbGxUcmlnZ2VyLnN0
YXJ0VmFsdWUoKS52YWx1ZSgpICYmICghc2Nyb2xsVHJpZ2dlci5oYXNFbmRWYWx1ZSgpIHx8IGN1
cnJlbnRTY3JvbGxQb3NpdGlvbiA8PSBzY3JvbGxUcmlnZ2VyLmVuZFZhbHVlKCkudmFsdWUoKSkp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAzOGUxOGNjMjVjMjU4NDVjYzM5MjlkYzljMWFk
N2YwYmY3NDFlZWE1Li5jYmY3MzQxNDVmN2RjMzlkNzk3NWY1ZDdkNjQzZDBlMTZlOGI1NGZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250
cm9sbGVyLmNwcApAQCAtNTU5LDcgKzU1OSw4IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OnNjcm9sbFdhc1VwZGF0ZWQoKQogICAgIGF1dG8qIHZpZXcgPSBtX2ZyYW1lLnZpZXco
KTsKICAgICBpZiAoIXZpZXcgfHwgIXdhbnRzU2Nyb2xsVXBkYXRlcygpKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9zY3JvbGxQb3NpdGlvbiA9IHZpZXctPnNjcm9sbE9mZnNldEZvckZpeGVkUG9z
aXRpb24oKS5oZWlnaHQoKS50b0Zsb2F0KCk7CisKKyAgICBtX3Njcm9sbFBvc2l0aW9uID0gdmll
dy0+c2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCkueSgpLnRvRmxvYXQoKTsKIAogICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHVwZGF0aW5nIGFsbCB0aGUgYW5pbWF0aW9ucywgcmF0aGVyIHRo
YW4ganVzdCB0aGUgb25lcwogICAgIC8vIHRoYXQgYXJlIGRlcGVuZGVudCBvbiBzY3JvbGwuIFdl
IHRvIGdvIGZyb20gb3VyIEFuaW1hdGlvbkJhc2UgdG8gaXRzIENvbXBvc2l0ZUFuaW1hdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA5MDljYzk2N2Y1NTgxYjhiOTE2MWMxMTU3YjY5Mjhj
MzJjYjVjY2VhLi4zMDE2MGMwYTQyNWU5Mzg4NDQ3MWJlNzcwODdiODRkZTIzOTNiYjc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzE5LDIwICszMTksMjAgQEAgdm9pZCBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Ny
b2xsaW5nTm8KICAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbGVkQ29udGVudHNMYXll
ciA9IHJvb3RDb250ZW50TGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKICAgICAgICAgICAg
IEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyID0gaGVhZGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJh
bWVWaWV3KTsKICAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGZvb3RlckxheWVyID0gZm9vdGVy
TGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKLSAgICAgICAgICAgIExheW91dFNpemUgc2Ny
b2xsT2Zmc2V0Rm9yRml4ZWQgPSBmcmFtZVZpZXcuc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlv
bigpOworICAgICAgICAgICAgTGF5b3V0UG9pbnQgc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZCA9IGZy
YW1lVmlldy5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oKTsKIAogICAgICAgICAgICAg
ZmxvYXQgdG9wQ29udGVudEluc2V0ID0gZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpOwogICAg
ICAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckluc2V0Q2xpcExheWVyID0gRmxvYXRQb2lu
dCgwLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKHNjcm9sbFBvc2l0aW9u
LCB0b3BDb250ZW50SW5zZXQpKTsKICAgICAgICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JD
b250ZW50c0xheWVyID0gRmxvYXRQb2ludChzY3JvbGxlZENvbnRlbnRzTGF5ZXItPnBvc2l0aW9u
KCkueCgpLAogICAgICAgICAgICAgICAgIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9yUm9vdENvbnRl
bnRMYXllcihzY3JvbGxQb3NpdGlvbiwgdG9wQ29udGVudEluc2V0LCBmcmFtZVZpZXcuaGVhZGVy
SGVpZ2h0KCkpKTsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JIZWFkZXJMYXll
ciA9IEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQud2lkdGgoKSwgRnJhbWVWaWV3Ojp5
UG9zaXRpb25Gb3JIZWFkZXJMYXllcihzY3JvbGxQb3NpdGlvbiwgdG9wQ29udGVudEluc2V0KSk7
Ci0gICAgICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIgPSBGbG9hdFBv
aW50KHNjcm9sbE9mZnNldEZvckZpeGVkLndpZHRoKCksCisgICAgICAgICAgICBGbG9hdFBvaW50
IHBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIgPSBGbG9hdFBvaW50KHNjcm9sbFBvc2l0aW9uRm9yRml4
ZWQueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckhlYWRlckxheWVyKHNjcm9sbFBvc2l0aW9u
LCB0b3BDb250ZW50SW5zZXQpKTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JG
b290ZXJMYXllciA9IEZsb2F0UG9pbnQoc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZC54KCksCiAgICAg
ICAgICAgICAgICAgRnJhbWVWaWV3Ojp5UG9zaXRpb25Gb3JGb290ZXJMYXllcihzY3JvbGxQb3Np
dGlvbiwgdG9wQ29udGVudEluc2V0LCBmcmFtZVZpZXcudG90YWxDb250ZW50c1NpemUoKS5oZWln
aHQoKSwgZnJhbWVWaWV3LmZvb3RlckhlaWdodCgpKSk7CiAKICAgICAgICAgICAgIGlmIChwcm9n
cmFtbWF0aWNTY3JvbGwgfHwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTZXRTY3Jv
bGxpbmdMYXllclBvc2l0aW9uKSB7CiAgICAgICAgICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBv
c2l0aW9uKC1mcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7CiAgICAgICAgICAgICAgICAgaWYg
KGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAgICAgICAgICAgICAgY291bnRlclNjcm9s
bGluZ0xheWVyLT5zZXRQb3NpdGlvbih0b0xheW91dFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVk
KSk7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ZXJTY3JvbGxpbmdMYXllci0+c2V0UG9zaXRp
b24oc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZCk7CiAgICAgICAgICAgICAgICAgaWYgKGluc2V0Q2xp
cExheWVyKQogICAgICAgICAgICAgICAgICAgICBpbnNldENsaXBMYXllci0+c2V0UG9zaXRpb24o
cG9zaXRpb25Gb3JJbnNldENsaXBMYXllcik7CiAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRT
aGFkb3dMYXllcikKQEAgLTM0Niw3ICszNDYsNyBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdObwog
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBzY3JvbGxMYXllci0+c3luY1Bv
c2l0aW9uKC1mcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7CiAgICAgICAgICAgICAgICAgaWYg
KGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAgICAgICAgICAgICAgY291bnRlclNjcm9s
bGluZ0xheWVyLT5zeW5jUG9zaXRpb24odG9MYXlvdXRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhl
ZCkpOworICAgICAgICAgICAgICAgICAgICBjb3VudGVyU2Nyb2xsaW5nTGF5ZXItPnN5bmNQb3Np
dGlvbihzY3JvbGxQb3NpdGlvbkZvckZpeGVkKTsKICAgICAgICAgICAgICAgICBpZiAoaW5zZXRD
bGlwTGF5ZXIpCiAgICAgICAgICAgICAgICAgICAgIGluc2V0Q2xpcExheWVyLT5zeW5jUG9zaXRp
b24ocG9zaXRpb25Gb3JJbnNldENsaXBMYXllcik7CiAgICAgICAgICAgICAgICAgaWYgKGNvbnRl
bnRTaGFkb3dMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1Mu
bW0KaW5kZXggNTY4MmY1MWRjMTg4YTgyNDcwZmEwM2E4Nzc0MTk0ZjRjYWMxMzBmZi4uMzJlNWRh
NDA4ZGEwMTVmZDlhNzAxN2FlYWNmYTU3MGQwNjA5MTM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0KQEAgLTE0OCwxNyArMTQ4LDE3IEBAIHZvaWQgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Ny
b2xsKGNvbnN0IEZsb2F0CiAgICAgU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzIGJlaGF2
aW9yRm9yRml4ZWQgPSBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMoKTsKICAgICBGbG9h
dFBvaW50IHNjcm9sbE9mZnNldCA9IHNjcm9sbFBvc2l0aW9uIC0gdG9JbnRTaXplKHNjcm9sbE9y
aWdpbigpKTsKICAgICBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0KEZsb2F0UG9pbnQoKSwgc2Nyb2xs
YWJsZUFyZWFTaXplKCkpOwotICAgIEZsb2F0U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZENoaWxk
cmVuID0gRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGVuY2xvc2luZ0xh
eW91dFJlY3Qodmlld3BvcnRSZWN0KSwgTGF5b3V0U2l6ZSh0b3RhbENvbnRlbnRzU2l6ZSgpKSwg
TGF5b3V0UG9pbnQoc2Nyb2xsT2Zmc2V0KSwgc2Nyb2xsT3JpZ2luKCksIGZyYW1lU2NhbGVGYWN0
b3IoKSwgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpLCBiZWhhdmlvckZvckZp
eGVkLCBoZWFkZXJIZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkpOworICAgIEZsb2F0UG9pbnQgc2Ny
b2xsUG9zaXRpb25Gb3JGaXhlZENoaWxkcmVuID0gRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkZv
ckZpeGVkUG9zaXRpb24oZW5jbG9zaW5nTGF5b3V0UmVjdCh2aWV3cG9ydFJlY3QpLCBMYXlvdXRT
aXplKHRvdGFsQ29udGVudHNTaXplKCkpLCBMYXlvdXRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3Jv
bGxPcmlnaW4oKSwgZnJhbWVTY2FsZUZhY3RvcigpLCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRp
dmVUb0ZyYW1lKCksIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWln
aHQoKSk7CiAKLSAgICBbbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIgc2V0UG9zaXRpb246RmxvYXRQ
b2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZENoaWxkcmVuKV07CisgICAgW21fY291bnRlclNjcm9s
bGluZ0xheWVyIHNldFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRDaGlsZHJlbl07CiAK
ICAgICBpZiAobV9oZWFkZXJMYXllciB8fCBtX2Zvb3RlckxheWVyKSB7CiAgICAgICAgIC8vIEdl
bmVyYWxseSB0aGUgYmFubmVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBob3Jpem9udGFsLXBvc2l0
aW9uIGNvbXB1dGF0aW9uIGFzIGEgZml4ZWQgZWxlbWVudC4gSG93ZXZlciwKICAgICAgICAgLy8g
dGhlIGJhbm5lcnMgYXJlIG5vdCBhZmZlY3RlZCBieSB0aGUgZnJhbWVTY2FsZUZhY3RvcigpLCBz
byBpZiB0aGVyZSBpcyBjdXJyZW50bHkgYSBub24tMSBmcmFtZVNjYWxlRmFjdG9yKCkKLSAgICAg
ICAgLy8gdGhlbiB3ZSBzaG91bGQgcmVjb21wdXRlIHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRy
ZW4gZm9yIHRoZSBiYW5uZXIgd2l0aCBhIHNjYWxlIGZhY3RvciBvZiAxLgotICAgICAgICBmbG9h
dCBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRD
aGlsZHJlbi53aWR0aCgpOworICAgICAgICAvLyB0aGVuIHdlIHNob3VsZCByZWNvbXB1dGUgc2Ny
b2xsUG9zaXRpb25Gb3JGaXhlZENoaWxkcmVuIGZvciB0aGUgYmFubmVyIHdpdGggYSBzY2FsZSBm
YWN0b3Igb2YgMS4KKyAgICAgICAgZmxvYXQgaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5l
ciA9IHNjcm9sbFBvc2l0aW9uRm9yRml4ZWRDaGlsZHJlbi54KCk7CiAgICAgICAgIGlmIChmcmFt
ZVNjYWxlRmFjdG9yKCkgIT0gMSkKLSAgICAgICAgICAgIGhvcml6b250YWxTY3JvbGxPZmZzZXRG
b3JCYW5uZXIgPSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oZW5jbG9z
aW5nTGF5b3V0UmVjdCh2aWV3cG9ydFJlY3QpLCBMYXlvdXRTaXplKHRvdGFsQ29udGVudHNTaXpl
KCkpLCBMYXlvdXRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwgMSwgZml4ZWRF
bGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpLCBiZWhhdmlvckZvckZpeGVkLCBoZWFkZXJI
ZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkpLndpZHRoKCk7CisgICAgICAgICAgICBob3Jpem9udGFs
U2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkZvckZpeGVk
UG9zaXRpb24oZW5jbG9zaW5nTGF5b3V0UmVjdCh2aWV3cG9ydFJlY3QpLCBMYXlvdXRTaXplKHRv
dGFsQ29udGVudHNTaXplKCkpLCBMYXlvdXRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmln
aW4oKSwgMSwgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpLCBiZWhhdmlvckZv
ckZpeGVkLCBoZWFkZXJIZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkpLngoKTsKIAogICAgICAgICBp
ZiAobV9oZWFkZXJMYXllcikKICAgICAgICAgICAgIFttX2hlYWRlckxheWVyIHNldFBvc2l0aW9u
OkZsb2F0UG9pbnQoaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciwgMCldOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA3MjU3NDQ2ZDQyNDNl
MjViYjlhMjAwMWYwYTcwNTlkYTNjNzM2OWRlLi5jYWQ4OTk0M2QzYjExM2YyZWRmYWNiNjdhODdi
YTE2MDMzY2YyODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5tbQpAQCAtNDAzLDExICs0MDMsMTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQKICAgICBM
YXlvdXRQb2ludCBzY3JvbGxPZmZzZXQgPSBMYXlvdXRQb2ludChwb3NpdGlvbikgLSB0b0xheW91
dFNpemUoc2Nyb2xsT3JpZ2luKCkpOwogICAgIEZsb2F0UmVjdCB2aWV3cG9ydFJlY3QoRmxvYXRQ
b2ludCgpLCBzY3JvbGxhYmxlQXJlYVNpemUoKSk7CiAgICAgCi0gICAgRmxvYXRTaXplIHNjcm9s
bE9mZnNldEZvckZpeGVkQ2hpbGRyZW4gPSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVk
UG9zaXRpb24oZW5jbG9zaW5nTGF5b3V0UmVjdCh2aWV3cG9ydFJlY3QpLCBMYXlvdXRTaXplKHRv
dGFsQ29udGVudHNTaXplKCkpLCBzY3JvbGxPZmZzZXQsIHNjcm9sbE9yaWdpbigpLCBmcmFtZVNj
YWxlRmFjdG9yKCksCisgICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbkZvckZpeGVkQ2hpbGRy
ZW4gPSBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbihlbmNsb3NpbmdM
YXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50c1NpemUoKSks
IHNjcm9sbE9mZnNldCwgc2Nyb2xsT3JpZ2luKCksIGZyYW1lU2NhbGVGYWN0b3IoKSwKICAgICAg
ICAgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpLCBiZWhhdmlvckZvckZpeGVk
LCBoZWFkZXJIZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkpOwogICAgIAogICAgIGlmIChtX2NvdW50
ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAgbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIuZ2V0KCku
cG9zaXRpb24gPSBGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4pOworICAg
ICAgICBtX2NvdW50ZXJTY3JvbGxpbmdMYXllci5nZXQoKS5wb3NpdGlvbiA9IHNjcm9sbFBvc2l0
aW9uRm9yRml4ZWRDaGlsZHJlbjsKIAogICAgIGZsb2F0IHRvcENvbnRlbnRJbnNldCA9IHRoaXMt
PnRvcENvbnRlbnRJbnNldCgpOwogICAgIGlmIChtX2luc2V0Q2xpcExheWVyICYmIG1fc2Nyb2xs
ZWRDb250ZW50c0xheWVyICYmIHRvcENvbnRlbnRJbnNldCkgewpAQCAtNDIyLDkgKzQyMiw5IEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsTGF5ZXJQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50CiAgICAgICAgIC8vIEdlbmVyYWxseSB0aGUgYmFubmVy
cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBob3Jpem9udGFsLXBvc2l0aW9uIGNvbXB1dGF0aW9uIGFz
IGEgZml4ZWQgZWxlbWVudC4gSG93ZXZlciwKICAgICAgICAgLy8gdGhlIGJhbm5lcnMgYXJlIG5v
dCBhZmZlY3RlZCBieSB0aGUgZnJhbWVTY2FsZUZhY3RvcigpLCBzbyBpZiB0aGVyZSBpcyBjdXJy
ZW50bHkgYSBub24tMSBmcmFtZVNjYWxlRmFjdG9yKCkKICAgICAgICAgLy8gdGhlbiB3ZSBzaG91
bGQgcmVjb21wdXRlIHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4gZm9yIHRoZSBiYW5uZXIg
d2l0aCBhIHNjYWxlIGZhY3RvciBvZiAxLgotICAgICAgICBmbG9hdCBob3Jpem9udGFsU2Nyb2xs
T2Zmc2V0Rm9yQmFubmVyID0gc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbi53aWR0aCgpOwor
ICAgICAgICBmbG9hdCBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gc2Nyb2xsUG9z
aXRpb25Gb3JGaXhlZENoaWxkcmVuLngoKTsKICAgICAgICAgaWYgKGZyYW1lU2NhbGVGYWN0b3Io
KSAhPSAxKQotICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciA9IEZy
YW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihlbmNsb3NpbmdMYXlvdXRSZWN0
KHZpZXdwb3J0UmVjdCksIExheW91dFNpemUodG90YWxDb250ZW50c1NpemUoKSksIHNjcm9sbE9m
ZnNldCwgc2Nyb2xsT3JpZ2luKCksIDEsIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWUoKSwgYmVoYXZpb3JGb3JGaXhlZCwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKS53
aWR0aCgpOworICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciA9IEZy
YW1lVmlldzo6c2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKGVuY2xvc2luZ0xheW91dFJl
Y3Qodmlld3BvcnRSZWN0KSwgTGF5b3V0U2l6ZSh0b3RhbENvbnRlbnRzU2l6ZSgpKSwgc2Nyb2xs
T2Zmc2V0LCBzY3JvbGxPcmlnaW4oKSwgMSwgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZSgpLCBiZWhhdmlvckZvckZpeGVkLCBoZWFkZXJIZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkp
LngoKTsKIAogICAgICAgICBpZiAobV9oZWFkZXJMYXllcikKICAgICAgICAgICAgIG1faGVhZGVy
TGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBGbG9hdFBvaW50KGhvcml6b250YWxTY3JvbGxPZmZzZXRG
b3JCYW5uZXIsIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIocG9zaXRpb24sIHRv
cENvbnRlbnRJbnNldCkpOwpAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50CiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKLSAgICB2aWV3cG9y
dFJlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludCgpICsgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGls
ZHJlbik7CisgICAgdmlld3BvcnRSZWN0LnNldExvY2F0aW9uKHNjcm9sbFBvc2l0aW9uRm9yRml4
ZWRDaGlsZHJlbik7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogKm1fY2hpbGRyZW4pCiAgICAg
ICAgIGNoaWxkLT51cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKCp0aGlzLCB2aWV3cG9y
dFJlY3QsIEZsb2F0U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5jcHAKaW5kZXggYTAzODUxNjg3ZmZjNjM5NTI1NTZhZGMwM2I3ZjlhZTVmOWFm
MTk0ZC4uNWZhMmYwNWI1ZGM4OTAzMDg3MThiNmI0NWIzYTczMWY0MDQ3ZTA1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTI5NCw3ICsy
OTQsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6c2V0U2l6ZShj
b25zdCBJbnRTaXplJiBzaXplKQogICAgIGlmICghbV92aWRlb0Rpc3BsYXkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIExheW91dFNpemUgc2Nyb2xsT2Zmc2V0OwogICAgIEludFBvaW50IHBvc2l0
aW9uSW5XaW5kb3cobV9sYXN0UGFpbnRSZWN0LmxvY2F0aW9uKCkpOwogCiAgICAgRnJhbWVWaWV3
KiB2aWV3ID0gbnVsbHB0cjsKQEAgLTMwNCwxMiArMzAzLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFGb3VuZGF0aW9uOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAg
ICAgIGRldmljZVNjYWxlRmFjdG9yID0gbV9wbGF5ZXItPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PmRvY3VtZW50KCktPmRldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgfQogCisgICAgTGF5b3V0UG9p
bnQgc2Nyb2xsUG9zaXRpb247CiAgICAgaWYgKHZpZXcpIHsKLSAgICAgICAgc2Nyb2xsT2Zmc2V0
ID0gdmlldy0+c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpOworICAgICAgICBzY3JvbGxQ
b3NpdGlvbiA9IHZpZXctPnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbigpOwogICAgICAg
ICBwb3NpdGlvbkluV2luZG93ID0gdmlldy0+Y29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhJbnRQ
b2ludChtX2xhc3RQYWludFJlY3QubG9jYXRpb24oKSkpOwogICAgIH0KIAotICAgIHBvc2l0aW9u
SW5XaW5kb3cubW92ZSgtc2Nyb2xsT2Zmc2V0LndpZHRoKCkudG9JbnQoKSwgLXNjcm9sbE9mZnNl
dC5oZWlnaHQoKS50b0ludCgpKTsKKyAgICBwb3NpdGlvbkluV2luZG93Lm1vdmUoLXNjcm9sbFBv
c2l0aW9uLngoKS50b0ludCgpLCAtc2Nyb2xsUG9zaXRpb24ueSgpLnRvSW50KCkpOwogCiAgICAg
aW50IHggPSBwb3NpdGlvbkluV2luZG93LngoKSAqIGRldmljZVNjYWxlRmFjdG9yOwogICAgIGlu
dCB5ID0gcG9zaXRpb25JbldpbmRvdy55KCkgKiBkZXZpY2VTY2FsZUZhY3RvcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IGM3
YTJiYzg5ZDllNDFlODdlYTQyMGJmMTQxODEyY2Y1OTBmNzY2MDguLjA0MGEwMjU0MzA4ODk2YmQ1
MjYyZmQzZjIxODkyODcyNzNmOWE1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTExMSw5ICsxMTExLDkgQEAgQmFja2dy
b3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91
bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgICAgICAgICAgICAgdmlld3BvcnRSZWN0LnNldExv
Y2F0aW9uKExheW91dFBvaW50KDAsIC10b3BDb250ZW50SW5zZXQpKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHVzZUZpeGVkTGF5b3V0IHx8IGZyYW1lVmlldy5m
cmFtZVNjYWxlRmFjdG9yKCkgIT0gMSkgewotICAgICAgICAgICAgICAgIC8vIHNjcm9sbE9mZnNl
dEZvckZpeGVkUG9zaXRpb24oKSBpcyBhZGp1c3RlZCBmb3IgcGFnZSBzY2FsZSBhbmQgaXQgZG9l
cyBub3QgaW5jbHVkZQorICAgICAgICAgICAgICAgIC8vIHNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQ
b3NpdGlvbigpIGlzIGFkanVzdGVkIGZvciBwYWdlIHNjYWxlIGFuZCBpdCBkb2VzIG5vdCBpbmNs
dWRlCiAgICAgICAgICAgICAgICAgLy8gdG9wQ29udGVudEluc2V0IHNvIGRvIG5vdCBhZGQgaXQg
dG8gdGhlIGNhbGN1bGF0aW9uIGJlbG93LgotICAgICAgICAgICAgICAgIHZpZXdwb3J0UmVjdC5z
ZXRMb2NhdGlvbih0b0xheW91dFBvaW50KGZyYW1lVmlldy5zY3JvbGxPZmZzZXRGb3JGaXhlZFBv
c2l0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICB2aWV3cG9ydFJlY3Quc2V0TG9jYXRpb24oZnJh
bWVWaWV3LnNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbigpKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gZG9jdW1lbnRTY3JvbGxPZmZzZXRSZWxhdGl2ZVRv
Vmlld09yaWdpbigpIGluY2x1ZGVzIC10b3BDb250ZW50SW5zZXQgaW4gaXRzIGhlaWdodAogICAg
ICAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhhdCBpbiBjYWxjdWxh
dGluZyB0aGUgcGhhc2Ugc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKaW5kZXggMGZhMzRmMDAzZTNkOTE4MTIzMzA1YWYyNjYxZmZiNmM2YzU3N2FkMS4uMzJiYmI1
YzEzMGM3MDFjZjFkOTA4NTkwNjYyODA3MDEyNDA3ZWFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01NTA0LDcgKzU1MDQsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3Rz
Q29udGV4dCwgQwogICAgICAgICAvLyBjbGlwUmVjdHMgYXJlIG5lZWRlZCBpbiB2aWV3IHNwYWNl
LgogICAgICAgICBMYXlvdXRQb2ludCBvZmZzZXQocmVuZGVyZXIoKS5sb2NhbFRvQ29udGFpbmVy
UG9pbnQoRmxvYXRQb2ludCgpLCAmY2xpcFJlY3RzQ29udGV4dC5yb290TGF5ZXItPnJlbmRlcmVy
KCkpKTsKICAgICAgICAgaWYgKGNsaXBSZWN0cy5maXhlZCgpICYmICZjbGlwUmVjdHNDb250ZXh0
LnJvb3RMYXllci0+cmVuZGVyZXIoKSA9PSAmcmVuZGVyZXIoKS52aWV3KCkpCi0gICAgICAgICAg
ICBvZmZzZXQgLT0gcmVuZGVyZXIoKS52aWV3KCkuZnJhbWVWaWV3KCkuc2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWRQb3NpdGlvbigpOworICAgICAgICAgICAgb2Zmc2V0IC09IHRvTGF5b3V0U2l6ZShyZW5k
ZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24o
KSk7CiAgICAgICAgIAogICAgICAgICBpZiAocmVuZGVyZXIoKS5oYXNPdmVyZmxvd0NsaXAoKSkg
ewogICAgICAgICAgICAgQ2xpcFJlY3QgbmV3T3ZlcmZsb3dDbGlwID0gZG93bmNhc3Q8UmVuZGVy
Qm94PihyZW5kZXJlcigpKS5vdmVyZmxvd0NsaXBSZWN0Rm9yQ2hpbGRMYXllcnMob2Zmc2V0LCBj
dXJyZW50UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSwgY2xpcFJlY3RzQ29udGV4dC5vdmVybGF5
U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSk7CkBAIC01NTY4LDcgKzU1NjgsNyBAQCBDbGlwUmVjdCBS
ZW5kZXJMYXllcjo6YmFja2dyb3VuZENsaXBSZWN0KGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNs
aXBSZWN0c0NvbnRleAogCiAgICAgLy8gTm90ZTogaW5maW5pdGUgY2xpcFJlY3RzIHNob3VsZCBu
b3QgYmUgc2Nyb2xsZWQgaGVyZSwgb3RoZXJ3aXNlIHRoZXkgd2lsbCBhY2NpZGVudGFsbHkgbm8g
bG9uZ2VyIGJlIGNvbnNpZGVyZWQgaW5maW5pdGUuCiAgICAgaWYgKHBhcmVudFJlY3RzLmZpeGVk
KCkgJiYgJmNsaXBSZWN0c0NvbnRleHQucm9vdExheWVyLT5yZW5kZXJlcigpID09ICZ2aWV3ICYm
ICFiYWNrZ3JvdW5kQ2xpcFJlY3QuaXNJbmZpbml0ZSgpKQotICAgICAgICBiYWNrZ3JvdW5kQ2xp
cFJlY3QubW92ZSh2aWV3LmZyYW1lVmlldygpLnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24o
KSk7CisgICAgICAgIGJhY2tncm91bmRDbGlwUmVjdC5tb3ZlQnkodmlldy5mcmFtZVZpZXcoKS5z
Y3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oKSk7CiAKICAgICByZXR1cm4gYmFja2dyb3Vu
ZENsaXBSZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAppbmRleCAxYWI2ZDY0MDU4YzIyM2VjYTU0NDBmYzY5NjcxNGI0MGIyZDc3YWQx
Li42MWYyMjAzN2E0OTk2Y2NkNjRjMGNkNzBjNjVmZjYwMDUzYzgyOTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtOTI0LDcgKzky
NCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgpCiAgICAgICAg
IEZsb2F0U2l6ZSBiYWNrZ3JvdW5kU2l6ZSA9IGNvbnRlbnRzU2l6ZTsKICAgICAgICAgaWYgKGJh
Y2tncm91bmRMYXllclBhaW50c0ZpeGVkUm9vdEJhY2tncm91bmQoKSkgewogICAgICAgICAgICAg
Y29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXco
KTsKLSAgICAgICAgICAgIGJhY2tncm91bmRQb3NpdGlvbiA9IHRvTGF5b3V0UG9pbnQoZnJhbWVW
aWV3LnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSk7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kUG9zaXRpb24gPSBmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCk7
CiAgICAgICAgICAgICBiYWNrZ3JvdW5kU2l6ZSA9IGZyYW1lVmlldy5sYXlvdXRTaXplKCk7CiAg
ICAgICAgIH0KICAgICAgICAgbV9iYWNrZ3JvdW5kTGF5ZXItPnNldFBvc2l0aW9uKGJhY2tncm91
bmRQb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCmluZGV4IGM4Nzk4YTE1NTc5MzRmYjRmZTNkODU2MTJmYjZjZmRlNTgy
YzNiMzQuLjQ3OWM5MmRjOTcxZmM1MjVmMDU2OWQ2NTM5YmMxMmM4ZDhlM2NlMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBA
IC0xNzY5LDcgKzE3NjksNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Ny
b2xsTGF5ZXJQb3NpdGlvbigpCiAgICAgbV9zY3JvbGxMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQ
b2ludCgtc2Nyb2xsUG9zaXRpb24ueCgpLCAtc2Nyb2xsUG9zaXRpb24ueSgpKSk7CiAKICAgICBp
ZiAoR3JhcGhpY3NMYXllciogZml4ZWRCYWNrZ3JvdW5kTGF5ZXIgPSBmaXhlZFJvb3RCYWNrZ3Jv
dW5kTGF5ZXIoKSkKLSAgICAgICAgZml4ZWRCYWNrZ3JvdW5kTGF5ZXItPnNldFBvc2l0aW9uKHRv
TGF5b3V0UG9pbnQoZnJhbWVWaWV3LnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSkpOwor
ICAgICAgICBmaXhlZEJhY2tncm91bmRMYXllci0+c2V0UG9zaXRpb24oZnJhbWVWaWV3LnNjcm9s
bFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbigpKTsKIH0KIAogRmxvYXRQb2ludCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA4ODFmY2Q1MTQ0MDYwMDIwYzllMzk3Y2Y2NGIy
ZDViYTY3ZjJlNzU2Li5mZjZmZjlhMzUyYmFhMTE3NjgzMzA5MDI1YjIxMDI4NDU5N2VkMjQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC00NDEsNyArNDQxLDcg
QEAgdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWkKICAgICB9CiAgICAgCiAgICAgaWYgKG1vZGUgJiBJ
c0ZpeGVkKQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGZyYW1lVmlldygpLnNjcm9sbE9m
ZnNldFJlc3BlY3RpbmdDdXN0b21GaXhlZFBvc2l0aW9uKCkpOworICAgICAgICB0cmFuc2Zvcm1T
dGF0ZS5tb3ZlKHRvTGF5b3V0U2l6ZShmcmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvblJlc3BlY3Rp
bmdDdXN0b21GaXhlZFBvc2l0aW9uKCkpKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5k
ZXJWaWV3OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29u
c3QKQEAgLTQ1MCwxNCArNDUwLDE0IEBAIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyVmlldzo6
cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqCiAgICAgLy8g
dGhlbiB3ZSBzaG91bGQgaGF2ZSBmb3VuZCBpdCBieSBub3cuCiAgICAgQVNTRVJUX0FSRyhhbmNl
c3RvclRvU3RvcEF0LCAhYW5jZXN0b3JUb1N0b3BBdCB8fCBhbmNlc3RvclRvU3RvcEF0ID09IHRo
aXMpOwogCi0gICAgTGF5b3V0U2l6ZSBzY3JvbGxPZmZzZXQgPSBmcmFtZVZpZXcoKS5zY3JvbGxP
ZmZzZXRSZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpOworICAgIExheW91dFBvaW50IHNj
cm9sbFBvc2l0aW9uID0gZnJhbWVWaWV3KCkuc2Nyb2xsUG9zaXRpb25SZXNwZWN0aW5nQ3VzdG9t
Rml4ZWRQb3NpdGlvbigpOwogCiAgICAgaWYgKCFhbmNlc3RvclRvU3RvcEF0ICYmIHNob3VsZFVz
ZVRyYW5zZm9ybUZyb21Db250YWluZXIobnVsbHB0cikpIHsKICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihudWxscHRyLCBM
YXlvdXRTaXplKCksIHQpOwotICAgICAgICBnZW9tZXRyeU1hcC5wdXNoVmlldyh0aGlzLCBzY3Jv
bGxPZmZzZXQsICZ0KTsKKyAgICAgICAgZ2VvbWV0cnlNYXAucHVzaFZpZXcodGhpcywgdG9MYXlv
dXRTaXplKHNjcm9sbFBvc2l0aW9uKSwgJnQpOwogICAgIH0gZWxzZQotICAgICAgICBnZW9tZXRy
eU1hcC5wdXNoVmlldyh0aGlzLCBzY3JvbGxPZmZzZXQpOworICAgICAgICBnZW9tZXRyeU1hcC5w
dXNoVmlldyh0aGlzLCB0b0xheW91dFNpemUoc2Nyb2xsUG9zaXRpb24pKTsKIAogICAgIHJldHVy
biBudWxscHRyOwogfQpAQCAtNDY1LDcgKzQ2NSw3IEBAIGNvbnN0IFJlbmRlck9iamVjdCogUmVu
ZGVyVmlldzo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
CiB2b2lkIFJlbmRlclZpZXc6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAogewogICAg
IGlmIChtb2RlICYgSXNGaXhlZCkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShmcmFtZVZp
ZXcoKS5zY3JvbGxPZmZzZXRSZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpKTsKKyAgICAg
ICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b0xheW91dFNpemUoZnJhbWVWaWV3KCkuc2Nyb2xsUG9z
aXRpb25SZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpKSk7CiAKICAgICBpZiAobW9kZSAm
IFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihudWxscHRy
KSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwpAQCAtNjk2LDEwICs2OTYsOSBA
QCBMYXlvdXRSZWN0IFJlbmRlclZpZXc6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlv
dXRSZWN0JiByZWN0LCBjb25zdCBSZW5kZQogICAgICAgICAgICAgYWRqdXN0ZWRSZWN0LnNldFgo
dmlld1dpZHRoKCkgLSBhZGp1c3RlZFJlY3QubWF4WCgpKTsKICAgICB9CiAKLSAgICBpZiAoZml4
ZWQpIHsKLSAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUoZnJhbWVWaWV3KCkuc2Nyb2xsT2Zmc2V0
UmVzcGVjdGluZ0N1c3RvbUZpeGVkUG9zaXRpb24oKSk7Ci0gICAgfQotICAgICAgICAKKyAgICBp
ZiAoZml4ZWQpCisgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlQnkoZnJhbWVWaWV3KCkuc2Nyb2xs
UG9zaXRpb25SZXNwZWN0aW5nQ3VzdG9tRml4ZWRQb3NpdGlvbigpKTsKKyAgICAKICAgICAvLyBB
cHBseSBvdXIgdHJhbnNmb3JtIGlmIHdlIGhhdmUgb25lIChiZWNhdXNlIG9mIGZ1bGwgcGFnZSB6
b29taW5nKS4KICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIgJiYgbGF5ZXIoKSAmJiBsYXllcigp
LT50cmFuc2Zvcm0oKSkKICAgICAgICAgYWRqdXN0ZWRSZWN0ID0gTGF5b3V0UmVjdChsYXllcigp
LT50cmFuc2Zvcm0oKS0+bWFwUmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGFkanVzdGVkUmVj
dCwgZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKSkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>