<?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>163649</bug_id>
          
          <creation_ts>2016-10-18 20:55:37 -0700</creation_ts>
          <short_desc>[CSS Parser] Fix compound selector parsing.</short_desc>
          <delta_ts>2016-10-19 08:10:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1241798</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-18 20:55:37 -0700</bug_when>
    <thetext>Fix compound selector parsing. The new parser makes the assumption that SubSelector is the first value in the RelationType enum. Although this is kind of lame, it&apos;s easy for us to move it to the correct spot to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241800</commentid>
    <comment_count>1</comment_count>
      <attachid>292033</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-18 20:58:52 -0700</bug_when>
    <thetext>Created attachment 292033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241872</commentid>
    <comment_count>2</comment_count>
      <attachid>292033</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-19 00:50:56 -0700</bug_when>
    <thetext>Comment on attachment 292033
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=292033&amp;action=review

&gt; Source/WebCore/css/CSSSelector.h:84
&gt; +        enum RelationType {

Should we change it to an enum class at some point?

&gt; Source/WebCore/css/CSSSelector.h:85
&gt; +            SubSelector,

That should be &quot;Subselector&quot; since it&apos;s one word.

Should we add a static_assert that subselector is 0 since the code assumes subselector is 0?

&gt; Source/WebCore/css/SelectorChecker.cpp:637
&gt; +        CSSSelector::RelationType relation = selector-&gt;relation();

I suggest auto instead.

&gt; Source/WebCore/css/SelectorChecker.cpp:1204
&gt; +        CSSSelector::RelationType relation = selector-&gt;relation();

I suggest auto instead.

&gt; Source/WebCore/css/SelectorFilter.cpp:125
&gt; +    CSSSelector::RelationType relation = selector-&gt;relation();

I suggest auto instead.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:141
&gt; +    while (CSSSelector::RelationType combinator = consumeCombinator(range)) {

I suggest auto instead.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:538
&gt; +    CSSSelector::RelationType fallbackResult = CSSSelector::SubSelector;

I suggest auto instead.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:1001
&gt; +        CSSSelector::RelationType relation = selector-&gt;relation();

I suggest auto instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241909</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-19 08:02:55 -0700</bug_when>
    <thetext>Yes, static_assert is a great idea here. Will also patch all the other places to use auto as suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241910</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-19 08:10:13 -0700</bug_when>
    <thetext>Landed in r207536.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292033</attachid>
            <date>2016-10-18 20:58:52 -0700</date>
            <delta_ts>2016-10-19 00:50:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>12068</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzUxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE2LTEwLTE4ICBEYXZlIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgUGFyc2VyXSBGaXggY29tcG91
bmQgc2VsZWN0b3IgcGFyc2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzY0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBuZXcgQ1NTIHBhcnNlciBpcyBmYWlsaW5nIHRvIGhhbmRsZSBjb21w
b3VuZCBzZWxlY3RvcnMuIFRoZSBjb2RlIGhhcyBhbiBhc3N1bXB0aW9uIHRoYXQgdGhlCisgICAg
ICAgIGZpcnN0IHZhbHVlIGluIHRoZSBSZWxhdGlvblR5cGUgZW51bSBpcyBTdWJTZWxlY3Rvci4g
VGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBlbnVtIHRvIGhhdmUgdGhlIHNhbWUKKyAgICAgICAgbmFt
ZSB1c2VkIGluIEJsaW5rLCBSZWxhdGlvblR5cGUsIGFuZCB0byBtYWtlIHRoZSBvcmRlcmluZyBi
ZSBleGFjdGx5IHRoZSBzYW1lLgorCisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cmVsYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU2VsZWN0b3I6OnNldFJlbGF0aW9uKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2hSZWN1cnNpdmVs
eSk6CisgICAgICAgIChXZWJDb3JlOjpjYW5NYXRjaEhvdmVyT3JBY3RpdmVJblF1aXJrc01vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpkZXRlcm1pbmVMaW5rTWF0Y2hU
eXBlKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JGaWx0ZXI6OmNvbGxlY3RJZGVudGlmaWVySGFzaGVzKToKKyAgICAgICAgKiBj
c3MvcGFyc2VyL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXJTZWxlY3Rvcjo6aW5zZXJ0VGFnSGlzdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXJTZWxlY3Rvcjo6YXBwZW5kVGFnSGlzdG9yeSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQ
YXJzZXJWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpzZXRS
ZWxhdGlvbik6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhTZWxlY3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbWJpbmF0
b3IpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuaDoKKyAgICAgICAg
KiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
ckNvbXBpbGVyOjpmcmFnbWVudFJlbGF0aW9uRm9yU2VsZWN0b3JSZWxhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpjb25zdHJ1Y3RGcmFnbWVudHNJbnRlcm5hbCk6
CisKIDIwMTYtMTAtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXBsYWNlIHN0ZDo6ZXhwZXJpbWVudGFsOjp2YXJpYW50IHdpdGggV1RGOjpWYXJpYW50IChvciBz
aW1pbGFyKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgJKHJldmlzaW9uIDIwNzQ3OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC04
MSwxMiArODEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUGFnZVBzZXVk
b0NsYXNzCiAgICAgICAgIH07CiAKLSAgICAgICAgZW51bSBSZWxhdGlvbiB7Ci0gICAgICAgICAg
ICBEZXNjZW5kYW50ID0gMCwKKyAgICAgICAgZW51bSBSZWxhdGlvblR5cGUgeworICAgICAgICAg
ICAgU3ViU2VsZWN0b3IsCisgICAgICAgICAgICBEZXNjZW5kYW50LAogICAgICAgICAgICAgQ2hp
bGQsCiAgICAgICAgICAgICBEaXJlY3RBZGphY2VudCwKICAgICAgICAgICAgIEluZGlyZWN0QWRq
YWNlbnQsCi0gICAgICAgICAgICBTdWJTZWxlY3RvciwKICAgICAgICAgICAgIFNoYWRvd0Rlc2Nl
bmRhbnQsIC8vIEZJWE1FLU5FV1BBUlNFUjogUmVtb3ZlIHRoaXMgaW4gZmF2b3Igb2YgdGhlIG5l
dyBzaGFkb3cgdmFsdWVzIGJlbG93LgogICAgICAgICAgICAgU2hhZG93UHNldWRvLCAvLyBTcGVj
aWFsIGNhc2Ugb2Ygc2hhZG93IERPTSBwc2V1ZG8gZWxlbWVudHMgLyBzaGFkb3cgcHNldWRvIGVs
ZW1lbnQKICAgICAgICAgICAgIFNoYWRvd0RlZXAsIC8vIC9kZWVwLyBjb21iaW5hdG9yCkBAIC0y
OTUsOCArMjk1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGlzU2libGlu
Z1NlbGVjdG9yKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNBdHRyaWJ1dGVTZWxlY3RvcigpIGNv
bnN0OwogCi0gICAgICAgIFJlbGF0aW9uIHJlbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVsYXRpb24+KG1fcmVsYXRpb24pOyB9Ci0gICAgICAgIHZvaWQgc2V0UmVsYXRpb24o
UmVsYXRpb24gcmVsYXRpb24pCisgICAgICAgIFJlbGF0aW9uVHlwZSByZWxhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlbGF0aW9uVHlwZT4obV9yZWxhdGlvbik7IH0KKyAgICAg
ICAgdm9pZCBzZXRSZWxhdGlvbihSZWxhdGlvblR5cGUgcmVsYXRpb24pCiAgICAgICAgIHsKICAg
ICAgICAgICAgIG1fcmVsYXRpb24gPSByZWxhdGlvbjsKICAgICAgICAgICAgIEFTU0VSVChtX3Jl
bGF0aW9uID09IHJlbGF0aW9uKTsKQEAgLTMyNiw3ICszMjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgc2V0Rm9yUGFnZSgpIHsgbV9pc0ZvclBhZ2UgPSB0cnVlOyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB1bnNpZ25lZCBtX3JlbGF0aW9uICAgICAgICAgICAgICA6
IDM7IC8vIGVudW0gUmVsYXRpb24uCisgICAgICAgIHVuc2lnbmVkIG1fcmVsYXRpb24gICAgICAg
ICAgICAgIDogMzsgLy8gZW51bSBSZWxhdGlvblR5cGUuCiAgICAgICAgIG11dGFibGUgdW5zaWdu
ZWQgbV9tYXRjaCAgICAgICAgIDogNDsgLy8gZW51bSBNYXRjaC4KICAgICAgICAgbXV0YWJsZSB1
bnNpZ25lZCBtX3BzZXVkb1R5cGUgICAgOiA4OyAvLyBQc2V1ZG9UeXBlLgogICAgICAgICBtdXRh
YmxlIHVuc2lnbmVkIG1fcGFyc2VkTnRoICAgICA6IDE7IC8vIFVzZWQgZm9yIDpudGgtKi4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCShyZXZpc2lvbiAyMDc1MTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzExLDcgKzMxMSw3IEBAIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hSZXN1bHQgU2VsZWN0
b3JDaGUKICAgICB9CiAKICAgICAvLyBUaGUgcmVzdCBvZiB0aGUgc2VsZWN0b3JzIGhhcyB0byBt
YXRjaAotICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbiA9IGNvbnRleHQuc2VsZWN0
b3ItPnJlbGF0aW9uKCk7CisgICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uVHlwZSByZWxhdGlvbiA9
IGNvbnRleHQuc2VsZWN0b3ItPnJlbGF0aW9uKCk7CiAKICAgICAvLyBQcmVwYXJlIG5leHQgc2Vs
ZWN0b3IKICAgICBjb25zdCBDU1NTZWxlY3RvciogbGVmdFNlbGVjdG9yID0gY29udGV4dC5zZWxl
Y3Rvci0+dGFnSGlzdG9yeSgpOwpAQCAtNjM0LDcgKzYzNCw3IEBAIHN0YXRpYyBib29sIGNhbk1h
dGNoSG92ZXJPckFjdGl2ZUluUXVpcmsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK
LSAgICAgICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uID0gc2VsZWN0b3ItPnJlbGF0
aW9uKCk7CisgICAgICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvblR5cGUgcmVsYXRpb24gPSBzZWxl
Y3Rvci0+cmVsYXRpb24oKTsKICAgICAgICAgaWYgKHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpT
aGFkb3dEZXNjZW5kYW50KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTEyMDEsNyAr
MTIwMSw3IEBAIHVuc2lnbmVkIFNlbGVjdG9yQ2hlY2tlcjo6ZGV0ZXJtaW5lTGlua00KICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBDU1NT
ZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWxlY3Rvci0+cmVsYXRpb24oKTsKKyAgICAg
ICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uVHlwZSByZWxhdGlvbiA9IHNlbGVjdG9yLT5yZWxhdGlv
bigpOwogICAgICAgICBpZiAocmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChyZWxhdGlvbiAhPSBDU1NTZWxlY3Rv
cjo6RGVzY2VuZGFudCAmJiByZWxhdGlvbiAhPSBDU1NTZWxlY3Rvcjo6Q2hpbGQpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAJKHJldmlzaW9uIDIwNzQ3OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
Miw3ICsxMjIsNyBAQCB2b2lkIFNlbGVjdG9yRmlsdGVyOjpjb2xsZWN0SWRlbnRpZmllckhhCiB7
CiAgICAgdW5zaWduZWQqIGhhc2ggPSBpZGVudGlmaWVySGFzaGVzOwogICAgIHVuc2lnbmVkKiBl
bmQgPSBpZGVudGlmaWVySGFzaGVzICsgbWF4aW11bUlkZW50aWZpZXJDb3VudDsKLSAgICBDU1NT
ZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWxlY3Rvci0+cmVsYXRpb24oKTsKKyAgICBD
U1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlIHJlbGF0aW9uID0gc2VsZWN0b3ItPnJlbGF0aW9uKCk7
CiAKICAgICAvLyBTa2lwIHRoZSB0b3Btb3N0IHNlbGVjdG9yLiBJdCBpcyBoYW5kbGVkIHF1aWNr
bHkgYnkgdGhlIHJ1bGUgaGFzaGVzLgogICAgIGJvb2wgc2tpcE92ZXJTdWJzZWxlY3RvcnMgPSB0
cnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJWYWx1ZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVmFsdWVz
LmNwcAkocmV2aXNpb24gMjA3NTEzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDcsNyArNDQ3LDcgQEAgYm9vbCBD
U1NQYXJzZXJTZWxlY3Rvcjo6bWF0Y2hlc1BzZXVkb0VsZQogICAgIHJldHVybiBtX3NlbGVjdG9y
LT5tYXRjaGVzUHNldWRvRWxlbWVudCgpIHx8IHNlbGVjdG9yTGlzdE1hdGNoZXNQc2V1ZG9FbGVt
ZW50KG1fc2VsZWN0b3ItPnNlbGVjdG9yTGlzdCgpKTsKIH0KIAotdm9pZCBDU1NQYXJzZXJTZWxl
Y3Rvcjo6aW5zZXJ0VGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRpb24gYmVmb3JlLCBzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlbGVjdG9yLCBDU1NTZWxlY3Rvcjo6UmVs
YXRpb24gYWZ0ZXIpCit2b2lkIENTU1BhcnNlclNlbGVjdG9yOjppbnNlcnRUYWdIaXN0b3J5KENT
U1NlbGVjdG9yOjpSZWxhdGlvblR5cGUgYmVmb3JlLCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+IHNlbGVjdG9yLCBDU1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlIGFmdGVyKQogewog
ICAgIGlmIChtX3RhZ0hpc3RvcnkpCiAgICAgICAgIHNlbGVjdG9yLT5zZXRUYWdIaXN0b3J5KFdU
Rk1vdmUobV90YWdIaXN0b3J5KSk7CkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBDU1NQYXJzZXJT
ZWxlY3Rvcjo6aW5zZXJ0VGFnSGlzdG9yeQogICAgIG1fdGFnSGlzdG9yeSA9IFdURk1vdmUoc2Vs
ZWN0b3IpOwogfQogCi12b2lkIENTU1BhcnNlclNlbGVjdG9yOjphcHBlbmRUYWdIaXN0b3J5KENT
U1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNl
bGVjdG9yPiBzZWxlY3RvcikKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OmFwcGVuZFRhZ0hpc3Rv
cnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uVHlwZSByZWxhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPENT
U1BhcnNlclNlbGVjdG9yPiBzZWxlY3RvcikKIHsKICAgICBDU1NQYXJzZXJTZWxlY3RvciogZW5k
ID0gdGhpczsKICAgICB3aGlsZSAoZW5kLT50YWdIaXN0b3J5KCkpCkBAIC00NzIsNyArNDcyLDcg
QEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YXBwZW5kVGFnSGlzdG9yeQogICAgIHdoaWxlIChl
bmQtPnRhZ0hpc3RvcnkoKSkKICAgICAgICAgZW5kID0gZW5kLT50YWdIaXN0b3J5KCk7CiAKLSAg
ICBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gc2VsZWN0b3JSZWxhdGlvbjsKKyAgICBDU1NTZWxlY3Rv
cjo6UmVsYXRpb25UeXBlIHNlbGVjdG9yUmVsYXRpb247CiAgICAgc3dpdGNoIChyZWxhdGlvbikg
ewogICAgIGNhc2UgQ1NTUGFyc2VyU2VsZWN0b3JDb21iaW5hdG9yOjpDaGlsZDoKICAgICAgICAg
c2VsZWN0b3JSZWxhdGlvbiA9IENTU1NlbGVjdG9yOjpDaGlsZDsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyVmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJWYWx1ZXMuaAkocmV2aXNpb24gMjA3NTEzKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJWYWx1ZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjI2LDcgKzIyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFyZ3VtZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUpIHsgbV9zZWxlY3Rvci0+c2V0QXJndW1lbnQodmFsdWUpOyB9
CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVWYWx1ZU1hdGNoaW5nSXNDYXNlSW5zZW5zaXRpdmUoYm9v
bCBpc0Nhc2VJbnNlbnNpdGl2ZSkgeyBtX3NlbGVjdG9yLT5zZXRBdHRyaWJ1dGVWYWx1ZU1hdGNo
aW5nSXNDYXNlSW5zZW5zaXRpdmUoaXNDYXNlSW5zZW5zaXRpdmUpOyB9CiAgICAgdm9pZCBzZXRN
YXRjaChDU1NTZWxlY3Rvcjo6TWF0Y2ggdmFsdWUpIHsgbV9zZWxlY3Rvci0+c2V0TWF0Y2godmFs
dWUpOyB9Ci0gICAgdm9pZCBzZXRSZWxhdGlvbihDU1NTZWxlY3Rvcjo6UmVsYXRpb24gdmFsdWUp
IHsgbV9zZWxlY3Rvci0+c2V0UmVsYXRpb24odmFsdWUpOyB9CisgICAgdm9pZCBzZXRSZWxhdGlv
bihDU1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlIHZhbHVlKSB7IG1fc2VsZWN0b3ItPnNldFJlbGF0
aW9uKHZhbHVlKTsgfQogICAgIHZvaWQgc2V0Rm9yUGFnZSgpIHsgbV9zZWxlY3Rvci0+c2V0Rm9y
UGFnZSgpOyB9CiAKICAgICBDU1NTZWxlY3Rvcjo6TWF0Y2ggbWF0Y2goKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdG9yLT5tYXRjaCgpOyB9CkBAIC0yNjEsOCArMjYxLDggQEAgcHVibGljOgogICAg
IENTU1BhcnNlclNlbGVjdG9yKiB0YWdIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV90YWdIaXN0
b3J5LmdldCgpOyB9CiAgICAgdm9pZCBzZXRUYWdIaXN0b3J5KHN0ZDo6dW5pcXVlX3B0cjxDU1NQ
YXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IpIHsgbV90YWdIaXN0b3J5ID0gV1RGTW92ZShzZWxlY3Rv
cik7IH0KICAgICB2b2lkIGNsZWFyVGFnSGlzdG9yeSgpIHsgbV90YWdIaXN0b3J5LnJlc2V0KCk7
IH0KLSAgICB2b2lkIGluc2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGJlZm9y
ZSwgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiwgQ1NTU2VsZWN0b3I6OlJlbGF0
aW9uIGFmdGVyKTsKLSAgICB2b2lkIGFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0
aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+KTsKKyAgICB2b2lkIGluc2Vy
dFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uVHlwZSBiZWZvcmUsIHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4sIENTU1NlbGVjdG9yOjpSZWxhdGlvblR5cGUgYWZ0ZXIp
OworICAgIHZvaWQgYXBwZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlLCBz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+KTsKICAgICB2b2lkIGFwcGVuZFRhZ0hp
c3RvcnkoQ1NTUGFyc2VyU2VsZWN0b3JDb21iaW5hdG9yLCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFy
c2VyU2VsZWN0b3I+KTsKICAgICB2b2lkIHByZXBlbmRUYWdTZWxlY3Rvcihjb25zdCBRdWFsaWZp
ZWROYW1lJiwgYm9vbCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUgPSBmYWxzZSk7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiByZWxlYXNlVGFnSGlzdG9yeSgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAJKHJl
dmlzaW9uIDIwNzUxMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQ
YXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPENTU1BhcnNlclNlbGVjdG9yPiBDU1NTZQogICAgIGZvciAoQ1NTUGFyc2VyU2VsZWN0b3Iq
IHNpbXBsZSA9IHNlbGVjdG9yLmdldCgpOyBzaW1wbGUgJiYgIXByZXZpb3VzQ29tcG91bmRGbGFn
czsgc2ltcGxlID0gc2ltcGxlLT50YWdIaXN0b3J5KCkpCiAgICAgICAgIHByZXZpb3VzQ29tcG91
bmRGbGFncyB8PSBleHRyYWN0Q29tcG91bmRGbGFncygqc2ltcGxlLCBtX2NvbnRleHQubW9kZSk7
CiAKLSAgICB3aGlsZSAoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGNvbWJpbmF0b3IgPSBjb25zdW1l
Q29tYmluYXRvcihyYW5nZSkpIHsKKyAgICB3aGlsZSAoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uVHlw
ZSBjb21iaW5hdG9yID0gY29uc3VtZUNvbWJpbmF0b3IocmFuZ2UpKSB7CiAgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gbmV4dFNlbGVjdG9yID0gY29uc3VtZUNvbXBv
dW5kU2VsZWN0b3IocmFuZ2UpOwogICAgICAgICBpZiAoIW5leHRTZWxlY3RvcikKICAgICAgICAg
ICAgIHJldHVybiBjb21iaW5hdG9yID09IENTU1NlbGVjdG9yOjpEZXNjZW5kYW50ID8gV1RGTW92
ZShzZWxlY3RvcikgOiBudWxscHRyOwpAQCAtNTMzLDkgKzUzMyw5IEBAIHN0ZDo6dW5pcXVlX3B0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2UKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotQ1NT
U2VsZWN0b3I6OlJlbGF0aW9uIENTU1NlbGVjdG9yUGFyc2VyOjpjb25zdW1lQ29tYmluYXRvcihD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK0NTU1NlbGVjdG9yOjpSZWxhdGlvblR5cGUgQ1NT
U2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVDb21iaW5hdG9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlKQogewotICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiBmYWxsYmFja1Jlc3VsdCA9IENTU1Nl
bGVjdG9yOjpTdWJTZWxlY3RvcjsKKyAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlIGZhbGxi
YWNrUmVzdWx0ID0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yOwogICAgIHdoaWxlIChyYW5nZS5w
ZWVrKCkudHlwZSgpID09IFdoaXRlc3BhY2VUb2tlbikgewogICAgICAgICByYW5nZS5jb25zdW1l
KCk7CiAgICAgICAgIGZhbGxiYWNrUmVzdWx0ID0gQ1NTU2VsZWN0b3I6OkRlc2NlbmRhbnQ7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5oCShy
ZXZpc2lvbiAyMDc0NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9y
UGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IGNvbnN1bWVQc2V1ZG8oQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gY29u
c3VtZUF0dHJpYnV0ZShDU1NQYXJzZXJUb2tlblJhbmdlJik7CiAKLSAgICBDU1NTZWxlY3Rvcjo6
UmVsYXRpb24gY29uc3VtZUNvbWJpbmF0b3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIENT
U1NlbGVjdG9yOjpSZWxhdGlvblR5cGUgY29uc3VtZUNvbWJpbmF0b3IoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYpOwogICAgIENTU1NlbGVjdG9yOjpNYXRjaCBjb25zdW1lQXR0cmlidXRlTWF0Y2goQ1NT
UGFyc2VyVG9rZW5SYW5nZSYpOwogICAgIENTU1NlbGVjdG9yOjpBdHRyaWJ1dGVNYXRjaFR5cGUg
Y29uc3VtZUF0dHJpYnV0ZUZsYWdzKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAkocmV2aXNpb24gMjA3NDc5
KQorKysgU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zOTgsNyArMzk4LDcgQEAgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21w
aWxlU2VsZWN0bwogICAgIHJldHVybiBjb2RlR2VuZXJhdG9yLmNvbXBpbGUodm0sIGNvZGVSZWYp
OwogfQogCi1zdGF0aWMgaW5saW5lIEZyYWdtZW50UmVsYXRpb24gZnJhZ21lbnRSZWxhdGlvbkZv
clNlbGVjdG9yUmVsYXRpb24oQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uKQorc3RhdGlj
IGlubGluZSBGcmFnbWVudFJlbGF0aW9uIGZyYWdtZW50UmVsYXRpb25Gb3JTZWxlY3RvclJlbGF0
aW9uKENTU1NlbGVjdG9yOjpSZWxhdGlvblR5cGUgcmVsYXRpb24pCiB7CiAgICAgc3dpdGNoIChy
ZWxhdGlvbikgewogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRlc2NlbmRhbnQ6CkBAIC05OTgsNyAr
OTk4LDcgQEAgc3RhdGljIEZ1bmN0aW9uVHlwZSBjb25zdHJ1Y3RGcmFnbWVudHNJbgogICAgICAg
ICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGluZzsKICAgICAgICAg
fQogCi0gICAgICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbiA9IHNlbGVjdG9yLT5y
ZWxhdGlvbigpOworICAgICAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlIHJlbGF0aW9uID0g
c2VsZWN0b3ItPnJlbGF0aW9uKCk7CiAgICAgICAgIGlmIChyZWxhdGlvbiA9PSBDU1NTZWxlY3Rv
cjo6U3ViU2VsZWN0b3IpCiAgICAgICAgICAgICBjb250aW51ZTsKIAo=
</data>
<flag name="review"
          id="315137"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>