<?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>133155</bug_id>
          
          <creation_ts>2014-05-21 11:04:32 -0700</creation_ts>
          <short_desc>REGRESSION(r167870): Crash in simple line layout code with :after</short_desc>
          <delta_ts>2014-05-21 23:14:50 -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>Layout and Rendering</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>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>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010798</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-05-21 11:04:32 -0700</bug_when>
    <thetext>&lt;style&gt;
a { display: none; }
a:after { content: &quot;bar&quot;; }
div:hover a { display: inline-block }
&lt;/style&gt;
&lt;div&gt;foo&lt;a&gt;&lt;/a&gt;&lt;/div&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010799</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-05-21 11:05:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/16977696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010802</commentid>
    <comment_count>2</comment_count>
      <attachid>231834</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-05-21 11:20:56 -0700</bug_when>
    <thetext>Created attachment 231834
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010806</commentid>
    <comment_count>3</comment_count>
      <attachid>231834</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-21 11:29:15 -0700</bug_when>
    <thetext>Comment on attachment 231834
patch

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

Looks great.

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:3423
&gt;  const SimpleLineLayout::Layout* RenderBlockFlow::simpleLineLayout() const
&gt;  {
&gt; -    if (m_lineLayoutPath == UndeterminedPath)
&gt; -        const_cast&lt;RenderBlockFlow&amp;&gt;(*this).m_lineLayoutPath = SimpleLineLayout::canUseFor(*this) ? SimpleLinesPath : LineBoxesPath;
&gt; -
&gt; -    if (m_lineLayoutPath == SimpleLinesPath)
&gt; -        return m_simpleLineLayout.get();
&gt; -
&gt; -    const_cast&lt;RenderBlockFlow&amp;&gt;(*this).createLineBoxes();
&gt; -    return nullptr;
&gt; +    ASSERT(m_lineLayoutPath &lt;= SimpleLinesPath || !m_simpleLineLayout);
&gt; +    return m_simpleLineLayout.get();
&gt;  }

Maybe we should move this back to the header file and make it an inline function again.

I don’t think the assertion is strong enough. It’s seems like it’s not OK to get a non-nullptr value if m_lineLayoutPath is UndeterminedPath. But maybe we can’t put the stronger assertion in because we still need to get at m_simpleLineLayout in the time window before we determine whether to use it or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010825</commentid>
    <comment_count>4</comment_count>
      <attachid>231839</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-05-21 13:40:17 -0700</bug_when>
    <thetext>Created attachment 231839
patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010826</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-05-21 13:41:12 -0700</bug_when>
    <thetext>&gt; I don’t think the assertion is strong enough. It’s seems like it’s not OK to get a non-nullptr value if m_lineLayoutPath is UndeterminedPath. But maybe we can’t put the stronger assertion in because we still need to get at m_simpleLineLayout in the time window before we determine whether to use it or not.

You are right. I tightened the assert and now drop the simple line layout on path invalidation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010906</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-05-21 23:14:50 -0700</bug_when>
    <thetext>https://trac.webkit.org/r169189</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231834</attachid>
            <date>2014-05-21 11:20:56 -0700</date>
            <delta_ts>2014-05-21 13:40:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>simple-lines-style-invalidate.patch</filename>
            <type>text/plain</type>
            <size>5904</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTE3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA1LTIxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxNjc4NzAp
