<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>132368</bug_id>
          
          <creation_ts>2006-08-14 00:49:54 +0000</creation_ts>
          <short_desc>[regression] erratic/incorrect behaviour on :hover restyling</short_desc>
          <delta_ts>2007-01-21 14:39:40 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>konqueror</product>
          <component>khtml</component>
          <version>unspecified</version>
          <rep_platform>Compiled Sources</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Germain Garand">germain</reporter>
          <assigned_to name="Konqueror Bugs">konqueror-bugs-null</assigned_to>
          
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>460294</commentid>
    <comment_count>0</comment_count>
    <who name="Germain Garand">germain</who>
    <bug_when>2006-08-14 00:49:54 +0000</bug_when>
    <thetext>Version:            (using KDE Devel)
Installed from:    Compiled sources

:hover triggers erratic behaviour in some situations.

Noticed on:
  http://xmoto.free.fr/index.php?page=all_highscores

Try hovering the big table:
Instead of changing the rows background-color, it&apos;s the cells&apos; (and also the links&apos; within) that change in a weird way. 

It seems to stem from r532332 (the big dynamic restyling changes).

Some notes:

- the erratic behaviour is apparently triggered by an :hover rule that is erroneously preceded by a space. It would be ignored in quirk mode, but page is strict. 

Nevertheless, the style content of said rule doesn&apos;t seem to justify the erratic behaviour that is observed.

- when removing the problematic space, erratic behaviour goes away, but correct style still isn&apos;t applied to rows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460295</commentid>
    <comment_count>1</comment_count>
      <attachid>17362</attachid>
    <who name="Germain Garand">germain</who>
    <bug_when>2006-08-14 00:53:54 +0000</bug_when>
    <thetext>Created attachment 17362
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460347</commentid>
    <comment_count>2</comment_count>
    <who name="Allan Sandfeld">kde</who>
    <bug_when>2006-08-14 10:50:26 +0000</bug_when>
    <thetext>Returns 500 internal server error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460385</commentid>
    <comment_count>3</comment_count>
    <who name="Germain Garand">germain</who>
    <bug_when>2006-08-14 14:28:25 +0000</bug_when>
    <thetext>page is available now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473069</commentid>
    <comment_count>4</comment_count>
    <who name="Allan Sandfeld">kde</who>
    <bug_when>2006-09-26 22:42:07 +0000</bug_when>
    <thetext>This bug seems caused by inheriting non-inherited CSS properties. This is something our model doesn&apos;t currently handle. 

If it worked before but not now, it&apos;s because I made restyling more fine-grained, and it only worked by accident before.

I have an experimental patch that enables dynamically inheriting non-inherited properties. I will try it with this test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473080</commentid>
    <comment_count>5</comment_count>
      <attachid>17932</attachid>
    <who name="Allan Sandfeld">kde</who>
    <bug_when>2006-09-26 22:56:33 +0000</bug_when>
    <thetext>Created attachment 17932
Dynamically update inherited &quot;non-inherited&quot; properties

This patch fixes the webpage :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473610</commentid>
    <comment_count>6</comment_count>
    <who name="Germain Garand">germain</who>
    <bug_when>2006-09-29 03:12:22 +0000</bug_when>
    <thetext>&gt; dynamically inheriting non-inherited properties.
Could you explain that paradox in some more details?
The patch works absolutely fine but for the life of me, I can&apos;t make any sense out of what it does :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473724</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld">kde</who>
    <bug_when>2006-09-29 16:42:18 +0000</bug_when>
    <thetext>Okay okay. I just like writing it that way because it sounds so non-sensitical ;)

The point is CSS has inherited and non-inherited properties. When we restyle an element and a inherited attribute change we restyle all the children. (NodeImpl::diff and ElementImpl:recalcStyle)

Now non-inherited properties can be set to value &quot;inherit&quot;. In this test-case the background-color is inherited. When the parent element change background-color we don&apos;t restyle the children because no inherited property was changed. 

This patch catches all cases value &quot;inherit&quot; on non-inherited properties and sets a flag so we restyle the element when a non-inherited property change in the parent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474023</commentid>
    <comment_count>8</comment_count>
    <who name="Germain Garand">germain</who>
    <bug_when>2006-10-01 00:58:17 +0000</bug_when>
    <thetext>ahh alright, that&apos;s all clear now. Maybe the method would need be even more verbose for the casual reader to understand?
e.g setInheritedNoninherited =&gt; setExplicitelyInheritingNoninherited

or something similar... oh well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487473</commentid>
    <comment_count>9</comment_count>
    <who name="Germain Garand">germain</who>
    <bug_when>2006-11-17 13:58:57 +0000</bug_when>
    <thetext>allan: do you still have this patch in mind?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503014</commentid>
    <comment_count>10</comment_count>
    <who name="Allan Sandfeld">kde</who>
    <bug_when>2007-01-21 14:39:39 +0000</bug_when>
    <thetext>SVN commit 625864 by carewolf:

Handle dynamic inheritance when inherit value is used explictly on 
default non-inherited properties.
BUG:132368


 M  +12 -1     ChangeLog  
 M  +82 -47    css/cssstyleselector.cpp  
 M  +6 -2      rendering/render_style.h  
 M  +4 -3      xml/dom_elementimpl.cpp  
 M  +8 -0      xml/dom_nodeimpl.cpp  
 M  +2 -0      xml/dom_nodeimpl.h  
 M  +2 -1      xml/dom_textimpl.h  
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17362</attachid>
            <date>2006-08-14 00:53:54 +0000</date>
            <delta_ts>2006-08-14 00:53:54 +0000</delta_ts>
            <desc>test case</desc>
            <filename>in.html</filename>
            <type>text/html</type>
            <size>1305</size>
            <attacher name="Germain Garand">germain</attacher>
            
              <data encoding="base64">CjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
ICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJmciIgbGFu
Zz0iZnIiPgo8aGVhZD4KPHRpdGxlPmhvdmVyIHJlc3R5bGluZyBicmVha2FnZTwvdGl0bGU+Cjxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmEgewogY29sb3I6IGdvbGQ7CiBiYWNrZ3JvdW5kLWNvbG9y
OiBpbmhlcml0Owp9CgphOmhvdmVyCXsKIGNvbG9yOiAjRkYwMDAwOwogdGV4dC1kZWNvcmF0aW9u
OiB1bmRlcmxpbmUgb3ZlcmxpbmU7CiBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0Owp9CgouYWRt
aW5fZGF0YSB7CiB3aWR0aDogMTAwJTsKIGJvcmRlci1zdHlsZTogc29saWQ7CiBib3JkZXItd2lk
dGg6IDFweDsKIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCi5hZG1pbl9kYXRhX2xpbmUg
ewogY29sb3I6IGluaGVyaXQ7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjN0I3QjdCOwp9CgouYWRtaW5f
ZGF0YV9tdWx0aXBsZSB7CiB0ZXh0LWFsaWduOiBjZW50ZXI7CiBjb2xvcjogIzIyMzNBQTsKIGJh
Y2tncm91bmQtY29sb3I6IGluaGVyaXQ7CiBwYWRkaW5nOiAwLjJlbTsKfQoKLmFkbWluX2RhdGEg
dHI6aG92ZXIgewogY29sb3I6IGluaGVyaXQ7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjOTlBQUNDOwp9
CgovKiB0cnkgcmVtb3ZpbmcgdGhlIGJvZ3VzIHNwYWNlIGluIHRoZSBydWxlIGJlbG93Li4uCiAg
IHRoZSBlcnJhdGljIGJlaGF2aW91ciB3aWxsIGdvIGF3YXksIGJ1dCB0aGUgCiAgIHRyOmhvdmVy
IHJ1bGUgc3RpbGwgZG9lc24ndCB3b3JrCiovCgouYWRtaW5fc3VibWVudV92YWxpZGVyIDpob3Zl
ciB7CiBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgCn0KCjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+
Cjx0YWJsZSBjbGFzcz0nYWRtaW5fZGF0YSc+Cjx0ciBjbGFzcz0nYWRtaW5fZGF0YV9saW5lJz4K
PHRkIGNsYXNzPSdhZG1pbl9kYXRhX211bHRpcGxlJz48YSBocmVmPSJodHRwOi8veG1vdG8uZnJl
ZS5mci9wYWdlcy90aHVtYm5haWwucGhwP2lkX2xldmVsPTIxNCIgdGFyZ2V0PSJtaW5pbWFwIiAv
PkFjcm9iYXQ8L2E+PC90ZD4KPHRkIGNsYXNzPSdhZG1pbl9kYXRhX211bHRpcGxlJz5EdXVmZXJu
YTwvdGQ+Cjx0ZCBjbGFzcz0nYWRtaW5fZGF0YV9tdWx0aXBsZSc+MDozMzo3NTwvdGQ+Cjx0ZCBj
bGFzcz0nYWRtaW5fZGF0YV9tdWx0aXBsZSc+MTIganVseSAyMDA2PC90ZD4KPC90ZD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17932</attachid>
            <date>2006-09-26 22:56:33 +0000</date>
            <delta_ts>2006-09-26 22:56:33 +0000</delta_ts>
            <desc>Dynamically update inherited &quot;non-inherited&quot; properties</desc>
            <filename>study</filename>
            <type>text/plain</type>
            <size>17099</size>
            <attacher name="Allan Sandfeld">kde</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfc3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
