<?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>135756</bug_id>
          
          <creation_ts>2014-08-08 06:20:55 -0700</creation_ts>
          <short_desc>Elements whose contents start with an astral Unicode symbol disappear when CSS `::first-letter` is applied to them</short_desc>
          <delta_ts>2014-08-12 20:54:35 -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>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="Mathias Bynens">mathias</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mathias</cc>
    
    <cc>mitz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1027844</commentid>
    <comment_count>0</comment_count>
      <attachid>236279</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2014-08-08 06:20:55 -0700</bug_when>
    <thetext>Created attachment 236279
Reduced test case

Elements whose contents start with an astral Unicode symbol (such as U+1D306, which I’ll use in examples) disappear when CSS `::first-letter` is applied to them.

For example, the following displays just fine, with and without `::first-letter { background: red; }`:

    &lt;p&gt;Lorem ipsum&lt;/p&gt;

But prepend any astral symbol to the element’s contents and it disappears when the `::first-letter` styles are active:

    &lt;p&gt;&amp;#x1D306;Lorem ipsum (1)&lt;/p&gt;

Blink has the same bug: https://code.google.com/p/chromium/issues/detail?id=401945</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028223</commentid>
    <comment_count>1</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-11 10:48:03 -0700</bug_when>
    <thetext>DumpRenderTree says that we aren&apos;t determining the first letter correctly.

      RenderBlock {P} at (0,34) size 784x18
        RenderInline (generated) at (0,0) size 8x18 [bgcolor=#FF0000]
          RenderText {#text} at (0,0) size 8x18
            text run at (0,0) width 8: &quot;\x{F0}&quot;
        RenderText {#text} at (8,0) size 128x18
          text run at (8,0) width 128: &quot;\x{9D}\x{152}\x{2020}Lorem ipsum (1)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028224</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-11 10:48:55 -0700</bug_when>
    <thetext>Whoops, ignore that last. I didn&apos;t put a meta charset tag in the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028225</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-11 10:50:28 -0700</bug_when>
    <thetext>      RenderBlock {P} at (0,34) size 784x18
        RenderInline (generated) at (0,0) size 0x18 [bgcolor=#FF0000]
          RenderText {#text} at (0,0) size 0x18
            text run at (0,0) width 0: &quot;\x{D834}&quot;
        RenderText {#text} at (0,0) size 64x18
          text run at (0,0) width 64: &quot;\x{DF06}Lorem ipsum (1)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028292</commentid>
    <comment_count>4</comment_count>
      <attachid>236395</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-11 13:14:41 -0700</bug_when>
    <thetext>Created attachment 236395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028420</commentid>
    <comment_count>5</comment_count>
      <attachid>236395</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-11 22:27:38 -0700</bug_when>
    <thetext>Comment on attachment 236395
Patch

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

We can do better.

&gt; Source/WebCore/rendering/RenderBlock.cpp:-3589
&gt; -        length++;

You should just write something like this:

    length += numCharactersInGraphemeClusters(StringView(oldText).substring(length), 1);

You’ll have to change the numCharactersInGraphemeClusters to take a StringView rather than a String, but otherwise this should do the job.

Maybe you’ll need to performance test to see that’s fast enough, but it will do the right thing.

&gt; Source/WebCore/rendering/RenderBlock.cpp:3589
&gt; +        // FIXME: The surrogate might come from another &lt;span&gt;

It would be more appropriate to say another text node, not &lt;span&gt;:

    // FIXME: The trail surrogate might be in a subsequent text node.

But it seems strange to put the FIXME here when the same issue applies to all the rest of the string processing in this function. It’s not specific to this one part of the algorithm.

&gt; Source/WebCore/rendering/RenderBlock.cpp:3590
&gt; +        // FIXME: Presumably, combining marks should be a part of this, too

I would word this completely differently, but it’s not needed if you take my advice above.

&gt; Source/WebCore/rendering/RenderBlock.cpp:3593
&gt; +            UChar32 codepoint = 0;
&gt; +            U16_NEXT(oldText.characters16(), length, oldText.length(), codepoint);

No need to initialize this to zero. Also no reason to smash two words together: “codepoint”. I would just call this local variable “character”. But you don’t need this code at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028663</commentid>
    <comment_count>6</comment_count>
      <attachid>236395</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-12 16:30:45 -0700</bug_when>
    <thetext>Comment on attachment 236395
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:-3589
&gt;&gt; -        length++;
&gt; 
&gt; You should just write something like this:
&gt; 
&gt;     length += numCharactersInGraphemeClusters(StringView(oldText).substring(length), 1);
&gt; 
&gt; You’ll have to change the numCharactersInGraphemeClusters to take a StringView rather than a String, but otherwise this should do the job.
&gt; 
&gt; Maybe you’ll need to performance test to see that’s fast enough, but it will do the right thing.

numCharactersInGraphemeClusters is super useful! Thanks for letting me know about it.

Done.

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:3589
&gt;&gt; +        // FIXME: The surrogate might come from another &lt;span&gt;
&gt; 
&gt; It would be more appropriate to say another text node, not &lt;span&gt;:
&gt; 
&gt;     // FIXME: The trail surrogate might be in a subsequent text node.
&gt; 
&gt; But it seems strange to put the FIXME here when the same issue applies to all the rest of the string processing in this function. It’s not specific to this one part of the algorithm.

I moved the FIXME to RenderBlock::updateFirstLetter where the assumption is actually made.

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:3590
&gt;&gt; +        // FIXME: Presumably, combining marks should be a part of this, too
&gt; 
&gt; I would word this completely differently, but it’s not needed if you take my advice above.

Yup. Done.

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:3593
&gt;&gt; +            U16_NEXT(oldText.characters16(), length, oldText.length(), codepoint);
&gt; 
&gt; No need to initialize this to zero. Also no reason to smash two words together: “codepoint”. I would just call this local variable “character”. But you don’t need this code at all.

Yeah - numCharactersInGraphemeClusters fixes this right up. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028671</commentid>
    <comment_count>7</comment_count>
      <attachid>236483</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-12 16:58:36 -0700</bug_when>
    <thetext>Created attachment 236483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028684</commentid>
    <comment_count>8</comment_count>
      <attachid>236483</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-12 17:49:03 -0700</bug_when>
    <thetext>Comment on attachment 236483
Patch

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

&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:324
&gt; +    return proposedValue.left(numCharactersInGraphemeClusters(StringView(proposedValue), maxLength));

Is the explicit conversion to StringView needed? I’d expect an implicit conversion.

&gt; Source/WebCore/html/TextFieldInputType.cpp:341
&gt; +    unsigned newLength = numCharactersInGraphemeClusters(StringView(string), maxLength);

Is the explicit conversion to StringView needed? I’d expect an implicit conversion.

&gt; Source/WebCore/platform/LocalizedStrings.cpp:85
&gt; +    unsigned numberOfCharacters = numCharactersInGraphemeClusters(StringView(trimmed), maxNumberOfGraphemeClustersInLookupMenuItem);

Is the explicit conversion to StringView needed? I’d expect an implicit conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028685</commentid>
    <comment_count>9</comment_count>
      <attachid>236483</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-12 17:49:52 -0700</bug_when>
    <thetext>Comment on attachment 236483
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        The previous code assumed that all &quot;characters&quot; are exactly 1 16-bit code unit wide. Instead, use U16_NEXT().

Oops, this comment is obsolete since it mentions U16_NEXT.

&gt; Source/WebCore/ChangeLog:12
&gt; +        This patch also modifies the signature of numCharactersInGraphemeClusters() to take a StringView instead
&gt; +        of a string, which will avoid a copy. As soon as there is an implicit StringView constructor which takes a
&gt; +        String, we can revert the changes to these callers.

Oh, I did not see this comment. I thought there was an implicit StringView constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028711</commentid>
    <comment_count>10</comment_count>
      <attachid>236483</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-12 20:50:35 -0700</bug_when>
    <thetext>Comment on attachment 236483
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        The previous code assumed that all &quot;characters&quot; are exactly 1 16-bit code unit wide. Instead, use U16_NEXT().
&gt; 
&gt; Oops, this comment is obsolete since it mentions U16_NEXT.

Done.

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        String, we can revert the changes to these callers.
&gt; 
&gt; Oh, I did not see this comment. I thought there was an implicit StringView constructor.

There is now!

&gt;&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:324
&gt;&gt; +    return proposedValue.left(numCharactersInGraphemeClusters(StringView(proposedValue), maxLength));
&gt; 
&gt; Is the explicit conversion to StringView needed? I’d expect an implicit conversion.

Nope!

&gt;&gt; Source/WebCore/html/TextFieldInputType.cpp:341
&gt;&gt; +    unsigned newLength = numCharactersInGraphemeClusters(StringView(string), maxLength);
&gt; 
&gt; Is the explicit conversion to StringView needed? I’d expect an implicit conversion.

Nope!

&gt;&gt; Source/WebCore/platform/LocalizedStrings.cpp:85
&gt;&gt; +    unsigned numberOfCharacters = numCharactersInGraphemeClusters(StringView(trimmed), maxNumberOfGraphemeClustersInLookupMenuItem);
&gt; 
&gt; Is the explicit conversion to StringView needed? I’d expect an implicit conversion.

Nope!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028712</commentid>
    <comment_count>11</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-08-12 20:54:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/172513</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>236279</attachid>
            <date>2014-08-08 06:20:55 -0700</date>
            <delta_ts>2014-08-08 06:20:55 -0700</delta_ts>
            <desc>Reduced test case</desc>
            <filename>first-letter-bug.html</filename>
            <type>text/html</type>
            <size>221</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cjx0aXRsZT46OmZpcnN0LWxldHRlciBidWc8L3RpdGxlPgo8c3R5bGU+
OjpmaXJzdC1sZXR0ZXIgeyBjb2xvcjogd2hpdGU7IGJhY2tncm91bmQ6IGdyZWVuOyB9PC9zdHls
ZT4KPHA+WW91IHNob3VsZCBzZWUgdHdvIHBhcmFncmFwaHMgYmVsb3cuCjxwPiYjeDFEMzA2O0xv
cmVtIGlwc3VtICgxKTwvcD4KPHA+eCYjeDFEMzA2O0xvcmVtIGlwc3VtICgyKTwvcD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236395</attachid>
            <date>2014-08-11 13:14:41 -0700</date>
            <delta_ts>2014-08-12 16:58:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135756-20140811131430.patch</filename>
            <type>text/plain</type>
            <size>3849</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE4MTNlZGQzNmFiOWU3
OTQ5Nzc4MzBhYzIyNGViYWNjNDdlNjg2Ni4uOWNhYWFmNTViZDJiZDQ0YjQ1ODY2NjViOTMyZmNh
NDc3MGYwM2UyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTA4LTExICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRWxlbWVudHMg
d2hvc2UgY29udGVudHMgc3RhcnQgd2l0aCBhbiBhc3RyYWwgVW5pY29kZSBzeW1ib2wgZGlzYXBw
ZWFyIHdoZW4gQ1NTIGA6OmZpcnN0LWxldHRlcmAgaXMgYXBwbGllZCB0byB0aGVtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU3NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJldmlvdXMgY29k
ZSBhc3N1bWVkIHRoYXQgYWxsICJjaGFyYWN0ZXJzIiBhcmUgZXhhY3RseSAxIDE2LWJpdCBjb2Rl
IHVuaXQgd2lkZS4gSW5zdGVhZCwgdXNlIFUxNl9ORVhUKCkuCisKKyAgICAgICAgVGVzdDogY3Nz
MS9wc2V1ZG8vZmlyc3RsZXR0ZXItc3Vycm9nYXRlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRl
Rmlyc3RMZXR0ZXJSZW5kZXJlcik6CisKIDIwMTQtMDgtMTEgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
NzIzOTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA3Mzhk
ZWY4ODFjOGYwOWMwOTc4ZDcxZGQzNWQ2Y2QyZTA5MDg1YjkwLi4wMDVhNTRkNDUxYTFlNTE4MDZi
N2UwZDg4MDUyYzEzZmQ0ZGRkOTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTM1ODYsNyArMzU4NiwxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjcmVhdGVG
aXJzdExldHRlclJlbmRlcmVyKFJlbmRlck9iamVjdCogZmlyc3RMZXR0ZXJCbG9jaywgUmVuZAog
ICAgICAgICAgICAgbGVuZ3RoKys7CiAKICAgICAgICAgLy8gQWNjb3VudCBmb3IgZmlyc3QgbGV0
dGVyLgotICAgICAgICBsZW5ndGgrKzsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBzdXJyb2dhdGUg
bWlnaHQgY29tZSBmcm9tIGFub3RoZXIgPHNwYW4+CisgICAgICAgIC8vIEZJWE1FOiBQcmVzdW1h
Ymx5LCBjb21iaW5pbmcgbWFya3Mgc2hvdWxkIGJlIGEgcGFydCBvZiB0aGlzLCB0b28KKyAgICAg
ICAgaWYgKCFvbGRUZXh0LmlzOEJpdCgpKSB7CisgICAgICAgICAgICBVQ2hhcjMyIGNvZGVwb2lu
dCA9IDA7CisgICAgICAgICAgICBVMTZfTkVYVChvbGRUZXh0LmNoYXJhY3RlcnMxNigpLCBsZW5n
dGgsIG9sZFRleHQubGVuZ3RoKCksIGNvZGVwb2ludCk7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgbGVuZ3RoKys7CiAgICAgICAgIAogICAgICAgICAvLyBLZWVwIGxvb2tpbmcgZm9yIHdo
aXRlc3BhY2UgYW5kIGFsbG93ZWQgcHVuY3R1YXRpb24sIGJ1dCBhdm9pZAogICAgICAgICAvLyBh
Y2N1bXVsYXRpbmcganVzdCB3aGl0ZXNwYWNlIGludG8gdGhlIDpmaXJzdC1sZXR0ZXIuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNWNmNWM5Mzk2OTQ2NGQxODQwNGYxYjk5OTc4NzNiMjEwZGI5YzEyZi4uYzI4M2Y0OTdkY2Q1
NzAzNjk2YjM3Y2U1MzlhNTFiNDlmYWM4NjQ2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0
LTA4LTExICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgRWxlbWVudHMgd2hvc2UgY29udGVudHMgc3RhcnQgd2l0aCBhbiBhc3RyYWwgVW5pY29kZSBz
eW1ib2wgZGlzYXBwZWFyIHdoZW4gQ1NTIGA6OmZpcnN0LWxldHRlcmAgaXMgYXBwbGllZCB0byB0
aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU3
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IHN1cmUgdGhlIHBzZXVkb2NsYXNzIG1hdGNoZXMgbWFudWFsbHkgd3JhcHBpbmcgYSA8c3Bhbj4g
YXJvdW5kIHRoZSBjaGFyYWN0ZXIuCisKKyAgICAgICAgKiBjc3MxL3BzZXVkby9maXJzdGxldHRl
ci1zdXJyb2dhdGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMS9wc2V1ZG8v
Zmlyc3RsZXR0ZXItc3Vycm9nYXRlLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA4LTEwICBPbGl2ZXIg
SHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgRGVzdHJ1Y3R1cmluZyBhc3NpZ25t
ZW50IGluIGEgdmFyIGRlY2xhcmF0aW9uIGxpc3QgaW5jb3JyZWN0bHkgY29uc3VtZXMgc3Vic2Vx
dWVudCB2YXJpYWJsZSBpbml0aWFsaXNlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczEv
cHNldWRvL2ZpcnN0bGV0dGVyLXN1cnJvZ2F0ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMS9wc2V1ZG8vZmlyc3RsZXR0ZXItc3Vycm9nYXRlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjJhOTE1NDU0NTViNTFhZTRlMDZmMTRhMTExY2MyZTAyMDQxZmFlNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczEvcHNldWRvL2ZpcnN0bGV0dGVyLXN1cnJvZ2F0ZS1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB0aGUg
OjpmaXJzdC1sZXR0ZXIgcHNldWRvY2xhc3Mgd29ya3Mgd2l0aCBmaXJzdAorbGV0dGVycyB0aGF0
IHJlcXVpcmUgc3Vycm9nYXRlcyB3aGVuIHdyaXR0ZW4gaW4gVVRGLTE2LgorPHA+PHNwYW4gc3R5
bGU9ImJhY2tncm91bmQ6IHJlZDsiPiYjeDFEMzA2Ozwvc3Bhbj5Mb3JlbSBpcHN1bSAoMSk8L3A+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MxL3BzZXVkby9maXJzdGxldHRlci1zdXJyb2dh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2NzczEvcHNldWRvL2ZpcnN0bGV0dGVyLXN1cnJvZ2F0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhiMzQyMzNkYmVmYWU2MDE0OGQxNTMyOTE2MDczMzhkZDFlYjI4ZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MxL3BzZXVkby9maXJzdGxldHRlci1z
dXJyb2dhdGUuaHRtbApAQCAtMCwwICsxLDggQEAKKzxzdHlsZT4KK3A6OmZpcnN0LWxldHRlciB7
CisgICAgYmFja2dyb3VuZDogcmVkOworfQorPC9zdHlsZT4KK1RoaXMgdGVzdCBtYWtlcyBzdXJl
IHRoYXQgdGhlIDo6Zmlyc3QtbGV0dGVyIHBzZXVkb2NsYXNzIHdvcmtzIHdpdGggZmlyc3QKK2xl
dHRlcnMgdGhhdCByZXF1aXJlIHN1cnJvZ2F0ZXMgd2hlbiB3cml0dGVuIGluIFVURi0xNi4KKzxw
PiYjeDFEMzA2O0xvcmVtIGlwc3VtICgxKTwvcD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236483</attachid>
            <date>2014-08-12 16:58:36 -0700</date>
            <delta_ts>2014-08-12 20:50:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135756-20140812165826.patch</filename>
            <type>text/plain</type>
            <size>10581</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUxZjI5OWI3MTU5ZGU4NTI3Y2FmMzRm
ZDc1MjMxNjVjOGYzOGE0NWIuLmU4NTFjNjFjZGUzNmQxMDhjZWFiMzUxYzM0MmRhZjhlZDEwNmIy
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDgtMTIgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBFbGVtZW50cyB3aG9zZSBjb250ZW50cyBz
dGFydCB3aXRoIGFuIGFzdHJhbCBVbmljb2RlIHN5bWJvbCBkaXNhcHBlYXIgd2hlbiBDU1MgYDo6
Zmlyc3QtbGV0dGVyYCBpcyBhcHBsaWVkIHRvIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTc1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1ldGhvZCB0byBTdHJpbmdWaWV3IHdoaWNo
IHBhc3NlcyB0aHJvdWdoIGNvbnRhaW5zKCkgdG8gZmluZCgpLgorCisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nVmlldy5oOgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3Ojpjb250YWlucyk6CisK
IDIwMTQtMDgtMTIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBHZW5lcmF0ZSBoZWFkZXIgZGV0ZWN0aW9uIGhlYWRlcnMgZm9yIENNYWtlIG9u
IFdpbmRvd3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFkNjg3NDIyMTQwOTA1YmYwNjJkNTQ5NGRhNjQ0ZDVi
M2ZlOGM2Mi4uODQzNjVhOTQ1MjBhNzI3MTA0YjhkMTJhZTE5MDk4MGUxMzZhN2Y2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA4LTExICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRWxlbWVudHMgd2hvc2UgY29udGVudHMgc3Rh
cnQgd2l0aCBhbiBhc3RyYWwgVW5pY29kZSBzeW1ib2wgZGlzYXBwZWFyIHdoZW4gQ1NTIGA6OmZp
cnN0LWxldHRlcmAgaXMgYXBwbGllZCB0byB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU3NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJldmlvdXMgY29kZSBhc3N1bWVkIHRoYXQgYWxs
ICJjaGFyYWN0ZXJzIiBhcmUgZXhhY3RseSAxIDE2LWJpdCBjb2RlIHVuaXQgd2lkZS4gSW5zdGVh
ZCwgdXNlIFUxNl9ORVhUKCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIHRo
ZSBzaWduYXR1cmUgb2YgbnVtQ2hhcmFjdGVyc0luR3JhcGhlbWVDbHVzdGVycygpIHRvIHRha2Ug
YSBTdHJpbmdWaWV3IGluc3RlYWQKKyAgICAgICAgb2YgYSBzdHJpbmcsIHdoaWNoIHdpbGwgYXZv
aWQgYSBjb3B5LiBBcyBzb29uIGFzIHRoZXJlIGlzIGFuIGltcGxpY2l0IFN0cmluZ1ZpZXcgY29u
c3RydWN0b3Igd2hpY2ggdGFrZXMgYQorICAgICAgICBTdHJpbmcsIHdlIGNhbiByZXZlcnQgdGhl
IGNoYW5nZXMgdG8gdGhlc2UgY2FsbGVycy4KKworICAgICAgICBUZXN0OiBjc3MxL3BzZXVkby9m
aXJzdGxldHRlci1zdXJyb2dhdGUuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNhbml0
aXplVXNlcklucHV0VmFsdWUpOiBVcGRhdGUgY2FsbGVycyBvZiBudW1DaGFyYWN0ZXJzSW5HcmFw
aGVtZUNsdXN0ZXJzKCkgdG8KKyAgICAgICAgcGFzcyBhIFN0cmluZ1ZpZXcuCisgICAgICAgICog
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGltaXRMZW5n
dGgpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKTogVXBkYXRlIG51bUNo
YXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnMoKSB0byB0YWtlIGEgU3RyaW5nVmlldy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6IERpdHRvLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6Y3JlYXRlRmlyc3RMZXR0ZXJSZW5kZXJlcik6IFVzZSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVt
ZUNsdXN0ZXJzKCkgdG8gZGV0ZXJtaW5lIHRoZSBsZW5ndGgKKyAgICAgICAgb2YgdGhlIGZpcnN0
IGxldHRlciwgcmF0aGVyIHRoYW4gYXNzdW1pbmcgaXQgaGFzIGxlbmd0aCBvZiAxIGNvZGUgdW5p
dAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZUZpcnN0TGV0dGVyKTogQWRk
IGEgRklYTUUgY29tbWVudC4KKwogMjAxNC0wOC0xMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbnRzIGZvcmNlZCB0byB1c2Ugbm9uIHN5bnRo
ZXRpYyBpdGFsaWNzIG1pZ2h0IGJlIGxhaWQgb3V0IHdpdGggdGhlIGluY29ycmVjdCBiYXNlbGlu
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAppbmRleCAzNGY5ODIyYjhjN2U3YzUxN2RhN2U0YzQw
OTkwZGU2NTljZDc2MWE3Li45Yzk4ZDA4MDc0ZTQ3NjczMWIyNGFjZDhkNjRiMzY0MzUxNDJhOGQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaApAQCAtMTc5LDYgKzE3OSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCksIGNoYXJh
Y3Rlciwgc3RhcnQpOwogICAgIH0KIAorICAgIGJvb2wgY29udGFpbnMoVUNoYXIgYykgY29uc3Qg
eyByZXR1cm4gZmluZChjKSAhPSBub3RGb3VuZDsgfQorCiAjaWYgVVNFKENGKQogICAgIC8vIFRo
aXMgZnVuY3Rpb24gY29udmVydHMgbnVsbCBzdHJpbmdzIHRvIGVtcHR5IHN0cmluZ3MuCiAgICAg
V1RGX0VYUE9SVF9TVFJJTkdfQVBJIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY3JlYXRlQ0ZTdHJp
bmdXaXRob3V0Q29weWluZygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKaW5kZXggZjQ2YjljZGVmNzY4ZGExYzEwM2FmNmM2ZDU0NTMyNGY5NTgz
MmU0Mi4uZjRiN2FjMDY0YjViNzljNzc5MzVjMGEyNGQwOTg1N2ViNzkxYjU4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0zMjEsNyArMzIxLDcg
QEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCoKIAogU3RyaW5nIEhUTUxUZXh0QXJlYUVsZW1lbnQ6
OnNhbml0aXplVXNlcklucHV0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlLCB1bnNp
Z25lZCBtYXhMZW5ndGgpCiB7Ci0gICAgcmV0dXJuIHByb3Bvc2VkVmFsdWUubGVmdChudW1DaGFy
YWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHByb3Bvc2VkVmFsdWUsIG1heExlbmd0aCkpOworICAg
IHJldHVybiBwcm9wb3NlZFZhbHVlLmxlZnQobnVtQ2hhcmFjdGVyc0luR3JhcGhlbWVDbHVzdGVy
cyhTdHJpbmdWaWV3KHByb3Bvc2VkVmFsdWUpLCBtYXhMZW5ndGgpKTsKIH0KIAogVGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50KiBIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRFbGVtZW50
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRl
eCA1MGQ4OWIxNmVjYmFjMWZiZmNhMzdkNWZhZTkyOTE5ODUwOTRlNDhjLi5jMmI2ZmUwM2RkOTk2
YmQ0NWZjYTgwODA4NzBiZWQ2ODdlYmMzOWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgc3RhdGljIGJvb2wgaXNBU0NJ
SUxpbmVCcmVhayhVQ2hhciBjKQogCiBzdGF0aWMgU3RyaW5nIGxpbWl0TGVuZ3RoKGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBpbnQgbWF4TGVuZ3RoKQogewotICAgIHVuc2lnbmVkIG5ld0xlbmd0aCA9
IG51bUNoYXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnMoc3RyaW5nLCBtYXhMZW5ndGgpOworICAg
IHVuc2lnbmVkIG5ld0xlbmd0aCA9IG51bUNoYXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnMoU3Ry
aW5nVmlldyhzdHJpbmcpLCBtYXhMZW5ndGgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBuZXdMZW5ndGg7ICsraSkgewogICAgICAgICBjb25zdCBVQ2hhciBjdXJyZW50ID0gc3RyaW5n
W2ldOwogICAgICAgICBpZiAoY3VycmVudCA8ICcgJyAmJiBjdXJyZW50ICE9ICdcdCcpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggZTBjYTUz
NjZlNzI0YzRiOTZmOTc2ZmU2N2EwZjAwMjJmNmM5MGMyMi4uNjMyNzhmMGY0MjkxYzc2NTdlYTNl
MGJmOTI2M2E1MGI4YjM4NzVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIFN0cmluZyB0cnVuY2F0ZWRT
dHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsKQogICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVsbGlwc2lzLCAoJmhvcml6b250YWxF
bGxpcHNpcywgMSkpOwogCiAgICAgU3RyaW5nIHRyaW1tZWQgPSBvcmlnaW5hbC5zdHJpcFdoaXRl
U3BhY2UoKTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3RlcnMgPSBudW1DaGFyYWN0ZXJz
SW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0lu
TG9va3VwTWVudUl0ZW0pOworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycyA9IG51bUNo
YXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnMoU3RyaW5nVmlldyh0cmltbWVkKSwgbWF4TnVtYmVy
T2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51SXRlbSk7CiAgICAgcmV0dXJuIG51bWJlck9m
Q2hhcmFjdGVycyA9PSB0cmltbWVkLmxlbmd0aCgpID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChu
dW1iZXJPZkNoYXJhY3RlcnMpICsgZWxsaXBzaXM7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggNDc4NjA4
MzQzZjRlNzAwMzM0OTJmM2MwODU5ZTE3Y2QyNzdlMTU0OS4uMzdhZjBkODY3MDcyOThiNmQ3MDNl
NThiZmQyZWI1ZmI1NTFjYzkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTM3Nyw3ICszNzcsNyBAQCB1bnNpZ25lZCBu
dW1HcmFwaGVtZUNsdXN0ZXJzKGNvbnN0IFN0cmluZyYgcykKICAgICByZXR1cm4gbnVtOwogfQog
Ci11bnNpZ25lZCBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKGNvbnN0IFN0cmluZyYg
cywgdW5zaWduZWQgbnVtR3JhcGhlbWVDbHVzdGVycykKK3Vuc2lnbmVkIG51bUNoYXJhY3RlcnNJ
bkdyYXBoZW1lQ2x1c3RlcnMoY29uc3QgU3RyaW5nVmlldyYgcywgdW5zaWduZWQgbnVtR3JhcGhl
bWVDbHVzdGVycykKIHsKICAgICB1bnNpZ25lZCBzdHJpbmdMZW5ndGggPSBzLmxlbmd0aCgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgK
aW5kZXggMzA2ZjZlNzgzZjYwZWJjZWVmMzVlZmFhYzliNjVmMjc5OTljZDIzZi4uMTE3OTM3MjQ1
YzgwNjA2ODZlYzEwZmEyYTg3MmY0M2IxODE4Y2ZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMTgzLDcgKzE4Myw3IEBAIHBy
aXZhdGU6CiB1bnNpZ25lZCBudW1HcmFwaGVtZUNsdXN0ZXJzKGNvbnN0IFN0cmluZyYpOwogLy8g
UmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd2hpY2ggd2lsbCBiZSBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8KIC8vIHRoZSBzcGVjaWZpZWQgZ3JhcGhlbWUgY2x1c3RlciBsZW5ndGguCi11
bnNpZ25lZCBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKGNvbnN0IFN0cmluZyYsIHVu
c2lnbmVkKTsKK3Vuc2lnbmVkIG51bUNoYXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnMoY29uc3Qg
U3RyaW5nVmlldyYsIHVuc2lnbmVkKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAppbmRleCA3MzhkZWY4ODFjOGYwOWMwOTc4ZDcxZGQzNWQ2Y2QyZTA5MDg1
YjkwLi4yNmE0NzhkZGYxNGM2ZGJkNjdlYzZhMjE4YzBmNmZiNzAxOWVhM2Q2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNs
dWRlICJTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgpAQCAtMzU4NSw4ICszNTg2LDggQEAg
dm9pZCBSZW5kZXJCbG9jazo6Y3JlYXRlRmlyc3RMZXR0ZXJSZW5kZXJlcihSZW5kZXJPYmplY3Qq
IGZpcnN0TGV0dGVyQmxvY2ssIFJlbmQKICAgICAgICAgd2hpbGUgKGxlbmd0aCA8IG9sZFRleHQu
bGVuZ3RoKCkgJiYgc2hvdWxkU2tpcEZvckZpcnN0TGV0dGVyKG9sZFRleHRbbGVuZ3RoXSkpCiAg
ICAgICAgICAgICBsZW5ndGgrKzsKIAotICAgICAgICAvLyBBY2NvdW50IGZvciBmaXJzdCBsZXR0
ZXIuCi0gICAgICAgIGxlbmd0aCsrOworICAgICAgICAvLyBBY2NvdW50IGZvciBmaXJzdCBncmFw
aGVtZSBjbHVzdGVyLgorICAgICAgICBsZW5ndGggKz0gbnVtQ2hhcmFjdGVyc0luR3JhcGhlbWVD
bHVzdGVycyhTdHJpbmdWaWV3KG9sZFRleHQpLnN1YnN0cmluZyhsZW5ndGgpLCAxKTsKICAgICAg
ICAgCiAgICAgICAgIC8vIEtlZXAgbG9va2luZyBmb3Igd2hpdGVzcGFjZSBhbmQgYWxsb3dlZCBw
dW5jdHVhdGlvbiwgYnV0IGF2b2lkCiAgICAgICAgIC8vIGFjY3VtdWxhdGluZyBqdXN0IHdoaXRl
c3BhY2UgaW50byB0aGUgOmZpcnN0LWxldHRlci4KQEAgLTM2ODYsNiArMzY4Nyw4IEBAIHZvaWQg
UmVuZGVyQmxvY2s6OnVwZGF0ZUZpcnN0TGV0dGVyKCkKIHsKICAgICBSZW5kZXJPYmplY3QqIGZp
cnN0TGV0dGVyT2JqOwogICAgIFJlbmRlckVsZW1lbnQqIGZpcnN0TGV0dGVyQ29udGFpbmVyOwor
ICAgIC8vIEZJWE1FOiBUaGUgZmlyc3QgbGV0dGVyIG1pZ2h0IGJlIGNvbXBvc2VkIG9mIGEgdmFy
aWV0eSBvZiBjb2RlIHVuaXRzLCBhbmQgdGhlcmVmb3JlIG1pZ2h0CisgICAgLy8gYmUgY29udGFp
bmVkIHdpdGhpbiBtdWx0aXBsZSBSZW5kZXJFbGVtZW50cy4KICAgICBnZXRGaXJzdExldHRlcihm
aXJzdExldHRlck9iaiwgZmlyc3RMZXR0ZXJDb250YWluZXIpOwogCiAgICAgaWYgKCFmaXJzdExl
dHRlck9iaikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4Yzg4ZjVjYjllZGNmNzE5OTc2MDVmMWQ0YzgxNzkzZGE4ZTZiMGVl
Li44NjRhOTlmYjNiMjQ5NDg4NWFkZGYxMWNkNGMzNTExOTFiOTljMTRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTQtMDgtMTEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KKworICAgICAgICBFbGVtZW50cyB3aG9zZSBjb250ZW50cyBzdGFydCB3aXRoIGFuIGFz
dHJhbCBVbmljb2RlIHN5bWJvbCBkaXNhcHBlYXIgd2hlbiBDU1MgYDo6Zmlyc3QtbGV0dGVyYCBp
cyBhcHBsaWVkIHRvIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNTc1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2Ugc3VyZSB0aGUgcHNldWRvY2xhc3MgbWF0Y2hlcyBtYW51YWxseSB3cmFw
cGluZyBhIDxzcGFuPiBhcm91bmQgdGhlIGNoYXJhY3Rlci4KKworICAgICAgICAqIGNzczEvcHNl
dWRvL2ZpcnN0bGV0dGVyLXN1cnJvZ2F0ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MxL3BzZXVkby9maXJzdGxldHRlci1zdXJyb2dhdGUuaHRtbDogQWRkZWQuCisKIDIwMTQt
MDgtMTIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGb250cyBmb3JjZWQgdG8gdXNlIG5vbiBzeW50aGV0aWMgaXRhbGljcyBtaWdodCBiZSBsYWlk
IG91dCB3aXRoIHRoZSBpbmNvcnJlY3QgYmFzZWxpbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczEvcHNldWRvL2ZpcnN0bGV0dGVyLXN1cnJvZ2F0ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvY3NzMS9wc2V1ZG8vZmlyc3RsZXR0ZXItc3Vycm9nYXRlLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjJhOTE1NDU0NTViNTFhZTRlMDZmMTRhMTExY2MyZTAyMDQxZmFlNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczEvcHNldWRvL2ZpcnN0bGV0dGVyLXN1cnJvZ2F0
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhh
dCB0aGUgOjpmaXJzdC1sZXR0ZXIgcHNldWRvY2xhc3Mgd29ya3Mgd2l0aCBmaXJzdAorbGV0dGVy
cyB0aGF0IHJlcXVpcmUgc3Vycm9nYXRlcyB3aGVuIHdyaXR0ZW4gaW4gVVRGLTE2LgorPHA+PHNw
YW4gc3R5bGU9ImJhY2tncm91bmQ6IHJlZDsiPiYjeDFEMzA2Ozwvc3Bhbj5Mb3JlbSBpcHN1bSAo
MSk8L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MxL3BzZXVkby9maXJzdGxldHRlci1z
dXJyb2dhdGUuaHRtbCBiL0xheW91dFRlc3RzL2NzczEvcHNldWRvL2ZpcnN0bGV0dGVyLXN1cnJv
Z2F0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMzQyMzNkYmVmYWU2MDE0OGQxNTMyOTE2MDczMzhkZDFl
YjI4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MxL3BzZXVkby9maXJzdGxl
dHRlci1zdXJyb2dhdGUuaHRtbApAQCAtMCwwICsxLDggQEAKKzxzdHlsZT4KK3A6OmZpcnN0LWxl
dHRlciB7CisgICAgYmFja2dyb3VuZDogcmVkOworfQorPC9zdHlsZT4KK1RoaXMgdGVzdCBtYWtl
cyBzdXJlIHRoYXQgdGhlIDo6Zmlyc3QtbGV0dGVyIHBzZXVkb2NsYXNzIHdvcmtzIHdpdGggZmly
c3QKK2xldHRlcnMgdGhhdCByZXF1aXJlIHN1cnJvZ2F0ZXMgd2hlbiB3cml0dGVuIGluIFVURi0x
Ni4KKzxwPiYjeDFEMzA2O0xvcmVtIGlwc3VtICgxKTwvcD4K
</data>
<flag name="review"
          id="261109"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>