OiBDcmFzaCBpbiBzaW1wbGUgbGluZSBsYXlvdXQgY29kZSB3aXRoIDphZnRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTU1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xNjk3NzY5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIEZpeCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMyMjQxIGluIGEgc2FmZXIgd2F5LgorICAgICAgICBUaGUgdW5kZXJsaW5l
IGJlaGF2aW9yIGlzIHRlc3RlZCBieSB0aGUgZXhpc3RpbmcgZmFzdC90ZXh0L3NpbXBsZS1saW5l
cy1ob3Zlci11bmRlcmxpbmUuaHRtbAorCisgICAgICAgIFRlc3Q6IGZhc3QvdGV4dC9zaW1wbGUt
bGluZXMtaG92ZXItYWZ0ZXIuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnN0eWxlRGlkQ2hh
bmdlKToKKyAgICAgICAgCisgICAgICAgICAgICBJbnZhbGlkYXRlIGxheW91dCBpZiBzdHlsZSBj
aGFuZ2VzIGluIGEgbWFubmVyIHRoYXQgbWFrZXMgdXMgaW5lbGlnaWJsZSB0byB1c2UgdGhlIHNp
bXBsZSBsaW5lIGxheW91dCBwYXRoLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnNpbXBsZUxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjplbnN1cmVMaW5lQm94ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpj
cmVhdGVMaW5lQm94ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuaDoKKyAgICAgICAgCisgICAgICAgICAgICBSZXZlcnQgc29tZSBvZiB0aGUgY2hhbmdl
cyBtYWRlIGl0IHIxNjc4NzAuCisKIDIwMTQtMDUtMjEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBHYXJiYWdlIHdoZW4gcnViYmVyLWJhbmRpbmcgYXQgdGhlIHJp
Z2h0IGVkZ2Ugb2YgYSBwYWdlIHpvb21lZCB0byBub24taW50ZWdyYWwgc2NhbGUuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAkocmV2aXNpb24g
MTY5MTUyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5NjIsOSArMTk2MiwxMyBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6c3R5bGVEaWRDaGFuZ2UoU3R5CiAgICAgaWYgKGF1dG8gZnJhZ21lbnQgPSByZW5kZXJOYW1l
ZEZsb3dGcmFnbWVudCgpKQogICAgICAgICBmcmFnbWVudC0+c2V0U3R5bGUoUmVuZGVyTmFtZWRG
bG93RnJhZ21lbnQ6OmNyZWF0ZVN0eWxlKHN0eWxlKCkpKTsKIAotICAgIGlmIChkaWZmID49IFN0
eWxlRGlmZmVyZW5jZVJlcGFpbnQpCisgICAgaWYgKGRpZmYgPj0gU3R5bGVEaWZmZXJlbmNlUmVw
YWludCkgewogICAgICAgICBpbnZhbGlkYXRlTGluZUxheW91dFBhdGgoKTsKLSAgICAKKyAgICAg
ICAgLy8gRklYTUU6IFRoaXMgY291bGQgdXNlIGEgY2hlYXBlciBzdHlsZS1vbmx5IHRlc3QgaW5z
dGVhZCBvZiBTaW1wbGVMaW5lTGF5b3V0OjpjYW5Vc2VGb3IuCisgICAgICAgIGlmIChtX3NpbXBs
ZUxpbmVMYXlvdXQgJiYgIXNlbGZOZWVkc0xheW91dCgpICYmICFTaW1wbGVMaW5lTGF5b3V0Ojpj
YW5Vc2VGb3IoKnRoaXMpKQorICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXQoKTsKKyAgICB9CisK
ICAgICBpZiAobXVsdGlDb2x1bW5GbG93VGhyZWFkKCkpIHsKICAgICAgICAgZm9yIChhdXRvIGNo
aWxkID0gZmlyc3RDaGlsZEJveCgpOwogICAgICAgICAgICAgIGNoaWxkICYmIChjaGlsZC0+aXNJ
bkZsb3dSZW5kZXJGbG93VGhyZWFkKCkgfHwgY2hpbGQtPmlzUmVuZGVyTXVsdGlDb2x1bW5TZXQo
KSk7CkBAIC0zNDE0LDI2ICszNDE4LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpkZWxldGVM
aW5lQm94ZXNCZWYKIAogY29uc3QgU2ltcGxlTGluZUxheW91dDo6TGF5b3V0KiBSZW5kZXJCbG9j
a0Zsb3c6OnNpbXBsZUxpbmVMYXlvdXQoKSBjb25zdAogewotICAgIGlmIChtX2xpbmVMYXlvdXRQ
YXRoID09IFVuZGV0ZXJtaW5lZFBhdGgpCi0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tG
bG93Jj4oKnRoaXMpLm1fbGluZUxheW91dFBhdGggPSBTaW1wbGVMaW5lTGF5b3V0OjpjYW5Vc2VG
b3IoKnRoaXMpID8gU2ltcGxlTGluZXNQYXRoIDogTGluZUJveGVzUGF0aDsKLQotICAgIGlmICht
X2xpbmVMYXlvdXRQYXRoID09IFNpbXBsZUxpbmVzUGF0aCkKLSAgICAgICAgcmV0dXJuIG1fc2lt
cGxlTGluZUxheW91dC5nZXQoKTsKLQotICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4o
KnRoaXMpLmNyZWF0ZUxpbmVCb3hlcygpOwotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VS
VChtX2xpbmVMYXlvdXRQYXRoIDw9IFNpbXBsZUxpbmVzUGF0aCB8fCAhbV9zaW1wbGVMaW5lTGF5
b3V0KTsKKyAgICByZXR1cm4gbV9zaW1wbGVMaW5lTGF5b3V0LmdldCgpOwogfQogCiB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6ZW5zdXJlTGluZUJveGVzKCkKIHsKICAgICBtX2xpbmVMYXlvdXRQYXRo
ID0gRm9yY2VMaW5lQm94ZXNQYXRoOwotICAgIGNyZWF0ZUxpbmVCb3hlcygpOwotfQotCi12b2lk
IFJlbmRlckJsb2NrRmxvdzo6Y3JlYXRlTGluZUJveGVzKCkKLXsKLSAgICBBU1NFUlQobV9saW5l
TGF5b3V0UGF0aCA9PSBMaW5lQm94ZXNQYXRoIHx8IG1fbGluZUxheW91dFBhdGggPT0gRm9yY2VM
aW5lQm94ZXNQYXRoKTsKLQogICAgIGlmICghbV9zaW1wbGVMaW5lTGF5b3V0KQogICAgICAgICBy
ZXR1cm47CiAgICAgbV9zaW1wbGVMaW5lTGF5b3V0ID0gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgJKHJldmlzaW9uIDE2OTE1MikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAkod29ya2luZyBjb3B5
KQpAQCAtNTI1LDggKzUyNSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRp
b24gcG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXRQb2ludCYg
cG9pbnRJbkxvZ2ljYWxDb250ZW50cywgY29uc3QgUmVuZGVyUmVnaW9uKikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4oVmVjdG9y
PEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqKSBvdmVycmlkZTsKIAotICAgIHZvaWQgY3JlYXRl
TGluZUJveGVzKCk7Ci0KIC8vIEZJWE1FLUJMT0NLRkxPVzogVGhlc2UgbWV0aG9kcyBoYXZlIGlt
cGxlbWVudGF0aW9ucyBpbgogLy8gUmVuZGVyQmxvY2tMaW5lTGF5b3V0LiBUaGV5IHNob3VsZCBi
ZSBtb3ZlZCB0byB0aGUgcHJvcGVyIGhlYWRlciBvbmNlIHRoZQogLy8gbGluZSBsYXlvdXQgY29k
ZSBpcyBzZXBhcmF0ZWQgZnJvbSBSZW5kZXJCbG9jayBhbmQgUmVuZGVyQmxvY2tGbG93LgpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTY5MTcwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDUtMjEgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjE2Nzg3MCk6IENyYXNoIGluIHNp
bXBsZSBsaW5lIGxheW91dCBjb2RlIHdpdGggOmFmdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMxNTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvdGV4dC9zaW1wbGUtbGluZXMtaG92ZXIt
YWZ0ZXItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L3NpbXBsZS1s
aW5lcy1ob3Zlci1hZnRlci5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0yMSAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgTWFjIGdhcmRlbmluZyBh
ZnRlciByMTY5MTYxLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NpbXBsZS1saW5lcy1o
b3Zlci1hZnRlci1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
dGV4dC9zaW1wbGUtbGluZXMtaG92ZXItYWZ0ZXItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9zaW1wbGUtbGluZXMtaG92ZXItYWZ0ZXItZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxIEBACit0YXJnZXQgYWZ0ZXIKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9zaW1wbGUtbGluZXMtaG92ZXItYWZ0ZXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvc2ltcGxlLWxpbmVzLWhvdmVyLWFmdGVy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvc2ltcGxlLWxpbmVz
LWhvdmVyLWFmdGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorPHN0eWxl
PgorYSB7IGRpc3BsYXk6IG5vbmU7IH0KK2E6YWZ0ZXIgeyBjb250ZW50OiAiYWZ0ZXIiOyB9Citk
aXY6aG92ZXIgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jayB9Cis8L3N0eWxlPgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0Iik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zmc2V0TGVmdCArIDEwLCB0YXJn
ZXQub2Zmc2V0VG9wICsgMTApOworfQorZnVuY3Rpb24gZG9uZSgpCit7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2Ny
aXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD0idGFyZ2V0IiBvbm1vdXNlZW50
ZXI9ImRvbmUoKSI+dGFyZ2V0IDxhPjwvYT48L2Rpdj4K
</data>
<flag name="review"
          id="256295"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231839</attachid>
            <date>2014-05-21 13:40:17 -0700</date>
            <delta_ts>2014-05-21 16:59:04 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>simple-lines-style-invalidate-2.patch</filename>
            <type>text/plain</type>
            <size>9349</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTE3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE0LTA1LTIxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxNjc4NzAp
