<?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>25352</bug_id>
          
          <creation_ts>2009-04-23 17:21:07 -0700</creation_ts>
          <short_desc>REGRESSION (r42322): style isn&apos;t applied at bmwusa.com due to Content-Type with comma in it</short_desc>
          <delta_ts>2009-05-02 14:16:12 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.bmwusa.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alice Liu">alice.barraclough</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>mrowe</cc>
    
    <cc>wtc</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>118569</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-04-23 17:21:07 -0700</bug_when>
    <thetext>style isn&apos;t applied at bmwusa.com
regression caused by http://trac.webkit.org/changeset/42322</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118585</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-04-23 20:09:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/6823239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118621</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-23 23:43:03 -0700</bug_when>
    <thetext>Sad face.  What Content-Type header are they serving their CSS with?  I won&apos;t be able to investigate this until Sunday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118697</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-24 12:36:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Sad face.  What Content-Type header are they serving their CSS with?  I won&apos;t
&gt; be able to investigate this until Sunday.

Content-Type:text/css,200904131203
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118698</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-24 12:37:04 -0700</bug_when>
    <thetext>URL is http://www.bmwusa.com/HttpCombiner.ashx?s=Set_Css&amp;t=text/css&amp;v=1&amp;t=200904131203</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118701</commentid>
    <comment_count>5</comment_count>
      <attachid>29755</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-24 12:46:28 -0700</bug_when>
    <thetext>Created attachment 29755
first cut at patch, no regression test

I&apos;d like to know more about other browsers&apos; behavior. Is the comma the only difference between us and them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119648</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-01 17:24:10 -0700</bug_when>
    <thetext>Adam, any comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119651</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-01 17:54:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Adam, any comments?

This fix seems reasonable.  I haven&apos;t dug into the Firefox version of this code to see how the algorithm compares, however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119683</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-02 11:48:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I haven&apos;t dug into the Firefox version of this code
&gt; to see how the algorithm compares, however.

I&apos;d very much like to know that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119686</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-02 12:28:14 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; I haven&apos;t dug into the Firefox version of this code
&gt; &gt; to see how the algorithm compares, however.
&gt; 
&gt; I&apos;d very much like to know that.

Ok.  I&apos;ll take a look.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119691</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-02 12:43:12 -0700</bug_when>
    <thetext>Looks like the work is done at http://mxr.mozilla.org/mozilla-central/source/netwerk/base/src/nsURLHelper.cpp#869.  That code has the following BNF as a comment:

878     // Augmented BNF (from RFC 2616 section 3.7):
879     //
880     //   header-value = media-type *( LWS &quot;,&quot; LWS media-type )
881     //   media-type   = type &quot;/&quot; subtype *( LWS &quot;;&quot; LWS parameter )
882     //   type         = token
883     //   subtype      = token
884     //   parameter    = attribute &quot;=&quot; value
885     //   attribute    = token
886     //   value        = token | quoted-string
887     //   
888     //
889     // Examples:
890     //
891     //   text/html
892     //   text/html, text/html
893     //   text/html,text/html; charset=ISO-8859-1
894     //   text/html,text/html; charset=&quot;ISO-8859-1&quot;
895     //   text/html;charset=ISO-8859-1, text/html
896     //   text/html;charset=&apos;ISO-8859-1&apos;, text/html
897     //   application/octet-stream

The code doesn&apos;t quite seem to follow this BNF.  For example, http://mxr.mozilla.org/mozilla-central/source/netwerk/base/src/nsURLHelper.cpp#766 treats the &quot;(&quot; character as special.  Also, media types of &quot;*/*&quot; and those without a &quot;/&quot; character are treated like the empty media type: http://mxr.mozilla.org/mozilla-central/source/netwerk/base/src/nsURLHelper.cpp#823</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119692</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-02 12:57:07 -0700</bug_when>
    <thetext>OK, this jogs my memory a bit.

The comma simply separates multiple field values. This can be used in any HTTP header field. So a Content-Type with a comma in it (outside of quotes) is actually two separate Content-Type header fields.

