<?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>164321</bug_id>
          
          <creation_ts>2016-11-02 08:49:00 -0700</creation_ts>
          <short_desc>[CSS Parser] Support scroll-snap-* properties</short_desc>
          <delta_ts>2016-11-02 11:10:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>1247332</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-11-02 08:49:00 -0700</bug_when>
    <thetext>[CSS Parser] Support scroll-snap-* properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247333</commentid>
    <comment_count>1</comment_count>
      <attachid>293662</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-11-02 08:50:56 -0700</bug_when>
    <thetext>Created attachment 293662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247335</commentid>
    <comment_count>2</comment_count>
      <attachid>293662</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-02 09:00:56 -0700</bug_when>
    <thetext>Comment on attachment 293662
Patch

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

&gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2009
&gt;  static RefPtr&lt;CSSValueList&gt; consumePositionList(CSSParserTokenRange&amp; range, CSSParserMode cssParserMode)

Would be nice if this function had &quot;snappoint&quot; in the name somewhere.

&gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2055
&gt; +                RefPtr&lt;CSSFunctionValue&gt; result = CSSFunctionValue::create(CSSValueRepeat);

darin would say to use auto. Doesn&apos;t CSSFunctionValue::create return a Ref&lt;&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247388</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-11-02 11:10:56 -0700</bug_when>
    <thetext>Fixed in r208291.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293662</attachid>
            <date>2016-11-02 08:50:56 -0700</date>
            <delta_ts>2016-11-02 09:00:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164321-20161102104656.patch</filename>
            <type>text/plain</type>
            <size>11789</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTExLTAyICBEYXZlIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgUGFyc2VyXSBTdXBwb3J0IHNj