OiBDcmFzaCBpbiBzaW1wbGUgbGluZSBsYXlvdXQgY29kZSB3aXRoIDphZnRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTU1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xNjk3NzY5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIEZpeCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMyMjQxIGluIGEgc2FmZXIgd2F5LgorICAgICAgICBUaGUgdW5kZXJsaW5l
IGJlaGF2aW9yIGlzIHRlc3RlZCBieSB0aGUgZXhpc3RpbmcgZmFzdC90ZXh0L3NpbXBsZS1saW5l
cy1ob3Zlci11bmRlcmxpbmUuaHRtbAorCisgICAgICAgIFRlc3Q6IGZhc3QvdGV4dC9zaW1wbGUt
bGluZXMtaG92ZXItYWZ0ZXIuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbnZhbGlkYXRlTGluZUxheW91
dFBhdGgpOiBEZWxldGVkLgorCisgICAgICAgICAgICBNb3ZlIHRvIFJlbmRlckJsb2NrRmxvdy4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OmludmFsaWRhdGVMaW5lTGF5b3V0UGF0aCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgCisgICAgICAgICAgICBJbnZhbGlkYXRlIGxh
eW91dCBpZiBzdHlsZSBjaGFuZ2VzIGluIGEgbWFubmVyIHRoYXQgbWFrZXMgdXMgaW5lbGlnaWJs
ZSB0byB1c2UgdGhlIHNpbXBsZSBsaW5lIGxheW91dCBwYXRoLgorCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9ja0Zsb3c6OmludmFsaWRhdGVMaW5lTGF5b3V0UGF0aCk6CisgICAgICAgIAor
ICAgICAgICAgICAgRHJvcCB0aGUgc2ltcGxlIGxpbmUgbGF5b3V0IG9uIHBhdGggaW52YWxpZGF0
aW9uIGlmIGl0IGV4aXN0cy4gSXQgbWF5IG5vdCBiZSB2YWxpZCBhbnltb3JlLgorICAgICAgICAg
ICAgQWxzbyBpbnZhbGlkYXRlIHRoZSBsYXlvdXQgaWYgdGhpcyBoYXBwZW5zIHNvIHdlJ2xsIHJl
Y29uc3RydWN0IHRoZSBsaW5lcyBsYXRlci4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2tGbG93OjpzaW1wbGVMaW5lTGF5b3V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrRmxvdzo6ZW5zdXJlTGluZUJveGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrRmxvdzo6Y3JlYXRlTGluZUJveGVzKTogRGVsZXRlZC4KKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgIFJldmVydCBzb21lIG9mIHRoZSBjaGFuZ2VzIG1hZGUgaXQgcjE2Nzg3MC4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrRmxvdzo6c2ltcGxlTGluZUxheW91dCk6CisgICAgICAgIAorICAgICAg
ICAgICAgQWRkIHN0cm9uZyB2YWxpZGl0eSBhc3NlcnQuCisKIDIwMTQtMDUtMjEgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBHYXJiYWdlIHdoZW4gcnViYmVyLWJh
bmRpbmcgYXQgdGhlIHJpZ2h0IGVkZ2Ugb2YgYSBwYWdlIHpvb21lZCB0byBub24taW50ZWdyYWwg
c2NhbGUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJl
dmlzaW9uIDE2OTE1MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYyNiwxMyArNjI2LDYgQEAgdm9pZCBSZW5kZXJCbG9jazo6
ZGVsZXRlTGluZXMoKQogICAgICAgICBjYWNoZS0+cmVjb21wdXRlSXNJZ25vcmVkKHRoaXMpOwog
fQogCi12b2lkIFJlbmRlckJsb2NrOjppbnZhbGlkYXRlTGluZUxheW91dFBhdGgoKQotewotICAg
IGlmIChtX2xpbmVMYXlvdXRQYXRoID09IEZvcmNlTGluZUJveGVzUGF0aCkKLSAgICAgICAgcmV0
dXJuOwotICAgIG1fbGluZUxheW91dFBhdGggPSBVbmRldGVybWluZWRQYXRoOwotfQotCiB2b2lk
IFJlbmRlckJsb2NrOjptYWtlQ2hpbGRyZW5Ob25JbmxpbmUoUmVuZGVyT2JqZWN0KiBpbnNlcnRp
b25Qb2ludCkKIHsgICAgCiAgICAgLy8gbWFrZUNoaWxkcmVuTm9uSW5saW5lIHRha2VzIGEgYmxv
Y2sgd2hvc2UgY2hpbGRyZW4gYXJlICphbGwqIGlubGluZSBhbmQgaXQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShyZXZpc2lvbiAxNjkxNTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtODEsNyAr
ODEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0QmxvY2soYm9vbCByZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMCk7CiAKLSAgICB2
b2lkIGludmFsaWRhdGVMaW5lTGF5b3V0UGF0aCgpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlTGluZUxheW91dFBhdGgoKSB7IH0KIAogICAgIHZvaWQgaW5zZXJ0UG9zaXRpb25lZE9iamVj
dChSZW5kZXJCb3gmKTsKICAgICBzdGF0aWMgdm9pZCByZW1vdmVQb3NpdGlvbmVkT2JqZWN0KFJl
bmRlckJveCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAJKHJldmlzaW9uIDE2OTE1MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYyLDkgKzE5NjIsMTIgQEAg
dm9pZCBSZW5kZXJCbG9ja0Zsb3c6OnN0eWxlRGlkQ2hhbmdlKFN0eQogICAgIGlmIChhdXRvIGZy
YWdtZW50ID0gcmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSkKICAgICAgICAgZnJhZ21lbnQtPnNl
dFN0eWxlKFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpjcmVhdGVTdHlsZShzdHlsZSgpKSk7CiAK
LSAgICBpZiAoZGlmZiA+PSBTdHlsZURpZmZlcmVuY2VSZXBhaW50KQotICAgICAgICBpbnZhbGlk
YXRlTGluZUxheW91dFBhdGgoKTsKLSAgICAKKyAgICBpZiAoZGlmZiA+PSBTdHlsZURpZmZlcmVu
Y2VSZXBhaW50KSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIHVzZSBhIGNoZWFwZXIg
c3R5bGUtb25seSB0ZXN0IGluc3RlYWQgb2YgU2ltcGxlTGluZUxheW91dDo6Y2FuVXNlRm9yLgor
ICAgICAgICBpZiAoc2VsZk5lZWRzTGF5b3V0KCkgfHwgIW1fc2ltcGxlTGluZUxheW91dCB8fCAh
U2ltcGxlTGluZUxheW91dDo6Y2FuVXNlRm9yKCp0aGlzKSkKKyAgICAgICAgICAgIGludmFsaWRh
dGVMaW5lTGF5b3V0UGF0aCgpOworICAgIH0KKwogICAgIGlmIChtdWx0aUNvbHVtbkZsb3dUaHJl
YWQoKSkgewogICAgICAgICBmb3IgKGF1dG8gY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7CiAgICAg
ICAgICAgICAgY2hpbGQgJiYgKGNoaWxkLT5pc0luRmxvd1JlbmRlckZsb3dUaHJlYWQoKSB8fCBj
aGlsZC0+aXNSZW5kZXJNdWx0aUNvbHVtblNldCgpKTsKQEAgLTMzOTAsNiArMzM5MywyNyBAQCBi
b29sIFJlbmRlckJsb2NrRmxvdzo6aGFzTGluZXMoKSBjb25zdAogICAgIHJldHVybiBsaW5lQm94
ZXMoKS5maXJzdExpbmVCb3goKTsKIH0KIAordm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmludmFsaWRh
dGVMaW5lTGF5b3V0UGF0aCgpCit7CisgICAgc3dpdGNoIChtX2xpbmVMYXlvdXRQYXRoKSB7Cisg
ICAgY2FzZSBGb3JjZUxpbmVCb3hlc1BhdGg6CisgICAgY2FzZSBVbmRldGVybWluZWRQYXRoOgor
ICAgICAgICBBU1NFUlQoIW1fc2ltcGxlTGluZUxheW91dCk7CisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIFNpbXBsZUxpbmVzUGF0aDoKKyAgICAgICAgLy8gVGhlIHNpbXBsZSBsaW5lIGxheW91
dCBtYXkgaGF2ZSBiZWNvbWUgaW52YWxpZC4KKyAgICAgICAgbV9zaW1wbGVMaW5lTGF5b3V0ID0g
bnVsbHB0cjsKKyAgICAgICAgc2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgbV9saW5lTGF5b3V0
UGF0aCA9IFVuZGV0ZXJtaW5lZFBhdGg7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIExpbmVC
b3hlc1BhdGg6CisgICAgICAgIEFTU0VSVCghbV9zaW1wbGVMaW5lTGF5b3V0KTsKKyAgICAgICAg
bV9saW5lTGF5b3V0UGF0aCA9IFVuZGV0ZXJtaW5lZFBhdGg7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHZvaWQgUmVuZGVyQmxvY2tGbG93
OjpsYXlvdXRTaW1wbGVMaW5lcyhMYXlvdXRVbml0JiByZXBhaW50TG9naWNhbFRvcCwgTGF5b3V0
VW5pdCYgcmVwYWludExvZ2ljYWxCb3R0b20pCiB7CiAgICAgQVNTRVJUKCFtX2xpbmVCb3hlcy5m
aXJzdExpbmVCb3goKSk7CkBAIC0zNDEyLDI4ICszNDM2LDkgQEAgdm9pZCBSZW5kZXJCbG9ja0Zs
b3c6OmRlbGV0ZUxpbmVCb3hlc0JlZgogICAgIHRvUmVuZGVyVGV4dChmaXJzdENoaWxkKCkpLT5k
ZWxldGVMaW5lQm94ZXNCZWZvcmVTaW1wbGVMaW5lTGF5b3V0KCk7CiB9CiAKLWNvbnN0IFNpbXBs
ZUxpbmVMYXlvdXQ6OkxheW91dCogUmVuZGVyQmxvY2tGbG93OjpzaW1wbGVMaW5lTGF5b3V0KCkg
Y29uc3QKLXsKLSAgICBpZiAobV9saW5lTGF5b3V0UGF0aCA9PSBVbmRldGVybWluZWRQYXRoKQot
ICAgICAgICBjb25zdF9jYXN0PFJlbmRlckJsb2NrRmxvdyY+KCp0aGlzKS5tX2xpbmVMYXlvdXRQ
YXRoID0gU2ltcGxlTGluZUxheW91dDo6Y2FuVXNlRm9yKCp0aGlzKSA/IFNpbXBsZUxpbmVzUGF0
aCA6IExpbmVCb3hlc1BhdGg7Ci0KLSAgICBpZiAobV9saW5lTGF5b3V0UGF0aCA9PSBTaW1wbGVM
aW5lc1BhdGgpCi0gICAgICAgIHJldHVybiBtX3NpbXBsZUxpbmVMYXlvdXQuZ2V0KCk7Ci0KLSAg
ICBjb25zdF9jYXN0PFJlbmRlckJsb2NrRmxvdyY+KCp0aGlzKS5jcmVhdGVMaW5lQm94ZXMoKTsK
LSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmVuc3VyZUxp
bmVCb3hlcygpCiB7CiAgICAgbV9saW5lTGF5b3V0UGF0aCA9IEZvcmNlTGluZUJveGVzUGF0aDsK
LSAgICBjcmVhdGVMaW5lQm94ZXMoKTsKLX0KLQotdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmNyZWF0
ZUxpbmVCb3hlcygpCi17Ci0gICAgQVNTRVJUKG1fbGluZUxheW91dFBhdGggPT0gTGluZUJveGVz
UGF0aCB8fCBtX2xpbmVMYXlvdXRQYXRoID09IEZvcmNlTGluZUJveGVzUGF0aCk7Ci0KICAgICBp
ZiAoIW1fc2ltcGxlTGluZUxheW91dCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2ltcGxlTGlu
ZUxheW91dCA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5oCShyZXZpc2lvbiAxNjkxNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0Nyw2ICszNDcsNyBAQCBw
dWJsaWM6CiAgICAgUm9vdElubGluZUJveCogbGFzdFJvb3RCb3goKSBjb25zdCB7IHJldHVybiB0
b1Jvb3RJbmxpbmVCb3gobV9saW5lQm94ZXMubGFzdExpbmVCb3goKSk7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCBoYXNMaW5lcygpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlTGluZUxheW91dFBhdGgoKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIC8vIEhl
bHBlciBtZXRob2RzIGZvciBjb21wdXRpbmcgbGluZSBjb3VudHMgYW5kIGhlaWdodHMgZm9yIGxp
bmUgY291bnRzLgogICAgIFJvb3RJbmxpbmVCb3gqIGxpbmVBdEluZGV4KGludCkgY29uc3Q7CkBA
IC01MjUsOCArNTI2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBw
b3NpdGlvbkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuKGNvbnN0IExheW91dFBvaW50JiBwb2lu
dEluTG9naWNhbENvbnRlbnRzLCBjb25zdCBSZW5kZXJSZWdpb24qKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbihWZWN0b3I8SW50
UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopIG92ZXJyaWRlOwogCi0gICAgdm9pZCBjcmVhdGVMaW5l
Qm94ZXMoKTsKLQogLy8gRklYTUUtQkxPQ0tGTE9XOiBUaGVzZSBtZXRob2RzIGhhdmUgaW1wbGVt
ZW50YXRpb25zIGluCiAvLyBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuIFRoZXkgc2hvdWxkIGJlIG1v
dmVkIHRvIHRoZSBwcm9wZXIgaGVhZGVyIG9uY2UgdGhlCiAvLyBsaW5lIGxheW91dCBjb2RlIGlz
IHNlcGFyYXRlZCBmcm9tIFJlbmRlckJsb2NrIGFuZCBSZW5kZXJCbG9ja0Zsb3cuCkBAIC02Mjks
NiArNjI4LDEyIEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OmlzUmVuZGVyTmFtZWQKICAg
ICByZXR1cm4gaXNSZW5kZXJCbG9ja0Zsb3coKSAmJiB0b1JlbmRlckJsb2NrRmxvdyh0aGlzKS0+
cmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKTsKIH0KIAoraW5saW5lIGNvbnN0IFNpbXBsZUxpbmVM
YXlvdXQ6OkxheW91dCogUmVuZGVyQmxvY2tGbG93OjpzaW1wbGVMaW5lTGF5b3V0KCkgY29uc3QK
K3sKKyAgICBBU1NFUlQobV9saW5lTGF5b3V0UGF0aCA9PSBTaW1wbGVMaW5lc1BhdGggfHwgIW1f
c2ltcGxlTGluZUxheW91dCk7CisgICAgcmV0dXJuIG1fc2ltcGxlTGluZUxheW91dC5nZXQoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyQmxvY2tGbG93
X2gKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTE3NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA1LTIxICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxNjc4NzApOiBDcmFz
aCBpbiBzaW1wbGUgbGluZSBsYXlvdXQgY29kZSB3aXRoIDphZnRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTU1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3RleHQvc2ltcGxlLWxpbmVz
LWhvdmVyLWFmdGVyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9z
aW1wbGUtbGluZXMtaG92ZXItYWZ0ZXIuaHRtbDogQWRkZWQuCisKIDIwMTQtMDUtMjAgIFJvZ2Vy
IEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBBY3R1
YWxseSBlbmFibGUgc25hcHNob3QgdGVzdHMgb24gbWFjIHdrMi4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvdGV4dC9zaW1wbGUtbGluZXMtaG92ZXItYWZ0ZXItZXhwZWN0ZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvc2ltcGxlLWxpbmVzLWhvdmVyLWFmdGVyLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvc2ltcGxl
LWxpbmVzLWhvdmVyLWFmdGVyLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSBAQAordGFyZ2V0IGFmdGVyCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvc2ltcGxlLWxp
bmVzLWhvdmVyLWFmdGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L3NpbXBsZS1saW5lcy1ob3Zlci1hZnRlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3NpbXBsZS1saW5lcy1ob3Zlci1hZnRlci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjIgQEAKKzxzdHlsZT4KK2EgeyBkaXNwbGF5OiBub25lOyB9CithOmFmdGVy
IHsgY29udGVudDogImFmdGVyIjsgfQorZGl2OmhvdmVyIGEgeyBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2sgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFy
Z2V0Lm9mZnNldExlZnQgKyAxMCwgdGFyZ2V0Lm9mZnNldFRvcCArIDEwKTsKK30KK2Z1bmN0aW9u
IGRvbmUoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxk
aXYgaWQ9InRhcmdldCIgb25tb3VzZWVudGVyPSJkb25lKCkiPnRhcmdldCA8YT48L2E+PC9kaXY+
Cg==
</data>
<flag name="review"
          id="256301"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>