So one question is how we should handle multiple Content-Type header fields: Ignore all fields after the first? Ignore all fields we don’t know how to parse?

And of course we’d like to match the RFC as closely as possible and match Gecko as closely as possible too. But I think fixes involving characters other than the comma should be tracked by other bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119694</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-02 13:05:16 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; So one question is how we should handle multiple Content-Type header fields:
&gt; Ignore all fields after the first? Ignore all fields we don’t know how to
&gt; parse?

I think Internet Explorer takes the first Content-Type header and Firefox takes the last (could have it backwards, but it&apos;s fairly easy to test).  I think we want to match Firefox here (which is also what Chrome does) because Firefox has stricter Content-Type processing than IE (and that means whichever header Firefox looks at is more likely to be what the web site actually means).

Note that the &quot;must have a /&quot; requirement is probably needed to make this case work properly.  We should test the following case to be sure:

Content-Type: text/css,image/png

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119695</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-02 13:11:50 -0700</bug_when>
    <thetext>&gt; The comma simply separates multiple field values. This can be used in any HTTP
&gt; header field.

Non-compliant servers can of course do this, but the HTTP spec doesn&apos;t allow it for Content-Type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119702</commentid>
    <comment_count>14</comment_count>
      <attachid>29960</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-02 14:05:11 -0700</bug_when>
    <thetext>Created attachment 29960
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119703</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-02 14:16:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/43149</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29755</attachid>
            <date>2009-04-24 12:46:28 -0700</date>
            <delta_ts>2009-05-02 14:05:11 -0700</delta_ts>
            <desc>first cut at patch, no regression test</desc>
            <filename>FirstCutPatch.txt</filename>
            <type>text/plain</type>
            <size>2339</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjgzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDQtMjQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAy
NTM1MjogUkVHUkVTU0lPTihyNDIzMjIpOiBzdHlsZSBpc24ndCBhcHBsaWVkIGF0IGJtd3VzYS5j
b20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzUy
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzY4MjMyMzkKKworICAgICAgICBXQVJOSU5HOiBOTyBU
RVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
SFRUUFBhcnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdE1JTUVUeXBlRnJvbU1l
ZGlhVHlwZSk6IEFsbG93IGNvbW1hIGFzIGEgc2VwYXJhdG9yLgorCiAyMDA5LTA0LTI0ICBOYXRl
IENoYXBpbiAgPGphcGhldEBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0
cmkgR2xhemtvdi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNw
cAkocmV2aXNpb24gNDI4MzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNl
cnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMiArNDAsMTMgQEAgc3RhdGljIGlubGluZSBi
b29sIHNraXBXaGl0ZVNwYWNlKGNvbnN0IAogewogICAgIGludCBsZW4gPSBzdHIubGVuZ3RoKCk7
CiAKLSAgICBpZiAoZnJvbUh0dHBFcXVpdk1ldGEpCisgICAgaWYgKGZyb21IdHRwRXF1aXZNZXRh
KSB7CiAgICAgICAgIHdoaWxlIChwb3MgIT0gbGVuICYmIHN0cltwb3NdIDw9ICcgJykKICAgICAg
ICAgICAgICsrcG9zOwotICAgIGVsc2UKKyAgICB9IGVsc2UgewogICAgICAgICB3aGlsZSAocG9z
ICE9IGxlbiAmJiAoc3RyW3Bvc10gPT0gJ1x0JyB8fCBzdHJbcG9zXSA9PSAnICcpKQogICAgICAg
ICAgICAgKytwb3M7CisgICAgfQogCiAgICAgcmV0dXJuIHBvcyAhPSBsZW47CiB9CkBAIC0xMzcs
MTAgKzEzOCwyMSBAQCBTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zCiAg
ICAgbWltZVR5cGUucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCk7CiAgICAgZm9yICh1bnNpZ25lZCBv
ZmZzZXQgPSAwOyBvZmZzZXQgPCBsZW5ndGg7IG9mZnNldCsrKSB7CiAgICAgICAgIFVDaGFyIGMg
PSBtZWRpYVR5cGVbb2Zmc2V0XTsKKwogICAgICAgICBpZiAoYyA9PSAnOycpCiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgZWxzZSBpZiAoaXNTcGFjZU9yTmV3bGluZShjKSkgLy8gRklYTUU6
IFRoaXMgc2VlbXMgd3JvbmcsICIgIiBpcyBhbiBpbnZhbGlkIE1JTUUgdHlwZSBjaGFyYWN0ZXIg
YWNjb3JkaW5nIHRvIFJGQyAyMDQ1LiAgYnVnIDg2NDQKKworICAgICAgICAvLyBPdGhlciBicm93
c2VycyBzZWVtIHRvIGFsbG93IE1JTUUgdHlwZXMgZm9sbG93ZWQgYnkgY29tbWFzLCBhdCBsZWFz
dCBmb3Igc3R5bGUgc2hlZXRzLgorICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI1MzUyIGZvciBkZXRhaWxzLgorICAgICAgICBpZiAoYyA9PSAn
LCcpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2lu
ZyBydWxlIHNlZW1zIHdyb25nLCAiICIgaXMgYW4gaW52YWxpZCBNSU1FIHR5cGUgY2hhcmFjdGVy
IGFjY29yZGluZyB0byBSRkMgMjA0NS4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2NDQgdHJhY2tzIHRoaXMuCisgICAgICAgIC8vIE1heWJlIHdl
IHNob3VsZCBvbmx5IHN0cmlwIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcyByYXRoZXIgdGhh
biBzdHJpcHBpbmcgYWxsIHNwYWNlcy4KKyAgICAgICAgaWYgKGlzU3BhY2VPck5ld2xpbmUoYykp
CiAgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBtaW1lVHlwZS5hcHBlbmQoYyk7CiAg
ICAgfQogICAgIHJldHVybiBTdHJpbmcobWltZVR5cGUuZGF0YSgpLCBtaW1lVHlwZS5zaXplKCkp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29960</attachid>
            <date>2009-05-02 14:05:11 -0700</date>
            <delta_ts>2009-05-02 14:09:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>MultipleContentTypePatch.txt</filename>
            <type>text/plain</type>
            <size>9126</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzE0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDUtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAy
NTM1MjogUkVHUkVTU0lPTihyNDIzMjIpOiBzdHlsZSBpc24ndCBhcHBsaWVkIGF0IGJtd3VzYS5j
b20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzUy
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzY4MjMyMzkKKworICAgICAgICBUZXN0OiBodHRwL3Rl
c3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtdGV4dC1jc3MtYW5k
LWludmFsaWQtdHlwZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJz
ZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUp
OiBBbGxvdyBjb21tYSBhcyBhIHNlcGFyYXRvci4KKwogMjAwOS0wNS0wMiAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCShyZXZpc2lvbiA0
MzE0NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhl
eSBQcm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBodHRwOi8vd3d3LnRvcmNo
bW9iaWxlLmNvbS8KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQwLDEyICs0MCwxMyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2tpcFdoaXRlU3BhY2UoY29uc3QgCiB7CiAgICAgaW50IGxlbiA9IHN0ci5s
ZW5ndGgoKTsKIAotICAgIGlmIChmcm9tSHR0cEVxdWl2TWV0YSkKKyAgICBpZiAoZnJvbUh0dHBF
cXVpdk1ldGEpIHsKICAgICAgICAgd2hpbGUgKHBvcyAhPSBsZW4gJiYgc3RyW3Bvc10gPD0gJyAn
KQogICAgICAgICAgICAgKytwb3M7Ci0gICAgZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIHdo
aWxlIChwb3MgIT0gbGVuICYmIChzdHJbcG9zXSA9PSAnXHQnIHx8IHN0cltwb3NdID09ICcgJykp
CiAgICAgICAgICAgICArK3BvczsKKyAgICB9CiAKICAgICByZXR1cm4gcG9zICE9IGxlbjsKIH0K
QEAgLTEzMiwxOCArMTMzLDM3IEBAIFN0cmluZyBmaWxlbmFtZUZyb21IVFRQQ29udGVudERpc3Bv
c2l0aW8KIAogU3RyaW5nIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5n
JiBtZWRpYVR5cGUpCiB7Ci0gICAgVmVjdG9yPFVDaGFyLCA2ND4gbWltZVR5cGU7CiAgICAgdW5z
aWduZWQgbGVuZ3RoID0gbWVkaWFUeXBlLmxlbmd0aCgpOworCisgICAgVmVjdG9yPFVDaGFyPiBt
aW1lVHlwZTsKICAgICBtaW1lVHlwZS5yZXNlcnZlQ2FwYWNpdHkobGVuZ3RoKTsKLSAgICBmb3Ig
KHVuc2lnbmVkIG9mZnNldCA9IDA7IG9mZnNldCA8IGxlbmd0aDsgb2Zmc2V0KyspIHsKLSAgICAg
ICAgVUNoYXIgYyA9IG1lZGlhVHlwZVtvZmZzZXRdOworCisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIFVDaGFyIGMgPSBtZWRpYVR5cGVbaV07CisK
ICAgICAgICAgaWYgKGMgPT0gJzsnKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGVsc2Ug
aWYgKGlzU3BhY2VPck5ld2xpbmUoYykpIC8vIEZJWE1FOiBUaGlzIHNlZW1zIHdyb25nLCAiICIg
aXMgYW4gaW52YWxpZCBNSU1FIHR5cGUgY2hhcmFjdGVyIGFjY29yZGluZyB0byBSRkMgMjA0NS4g
IGJ1ZyA4NjQ0CisKKyAgICAgICAgLy8gV2hpbGUgUkZDIDI2MTYgZG9lcyBub3QgYWxsb3cgaXQs
IG90aGVyIGJyb3dzZXJzIGFsbG93IG11bHRpcGxlIHZhbHVlcyBpbiB0aGUgSFRUUCBtZWRpYQor
ICAgICAgICAvLyB0eXBlIGhlYWRlciBmaWVsZCwgQ29udGVudC1UeXBlLiBJbiBzdWNoIGNhc2Vz
LCB0aGUgbWVkaWEgdHlwZSBzdHJpbmcgcGFzc2VkIGhlcmUgbWF5IGNvbnRhaW4KKyAgICAgICAg
Ly8gdGhlIG11bHRpcGxlIHZhbHVlcyBzZXBhcmF0ZWQgYnkgY29tbWFzLiBGb3Igbm93LCB0aGlz
IGNvZGUgaWdub3JlcyB0ZXh0IGFmdGVyIHRoZSBmaXJzdCBjb21tYSwKKyAgICAgICAgLy8gd2hp
Y2ggcHJldmVudHMgaXQgZnJvbSBzaW1wbHkgZmFpbGluZyB0byBwYXJzZSBzdWNoIHR5cGVzIGFs
dG9nZXRoZXIuIExhdGVyIGZvciBiZXR0ZXIKKyAgICAgICAgLy8gY29tcGF0aWJpbGl0eSB3ZSBj
b3VsZCBjb25zaWRlciB1c2luZyB0aGUgZmlyc3Qgb3IgbGFzdCB2YWxpZCBNSU1FIHR5cGUgaW5z
dGVhZC4KKyAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTM1MiBmb3IgbW9yZSBkaXNjdXNzaW9uLgorICAgICAgICBpZiAoYyA9PSAnLCcpCisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBpcyBu
b3QgY29ycmVjdC4gUkZDIDI2MTYgYWxsb3dzIGxpbmVhciB3aGl0ZSBzcGFjZSBiZWZvcmUgYW5k
CisgICAgICAgIC8vIGFmdGVyIHRoZSBNSU1FIHR5cGUsIGJ1dCBub3Qgd2l0aGluIHRoZSBNSU1F
IHR5cGUgaXRzZWxmLiBBbmQgbGluZWFyIHdoaXRlIHNwYWNlCisgICAgICAgIC8vIGluY2x1ZGVz
IG9ubHkgYSBmZXcgc3BlY2lmaWMgQVNDSUkgY2hhcmFjdGVyczsgYSBzbWFsbCBzdWJzZXQgb2Yg
aXNTcGFjZU9yTmV3bGluZS4KKyAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjQ0IGZvciBhIGJ1ZyB0cmFja2luZyBwYXJ0IG9mIHRoaXMuCisg
ICAgICAgIGlmIChpc1NwYWNlT3JOZXdsaW5lKGMpKQogICAgICAgICAgICAgY29udGludWU7CisK
ICAgICAgICAgbWltZVR5cGUuYXBwZW5kKGMpOwogICAgIH0KLSAgICByZXR1cm4gU3RyaW5nKG1p
bWVUeXBlLmRhdGEoKSwgbWltZVR5cGUuc2l6ZSgpKTsKKworICAgIHJldHVybiBTdHJpbmc6OmFk
b3B0KG1pbWVUeXBlKTsKIH0KIAogU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQzMTQ4KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDkt
MDUtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyNTM1MjogUkVHUkVTU0lPTihyNDIz
MjIpOiBzdHlsZSBpc24ndCBhcHBsaWVkIGF0IGJtd3VzYS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzUyCisgICAgICAgIHJkYXI6Ly9wcm9i
bGVtLzY4MjMyMzkKKworICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUt
d2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10eXBlLnBocDoKKyAgICAgICAgQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3Jlc291cmNlcy9zdHlsZS13aXRoLWNoYXJzZXQu
cGhwIGFuZCBhZGFwdGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2Rl
LWxvYWRzLXN0eWxlc2hlZXQtd2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10eXBlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUtbG9h
ZHMtc3R5bGVzaGVldC13aXRoLXRleHQtY3NzLWFuZC1pbnZhbGlkLXR5cGUuaHRtbDoKKyAgICAg
ICAgQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0YW5kYXJkLW1vZGUt
bG9hZHMtc3R5bGVzaGVldC13aXRoLWVtcHR5LWNvbnRlbnQtdHlwZS5odG1sIGFuZCBhZGFwdGVk
LgorCiAyMDA5LTA1LTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24gKGV4Y2VwdCBmb3IgdGhlIG5vbi1mYXN0L2xvYWRp
bmcgdGVzdCBmaXhlcykuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRh
cmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtdGV4dC1jc3MtYW5kLWludmFsaWQtdHlwZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0
YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLXRleHQtY3NzLWFuZC1pbnZhbGlkLXR5
cGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aW1lL3N0YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLXRleHQtY3NzLWFuZC1pbnZh
bGlkLXR5cGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitUaGlzIHRl
c3QgcGFzc2VzIGlmIHdlIGFwcGx5IHRoZSBzdHlsZXNoZWV0ICh3aGljaCB0dXJucyB0aGUgYmFj
a2dyb3VuZCBjb2xvciBncmVlbi4pIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIGlzOiByZ2IoMCwgMTI4
LCAwKS4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9z
dGFuZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10
eXBlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRp
dmUKCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fk
cy1zdHlsZXNoZWV0LXdpdGgtdGV4dC1jc3MtYW5kLWludmFsaWQtdHlwZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFuZGFyZC1tb2RlLWxvYWRzLXN0
eWxlc2hlZXQtd2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10eXBlLmh0bWwJKHJldmlzaW9uIDQz
MTQ3KQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fk
cy1zdHlsZXNoZWV0LXdpdGgtZW1wdHktY29udGVudC10eXBlLmh0bWw6NDMxNDcpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pbWUvc3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdp
dGgtdGV4dC1jc3MtYW5kLWludmFsaWQtdHlwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3N0eWxlLXdpdGgtZW1wdHktY29udGVudC10eXBlLmNn
aSI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0K
KyAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LCBudWxsKS4KKyAgICAgICAgICAgIGdldFByb3BlcnR5VmFsdWUoImJhY2tncm91bmQtY29sb3Ii
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGFzc2VzIGlmIHdl
IGFwcGx5IHRoZSBzdHlsZXNoZWV0ICh3aGljaCB0dXJucyB0aGUgYmFja2dyb3VuZCBjb2xvcgor
Z3JlZW4uKSAgVGhlIGJhY2tncm91bmQgY29sb3IgaXM6IDxzcGFuIGlkPSJyZXN1bHQiPjwvc3Bh
bj4uCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pbWUv
c3RhbmRhcmQtbW9kZS1sb2Fkcy1zdHlsZXNoZWV0LXdpdGgtdGV4dC1jc3MtYW5kLWludmFsaWQt
dHlwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9zdGFu
ZGFyZC1tb2RlLWxvYWRzLXN0eWxlc2hlZXQtd2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10eXBl
Lmh0bWwJKHJldmlzaW9uIDQzMTQ3KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taW1lL3N0
YW5kYXJkLW1vZGUtbG9hZHMtc3R5bGVzaGVldC13aXRoLXRleHQtY3NzLWFuZC1pbnZhbGlkLXR5
cGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMCArMSwxNSBAQAogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMv
c3R5bGUtd2l0aC1lbXB0eS1jb250ZW50LXR5cGUuY2dpIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0icmVzb3VyY2VzL3N0eWxlLXdpdGgtdGV4dC1jc3MtYW5kLWludmFsaWQtdHlwZS5w
aHAiPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi13aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
Ci0gICAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dCwgbnVsbCkuCi0gICAgICAgICAgICBnZXRQcm9wZXJ0eVZhbHVlKCJiYWNrZ3JvdW5kLWNvbG9y
Iik7CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJi
YWNrZ3JvdW5kLWNvbG9yIik7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5PgotVGhpcyB0
ZXN0IHBhc3NlcyBpZiB3ZSBhcHBseSB0aGUgc3R5bGVzaGVldCAod2hpY2ggdHVybnMgdGhlIGJh
Y2tncm91bmQgY29sb3IKLWdyZWVuLikgIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIGlzOiA8c3BhbiBp
ZD0icmVzdWx0Ij48L3NwYW4+LgotPC9ib2R5PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPlRo
aXMgdGVzdCBwYXNzZXMgaWYgd2UgYXBwbHkgdGhlIHN0eWxlc2hlZXQgKHdoaWNoIHR1cm5zIHRo
ZSBiYWNrZ3JvdW5kIGNvbG9yIGdyZWVuLikgVGhlIGJhY2tncm91bmQgY29sb3IgaXM6IDxzcGFu
IGlkPSJyZXN1bHQiPjwvc3Bhbj4uPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taW1lL3Jlc291cmNlcy9zdHlsZS13aXRoLXRleHQtY3NzLWFuZC1pbnZhbGlk
LXR5cGUucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNv
dXJjZXMvc3R5bGUtd2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10eXBlLnBocAkocmV2aXNpb24g
NDMxNDcpCShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUt
d2l0aC1jaGFyc2V0LnBocDo0MzE0NykKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9y
ZXNvdXJjZXMvc3R5bGUtd2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10eXBlLnBocAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKzw/cGhwCitoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4
dC9jc3M7IGNoYXJzZXQ9dXRmLTgiKTsKKz8+CitodG1sIHsgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47IH0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWltZS9yZXNvdXJjZXMvc3R5bGUt
d2l0aC10ZXh0LWNzcy1hbmQtaW52YWxpZC10eXBlLnBocAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pbWUvcmVzb3VyY2VzL3N0eWxlLXdpdGgtdGV4dC1jc3MtYW5kLWlu
dmFsaWQtdHlwZS5waHAJKHJldmlzaW9uIDQzMTQ3KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taW1lL3Jlc291cmNlcy9zdHlsZS13aXRoLXRleHQtY3NzLWFuZC1pbnZhbGlkLXR5cGUucGhw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAogPD9waHAKLWhlYWRlcigiQ29udGVudC1U
eXBlOiB0ZXh0L2NzczsgY2hhcnNldD11dGYtOCIpOworaGVhZGVyKCJDb250ZW50LVR5cGU6IHRl
eHQvY3NzLCAyMDA5MDQxMzEyMDMiKTsKID8+CiBodG1sIHsgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47IH0K
</data>
<flag name="review"
          id="15016"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>