<?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>180354</bug_id>
          
          <creation_ts>2017-12-04 07:14:05 -0800</creation_ts>
          <short_desc>Remove duplicates from selector filter hashes</short_desc>
          <delta_ts>2017-12-04 10:37:05 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377675</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-04 07:14:05 -0800</bug_when>
    <thetext>We have only four slots for hashes in RuleSet (and adding more regresses performance). To use them better we should eliminate duplicates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377678</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-04 07:18:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/35829039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377685</commentid>
    <comment_count>2</comment_count>
      <attachid>328345</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-04 07:36:08 -0800</bug_when>
    <thetext>Created attachment 328345
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377686</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-04 07:38:07 -0800</bug_when>
    <thetext>Attachment 328345 did not pass style-queue:


ERROR: Source/WebCore/css/SelectorFilter.cpp:102:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377688</commentid>
    <comment_count>4</comment_count>
      <attachid>328346</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-04 07:41:47 -0800</bug_when>
    <thetext>Created attachment 328346
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377768</commentid>
    <comment_count>5</comment_count>
      <attachid>328346</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-04 10:37:04 -0800</bug_when>
    <thetext>Comment on attachment 328346
patch

Clearing flags on attachment: 328346

Committed r225482: &lt;https://trac.webkit.org/changeset/225482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377769</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-04 10:37:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328345</attachid>
            <date>2017-12-04 07:36:08 -0800</date>
            <delta_ts>2017-12-04 07:41:47 -0800</delta_ts>
            <desc>patch</desc>
            <filename>selectorfilter-array-3.patch</filename>
            <type>text/plain</type>
            <size>9811</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNTQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE3LTEyLTA0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZHVwbGljYXRlcyBm
cm9tIHNlbGVjdG9yIGZpbHRlciBoYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDM1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIGhhdmUgb25seSBmb3VyIHNsb3RzIGZvciBoYXNoZXMgaW4g
UnVsZVNldCBhbmQgYWRkaW5nIG1vcmUgcmVncmVzc2VzIHBlcmZvcm1hbmNlLiBUbyB1c2UgdGhl
IGxpbWl0ZWQgc2xvdHMKKyAgICAgICAgYmV0dGVyIHdlIHNob3VsZCBlbGltaW5hdGUgZHVwbGlj
YXRlcy4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gc3dpdGNoZXMgdG8gdXNpbmcgc3RkOjph
cnJheSBpbnN0ZWFkIG9mIGEgQyBhcnJheSBmb3IgdGhlIGhhc2hlcy4KKworICAgICAgICBUaGUg
cGF0Y2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHNlbGVjdG9ycyBwYXNzaW5nIHRocm91Z2ggdGhl
IHNlbGVjdG9yIGZpbHRlciBpbiBTdHlsZUJlbmNoIGJ5IH4wLjQlLgorCisgICAgICAgICogY3Nz
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxl
Q29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAgICAgICAqIGNzcy9S
dWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjpSdWxlRGF0YSk6CisgICAg
ICAgICogY3NzL1J1bGVTZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjpkZXNjZW5k
YW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdERlc2NlbmRhbnRTZWxlY3Rv
cklkZW50aWZpZXJIYXNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JGaWx0ZXI6OmNv
bGxlY3RJZGVudGlmaWVySGFzaGVzKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JGaWx0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRmlsdGVyOjpmYXN0UmVqZWN0U2VsZWN0b3IgY29u
c3QpOgorCiAyMDE3LTEyLTA0ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBCdWcgMTYxMzAwIC0gTW92ZSBSZW5kZXJNYXRoTUxSb290OlJvb3RUeXBlIGFuZCBS
ZW5kZXJNYXRoTUxTY3JpcHRzOlNjcmlwdHNUeXBlIHRvIGVsZW1lbnQgY2xhc3NlcwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCShyZXZpc2lvbiAy
MjU0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NjQsNyArNDY0LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6Y29sbGVjdE1hdGNoaQogICAgICAgICBpZiAoIXJ1bGVEYXRhLmNhbk1hdGNoUHNldWRvRWxl
bWVudCgpICYmIG1fcHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkICE9IE5PUFNFVURPKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKG1fc2VsZWN0b3JGaWx0ZXIgJiYgbV9z
ZWxlY3RvckZpbHRlci0+ZmFzdFJlamVjdFNlbGVjdG9yPFJ1bGVEYXRhOjptYXhpbXVtSWRlbnRp
ZmllckNvdW50PihydWxlRGF0YS5kZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKCkp
KQorICAgICAgICBpZiAobV9zZWxlY3RvckZpbHRlciAmJiBtX3NlbGVjdG9yRmlsdGVyLT5mYXN0
UmVqZWN0U2VsZWN0b3IocnVsZURhdGEuZGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hl
cygpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIFN0eWxlUnVsZSogcnVsZSA9
IHJ1bGVEYXRhLnJ1bGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAJKHJldmlzaW9uIDIy
NTQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTY0LDcgKzE2NCw3IEBAIFJ1bGVEYXRhOjpSdWxlRGF0YShTdHlsZVJ1bGUqIHJ1bGUsIHVu
c2kKIHsKICAgICBBU1NFUlQobV9wb3NpdGlvbiA9PSBwb3NpdGlvbik7CiAgICAgQVNTRVJUKG1f
c2VsZWN0b3JJbmRleCA9PSBzZWxlY3RvckluZGV4KTsKLSAgICBTZWxlY3RvckZpbHRlcjo6Y29s
bGVjdElkZW50aWZpZXJIYXNoZXMoc2VsZWN0b3IoKSwgbV9kZXNjZW5kYW50U2VsZWN0b3JJZGVu
dGlmaWVySGFzaGVzLCBtYXhpbXVtSWRlbnRpZmllckNvdW50KTsKKyAgICBTZWxlY3RvckZpbHRl
cjo6Y29sbGVjdElkZW50aWZpZXJIYXNoZXMoKnNlbGVjdG9yKCksIG1fZGVzY2VuZGFudFNlbGVj
dG9ySWRlbnRpZmllckhhc2hlcyk7CiB9CiAKIFJ1bGVTZXQ6OlJ1bGVTZXQoKSA9IGRlZmF1bHQ7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgJKHJldmlzaW9uIDIyNTQ0OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDb21waWxlci5oIgorI2lu
Y2x1ZGUgIlNlbGVjdG9yRmlsdGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzYsOSArNzcs
NyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbGlua01hdGNoVHlwZTsgfQogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IGNvbnN0IHsgcmV0dXJuIG1faGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsgfQogICAgIFByb3Bl
cnR5V2hpdGVsaXN0VHlwZSBwcm9wZXJ0eVdoaXRlbGlzdFR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxQcm9wZXJ0eVdoaXRlbGlzdFR5cGU+KG1fcHJvcGVydHlXaGl0ZWxpc3RUeXBl
KTsgfQotICAgIC8vIFRyeSB0byBiYWxhbmNlIGJldHdlZW4gbWVtb3J5IHVzYWdlICh0aGVyZSBj
YW4gYmUgbG90cyBvZiBSdWxlRGF0YSBvYmplY3RzKSBhbmQgZ29vZCBmaWx0ZXJpbmcgcGVyZm9y
bWFuY2UuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heGltdW1JZGVudGlmaWVyQ291bnQg
PSA0OwotICAgIGNvbnN0IHVuc2lnbmVkKiBkZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFz
aGVzKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVz
OyB9CisgICAgY29uc3QgU2VsZWN0b3JGaWx0ZXI6Okhhc2hlcyYgZGVzY2VuZGFudFNlbGVjdG9y
SWRlbnRpZmllckhhc2hlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY2VuZGFudFNlbGVjdG9ySWRl
bnRpZmllckhhc2hlczsgfQogCiAgICAgdm9pZCBkaXNhYmxlU2VsZWN0b3JGaWx0ZXJpbmcoKSB7
IG1fZGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlc1swXSA9IDA7IH0KIApAQCAtMTEy
LDggKzExMSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb250YWluc1VuY29tbW9uQXR0
cmlidXRlU2VsZWN0b3IgOiAxOwogICAgIHVuc2lnbmVkIG1fbGlua01hdGNoVHlwZSA6IDI7IC8v
ICBTZWxlY3RvckNoZWNrZXI6OkxpbmtNYXRjaE1hc2sKICAgICB1bnNpZ25lZCBtX3Byb3BlcnR5
V2hpdGVsaXN0VHlwZSA6IDI7Ci0gICAgLy8gVXNlIHBsYWluIGFycmF5IGluc3RlYWQgb2YgYSBW
ZWN0b3IgdG8gbWluaW1pemUgbWVtb3J5IG92ZXJoZWFkLgotICAgIHVuc2lnbmVkIG1fZGVzY2Vu
ZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlc1ttYXhpbXVtSWRlbnRpZmllckNvdW50XTsKKyAg
ICBTZWxlY3RvckZpbHRlcjo6SGFzaGVzIG1fZGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhh
c2hlczsKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKICAgICBtdXRhYmxlIFNlbGVjdG9y
Q29tcGlsYXRpb25TdGF0dXMgbV9jb21waWxhdGlvblN0YXR1czsKICAgICBtdXRhYmxlIEpTQzo6
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG1fY29tcGlsZWRTZWxlY3RvckNvZGVSZWY7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAJKHJldmlzaW9uIDIyNTQ0OCkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2
LDIxICs5NiwzMCBAQCB2b2lkIFNlbGVjdG9yRmlsdGVyOjpwdXNoUGFyZW50KEVsZW1lbnQqCiAg
ICAgcHVzaFBhcmVudFN0YWNrRnJhbWUocGFyZW50KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lk
IGNvbGxlY3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKGNvbnN0IENTU1NlbGVj
dG9yKiBzZWxlY3RvciwgdW5zaWduZWQqJiBoYXNoKQorc3RhdGljIGlubGluZSB2b2lkIGNvbGxl
Y3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKGNvbnN0IENTU1NlbGVjdG9yJiBz
ZWxlY3RvciwgY29uc3QgU2VsZWN0b3JGaWx0ZXI6Okhhc2hlcyYgaGFzaGVzLCBTZWxlY3RvckZp
bHRlcjo6SGFzaGVzOjppdGVyYXRvciYgaGFzaEl0KQogewotICAgIHN3aXRjaCAoc2VsZWN0b3It
Pm1hdGNoKCkpIHsKKyAgICBhdXRvIGFkZElmTmV3ID0gWyZdICh1bnNpZ25lZCBoYXNoKSB7Cisg
ICAgICAgIGZvciAoYXV0byBpdCA9IGhhc2hlcy5iZWdpbigpOyBpdCAhPSBoYXNoSXQ7ICsraXQp
eworICAgICAgICAgICAgaWYgKCppdCA9PSBoYXNoKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICAqaGFzaEl0ID0gaGFzaDsKKyAgICAgICAgaGFzaEl0Kys7Cisg
ICAgfTsKKworICAgIHN3aXRjaCAoc2VsZWN0b3IubWF0Y2goKSkgewogICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OklkOgotICAgICAgICBpZiAoIXNlbGVjdG9yLT52YWx1ZSgpLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgICgqaGFzaCsrKSA9IHNlbGVjdG9yLT52YWx1ZSgpLmltcGwoKS0+ZXhpc3RpbmdI
YXNoKCkgKiBJZEF0dHJpYnV0ZVNhbHQ7CisgICAgICAgIGlmICghc2VsZWN0b3IudmFsdWUoKS5p
c0VtcHR5KCkpCisgICAgICAgICAgICBhZGRJZk5ldyhzZWxlY3Rvci52YWx1ZSgpLmltcGwoKS0+
ZXhpc3RpbmdIYXNoKCkgKiBJZEF0dHJpYnV0ZVNhbHQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1NlbGVjdG9yOjpDbGFzczoKLSAgICAgICAgaWYgKCFzZWxlY3Rvci0+dmFsdWUoKS5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAoKmhhc2grKykgPSBzZWxlY3Rvci0+dmFsdWUoKS5pbXBs
KCktPmV4aXN0aW5nSGFzaCgpICogQ2xhc3NBdHRyaWJ1dGVTYWx0OworICAgICAgICBpZiAoIXNl
bGVjdG9yLnZhbHVlKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgYWRkSWZOZXcoc2VsZWN0b3Iu
dmFsdWUoKS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICogQ2xhc3NBdHRyaWJ1dGVTYWx0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6VGFnOiB7Ci0gICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgdGFnTG93ZXJjYXNlTG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZ0xvd2Vy
Y2FzZUxvY2FsTmFtZSgpOworICAgICAgICBhdXRvJiB0YWdMb3dlcmNhc2VMb2NhbE5hbWUgPSBz
ZWxlY3Rvci50YWdMb3dlcmNhc2VMb2NhbE5hbWUoKTsKICAgICAgICAgaWYgKHRhZ0xvd2VyY2Fz
ZUxvY2FsTmFtZSAhPSBzdGFyQXRvbSgpKQotICAgICAgICAgICAgKCpoYXNoKyspID0gdGFnTG93
ZXJjYXNlTG9jYWxOYW1lLmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkgKiBUYWdOYW1lU2FsdDsKKyAg
ICAgICAgICAgIGFkZElmTmV3KHRhZ0xvd2VyY2FzZUxvY2FsTmFtZS5pbXBsKCktPmV4aXN0aW5n
SGFzaCgpICogVGFnTmFtZVNhbHQpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVs
dDoKQEAgLTExOCwxMiArMTI3LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0RGVzY2Vu
ZGFudFNlbGUKICAgICB9CiB9CiAKLXZvaWQgU2VsZWN0b3JGaWx0ZXI6OmNvbGxlY3RJZGVudGlm
aWVySGFzaGVzKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvciwgdW5zaWduZWQqIGlkZW50aWZp
ZXJIYXNoZXMsIHVuc2lnbmVkIG1heGltdW1JZGVudGlmaWVyQ291bnQpCit2b2lkIFNlbGVjdG9y
RmlsdGVyOjpjb2xsZWN0SWRlbnRpZmllckhhc2hlcyhjb25zdCBDU1NTZWxlY3RvciYgcmlnaHRt
b3N0U2VsZWN0b3IsIEhhc2hlcyYgaGFzaGVzKQogewotICAgIHVuc2lnbmVkKiBoYXNoID0gaWRl
bnRpZmllckhhc2hlczsKLSAgICB1bnNpZ25lZCogZW5kID0gaWRlbnRpZmllckhhc2hlcyArIG1h
eGltdW1JZGVudGlmaWVyQ291bnQ7CisgICAgYXV0byogc2VsZWN0b3IgPSAmcmlnaHRtb3N0U2Vs
ZWN0b3I7CiAgICAgYXV0byByZWxhdGlvbiA9IHNlbGVjdG9yLT5yZWxhdGlvbigpOwogCisgICAg
YXV0byBoYXNoSXQgPSBoYXNoZXMuYmVnaW4oKTsKKwogICAgIC8vIFNraXAgdGhlIHRvcG1vc3Qg
c2VsZWN0b3IuIEl0IGlzIGhhbmRsZWQgcXVpY2tseSBieSB0aGUgcnVsZSBoYXNoZXMuCiAgICAg
Ym9vbCBza2lwT3ZlclN1YnNlbGVjdG9ycyA9IHRydWU7CiAgICAgZm9yIChzZWxlY3RvciA9IHNl
bGVjdG9yLT50YWdIaXN0b3J5KCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9IHNlbGVjdG9yLT50YWdI
aXN0b3J5KCkpIHsKQEAgLTEzMSw3ICsxNDEsNyBAQCB2b2lkIFNlbGVjdG9yRmlsdGVyOjpjb2xs
ZWN0SWRlbnRpZmllckhhCiAgICAgICAgIHN3aXRjaCAocmVsYXRpb24pIHsKICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6U3Vic2VsZWN0b3I6CiAgICAgICAgICAgICBpZiAoIXNraXBPdmVyU3Vi
c2VsZWN0b3JzKQotICAgICAgICAgICAgICAgIGNvbGxlY3REZXNjZW5kYW50U2VsZWN0b3JJZGVu
dGlmaWVySGFzaGVzKHNlbGVjdG9yLCBoYXNoKTsKKyAgICAgICAgICAgICAgICBjb2xsZWN0RGVz
Y2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlcygqc2VsZWN0b3IsIGhhc2hlcywgaGFzaEl0
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpEaXJlY3RB
ZGphY2VudDoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RBZGphY2VudDoKQEAg
LTE0MSwxNCArMTUxLDE1IEBAIHZvaWQgU2VsZWN0b3JGaWx0ZXI6OmNvbGxlY3RJZGVudGlmaWVy
SGEKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudFNwYWNlOgogICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpDaGlsZDoKICAgICAgICAgICAgIHNraXBPdmVyU3Vic2VsZWN0b3Jz
ID0gZmFsc2U7Ci0gICAgICAgICAgICBjb2xsZWN0RGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmll
ckhhc2hlcyhzZWxlY3RvciwgaGFzaCk7CisgICAgICAgICAgICBjb2xsZWN0RGVzY2VuZGFudFNl
bGVjdG9ySWRlbnRpZmllckhhc2hlcygqc2VsZWN0b3IsIGhhc2hlcywgaGFzaEl0KTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGlmIChoYXNoID09IGVuZCkKKyAgICAg
ICAgaWYgKGhhc2hJdCA9PSBoYXNoZXMuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIHJlbGF0aW9uID0gc2VsZWN0b3ItPnJlbGF0aW9uKCk7CiAgICAgfQotICAgICpoYXNoID0g
MDsKKworICAgICpoYXNoSXQgPSAwOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JGaWx0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0
b3JGaWx0ZXIuaAkocmV2aXNpb24gMjI1NDQ4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yRmlsdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDkgKzQ3LDkgQEAgcHVibGljOgogICAg
IGJvb2wgcGFyZW50U3RhY2tJc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRTdGFjay5p
c0VtcHR5KCk7IH0KICAgICBib29sIHBhcmVudFN0YWNrSXNDb25zaXN0ZW50KGNvbnN0IENvbnRh
aW5lck5vZGUqIHBhcmVudE5vZGUpIGNvbnN0OwogCi0gICAgdGVtcGxhdGUgPHVuc2lnbmVkIG1h
eGltdW1JZGVudGlmaWVyQ291bnQ+Ci0gICAgaW5saW5lIGJvb2wgZmFzdFJlamVjdFNlbGVjdG9y
KGNvbnN0IHVuc2lnbmVkKiBpZGVudGlmaWVySGFzaGVzKSBjb25zdDsKLSAgICBzdGF0aWMgdm9p
ZCBjb2xsZWN0SWRlbnRpZmllckhhc2hlcyhjb25zdCBDU1NTZWxlY3RvciosIHVuc2lnbmVkKiBp
ZGVudGlmaWVySGFzaGVzLCB1bnNpZ25lZCBtYXhpbXVtSWRlbnRpZmllckNvdW50KTsKKyAgICB1
c2luZyBIYXNoZXMgPSBzdGQ6OmFycmF5PHVuc2lnbmVkLCA0PjsKKyAgICBib29sIGZhc3RSZWpl
Y3RTZWxlY3Rvcihjb25zdCBIYXNoZXMmKSBjb25zdDsKKyAgICBzdGF0aWMgdm9pZCBjb2xsZWN0
SWRlbnRpZmllckhhc2hlcyhjb25zdCBDU1NTZWxlY3RvciYsIEhhc2hlcyYpOwogCiBwcml2YXRl
OgogICAgIHN0cnVjdCBQYXJlbnRTdGFja0ZyYW1lIHsKQEAgLTY1LDExICs2NSwxMCBAQCBwcml2
YXRlOgogICAgIENvdW50aW5nQmxvb21GaWx0ZXI8Ymxvb21GaWx0ZXJLZXlCaXRzPiBtX2FuY2Vz
dG9ySWRlbnRpZmllckZpbHRlcjsKIH07CiAKLXRlbXBsYXRlIDx1bnNpZ25lZCBtYXhpbXVtSWRl
bnRpZmllckNvdW50PgotaW5saW5lIGJvb2wgU2VsZWN0b3JGaWx0ZXI6OmZhc3RSZWplY3RTZWxl
Y3Rvcihjb25zdCB1bnNpZ25lZCogaWRlbnRpZmllckhhc2hlcykgY29uc3QKK2lubGluZSBib29s
IFNlbGVjdG9yRmlsdGVyOjpmYXN0UmVqZWN0U2VsZWN0b3IoY29uc3QgSGFzaGVzJiBoYXNoZXMp
IGNvbnN0CiB7Ci0gICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1heGltdW1JZGVudGlmaWVy
Q291bnQgJiYgaWRlbnRpZmllckhhc2hlc1tuXTsgKytuKSB7Ci0gICAgICAgIGlmICghbV9hbmNl
c3RvcklkZW50aWZpZXJGaWx0ZXIubWF5Q29udGFpbihpZGVudGlmaWVySGFzaGVzW25dKSkKKyAg
ICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgaGFzaGVzLnNpemUoKSAmJiBoYXNoZXNbbl07ICsr
bikgeworICAgICAgICBpZiAoIW1fYW5jZXN0b3JJZGVudGlmaWVyRmlsdGVyLm1heUNvbnRhaW4o
aGFzaGVzW25dKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328346</attachid>
            <date>2017-12-04 07:41:47 -0800</date>
            <delta_ts>2017-12-04 10:37:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>selectorfilter-array-4.patch</filename>
            <type>text/plain</type>
            <size>9812</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNTQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE3LTEyLTA0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZHVwbGljYXRlcyBm
cm9tIHNlbGVjdG9yIGZpbHRlciBoYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDM1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIGhhdmUgb25seSBmb3VyIHNsb3RzIGZvciBoYXNoZXMgaW4g
UnVsZVNldCBhbmQgYWRkaW5nIG1vcmUgcmVncmVzc2VzIHBlcmZvcm1hbmNlLiBUbyB1c2UgdGhl
IGxpbWl0ZWQgc2xvdHMKKyAgICAgICAgYmV0dGVyIHdlIHNob3VsZCBlbGltaW5hdGUgZHVwbGlj
YXRlcy4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gc3dpdGNoZXMgdG8gdXNpbmcgc3RkOjph
cnJheSBpbnN0ZWFkIG9mIGEgQyBhcnJheSBmb3IgdGhlIGhhc2hlcy4KKworICAgICAgICBUaGUg
cGF0Y2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHNlbGVjdG9ycyBwYXNzaW5nIHRocm91Z2ggdGhl
IHNlbGVjdG9yIGZpbHRlciBpbiBTdHlsZUJlbmNoIGJ5IH4wLjQlLgorCisgICAgICAgICogY3Nz
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxl
Q29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAgICAgICAqIGNzcy9S
dWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjpSdWxlRGF0YSk6CisgICAg
ICAgICogY3NzL1J1bGVTZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjpkZXNjZW5k
YW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdERlc2NlbmRhbnRTZWxlY3Rv
cklkZW50aWZpZXJIYXNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JGaWx0ZXI6OmNv
bGxlY3RJZGVudGlmaWVySGFzaGVzKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JGaWx0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRmlsdGVyOjpmYXN0UmVqZWN0U2VsZWN0b3IgY29u
c3QpOgorCiAyMDE3LTEyLTA0ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBCdWcgMTYxMzAwIC0gTW92ZSBSZW5kZXJNYXRoTUxSb290OlJvb3RUeXBlIGFuZCBS
ZW5kZXJNYXRoTUxTY3JpcHRzOlNjcmlwdHNUeXBlIHRvIGVsZW1lbnQgY2xhc3NlcwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCShyZXZpc2lvbiAy
MjU0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NjQsNyArNDY0LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6Y29sbGVjdE1hdGNoaQogICAgICAgICBpZiAoIXJ1bGVEYXRhLmNhbk1hdGNoUHNldWRvRWxl
bWVudCgpICYmIG1fcHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkICE9IE5PUFNFVURPKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKG1fc2VsZWN0b3JGaWx0ZXIgJiYgbV9z
ZWxlY3RvckZpbHRlci0+ZmFzdFJlamVjdFNlbGVjdG9yPFJ1bGVEYXRhOjptYXhpbXVtSWRlbnRp
ZmllckNvdW50PihydWxlRGF0YS5kZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKCkp
KQorICAgICAgICBpZiAobV9zZWxlY3RvckZpbHRlciAmJiBtX3NlbGVjdG9yRmlsdGVyLT5mYXN0
UmVqZWN0U2VsZWN0b3IocnVsZURhdGEuZGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hl
cygpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIFN0eWxlUnVsZSogcnVsZSA9
IHJ1bGVEYXRhLnJ1bGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAJKHJldmlzaW9uIDIy
NTQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTY0LDcgKzE2NCw3IEBAIFJ1bGVEYXRhOjpSdWxlRGF0YShTdHlsZVJ1bGUqIHJ1bGUsIHVu
c2kKIHsKICAgICBBU1NFUlQobV9wb3NpdGlvbiA9PSBwb3NpdGlvbik7CiAgICAgQVNTRVJUKG1f
c2VsZWN0b3JJbmRleCA9PSBzZWxlY3RvckluZGV4KTsKLSAgICBTZWxlY3RvckZpbHRlcjo6Y29s
bGVjdElkZW50aWZpZXJIYXNoZXMoc2VsZWN0b3IoKSwgbV9kZXNjZW5kYW50U2VsZWN0b3JJZGVu
dGlmaWVySGFzaGVzLCBtYXhpbXVtSWRlbnRpZmllckNvdW50KTsKKyAgICBTZWxlY3RvckZpbHRl
cjo6Y29sbGVjdElkZW50aWZpZXJIYXNoZXMoKnNlbGVjdG9yKCksIG1fZGVzY2VuZGFudFNlbGVj
dG9ySWRlbnRpZmllckhhc2hlcyk7CiB9CiAKIFJ1bGVTZXQ6OlJ1bGVTZXQoKSA9IGRlZmF1bHQ7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgJKHJldmlzaW9uIDIyNTQ0OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDb21waWxlci5oIgorI2lu
Y2x1ZGUgIlNlbGVjdG9yRmlsdGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzYsOSArNzcs
NyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbGlua01hdGNoVHlwZTsgfQogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IGNvbnN0IHsgcmV0dXJuIG1faGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsgfQogICAgIFByb3Bl
cnR5V2hpdGVsaXN0VHlwZSBwcm9wZXJ0eVdoaXRlbGlzdFR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxQcm9wZXJ0eVdoaXRlbGlzdFR5cGU+KG1fcHJvcGVydHlXaGl0ZWxpc3RUeXBl
KTsgfQotICAgIC8vIFRyeSB0byBiYWxhbmNlIGJldHdlZW4gbWVtb3J5IHVzYWdlICh0aGVyZSBj
YW4gYmUgbG90cyBvZiBSdWxlRGF0YSBvYmplY3RzKSBhbmQgZ29vZCBmaWx0ZXJpbmcgcGVyZm9y
bWFuY2UuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heGltdW1JZGVudGlmaWVyQ291bnQg
PSA0OwotICAgIGNvbnN0IHVuc2lnbmVkKiBkZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFz
aGVzKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVz
OyB9CisgICAgY29uc3QgU2VsZWN0b3JGaWx0ZXI6Okhhc2hlcyYgZGVzY2VuZGFudFNlbGVjdG9y
SWRlbnRpZmllckhhc2hlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY2VuZGFudFNlbGVjdG9ySWRl
bnRpZmllckhhc2hlczsgfQogCiAgICAgdm9pZCBkaXNhYmxlU2VsZWN0b3JGaWx0ZXJpbmcoKSB7
IG1fZGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlc1swXSA9IDA7IH0KIApAQCAtMTEy
LDggKzExMSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb250YWluc1VuY29tbW9uQXR0
cmlidXRlU2VsZWN0b3IgOiAxOwogICAgIHVuc2lnbmVkIG1fbGlua01hdGNoVHlwZSA6IDI7IC8v
ICBTZWxlY3RvckNoZWNrZXI6OkxpbmtNYXRjaE1hc2sKICAgICB1bnNpZ25lZCBtX3Byb3BlcnR5
V2hpdGVsaXN0VHlwZSA6IDI7Ci0gICAgLy8gVXNlIHBsYWluIGFycmF5IGluc3RlYWQgb2YgYSBW
ZWN0b3IgdG8gbWluaW1pemUgbWVtb3J5IG92ZXJoZWFkLgotICAgIHVuc2lnbmVkIG1fZGVzY2Vu
ZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlc1ttYXhpbXVtSWRlbnRpZmllckNvdW50XTsKKyAg
ICBTZWxlY3RvckZpbHRlcjo6SGFzaGVzIG1fZGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhh
c2hlczsKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKICAgICBtdXRhYmxlIFNlbGVjdG9y
Q29tcGlsYXRpb25TdGF0dXMgbV9jb21waWxhdGlvblN0YXR1czsKICAgICBtdXRhYmxlIEpTQzo6
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG1fY29tcGlsZWRTZWxlY3RvckNvZGVSZWY7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAJKHJldmlzaW9uIDIyNTQ0OCkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2
LDIxICs5NiwzMCBAQCB2b2lkIFNlbGVjdG9yRmlsdGVyOjpwdXNoUGFyZW50KEVsZW1lbnQqCiAg
ICAgcHVzaFBhcmVudFN0YWNrRnJhbWUocGFyZW50KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lk
IGNvbGxlY3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKGNvbnN0IENTU1NlbGVj
dG9yKiBzZWxlY3RvciwgdW5zaWduZWQqJiBoYXNoKQorc3RhdGljIGlubGluZSB2b2lkIGNvbGxl
Y3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKGNvbnN0IENTU1NlbGVjdG9yJiBz
ZWxlY3RvciwgY29uc3QgU2VsZWN0b3JGaWx0ZXI6Okhhc2hlcyYgaGFzaGVzLCBTZWxlY3RvckZp
bHRlcjo6SGFzaGVzOjppdGVyYXRvciYgaGFzaEl0KQogewotICAgIHN3aXRjaCAoc2VsZWN0b3It
Pm1hdGNoKCkpIHsKKyAgICBhdXRvIGFkZElmTmV3ID0gWyZdICh1bnNpZ25lZCBoYXNoKSB7Cisg
ICAgICAgIGZvciAoYXV0byBpdCA9IGhhc2hlcy5iZWdpbigpOyBpdCAhPSBoYXNoSXQ7ICsraXQp
IHsKKyAgICAgICAgICAgIGlmICgqaXQgPT0gaGFzaCkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgKmhhc2hJdCA9IGhhc2g7CisgICAgICAgIGhhc2hJdCsrOwor
ICAgIH07CisKKyAgICBzd2l0Y2ggKHNlbGVjdG9yLm1hdGNoKCkpIHsKICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpJZDoKLSAgICAgICAgaWYgKCFzZWxlY3Rvci0+dmFsdWUoKS5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICAoKmhhc2grKykgPSBzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCktPmV4aXN0aW5n
SGFzaCgpICogSWRBdHRyaWJ1dGVTYWx0OworICAgICAgICBpZiAoIXNlbGVjdG9yLnZhbHVlKCku
aXNFbXB0eSgpKQorICAgICAgICAgICAgYWRkSWZOZXcoc2VsZWN0b3IudmFsdWUoKS5pbXBsKCkt
PmV4aXN0aW5nSGFzaCgpICogSWRBdHRyaWJ1dGVTYWx0KTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6Q2xhc3M6Ci0gICAgICAgIGlmICghc2VsZWN0b3ItPnZhbHVlKCku
aXNFbXB0eSgpKQotICAgICAgICAgICAgKCpoYXNoKyspID0gc2VsZWN0b3ItPnZhbHVlKCkuaW1w
bCgpLT5leGlzdGluZ0hhc2goKSAqIENsYXNzQXR0cmlidXRlU2FsdDsKKyAgICAgICAgaWYgKCFz
ZWxlY3Rvci52YWx1ZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGFkZElmTmV3KHNlbGVjdG9y
LnZhbHVlKCkuaW1wbCgpLT5leGlzdGluZ0hhc2goKSAqIENsYXNzQXR0cmlidXRlU2FsdCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlRhZzogewotICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHRhZ0xvd2VyY2FzZUxvY2FsTmFtZSA9IHNlbGVjdG9yLT50YWdMb3dl
cmNhc2VMb2NhbE5hbWUoKTsKKyAgICAgICAgYXV0byYgdGFnTG93ZXJjYXNlTG9jYWxOYW1lID0g
c2VsZWN0b3IudGFnTG93ZXJjYXNlTG9jYWxOYW1lKCk7CiAgICAgICAgIGlmICh0YWdMb3dlcmNh
c2VMb2NhbE5hbWUgIT0gc3RhckF0b20oKSkKLSAgICAgICAgICAgICgqaGFzaCsrKSA9IHRhZ0xv
d2VyY2FzZUxvY2FsTmFtZS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICogVGFnTmFtZVNhbHQ7Cisg
ICAgICAgICAgICBhZGRJZk5ldyh0YWdMb3dlcmNhc2VMb2NhbE5hbWUuaW1wbCgpLT5leGlzdGlu
Z0hhc2goKSAqIFRhZ05hbWVTYWx0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1
bHQ6CkBAIC0xMTgsMTIgKzEyNywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdERlc2Nl
bmRhbnRTZWxlCiAgICAgfQogfQogCi12b2lkIFNlbGVjdG9yRmlsdGVyOjpjb2xsZWN0SWRlbnRp
Zmllckhhc2hlcyhjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IsIHVuc2lnbmVkKiBpZGVudGlm
aWVySGFzaGVzLCB1bnNpZ25lZCBtYXhpbXVtSWRlbnRpZmllckNvdW50KQordm9pZCBTZWxlY3Rv
ckZpbHRlcjo6Y29sbGVjdElkZW50aWZpZXJIYXNoZXMoY29uc3QgQ1NTU2VsZWN0b3ImIHJpZ2h0
bW9zdFNlbGVjdG9yLCBIYXNoZXMmIGhhc2hlcykKIHsKLSAgICB1bnNpZ25lZCogaGFzaCA9IGlk
ZW50aWZpZXJIYXNoZXM7Ci0gICAgdW5zaWduZWQqIGVuZCA9IGlkZW50aWZpZXJIYXNoZXMgKyBt
YXhpbXVtSWRlbnRpZmllckNvdW50OworICAgIGF1dG8qIHNlbGVjdG9yID0gJnJpZ2h0bW9zdFNl
bGVjdG9yOwogICAgIGF1dG8gcmVsYXRpb24gPSBzZWxlY3Rvci0+cmVsYXRpb24oKTsKIAorICAg
IGF1dG8gaGFzaEl0ID0gaGFzaGVzLmJlZ2luKCk7CisKICAgICAvLyBTa2lwIHRoZSB0b3Btb3N0
IHNlbGVjdG9yLiBJdCBpcyBoYW5kbGVkIHF1aWNrbHkgYnkgdGhlIHJ1bGUgaGFzaGVzLgogICAg
IGJvb2wgc2tpcE92ZXJTdWJzZWxlY3RvcnMgPSB0cnVlOwogICAgIGZvciAoc2VsZWN0b3IgPSBz
ZWxlY3Rvci0+dGFnSGlzdG9yeSgpOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBzZWxlY3Rvci0+dGFn
SGlzdG9yeSgpKSB7CkBAIC0xMzEsNyArMTQxLDcgQEAgdm9pZCBTZWxlY3RvckZpbHRlcjo6Y29s
bGVjdElkZW50aWZpZXJIYQogICAgICAgICBzd2l0Y2ggKHJlbGF0aW9uKSB7CiAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlN1YnNlbGVjdG9yOgogICAgICAgICAgICAgaWYgKCFza2lwT3ZlclN1
YnNlbGVjdG9ycykKLSAgICAgICAgICAgICAgICBjb2xsZWN0RGVzY2VuZGFudFNlbGVjdG9ySWRl
bnRpZmllckhhc2hlcyhzZWxlY3RvciwgaGFzaCk7CisgICAgICAgICAgICAgICAgY29sbGVjdERl
c2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJIYXNoZXMoKnNlbGVjdG9yLCBoYXNoZXMsIGhhc2hJ
dCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGlyZWN0
QWRqYWNlbnQ6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6CkBA
IC0xNDEsMTQgKzE1MSwxNSBAQCB2b2lkIFNlbGVjdG9yRmlsdGVyOjpjb2xsZWN0SWRlbnRpZmll
ckhhCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRlc2NlbmRhbnRTcGFjZToKICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6Q2hpbGQ6CiAgICAgICAgICAgICBza2lwT3ZlclN1YnNlbGVjdG9y
cyA9IGZhbHNlOwotICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZp
ZXJIYXNoZXMoc2VsZWN0b3IsIGhhc2gpOworICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnRT
ZWxlY3RvcklkZW50aWZpZXJIYXNoZXMoKnNlbGVjdG9yLCBoYXNoZXMsIGhhc2hJdCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBpZiAoaGFzaCA9PSBlbmQpCisgICAg
ICAgIGlmIChoYXNoSXQgPT0gaGFzaGVzLmVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICByZWxhdGlvbiA9IHNlbGVjdG9yLT5yZWxhdGlvbigpOwogICAgIH0KLSAgICAqaGFzaCA9
IDA7CisKKyAgICAqaGFzaEl0ID0gMDsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yRmlsdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yRmlsdGVyLmgJKHJldmlzaW9uIDIyNTQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckZpbHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw5ICs0Nyw5IEBAIHB1YmxpYzoKICAg
ICBib29sIHBhcmVudFN0YWNrSXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50U3RhY2su
aXNFbXB0eSgpOyB9CiAgICAgYm9vbCBwYXJlbnRTdGFja0lzQ29uc2lzdGVudChjb25zdCBDb250
YWluZXJOb2RlKiBwYXJlbnROb2RlKSBjb25zdDsKIAotICAgIHRlbXBsYXRlIDx1bnNpZ25lZCBt
YXhpbXVtSWRlbnRpZmllckNvdW50PgotICAgIGlubGluZSBib29sIGZhc3RSZWplY3RTZWxlY3Rv
cihjb25zdCB1bnNpZ25lZCogaWRlbnRpZmllckhhc2hlcykgY29uc3Q7Ci0gICAgc3RhdGljIHZv
aWQgY29sbGVjdElkZW50aWZpZXJIYXNoZXMoY29uc3QgQ1NTU2VsZWN0b3IqLCB1bnNpZ25lZCog
aWRlbnRpZmllckhhc2hlcywgdW5zaWduZWQgbWF4aW11bUlkZW50aWZpZXJDb3VudCk7CisgICAg
dXNpbmcgSGFzaGVzID0gc3RkOjphcnJheTx1bnNpZ25lZCwgND47CisgICAgYm9vbCBmYXN0UmVq
ZWN0U2VsZWN0b3IoY29uc3QgSGFzaGVzJikgY29uc3Q7CisgICAgc3RhdGljIHZvaWQgY29sbGVj
dElkZW50aWZpZXJIYXNoZXMoY29uc3QgQ1NTU2VsZWN0b3ImLCBIYXNoZXMmKTsKIAogcHJpdmF0
ZToKICAgICBzdHJ1Y3QgUGFyZW50U3RhY2tGcmFtZSB7CkBAIC02NSwxMSArNjUsMTAgQEAgcHJp
dmF0ZToKICAgICBDb3VudGluZ0Jsb29tRmlsdGVyPGJsb29tRmlsdGVyS2V5Qml0cz4gbV9hbmNl
c3RvcklkZW50aWZpZXJGaWx0ZXI7CiB9OwogCi10ZW1wbGF0ZSA8dW5zaWduZWQgbWF4aW11bUlk
ZW50aWZpZXJDb3VudD4KLWlubGluZSBib29sIFNlbGVjdG9yRmlsdGVyOjpmYXN0UmVqZWN0U2Vs
ZWN0b3IoY29uc3QgdW5zaWduZWQqIGlkZW50aWZpZXJIYXNoZXMpIGNvbnN0CitpbmxpbmUgYm9v
bCBTZWxlY3RvckZpbHRlcjo6ZmFzdFJlamVjdFNlbGVjdG9yKGNvbnN0IEhhc2hlcyYgaGFzaGVz
KSBjb25zdAogewotICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtYXhpbXVtSWRlbnRpZmll
ckNvdW50ICYmIGlkZW50aWZpZXJIYXNoZXNbbl07ICsrbikgewotICAgICAgICBpZiAoIW1fYW5j
ZXN0b3JJZGVudGlmaWVyRmlsdGVyLm1heUNvbnRhaW4oaWRlbnRpZmllckhhc2hlc1tuXSkpCisg
ICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IGhhc2hlcy5zaXplKCkgJiYgaGFzaGVzW25dOyAr
K24pIHsKKyAgICAgICAgaWYgKCFtX2FuY2VzdG9ySWRlbnRpZmllckZpbHRlci5tYXlDb250YWlu
KGhhc2hlc1tuXSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJu
IGZhbHNlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>