cmVuZGVyX3N0eWxlLmgJKHJldmlzaW9uIDU4ODc3MSkKKysrIHJlbmRlcmluZy9yZW5kZXJfc3R5
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTE2LDcgKzkxNiw5IEBACiAgICAgICAgICAgICAgICAg
dW5zaWduZWQgX3BzZXVkb0JpdHMgOiA4OwogICAgICAgICAgICAgICAgIEVVbmljb2RlQmlkaSBf
dW5pY29kZUJpZGkgOiAyOwoKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdW51c2VkIDog
MTY7CisgICAgICAgICAgICAgICAgYm9vbCBfaW5oZXJpdGVkX25vbmluaGVyaXRlZCA6IDE7CisK
KyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdW51c2VkIDogMTU7CiAgICAgICAgICAgICB9
IGY7CiAgICAgICAgICAgICBRX1VJTlQ2NCBfbmlmbGFnczsKICAgICAgICAgfTsKQEAgLTk4Myw2
ICs5ODUsNyBAQAogCW5vbmluaGVyaXRlZF9mbGFncy5mLl9oYXNDbGlwID0gZmFsc2U7CiAgICAg
ICAgIG5vbmluaGVyaXRlZF9mbGFncy5mLl9wc2V1ZG9CaXRzID0gMDsKIAlub25pbmhlcml0ZWRf
ZmxhZ3MuZi5fdW5pY29kZUJpZGkgPSBpbml0aWFsVW5pY29kZUJpZGkoKTsKKyAgICAgICAgbm9u
aW5oZXJpdGVkX2ZsYWdzLmYuX2luaGVyaXRlZF9ub25pbmhlcml0ZWQgPSBmYWxzZTsKICAgICAg
ICAgbm9uaW5oZXJpdGVkX2ZsYWdzLmYudW51c2VkID0gMDsKICAgICB9CgpAQCAtMTM3Niw2ICsx
Mzc5LDggQEAKICAgICBzaG9ydCBjb3VudGVyUmVzZXQoY29uc3QgRE9NOjpET01TdHJpbmcmIGMp
IGNvbnN0OwogICAgIHNob3J0IGNvdW50ZXJJbmNyZW1lbnQoY29uc3QgRE9NOjpET01TdHJpbmcm
IGMpIGNvbnN0OwoKKyAgICBib29sIGluaGVyaXRlZE5vbmluaGVyaXRlZCgpIGNvbnN0IHsgcmV0
dXJuIG5vbmluaGVyaXRlZF9mbGFncy5mLl9pbmhlcml0ZWRfbm9uaW5oZXJpdGVkOyB9CisgICAg
dm9pZCBzZXRJbmhlcml0ZWROb25pbmhlcml0ZWQoYm9vbCBiKSB7IG5vbmluaGVyaXRlZF9mbGFn
cy5mLl9pbmhlcml0ZWRfbm9uaW5oZXJpdGVkID0gYjsgfQoKICAgICBib29sIGluaGVyaXRlZE5v
dEVxdWFsKCBSZW5kZXJTdHlsZSAqb3RoZXIgKSBjb25zdDsKCkBAIC0xNDE2LDYgKzE0MjEsNyBA
QAogICAgIHN0YXRpYyBFTGlzdFN0eWxlVHlwZSBpbml0aWFsTGlzdFN0eWxlVHlwZSgpIHsgcmV0
dXJuIExESVNDOyB9CiAgICAgc3RhdGljIEVPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3coKSB7IHJl
dHVybiBPVklTSUJMRTsgfQogICAgIHN0YXRpYyBFUGFnZUJyZWFrIGluaXRpYWxQYWdlQnJlYWso
KSB7IHJldHVybiBQQkFVVE87IH0KKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsUGFnZUJyZWFrSW5z
aWRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBFUG9zaXRpb24gaW5pdGlhbFBvc2l0
aW9uKCkgeyByZXR1cm4gU1RBVElDOyB9CiAgICAgc3RhdGljIEVUYWJsZUxheW91dCBpbml0aWFs
VGFibGVMYXlvdXQoKSB7IHJldHVybiBUQVVUTzsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkg
aW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4gVUJOb3JtYWw7IH0KSW5kZXg6IHJlbmRlcmlu
Zy9yZW5kZXJfYmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfYmxvY2su
Y3BwCShyZXZpc2lvbiA1ODg3NzEpCisrKyByZW5kZXJpbmcvcmVuZGVyX2Jsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTI1LDcgKzkyNSw3IEBACiAgICAgICAgIFJlbmRlck9iamVjdCogY29t
cGFjdENoaWxkID0gY29tcGFjdEluZm8uY29tcGFjdCgpOwogICAgICAgICBpZiAoY29tcGFjdENo
aWxkLT5oZWlnaHQoKSA+IGNoaWxkLT5oZWlnaHQoKSkKICAgICAgICAgICAgIG1faGVpZ2h0ICs9
IGNvbXBhY3RDaGlsZC0+aGVpZ2h0KCkgLSBjaGlsZC0+aGVpZ2h0KCk7Ci0gICAgfQorICAgIH0K
IH0KCiB2b2lkIFJlbmRlckJsb2NrOjppbnNlcnRDb21wYWN0SWZOZWVkZWQoUmVuZGVyT2JqZWN0
KiBjaGlsZCwgQ29tcGFjdEluZm8mIGNvbXBhY3RJbmZvKQpJbmRleDogY3NzL2Nzc3N0eWxlc2Vs
ZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGNzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAkocmV2aXNp
b24gNTg4NzcxKQorKysgY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02OSwyMSArNjksMzggQEAKICNpbmNsdWRlIDxxcGFpbnRkZXZpY2VtZXRyaWNzLmg+CiAjaW5j
bHVkZSA8c3RkbGliLmg+CgorI2RlZmluZSBIQU5ETEVfSU5IRVJJVEVEKHByb3AsIFByb3ApIFwK
K2lmIChpc0luaGVyaXQpIFwKK3tcCisgICAgc3R5bGUtPnNldCMjUHJvcChwYXJlbnRTdHlsZS0+
cHJvcCgpKTtcCisgICAgcmV0dXJuO1wKK30KKwogI2RlZmluZSBIQU5ETEVfSU5IRVJJVChwcm9w
LCBQcm9wKSBcCiBpZiAoaXNJbmhlcml0KSBcCiB7XAorICAgIHN0eWxlLT5zZXRJbmhlcml0ZWRO
b25pbmhlcml0ZWQodHJ1ZSk7XAogICAgIHN0eWxlLT5zZXQjI1Byb3AocGFyZW50U3R5bGUtPnBy
b3AoKSk7XAogICAgIHJldHVybjtcCiB9CgotI2RlZmluZSBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTChwcm9wLCBQcm9wKSBcCi1IQU5ETEVfSU5IRVJJVChwcm9wLCBQcm9wKSBcCi1lbHNlIGlm
IChpc0luaXRpYWwpIFwKKyNkZWZpbmUgSEFORExFX0lOSVRJQUwocHJvcCwgUHJvcCkgXAoraWYg
KGlzSW5pdGlhbCkgXAoge1wKICAgICBzdHlsZS0+c2V0IyNQcm9wKFJlbmRlclN0eWxlOjppbml0
aWFsIyNQcm9wKCkpO1wKICAgICByZXR1cm47XAogfQoKKyNkZWZpbmUgSEFORExFX0lOSEVSSVRf
QU5EX0lOSVRJQUwocHJvcCwgUHJvcCkgXAorSEFORExFX0lOSEVSSVQocHJvcCwgUHJvcCkgXAor
ZWxzZSBcCitIQU5ETEVfSU5JVElBTChwcm9wLCBQcm9wKQorCisjZGVmaW5lIEhBTkRMRV9JTkhF
UklURURfQU5EX0lOSVRJQUwocHJvcCwgUHJvcCkgXAorSEFORExFX0lOSEVSSVRFRChwcm9wLCBQ
cm9wKSBcCitlbHNlIFwKK0hBTkRMRV9JTklUSUFMKHByb3AsIFByb3ApCisKICNkZWZpbmUgSEFO
RExFX0lOSEVSSVRfQU5EX0lOSVRJQUxfV0lUSF9WQUxVRShwcm9wLCBQcm9wLCBWYWx1ZSkgXAog
SEFORExFX0lOSEVSSVQocHJvcCwgUHJvcCkgXAogZWxzZSBpZiAoaXNJbml0aWFsKSBcCkBAIC0y
MTIxLDcgKzIxMzgsNyBAQAogICAgICAgICBIQU5ETEVfQkFDS0dST1VORF9WQUxVRShiYWNrZ3Jv
dW5kU2l6ZSwgQmFja2dyb3VuZFNpemUsIHZhbHVlKQogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU19QUk9QX0JPUkRFUl9DT0xMQVBTRToKLSAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lO
SVRJQUwoYm9yZGVyQ29sbGFwc2UsIEJvcmRlckNvbGxhcHNlKQorICAgICAgICBIQU5ETEVfSU5I
RVJJVEVEX0FORF9JTklUSUFMKGJvcmRlckNvbGxhcHNlLCBCb3JkZXJDb2xsYXBzZSkKICAgICAg
ICAgaWYoIXByaW1pdGl2ZVZhbHVlKSBicmVhazsKICAgICAgICAgc3dpdGNoKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpKQogICAgICAgICB7CkBAIC0yMTYzLDcgKzIxODAsOCBAQAogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX0NBUFRJT05fU0lERToKICAgICB7Ci0gICAgICAg
IEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGNhcHRpb25TaWRlLCBDYXB0aW9uU2lkZSkKKyAg
ICAgICAgSEFORExFX0lOSEVSSVRFRF9BTkRfSU5JVElBTChjYXB0aW9uU2lkZSwgQ2FwdGlvblNp
ZGUpCisKICAgICAgICAgaWYoIXByaW1pdGl2ZVZhbHVlKSBicmVhazsKICAgICAgICAgRUNhcHRp
b25TaWRlIGMgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbENhcHRpb25TaWRlKCk7CiAgICAgICAgIHN3
aXRjaChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKQEAgLTIyMDUsNyArMjIyMyw3IEBACiAg
ICAgfQogICAgIGNhc2UgQ1NTX1BST1BfRElSRUNUSU9OOgogICAgIHsKLSAgICAgICAgSEFORExF
X0lOSEVSSVRfQU5EX0lOSVRJQUwoZGlyZWN0aW9uLCBEaXJlY3Rpb24pCisgICAgICAgIEhBTkRM
RV9JTkhFUklURURfQU5EX0lOSVRJQUwoZGlyZWN0aW9uLCBEaXJlY3Rpb24pCiAgICAgICAgIGlm
KCFwcmltaXRpdmVWYWx1ZSkgYnJlYWs7CiAgICAgICAgIHN0eWxlLT5zZXREaXJlY3Rpb24oIChF
RGlyZWN0aW9uKSAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgLSBDU1NfVkFMX0xUUikgKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjIyMSw3ICsyMjM5LDcgQEAKCiAgICAgY2FzZSBDU1NfUFJP
UF9FTVBUWV9DRUxMUzoKICAgICB7Ci0gICAgICAgIEhBTkRMRV9JTkhFUklUKGVtcHR5Q2VsbHMs
IEVtcHR5Q2VsbHMpOworICAgICAgICBIQU5ETEVfSU5IRVJJVEVEKGVtcHR5Q2VsbHMsIEVtcHR5
Q2VsbHMpOwogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKSBicmVhazsKICAgICAgICAgaW50
IGlkID0gcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCk7CiAgICAgICAgIGlmIChpZCA9PSBDU1Nf
VkFMX1NIT1cpCkBAIC0yMzUyLDcgKzIzNzAsNyBAQAoKICAgICBjYXNlIENTU19QUk9QX0xJU1Rf
U1RZTEVfUE9TSVRJT046CiAgICAgewotICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElB
TChsaXN0U3R5bGVQb3NpdGlvbiwgTGlzdFN0eWxlUG9zaXRpb24pCisgICAgICAgIEhBTkRMRV9J
TkhFUklURURfQU5EX0lOSVRJQUwobGlzdFN0eWxlUG9zaXRpb24sIExpc3RTdHlsZVBvc2l0aW9u
KQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKSByZXR1cm47CiAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKICAgICAgICAgICAgIHN0eWxlLT5zZXRMaXN0U3R5bGVQ
b3NpdGlvbiggKEVMaXN0U3R5bGVQb3NpdGlvbikgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
IC0gQ1NTX1ZBTF9PVVRTSURFKSApOwpAQCAtMjM2MSw3ICsyMzc5LDcgQEAKCiAgICAgY2FzZSBD
U1NfUFJPUF9MSVNUX1NUWUxFX1RZUEU6CiAgICAgewotICAgICAgICBIQU5ETEVfSU5IRVJJVF9B
TkRfSU5JVElBTChsaXN0U3R5bGVUeXBlLCBMaXN0U3R5bGVUeXBlKQorICAgICAgICBIQU5ETEVf
SU5IRVJJVEVEX0FORF9JTklUSUFMKGxpc3RTdHlsZVR5cGUsIExpc3RTdHlsZVR5cGUpCiAgICAg
ICAgIGlmICghcHJpbWl0aXZlVmFsdWUpIHJldHVybjsKICAgICAgICAgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpKQogICAgICAgICB7CkBAIC0yNDQ0LDcgKzI0NjIsNyBAQAogICAgIH0K
CiAgICAgY2FzZSBDU1NfUFJPUF9QQUdFX0JSRUFLX0lOU0lERTogewotICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTF9XSVRIX1ZBTFVFKHBhZ2VCcmVha0luc2lkZSwgUGFnZUJyZWFr
SW5zaWRlLCBQYWdlQnJlYWspCisgICAgICAgIEhBTkRMRV9JTkhFUklURURfQU5EX0lOSVRJQUwo
cGFnZUJyZWFrSW5zaWRlLCBQYWdlQnJlYWtJbnNpZGUpCiAgICAgICAgIGlmICghcHJpbWl0aXZl
VmFsdWUpIHJldHVybjsKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IENTU19WQUxfQVVUTykKICAgICAgICAgICAgIHN0eWxlLT5zZXRQYWdlQnJlYWtJbnNpZGUodHJ1
ZSk7CkBAIC0yNTIwLDcgKzI1MzgsNyBAQAogCWJyZWFrOwogICAgIH0KICAgICBjYXNlIENTU19Q
Uk9QX1RFWFRfVFJBTlNGT1JNOiB7Ci0gICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KHRleHRUcmFuc2Zvcm0sIFRleHRUcmFuc2Zvcm0pCisgICAgICAgIEhBTkRMRV9JTkhFUklURURf
QU5EX0lOSVRJQUwodGV4dFRyYW5zZm9ybSwgVGV4dFRyYW5zZm9ybSkKCiAgICAgICAgIGlmKCFw
cmltaXRpdmVWYWx1ZSkgYnJlYWs7CiAgICAgICAgIGlmKCFwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSkgcmV0dXJuOwpAQCAtMjUzOSw3ICsyNTU3LDcgQEAKCiAgICAgY2FzZSBDU1NfUFJPUF9W
SVNJQklMSVRZOgogICAgIHsKLSAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodmlz
aWJpbGl0eSwgVmlzaWJpbGl0eSkKKyAgICAgICAgSEFORExFX0lOSEVSSVRFRF9BTkRfSU5JVElB
TCh2aXNpYmlsaXR5LCBWaXNpYmlsaXR5KQoKICAgICAgICAgaWYoIXByaW1pdGl2ZVZhbHVlKSBi
cmVhazsKICAgICAgICAgc3dpdGNoKCBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSApIHsKQEAg
LTI1NTcsNyArMjU3NSw3IEBACiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENTU19Q
Uk9QX1dISVRFX1NQQUNFOgotICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh3aGl0
ZVNwYWNlLCBXaGl0ZVNwYWNlKQorICAgICAgICBIQU5ETEVfSU5IRVJJVEVEX0FORF9JTklUSUFM
KHdoaXRlU3BhY2UsIFdoaXRlU3BhY2UpCgogICAgICAgICBpZighcHJpbWl0aXZlVmFsdWUpIGJy
ZWFrOwogICAgICAgICBpZighcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHJldHVybjsKQEAg
LTI2MjEsNyArMjYzOSw3IEBACiAgICAgfQoKICAgICBjYXNlIENTU19QUk9QX0NVUlNPUjoKLSAg
ICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoY3Vyc29yLCBDdXJzb3IpCisgICAgICAg
IEhBTkRMRV9JTkhFUklURURfQU5EX0lOSVRJQUwoY3Vyc29yLCBDdXJzb3IpCiAgICAgICAgIGlm
KHByaW1pdGl2ZVZhbHVlKQogCSAgICBzdHlsZS0+c2V0Q3Vyc29yKCAoRUN1cnNvcikgKHByaW1p
dGl2ZVZhbHVlLT5nZXRJZGVudCgpIC0gQ1NTX1ZBTF9BVVRPKSApOwogICAgICAgICBicmVhazsK
QEAgLTI2MzQsNyArMjY1Miw3IEBACiAgICAgY2FzZSBDU1NfUFJPUF9DT0xPUjoKICAgICBjYXNl
IENTU19QUk9QX09VVExJTkVfQ09MT1I6CiAgICAgICAgIC8vIHRoaXMgcHJvcGVydHkgaXMgYW4g
ZXh0ZW5zaW9uIHVzZWQgdG8gZ2V0IEhUTUw0IDxmb250PiByaWdodC4KLQljYXNlIENTU19QUk9Q
X1NDUk9MTEJBUl9CQVNFX0NPTE9SOgorICAgIGNhc2UgQ1NTX1BST1BfU0NST0xMQkFSX0JBU0Vf
Q09MT1I6CiAgICAgY2FzZSBDU1NfUFJPUF9TQ1JPTExCQVJfRkFDRV9DT0xPUjoKICAgICBjYXNl
IENTU19QUk9QX1NDUk9MTEJBUl9TSEFET1dfQ09MT1I6CiAgICAgY2FzZSBDU1NfUFJPUF9TQ1JP
TExCQVJfSElHSExJR0hUX0NPTE9SOgpAQCAtMjY0NSw2ICsyNjYzLDggQEAKICAgICB7CiAgICAg
ICAgIFFDb2xvciBjb2w7CiAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIGlm
IChpZCAhPSBDU1NfUFJPUF9DT0xPUikKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0SW5oZXJp
dGVkTm9uaW5oZXJpdGVkKHRydWUpOwogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChD
U1NfUFJPUF9CQUNLR1JPVU5EX0NPTE9SLCBiYWNrZ3JvdW5kQ29sb3IsIEJhY2tncm91bmRDb2xv
cikKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfQk9SREVSX1RPUF9D
T0xPUiwgYm9yZGVyVG9wQ29sb3IsIEJvcmRlclRvcENvbG9yKQogICAgICAgICAgICAgSEFORExF
X0lOSEVSSVRfQ09ORChDU1NfUFJPUF9CT1JERVJfQk9UVE9NX0NPTE9SLCBib3JkZXJCb3R0b21D
b2xvciwgQm9yZGVyQm90dG9tQ29sb3IpCkBAIC0yNzQ3LDcgKzI3NjcsNyBAQAogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENTU19QUk9QX0xJU1RfU1RZTEVfSU1BR0U6CiAgICAgewotICAgICAg
ICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChsaXN0U3R5bGVJbWFnZSwgTGlzdFN0eWxlSW1h
Z2UpCisgICAgICAgIEhBTkRMRV9JTkhFUklURURfQU5EX0lOSVRJQUwobGlzdFN0eWxlSW1hZ2Us
IExpc3RTdHlsZUltYWdlKQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKSByZXR1cm47CiAJ
c3R5bGUtPnNldExpc3RTdHlsZUltYWdlKHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWVJbXBsICo+
KHByaW1pdGl2ZVZhbHVlKS0+aW1hZ2UoKSk7CiAgICAgICAgIC8va2REZWJ1ZyggNjA4MCApIDw8
ICJzZXR0aW5nIGltYWdlIGluIGxpc3QgdG8gIiA8PCBpbWFnZS0+aW1hZ2UoKSA8PCBlbmRsOwpA
QCAtMjc2Miw2ICsyNzgyLDcgQEAKICAgICBjYXNlIENTU19QUk9QX09VVExJTkVfV0lEVEg6CiAg
ICAgewogCWlmIChpc0luaGVyaXQpIHsKKwkgICAgc3R5bGUtPnNldEluaGVyaXRlZE5vbmluaGVy
aXRlZCh0cnVlKTsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfQk9S
REVSX1RPUF9XSURUSCwgYm9yZGVyVG9wV2lkdGgsIEJvcmRlclRvcFdpZHRoKQogICAgICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJPUF9CT1JERVJfUklHSFRfV0lEVEgsIGJvcmRl
clJpZ2h0V2lkdGgsIEJvcmRlclJpZ2h0V2lkdGgpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9DT05EKENTU19QUk9QX0JPUkRFUl9CT1RUT01fV0lEVEgsIGJvcmRlckJvdHRvbVdpZHRoLCBC
b3JkZXJCb3R0b21XaWR0aCkKQEAgLTI4OTAsNiArMjkxMSw4IEBACiAgICAgICAgIC8vICtpbmhl
cml0CiAgICAgewogICAgICAgICBpZiAoaXNJbmhlcml0KSB7CisgICAgICAgICAgICBpZiAoaWQg
IT0gQ1NTX1BST1BfVEVYVF9JTkRFTlQpCisgICAgICAgICAgICAgICAgc3R5bGUtPnNldEluaGVy
aXRlZE5vbmluaGVyaXRlZCh0cnVlKTsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQo
Q1NTX1BST1BfTUFYX1dJRFRILCBtYXhXaWR0aCwgTWF4V2lkdGgpCiAgICAgICAgICAgICBIQU5E
TEVfSU5IRVJJVF9DT05EKENTU19QUk9QX0JPVFRPTSwgYm90dG9tLCBCb3R0b20pCiAgICAgICAg
ICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX1RPUCwgdG9wLCBUb3ApCkBAIC0yOTkw
LDYgKzMwMTMsNyBAQAogICAgICAgICAgICBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NfVkFMX0FVVE8pCiAgICAgICAgICAgICBhcHBseSA9IHRydWU7CiAgICAgICAgIGlmIChpc0lu
aGVyaXQpIHsKKwkgICAgc3R5bGUtPnNldEluaGVyaXRlZE5vbmluaGVyaXRlZCh0cnVlKTsKICAg
ICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTX1BST1BfTUFYX0hFSUdIVCwgbWF4SGVp
Z2h0LCBNYXhIZWlnaHQpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9Q
X0hFSUdIVCwgaGVpZ2h0LCBIZWlnaHQpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05E
KENTU19QUk9QX01JTl9IRUlHSFQsIG1pbkhlaWdodCwgTWluSGVpZ2h0KQpAQCAtMzE3Nyw3ICsz
MjAxLDcgQEAKCiAgICAgY2FzZSBDU1NfUFJPUF9XSURPV1M6CiAgICAgewotICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTCh3aWRvd3MsIFdpZG93cykKKyAgICAgICAgSEFORExFX0lO
SEVSSVRFRF9BTkRfSU5JVElBTCh3aWRvd3MsIFdpZG93cykKICAgICAgICAgaWYgKCFwcmltaXRp
dmVWYWx1ZSB8fCBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfTlVNQkVSKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBzdHlsZS0+
c2V0V2lkb3dzKChpbnQpcHJpbWl0aXZlVmFsdWUtPmZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19OVU1CRVIpKTsKQEAgLTMxODYsNyArMzIxMCw3IEBACgogICAgIGNhc2UgQ1NTX1BS
T1BfT1JQSEFOUzoKICAgICB7Ci0gICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKG9y
cGhhbnMsIE9ycGhhbnMpCisgICAgICAgIEhBTkRMRV9JTkhFUklURURfQU5EX0lOSVRJQUwob3Jw
aGFucywgT3JwaGFucykKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSB8fCBwcmltaXRpdmVW
YWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBzdHlsZS0+c2V0T3JwaGFucygoaW50KXByaW1p
dGl2ZVZhbHVlLT5mbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7CkBA
IC0zMTk2LDcgKzMyMjAsNyBAQAogLy8gbGVuZ3RoLCBwZXJjZW50LCBudW1iZXIKICAgICBjYXNl
IENTU19QUk9QX0xJTkVfSEVJR0hUOgogICAgIHsKLSAgICAgICAgSEFORExFX0lOSEVSSVRfQU5E
X0lOSVRJQUwobGluZUhlaWdodCwgTGluZUhlaWdodCkKKyAgICAgICAgSEFORExFX0lOSEVSSVRF
RF9BTkRfSU5JVElBTChsaW5lSGVpZ2h0LCBMaW5lSGVpZ2h0KQogICAgICAgICBpZighcHJpbWl0
aXZlVmFsdWUpIHJldHVybjsKICAgICAgICAgTGVuZ3RoIGxpbmVIZWlnaHQ7CiAgICAgICAgIGlu
dCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKQEAgLTMyMjQsNyArMzI0
OCw3IEBACiAvLyBzdHJpbmcKICAgICBjYXNlIENTU19QUk9QX1RFWFRfQUxJR046CiAgICAgewot
ICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh0ZXh0QWxpZ24sIFRleHRBbGlnbikK
KyAgICAgICAgSEFORExFX0lOSEVSSVRFRF9BTkRfSU5JVElBTCh0ZXh0QWxpZ24sIFRleHRBbGln
bikKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkgcmV0dXJuOwogICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkpCiAgICAgICAgICAgICBzdHlsZS0+c2V0VGV4dEFsaWdu
KCAoRVRleHRBbGlnbikgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpIC0gQ1NTX1ZBTF9fS0hU
TUxfQVVUTykgKTsKQEAgLTM0NDksNyArMzQ3Myw3IEBACiAgICAgICBicmVhazsKICAgICBjYXNl
IENTU19QUk9QX1RFWFRfREVDT1JBVElPTjogewogICAgICAgICAvLyBsaXN0IG9mIGlkZW50Ci0g
ICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRleHREZWNvcmF0aW9uLCBUZXh0RGVj
b3JhdGlvbikKKyAgICAgICAgSEFORExFX0lOSEVSSVRFRF9BTkRfSU5JVElBTCh0ZXh0RGVjb3Jh
dGlvbiwgVGV4dERlY29yYXRpb24pCiAgICAgICAgIGludCB0ID0gUmVuZGVyU3R5bGU6OmluaXRp
YWxUZXh0RGVjb3JhdGlvbigpOwogICAgICAgICBpZihwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NfVkFMX05PTkUpIHsKIAkgICAgLy8gZG8gbm90aGlu
ZwpAQCAtMzUyNiw5ICszNTUwLDEwIEBACiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfU1RZTEU6
CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfV0lEVEg6CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JE
RVJfQ09MT1I6CisgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIHN0eWxlLT5z
ZXRJbmhlcml0ZWROb25pbmhlcml0ZWQodHJ1ZSk7CiAgICAgICAgIGlmKGlkID09IENTU19QUk9Q
X0JPUkRFUiB8fCBpZCA9PSBDU1NfUFJPUF9CT1JERVJfQ09MT1IpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgICBpZiAoaXNJbmhlcml0KSB7CiAgICAgICAgICAgICAgICAgc3R5bGUtPnNldEJvcmRl
clRvcENvbG9yKHBhcmVudFN0eWxlLT5ib3JkZXJUb3BDb2xvcigpKTsKICAgICAgICAgICAgICAg
ICBzdHlsZS0+c2V0Qm9yZGVyQm90dG9tQ29sb3IocGFyZW50U3R5bGUtPmJvcmRlckJvdHRvbUNv
bG9yKCkpOwogICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRCb3JkZXJMZWZ0Q29sb3IocGFyZW50
U3R5bGUtPmJvcmRlckxlZnRDb2xvcigpKTsKQEAgLTM1NzQsNiArMzU5OSw3IEBACiAgICAgICAg
IHJldHVybjsKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9UT1A6CiAgICAgICAgIGlmICggaXNJ
bmhlcml0ICkgeworICAgICAgICAgICAgc3R5bGUtPnNldEluaGVyaXRlZE5vbmluaGVyaXRlZCh0
cnVlKTsKICAgICAgICAgICAgIHN0eWxlLT5zZXRCb3JkZXJUb3BDb2xvcihwYXJlbnRTdHlsZS0+
Ym9yZGVyVG9wQ29sb3IoKSk7CiAgICAgICAgICAgICBzdHlsZS0+c2V0Qm9yZGVyVG9wU3R5bGUo
cGFyZW50U3R5bGUtPmJvcmRlclRvcFN0eWxlKCkpOwogICAgICAgICAgICAgc3R5bGUtPnNldEJv
cmRlclRvcFdpZHRoKHBhcmVudFN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpKTsKQEAgLTM1ODIsNiAr
MzYwOCw3IEBACiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9SSUdI
VDoKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgeworICAgICAgICAgICAgc3R5bGUtPnNldEluaGVy
aXRlZE5vbmluaGVyaXRlZCh0cnVlKTsKICAgICAgICAgICAgIHN0eWxlLT5zZXRCb3JkZXJSaWdo
dENvbG9yKHBhcmVudFN0eWxlLT5ib3JkZXJSaWdodENvbG9yKCkpOwogICAgICAgICAgICAgc3R5
bGUtPnNldEJvcmRlclJpZ2h0U3R5bGUocGFyZW50U3R5bGUtPmJvcmRlclJpZ2h0U3R5bGUoKSk7
CiAgICAgICAgICAgICBzdHlsZS0+c2V0Qm9yZGVyUmlnaHRXaWR0aChwYXJlbnRTdHlsZS0+Ym9y
ZGVyUmlnaHRXaWR0aCgpKTsKQEAgLTM1OTEsNiArMzYxOCw3IEBACiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9CT1RUT006CiAgICAgICAgIGlmIChpc0luaGVyaXQp
IHsKKyAgICAgICAgICAgIHN0eWxlLT5zZXRJbmhlcml0ZWROb25pbmhlcml0ZWQodHJ1ZSk7CiAg
ICAgICAgICAgICBzdHlsZS0+c2V0Qm9yZGVyQm90dG9tQ29sb3IocGFyZW50U3R5bGUtPmJvcmRl
ckJvdHRvbUNvbG9yKCkpOwogICAgICAgICAgICAgc3R5bGUtPnNldEJvcmRlckJvdHRvbVN0eWxl
KHBhcmVudFN0eWxlLT5ib3JkZXJCb3R0b21TdHlsZSgpKTsKICAgICAgICAgICAgIHN0eWxlLT5z
ZXRCb3JkZXJCb3R0b21XaWR0aChwYXJlbnRTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSk7CkBA
IC0zNjAwLDYgKzM2MjgsNyBAQAogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDU1NfUFJPUF9C
T1JERVJfTEVGVDoKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgeworICAgICAgICAgICAgc3R5bGUt
PnNldEluaGVyaXRlZE5vbmluaGVyaXRlZCh0cnVlKTsKICAgICAgICAgICAgIHN0eWxlLT5zZXRC
b3JkZXJMZWZ0Q29sb3IocGFyZW50U3R5bGUtPmJvcmRlckxlZnRDb2xvcigpKTsKICAgICAgICAg
ICAgIHN0eWxlLT5zZXRCb3JkZXJMZWZ0U3R5bGUocGFyZW50U3R5bGUtPmJvcmRlckxlZnRTdHls
ZSgpKTsKICAgICAgICAgICAgIHN0eWxlLT5zZXRCb3JkZXJMZWZ0V2lkdGgocGFyZW50U3R5bGUt
PmJvcmRlckxlZnRXaWR0aCgpKTsKQEAgLTM2MDksNiArMzYzOCw3IEBACiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIENTU19QUk9QX01BUkdJTjoKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgewor
ICAgICAgICAgICAgc3R5bGUtPnNldEluaGVyaXRlZE5vbmluaGVyaXRlZCh0cnVlKTsKICAgICAg
ICAgICAgIHN0eWxlLT5zZXRNYXJnaW5Ub3AocGFyZW50U3R5bGUtPm1hcmdpblRvcCgpKTsKICAg
ICAgICAgICAgIHN0eWxlLT5zZXRNYXJnaW5Cb3R0b20ocGFyZW50U3R5bGUtPm1hcmdpbkJvdHRv
bSgpKTsKICAgICAgICAgICAgIHN0eWxlLT5zZXRNYXJnaW5MZWZ0KHBhcmVudFN0eWxlLT5tYXJn
aW5MZWZ0KCkpOwpAQCAtMzYxOSw2ICszNjQ5LDcgQEAKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgQ1NTX1BST1BfUEFERElORzoKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgeworICAgICAgICAg
ICAgc3R5bGUtPnNldEluaGVyaXRlZE5vbmluaGVyaXRlZCh0cnVlKTsKICAgICAgICAgICAgIHN0
eWxlLT5zZXRQYWRkaW5nVG9wKHBhcmVudFN0eWxlLT5wYWRkaW5nVG9wKCkpOwogICAgICAgICAg
ICAgc3R5bGUtPnNldFBhZGRpbmdCb3R0b20ocGFyZW50U3R5bGUtPnBhZGRpbmdCb3R0b20oKSk7
CiAgICAgICAgICAgICBzdHlsZS0+c2V0UGFkZGluZ0xlZnQocGFyZW50U3R5bGUtPnBhZGRpbmdM
ZWZ0KCkpOwpJbmRleDogeG1sL2RvbV9ub2RlaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geG1sL2Rv
bV9ub2RlaW1wbC5jcHAJKHJldmlzaW9uIDU4ODc3MSkKKysrIHhtbC9kb21fbm9kZWltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MjgsNiArODI4LDE0IEBACiAgICAgICAgIHJldHVybiB0cnVl
OwogfQoKK2Jvb2wgTm9kZUltcGw6OmFmZmVjdGVkQnlOb0luaGVyaXQoKSBjb25zdAoreworICAg
IGlmIChtX3JlbmRlciAmJiBtX3JlbmRlci0+c3R5bGUoKSkKKyAgICAgICAgcmV0dXJuIG1fcmVu
ZGVyLT5zdHlsZSgpLT5pbmhlcml0ZWROb25pbmhlcml0ZWQoKTsKKyAgICBlbHNlCisgICAgICAg
IHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBOb2RlSW1wbDo6Y2xvc2UoKQogewogICAgIGlmICht
X3JlbmRlcikgbV9yZW5kZXItPmNsb3NlKCk7CkluZGV4OiB4bWwvZG9tX3RleHRpbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0geG1sL2RvbV90ZXh0aW1wbC5oCShyZXZpc2lvbiA1ODg3NzEpCisrKyB4bWwv
ZG9tX3RleHRpbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNywxMCArMTI3LDExIEBACiAgICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOwogICAg
IHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoa2h0bWw6OlJlbmRl
ckFyZW5hICosIGtodG1sOjpSZW5kZXJTdHlsZSAqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxj
U3R5bGUoIFN0eWxlQ2hhbmdlID0gTm9DaGFuZ2UgKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWZmZWN0
ZWRCeU5vSW5oZXJpdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wg
Y2hpbGRUeXBlQWxsb3dlZCggdW5zaWduZWQgc2hvcnQgdHlwZSApOwoKICAgICBET01TdHJpbmdJ
bXBsICpyZW5kZXJTdHJpbmcoKSBjb25zdDsKLQorCiAgICAgdmlydHVhbCBET01TdHJpbmcgdG9T
dHJpbmcoKSBjb25zdDsKICAgICAvKiogUmV0dXJuIHRoZSB0ZXh0IGZvciB0aGUgbm9kZSwgd2l0
aCA8IHJlcGxhY2VkIHdpdGggJmx0OyBhbmQgc28gb24uCiAgICAgICogIEBwYXJhbSBzdGFydE9m
ZnNldCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY291bnRlZCBmcm9tIHRoZSBsZWZ0LCB6ZXJv
IGluZGV4ZWQsIGNvdW50aW5nICI8IiBhcyBvbmUgY2hhcmFjdGVyLCB0byBzdGFydCBmcm9tLiAg
VXNlIC0xIHRvIHN0YXJ0IGZyb20gMC4KSW5kZXg6IHhtbC9kb21fZWxlbWVudGltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHhtbC9kb21fZWxlbWVudGltcGwuY3BwCShyZXZpc2lvbiA1ODg3NzEpCisr
KyB4bWwvZG9tX2VsZW1lbnRpbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAxLDcgKzYwMSw3
IEBACiAgICAgfQogICAgIHFEZWJ1ZygicmVjYWxjU3R5bGUoJWQ6ICVzLCBjaGFuZ2VkOiAlZClb
JXA6ICVzXSIsIGNoYW5nZSwgZGVidWcsIGNoYW5nZWQoKSwgdGhpcywgdGFnTmFtZSgpLnN0cmlu
ZygpLmxhdGluMSgpKTsKICNlbmRpZgotICAgIGlmICggaGFzUGFyZW50UmVuZGVyZXIgJiYgKGNo
YW5nZSA+PSBJbmhlcml0IHx8IGNoYW5nZWQoKSkgKSB7CisgICAgaWYgKCBoYXNQYXJlbnRSZW5k
ZXJlciAmJiAoY2hhbmdlID49IEluaGVyaXQgfHwgY2hhbmdlZCgpIHx8IChjaGFuZ2U9PU5vSW5o
ZXJpdCAmJiBhZmZlY3RlZEJ5Tm9Jbmhlcml0KCkpKSApIHsKICAgICAgICAgUmVuZGVyU3R5bGUg
Km5ld1N0eWxlID0gZ2V0RG9jdW1lbnQoKS0+c3R5bGVTZWxlY3RvcigpLT5zdHlsZUZvckVsZW1l
bnQodGhpcyk7CiAgICAgICAgIG5ld1N0eWxlLT5yZWYoKTsKICAgICAgICAgU3R5bGVDaGFuZ2Ug
Y2ggPSBkaWZmKCBfc3R5bGUsIG5ld1N0eWxlICk7CkBAIC02MzMsOCArNjMzLDkgQEAKCiAgICAg
Tm9kZUltcGwgKm47CiAgICAgZm9yIChuID0gX2ZpcnN0OyBuOyBuID0gbi0+bmV4dFNpYmxpbmco
KSkgewotICAgICAgICBpZiAoIGNoYW5nZSA+PSBJbmhlcml0IHx8IG4tPmlzVGV4dE5vZGUoKSB8
fAotICAgICAgICAgICAgIG4tPmhhc0NoYW5nZWRDaGlsZCgpIHx8IG4tPmNoYW5nZWQoKSApIHsK
KyAgICAgICAgaWYgKCBjaGFuZ2UgPj0gSW5oZXJpdCB8fCBuLT5oYXNDaGFuZ2VkQ2hpbGQoKSB8
fCBuLT5jaGFuZ2VkKCkgfHwKKyAgICAgICAgICAgICAoY2hhbmdlID09IE5vSW5oZXJpdCAmJiBu
LT5hZmZlY3RlZEJ5Tm9Jbmhlcml0KCkpCisgICAgICAgICAgICkgewogCSAgICAvL3FEZWJ1Zygi
ICAgICglcCkgY2FsbGluZyByZWNhbGNTdHlsZSBvbiBjaGlsZCAlcC8lcywgY2hhbmdlPSVkIiwg
dGhpcywgbiwgbi0+aXNFbGVtZW50Tm9kZSgpID8gKChFbGVtZW50SW1wbCAqKW4pLT50YWdOYW1l
KCkuc3RyaW5nKCkubGF0aW4xKCkgOiBuLT5pc1RleHROb2RlKCkgPyAidGV4dCIgOiAidW5rbm93
biIsIGNoYW5nZSApOwogICAgICAgICAgICAgbi0+cmVjYWxjU3R5bGUoIGNoYW5nZSApOwogICAg
ICAgICB9CkluZGV4OiB4bWwvZG9tX25vZGVpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geG1sL2RvbV9u
b2RlaW1wbC5oCShyZXZpc2lvbiA1ODg3NzEpCisrKyB4bWwvZG9tX25vZGVpbXBsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2OSw2ICsyNjksOCBAQAogICAgIHN0YXRpYyBTdHlsZUNoYW5nZSBkaWZm
KCBraHRtbDo6UmVuZGVyU3R5bGUgKnMxLCBraHRtbDo6UmVuZGVyU3R5bGUgKnMyICk7CiAgICAg
c3RhdGljIGJvb2wgcHNldWRvRGlmZigga2h0bWw6OlJlbmRlclN0eWxlICpzMSwga2h0bWw6OlJl
bmRlclN0eWxlICpzMiwgdW5zaWduZWQgaW50IHBpZCk7CgorICAgIHZpcnR1YWwgYm9vbCBhZmZl
Y3RlZEJ5Tm9Jbmhlcml0KCkgY29uc3Q7CisKICAgICB1bnNpZ25lZCBsb25nIG5vZGVJbmRleCgp
IGNvbnN0OwogICAgIC8vIFJldHVybnMgdGhlIGRvY3VtZW50IHRoYXQgdGhpcyBub2RlIGlzIGFz
c29jaWF0ZWQgd2l0aC4gVGhpcyBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyBiZSBub24tbnVsbCwg
YXMgb3Bwb3NlZCB0bwogICAgIC8vIERPTSdzIG93bmVyRG9jdW1lbnQoKSB3aGljaCBpcyBudWxs
IGZvciBEb2N1bWVudCBub2RlcyAoYW5kIHNvbWV0aW1lcyBEb2N1bWVudFR5cGUgbm9kZXMpLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>