cm9sbC1zbmFwLSogcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY0MzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKiBjc3Mv
U3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJD
b252ZXJ0ZXI6OmNvbnZlcnRTY3JvbGxTbmFwUG9pbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFNuYXBDb29yZGluYXRlUGFpcik6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTY3JvbGxTbmFwQ29vcmRp
bmF0ZXMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3VtZVBvc2l0aW9uTG9uZ2hhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29uc3VtZVBvc2l0aW9uWCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lUG9zaXRpb25Z
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVQb3NpdGlvbkxpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29uc3VtZVNjcm9sbFNuYXBEZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpj
b25zdW1lU2Nyb2xsU25hcFBvaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBh
cnNlcjo6cGFyc2VTaW5nbGVWYWx1ZSk6CisKIDIwMTYtMTEtMDIgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbVGFibGVzXSBTaW1wbGlmaWVkIGxheW91dCBza2lw
cyBjYXB0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCShy
ZXZpc2lvbiAyMDgyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICAgICAgQ1NT
X0RQQ00gPSAzMiwKICAgICAgICAgQ1NTX0ZSID0gMzMsCiAjaWYgRU5BQkxFKENTU19TQ1JPTExf
U05BUCkKKyAgICAgICAgLy8gRklYTUUtTkVXUEFSU0VSOiBUaGlzIGlzIGF3ZnVsLiBSZW1vdmUg
b25jZSBuZXcgcGFyc2VyIGxhbmRzLgogICAgICAgICBDU1NfTEVOR1RIX1JFUEVBVCA9IDM0LAog
I2VuZGlmCiAgICAgICAgIENTU19QQUlSID0gMTAwLCAvLyBXZSBlbnZpc2lvbiB0aGlzIGJlaW5n
IGV4cG9zZWQgYXMgYSBtZWFucyBvZiBnZXR0aW5nIGNvbXB1dGVkIHN0eWxlIHZhbHVlcyBmb3Ig
cGFpcnMgKGJvcmRlci1zcGFjaW5nL3JhZGl1cywgYmFja2dyb3VuZC1wb3NpdGlvbiwgZXRjLikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgJKHJldmlz
aW9uIDIwODI2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtODA3LDE3ICs4MDcsMjggQEAgaW5saW5lIExlbmd0aCBTdHls
ZUJ1aWxkZXJDb252ZXJ0ZXI6OnBhcgogCiBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbFNu
YXBQb2ludHM+IFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFNjcm9sbFNuYXBQb2ludHMo
U3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQogewor
ICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogT2xkIHBhcnNlciBzdXBwb3J0cyBhbiBpZGVudGlmaWVy
IHZhbHVlIGNhbGxlZCAiZWxlbWVudHMiIHdoZW4gaXQgc2VlbXMgbGlrZQorICAgIC8vICJub25l
IiBpcyB3aGF0IG90aGVycyB1c2UuIEZvciBub3csIHN1cHBvcnQgYm90aCBpbiB0aGUgY29udmVy
dGVyLgogICAgIGF1dG8gcG9pbnRzID0gc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxTbmFwUG9pbnRz
PigpOwotCisgICAgCiAgICAgaWYgKGlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKLSAg
ICAgICAgQVNTRVJUKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkudmFsdWVJRCgp
ID09IENTU1ZhbHVlRWxlbWVudHMpOworICAgICAgICBBU1NFUlQoZG93bmNhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVFbGVtZW50cyB8fCBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpOwog
ICAgICAgICBwb2ludHMtPnVzZXNFbGVtZW50cyA9IHRydWU7CiAgICAgICAgIHJldHVybiBwb2lu
dHM7CiAgICAgfQotCisgICAgCiAgICAgZm9yIChhdXRvJiBjdXJyZW50VmFsdWUgOiBkb3duY2Fz
dDxDU1NWYWx1ZUxpc3Q+KHZhbHVlKSkgeworICAgICAgICBpZiAoaXM8Q1NTRnVuY3Rpb25WYWx1
ZT4oY3VycmVudFZhbHVlLmdldCgpKSkgeworICAgICAgICAgICAgYXV0byYgZnVuY3Rpb25WYWx1
ZSA9IGRvd25jYXN0PENTU0Z1bmN0aW9uVmFsdWU+KGN1cnJlbnRWYWx1ZS5nZXQoKSk7CisgICAg
ICAgICAgICBwb2ludHMtPnJlcGVhdE9mZnNldCA9IHBhcnNlU25hcENvb3JkaW5hdGUoc3R5bGVS
ZXNvbHZlciwgKmZ1bmN0aW9uVmFsdWUuYXJndW1lbnRzKCktPml0ZW0oMCkpOworICAgICAgICAg
ICAgcG9pbnRzLT5oYXNSZXBlYXQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgCiAgICAgICAgIGF1dG8mIGl0ZW1WYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlPihjdXJyZW50VmFsdWUuZ2V0KCkpOwogICAgICAgICBpZiAoYXV0byogbGVuZ3Ro
UmVwZWF0ID0gaXRlbVZhbHVlLmxlbmd0aFJlcGVhdFZhbHVlKCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FLU5FV1BBUlNFUjogT2xkIHBhcnNpbmcgY29kZSwgd2hpY2ggdXNlcyBhIHNwZWNpYWwg
cHJpbWl0aXZlIHZhbHVlLgorICAgICAgICAgICAgLy8gQ2FuIHJlbW92ZSB0aGlzIG9uY2UgbmV3
IHBhcnNlciB0dXJucyBvbi4KICAgICAgICAgICAgIGlmIChhdXRvKiBpbnRlcnZhbCA9IGxlbmd0
aFJlcGVhdC0+aW50ZXJ2YWwoKSkgewogICAgICAgICAgICAgICAgIHBvaW50cy0+cmVwZWF0T2Zm
c2V0ID0gcGFyc2VTbmFwQ29vcmRpbmF0ZShzdHlsZVJlc29sdmVyLCAqaW50ZXJ2YWwpOwogICAg
ICAgICAgICAgICAgIHBvaW50cy0+aGFzUmVwZWF0ID0gdHJ1ZTsKQEAgLTgzMiwxMyArODQzLDQ3
IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsU25hcFBvaW50cz4KIAogaW5saW5lIExl
bmd0aFNpemUgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U25hcENvb3JkaW5hdGVQYWly
KFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSwgc2l6
ZV90IG9mZnNldCkKIHsKKyAgICAvLyBGSVhNRS1ORVdQQVJTRVI6IENhbiBtYWtlIHRoaXMgdW5j
b25kaXRpb25hbCBvbmNlIG9sZCBwYXJzZXIgaXMgZ29uZS4gVGhpcyBpcyBqdXN0IGhvdworICAg
IC8vIHdlIGRldGVjdCB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgbmV3IHBhcnNlcidzIHBh
aXJzLgorICAgIGlmICh2YWx1ZS5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgZG93bmNhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWU+KHZhbHVlKS5wYWlyVmFsdWUoKSkgeworICAgICAgICBQYWlyKiBwYWlyID0g
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS5wYWlyVmFsdWUoKTsKKyAgICAgICAg
TGVuZ3RoIGxlbmd0aFggPSBjb252ZXJ0UG9zaXRpb25Db21wb25lbnQ8Q1NTVmFsdWVMZWZ0LCBD
U1NWYWx1ZVJpZ2h0PihzdHlsZVJlc29sdmVyLCAqcGFpci0+Zmlyc3QoKSk7CisgICAgICAgIExl
bmd0aCBsZW5ndGhZID0gY29udmVydFBvc2l0aW9uQ29tcG9uZW50PENTU1ZhbHVlVG9wLCBDU1NW
YWx1ZUJvdHRvbT4oc3R5bGVSZXNvbHZlciwgKnBhaXItPnNlY29uZCgpKTsKKyAgICAgICAgcmV0
dXJuIExlbmd0aFNpemUobGVuZ3RoWCwgbGVuZ3RoWSk7CisgICAgfQorCisgICAgLy8gRklYTUUt
TkVXUEFSU0VSOiBSZW1vdmUgb25jZSBvbGQgcGFyc2VyIGlzIGdvbmUuCiAgICAgYXV0byYgdmFs
dWVMaXN0ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pih2YWx1ZSk7CiAgICAgcmV0dXJuIExlbmd0
aFNpemUocGFyc2VTbmFwQ29vcmRpbmF0ZShzdHlsZVJlc29sdmVyLCAqdmFsdWVMaXN0Lml0ZW0o
b2Zmc2V0KSksIHBhcnNlU25hcENvb3JkaW5hdGUoc3R5bGVSZXNvbHZlciwgKnZhbHVlTGlzdC5p
dGVtKG9mZnNldCArIDEpKSk7CiB9CiAKIGlubGluZSBWZWN0b3I8TGVuZ3RoU2l6ZT4gU3R5bGVC
dWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xsU25hcENvb3JkaW5hdGVzKFN0eWxlUmVzb2x2
ZXImIHN0eWxlUmVzb2x2ZXIsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKIHsKKyAgICBpZiAoaXM8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkgeworICAgICAgICBBU1NFUlQoZG93bmNhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKTsKKyAgICAg
ICAgcmV0dXJuIFZlY3RvcjxMZW5ndGhTaXplPigpOworICAgIH0KKwogICAgIGF1dG8mIHZhbHVl
TGlzdCA9IGRvd25jYXN0PENTU1ZhbHVlTGlzdD4odmFsdWUpOworICAgIGlmICghdmFsdWVMaXN0
Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gVmVjdG9yPExlbmd0aFNpemU+KCk7CisgICAgCisg
ICAgLy8gRklYTUUtTkVXUEFSU0VSOiBDYW4gbWFrZSB0aGlzIHVuY29uZGl0aW9uYWwgb25jZSBv
bGQgcGFyc2VyIGlzIGdvbmUuIFRoaXMgaXMganVzdCBob3cKKyAgICAvLyB3ZSBkZXRlY3QgdGhh
dCB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIG5ldyBwYXJzZXIncyBwYWlycy4KKyAgICBpZiAodmFs
dWVMaXN0Lml0ZW0oMCktPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBkb3duY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZT4oKnZhbHVlTGlzdC5pdGVtKDApKS5wYWlyVmFsdWUoKSkgeworICAgICAgICBWZWN0
b3I8TGVuZ3RoU2l6ZT4gY29vcmRpbmF0ZXM7CisgICAgICAgIGNvb3JkaW5hdGVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodmFsdWVMaXN0Lmxlbmd0aCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBz
bmFwQ29vcmRpbmF0ZSA6IHZhbHVlTGlzdCkgeworICAgICAgICAgICAgUGFpciogcGFpciA9IGRv
d25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqc25hcENvb3JkaW5hdGUucHRyKCkpLnBhaXJWYWx1
ZSgpOworICAgICAgICAgICAgTGVuZ3RoIGxlbmd0aFggPSBjb252ZXJ0UG9zaXRpb25Db21wb25l
bnQ8Q1NTVmFsdWVMZWZ0LCBDU1NWYWx1ZVJpZ2h0PihzdHlsZVJlc29sdmVyLCAqcGFpci0+Zmly
c3QoKSk7CisgICAgICAgICAgICBMZW5ndGggbGVuZ3RoWSA9IGNvbnZlcnRQb3NpdGlvbkNvbXBv
bmVudDxDU1NWYWx1ZVRvcCwgQ1NTVmFsdWVCb3R0b20+KHN0eWxlUmVzb2x2ZXIsICpwYWlyLT5z
ZWNvbmQoKSk7CisgICAgICAgICAgICBjb29yZGluYXRlcy51bmNoZWNrZWRBcHBlbmQoTGVuZ3Ro
U2l6ZShsZW5ndGhYLCBsZW5ndGhZKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvb3Jk
aW5hdGVzOworICAgIH0KKyAgICAKKyAgICAvLyBGSVhNRS1ORVdQQVJTRVI6IFJlbW92ZSBhbGwg
b2YgdGhpcyBvbmNlIG9sZCBwYXJzZXIgaXMgZ29uZSwgaW5jbHVkaW5nIGFsbCB0aGUgZnVuY3Rp
b25zCisgICAgLy8gaXQgY2FsbHMuCiAgICAgQVNTRVJUKCEodmFsdWVMaXN0Lmxlbmd0aCgpICUg
MikpOwogICAgIHNpemVfdCBwb2ludENvdW50ID0gdmFsdWVMaXN0Lmxlbmd0aCgpIC8gMjsKICAg
ICBWZWN0b3I8TGVuZ3RoU2l6ZT4gY29vcmRpbmF0ZXM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAkocmV2aXNpb24gMjA4MjY5KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE3MTksNyArMTcxOSw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNv
bnN1bWVUcmFuc2Zvcm0KIH0KIAogdGVtcGxhdGUgPENTU1ZhbHVlSUQgc3RhcnQsIENTU1ZhbHVl
SUQgZW5kPgotc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVBvc2l0aW9uTG9uZ2hhbmQo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkK
K3N0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVQb3NpdGlvbkxvbmdoYW5k
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUp
CiB7CiAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbikgewogICAgICAg
ICBDU1NWYWx1ZUlEIGlkID0gcmFuZ2UucGVlaygpLmlkKCk7CkBAIC0xNzM4LDEyICsxNzM4LDEy
IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVQb3NpdGlvbkwKICAgICByZXR1cm4g
Y29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZUFs
bCk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVQb3NpdGlvblgoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKK3N0YXRp
YyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVQb3NpdGlvblgoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKICAgICByZXR1
cm4gY29uc3VtZVBvc2l0aW9uTG9uZ2hhbmQ8Q1NTVmFsdWVMZWZ0LCBDU1NWYWx1ZVJpZ2h0Pihy
YW5nZSwgY3NzUGFyc2VyTW9kZSk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1
bWVQb3NpdGlvblkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3Nz
UGFyc2VyTW9kZSkKK3N0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVQb3Np
dGlvblkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2Vy
TW9kZSkKIHsKICAgICByZXR1cm4gY29uc3VtZVBvc2l0aW9uTG9uZ2hhbmQ8Q1NTVmFsdWVUb3As
IENTU1ZhbHVlQm90dG9tPihyYW5nZSwgY3NzUGFyc2VyTW9kZSk7CiB9CkBAIC0yMDA4LDEzICsy
MDA4LDE4IEBAIHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWUKIAogc3Rh
dGljIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNvbnN1bWVQb3NpdGlvbkxpc3QoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKLSAgICBSZWZQ
dHI8Q1NTVmFsdWVMaXN0PiBwb3NpdGlvbnMgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2Vw
YXJhdGVkKCk7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gcG9zaXRpb25zID0gQ1NTVmFsdWVM
aXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwogICAgIGRvIHsKLSAgICAgICAgUmVmUHRyPENT
U1ZhbHVlPiBwb3NpdGlvbiA9IGNvbnN1bWVQb3NpdGlvbihyYW5nZSwgY3NzUGFyc2VyTW9kZSwg
VW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKLSAgICAgICAgaWYgKCFwb3NpdGlvbikKKyAgICAgICAg
CisgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZmlyc3QgPSBjb25zdW1lUG9zaXRp
b25YKHJhbmdlLCBjc3NQYXJzZXJNb2RlKTsKKyAgICAgICAgaWYgKCFmaXJzdCB8fCByYW5nZS5h
dEVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gc2Vjb25kID0gY29uc3VtZVBvc2l0aW9uWShyYW5nZSwgY3NzUGFyc2Vy
TW9kZSk7CisgICAgICAgIGlmICghc2Vjb25kKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gcG9zaXRpb24gPSBjcmVhdGVQcmltaXRpdmVWYWx1
ZVBhaXIoZmlyc3QucmVsZWFzZU5vbk51bGwoKSwgc2Vjb25kLnJlbGVhc2VOb25OdWxsKCksIFBh
aXI6OklkZW50aWNhbFZhbHVlRW5jb2Rpbmc6OkRvTm90Q29hbGVzY2UpOwogICAgICAgICBwb3Np
dGlvbnMtPmFwcGVuZChwb3NpdGlvbi5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICB9IHdoaWxlIChj
b25zdW1lQ29tbWFJbmNsdWRpbmdXaGl0ZXNwYWNlKHJhbmdlKSk7CisgICAgfSB3aGlsZSAoIXJh
bmdlLmF0RW5kKCkpOwogICAgIHJldHVybiBwb3NpdGlvbnM7CiB9CiAKQEAgLTIwMjUsMjAgKzIw
MzAsNDIgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVNjcm9sbFNuYQogICAgIHJl
dHVybiBjb25zdW1lUG9zaXRpb25MaXN0KHJhbmdlLCBjc3NQYXJzZXJNb2RlKTsKIH0KIAorc3Rh
dGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVNjcm9sbFNuYXBEZXN0aW5hdGlvbihDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQoreworICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZmlyc3QgPSBjb25zdW1lUG9zaXRpb25YKHJhbmdl
LCBjc3NQYXJzZXJNb2RlKTsKKyAgICBpZiAoIWZpcnN0IHx8IHJhbmdlLmF0RW5kKCkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gc2Vjb25k
ID0gY29uc3VtZVBvc2l0aW9uWShyYW5nZSwgY3NzUGFyc2VyTW9kZSk7CisgICAgaWYgKCFzZWNv
bmQpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjcmVhdGVQcmltaXRpdmVW
YWx1ZVBhaXIoZmlyc3QucmVsZWFzZU5vbk51bGwoKSwgc2Vjb25kLnJlbGVhc2VOb25OdWxsKCks
IFBhaXI6OklkZW50aWNhbFZhbHVlRW5jb2Rpbmc6OkRvTm90Q29hbGVzY2UpOworfQorCiBzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lU2Nyb2xsU25hcFBvaW50cyhDU1NQYXJzZXJUb2tl
blJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewotICAgIGlmIChy
YW5nZS5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1ZU5vbmUpCisgICAgaWYgKHJhbmdlLnBlZWsoKS5p
ZCgpID09IENTU1ZhbHVlTm9uZSB8fCByYW5nZS5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1ZUVsZW1l
bnRzKQogICAgICAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKLSAgICBpZiAocmFuZ2Uu
cGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVJlcGVhdCkgewotICAgICAgICBDU1NQYXJz
ZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOwotICAgICAgICBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlID0gY29uc3VtZUxlbmd0aE9yUGVyY2Vu
dChhcmdzLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOwotICAgICAgICBp
ZiAoYXJncy5hdEVuZCgpICYmIHBhcnNlZFZhbHVlICYmIChwYXJzZWRWYWx1ZS0+aXNDYWxjdWxh
dGVkKCkgfHwgcGFyc2VkVmFsdWUtPmRvdWJsZVZhbHVlKCkgPiAwKSkgewotICAgICAgICAgICAg
UmVmUHRyPENTU0Z1bmN0aW9uVmFsdWU+IHJlc3VsdCA9IENTU0Z1bmN0aW9uVmFsdWU6OmNyZWF0
ZShDU1NWYWx1ZVJlcGVhdCk7Ci0gICAgICAgICAgICByZXN1bHQtPmFwcGVuZChwYXJzZWRWYWx1
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgCisg
ICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gcG9pbnRzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFj
ZVNlcGFyYXRlZCgpOworICAgIGRvIHsKKyAgICAgICAgaWYgKHJhbmdlLnBlZWsoKS5mdW5jdGlv
bklkKCkgPT0gQ1NTVmFsdWVSZXBlYXQpIHsKKyAgICAgICAgICAgIENTU1BhcnNlclRva2VuUmFu
Z2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisgICAgICAgICAgICBSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChhcmdz
LCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOworICAgICAgICAgICAgaWYg
KGFyZ3MuYXRFbmQoKSAmJiBwYXJzZWRWYWx1ZSAmJiAocGFyc2VkVmFsdWUtPmlzQ2FsY3VsYXRl
ZCgpIHx8IHBhcnNlZFZhbHVlLT5kb3VibGVWYWx1ZSgpID4gMCkpIHsKKyAgICAgICAgICAgICAg
ICBSZWZQdHI8Q1NTRnVuY3Rpb25WYWx1ZT4gcmVzdWx0ID0gQ1NTRnVuY3Rpb25WYWx1ZTo6Y3Jl
YXRlKENTU1ZhbHVlUmVwZWF0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPmFwcGVuZChwYXJz
ZWRWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgICAgICBwb2ludHMtPmFwcGVu
ZChyZXN1bHQucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGxlbmd0aCA9IGNvbnN1bWVMZW5ndGhP
clBlcmNlbnQocmFuZ2UsIGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VBbGwsIFVuaXRsZXNzUXVp
cms6OkZvcmJpZCk7CisgICAgICAgICAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIHBvaW50cy0+YXBwZW5kKGxlbmd0aC5yZWxlYXNl
Tm9uTnVsbCgpKTsKICAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
IHdoaWxlICghcmFuZ2UuYXRFbmQoKSk7CisgICAgCisgICAgCisgICAgcmV0dXJuIHBvaW50czsK
IH0KIAogI2VuZGlmCkBAIC0zNjAyLDYgKzM2MjksOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1By
b3BlcnR5UGFyc2VyOjpwYXJzCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0U2Nyb2xsU25hcENvb3JkaW5hdGU6CiAgICAgICAgIHJldHVybiBj
b25zdW1lU2Nyb2xsU25hcENvb3JkaW5hdGUobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOworICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTY3JvbGxTbmFwRGVzdGluYXRpb246CisgICAgICAgIHJl
dHVybiBjb25zdW1lU2Nyb2xsU25hcERlc3RpbmF0aW9uKG1fcmFuZ2UsIG1fY29udGV4dC5tb2Rl
KTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2Nyb2xsU25hcFBvaW50c1g6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFNjcm9sbFNuYXBQb2ludHNZOgogICAgICAgICByZXR1cm4gY29u
c3VtZVNjcm9sbFNuYXBQb2ludHMobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwo=
</data>
<flag name="review"
          id="316511"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>